ベイジアンネットワークによるウェブ侵入検知 金床 avtokyo 2013.5
TRANSCRIPT
Copyright (c) Bitforest Co., Ltd.
ベイジアンネットワークによるウェブ侵入検知
金床 (Kanatoko)株式会社ビットフォレスト CTO
@kinyukahttp://www.jumperz.net/
http://www.scutum.jp/
23/04/121
Copyright (c) Bitforest Co., Ltd.
自己紹介
• 金床• Web Application Firewall の開発• ミッション:「攻撃検知の精度を上げる」
– 攻撃を見逃さない– 正常な通信を止めない
23/04/122
Copyright (c) Bitforest Co., Ltd.
ベイズの定理
– B が起こったときに A が起こる確率 P(A|B) に、A が起こった時に B が起こる確率 P(B|A) を対応させる式
• 「道具としてのベイズ統計 ( 涌井良幸著)」より
– 確率の計算テクニックとして使える– 別に難しくないので、興味がある人はちょっ
と時間を作って学べばすぐ理解できる
23/04/123
Copyright (c) Bitforest Co., Ltd.
ベイジアンネットワークとは?
– ベイジアンネットワーク( Bayesian network )は、因果関係を確率により記述するグラフィカルモデルの 1 つで、複雑な因果関係の推論を有向グラフ構造により表すとともに、個々の変数の関係を条件つき確率で表す確率推論のモデルである。(ウィキペディアより)
23/04/124
AVTokyo
HackerDrunken
Beer in hand
Copyright (c) Bitforest Co., Ltd.
スプリンクラーの例
23/04/125
•ノードとエッジが因果関係を表す•原因 -> 結果の確率は CPT で事前に判明している•観察されたノードに情報をエビデンスとして入力•観察できないノードの確率が変化(出力として利用)•計算のためにベイズの定理を使う
•「今、芝が濡れていることがわかった。さて、雨が降った確率はいくつだろうか?」
Copyright (c) Bitforest Co., Ltd.
Weka
– オープンソース、 Java によるデータマイニングソフトウェア集
– ライブラリ、 GUI ツールなどなんでもあり– 老舗– (スプリンクラーのデモ)
23/04/126
Copyright (c) Bitforest Co., Ltd.
ウェブの侵入検知でベイジアンネットワークをどう使うか?
23/04/127
•HTTP リクエストが攻撃である確率 -> 1%•HTTP リクエストが攻撃でない確率 -> 99%•HTTP リクエストが攻撃である場合に、その HTTP リクエストがalert という文字列を含む確率 -> 8%•HTTP リクエストが攻撃である場合に、その HTTP リクエストが•alert という文字列を含まない確率 ->92%•HTTP リクエストが攻撃でない場合に、その HTTP リクエストがalert という文字列を含む確率 -> 0.2%•HTTP リクエストが攻撃でない場合に、その HTTP リクエストが•alert という文字列を含まない確率 ->99.8%
今、目の前にある HTTP リクエストが攻撃である確率はいくつか?1%
今、目の前にある HTTP リクエストに alert という文字列が含まれていた。この HTTP リクエストが攻撃である確率はいくつか?
28.8%
Copyright (c) Bitforest Co., Ltd.
スパムフィルタとナイーヴベイズ
23/04/128
Copyright (c) Bitforest Co., Ltd.
WAF(Web Application Firewall) の検知性能向上への挑戦
– シグネチャベース ( ブラックリスト型 )• If ‘alert’ then die!• 単純だがメリットも数多くある
– 挙動が明確– パフォーマンス一定(比較的速い)– 人間がメンテしやすい
• 最大のデメリット 検知精度は低い(誤検知が多い)
23/04/129
Copyright (c) Bitforest Co., Ltd.
WAF(Web Application Firewall) の検知性能向上への挑戦
– 閾値モデル• シグネチャごとに点数を加えたり減らしたりする• 最終的に閾値を超えていたら攻撃とみなす• 検知精度↑• メンテナンス性↓• チューニング作業中に違和感あり• UNION で 5 点加算(ルール 1 )• SELECT で 5 点加算(ルール 2 )• UNION と SELECT 両方ある場合は? 10 点でいいのか?• UNION も SELECT もある場合は 20 点加算(ルール 3 )• 組み合わせが増えすぎる
23/04/1210
Copyright (c) Bitforest Co., Ltd.
WAF(Web Application Firewall) の検知性能向上への挑戦
– 閾値モデル(つづき)– Alert で 5 点加算– UNION で 5 点加算– “Alert UNION” で 10 点?– 「 XSS 」「 SQLi 」など複数の属性ごとに計算
すべき
23/04/1211
Copyright (c) Bitforest Co., Ltd.
WAF(Web Application Firewall) の検知性能向上への挑戦
– ベイジアンネットワーク• 閾値モデルが持っていた問題をほぼ全て解決
23/04/1212
Copyright (c) Bitforest Co., Ltd.
ベイジアンネットワークの利点
– 複雑な属性同士の関係性をそのままネットワーク (GUI操作 ) で表現できる
– ベイズの定理によって乗算・確率表現ができる
– チューニングしやすい– エキスパートの勘とのシンクロ感
23/04/1213
Copyright (c) Bitforest Co., Ltd.
複雑な属性同士の関係性をそのままネットワークで表現できる
– 一対多(エッジの引き方)、強弱( CPT )が表現できる
– GUI でモデルを作り、それを使ってそのまま計算ができる
• Weka の Bayesian Network Editor を使用
– 複雑な属性同士の関係性• 例( XSS 、 CMS )• 例(脆弱性検査、国内のユーザ )• 例 (eval と Java, Ruby, JavaScript, Perl, PHP)
23/04/1214
Copyright (c) Bitforest Co., Ltd.
ベイズの定理によって乗算・確率表現ができる
– UNION だけの場合 ( それほど…)– SELECT だけの場合(別に…)– UNION と SELECT の両方の場合(これはまず
い ! )– ベイズの定理による計算によって、「希なケース」の場合には「攻撃である確率が高い」ことが自然に導出される
23/04/1215
Copyright (c) Bitforest Co., Ltd.
チューニングしやすい
– 中間的な役目のノード (mediating variables) が便利
– CPT の数値を変更した際の全体への影響が予想通りになる
– ニューラルネットワークのようなブラックボックスではないので、細かく作業を積み重ねていける
23/04/1216
Copyright (c) Bitforest Co., Ltd.
エキスパートの勘とのシンクロ感
「 A という条件と B という条件だったら C っぽくなる」
のような、専門家(エキスパート)の感覚が、そのまま数値として出力されてくる
人間の意志決定のプロセスとベイジアンネットワークの相似性
23/04/1217
Copyright (c) Bitforest Co., Ltd.
まとめ
ベイジアンネットワークは、複数の観察された情報に基づいて意志決定する際に最適な技術
「専門家 ( エキスパート ) が目で見れば攻撃かどうか判別ができる」→それをコンピュータにやらせたい
という場面で使うことができる技術
23/04/1218
Copyright (c) Bitforest Co., Ltd.
おまけ
– 株式会社ビットフォレストではウェブ侵入検知をはじめ、ウェブアプリケーションセキュリティに興味があるエンジニアを募集中です。
– データサイエンスに興味がある人も大歓迎– @kinyuka までお気軽に
23/04/1219