ベイジアンネットワークによるウェブ侵入検知
金床 (Kanatoko)
株式会社ビットフォレスト CTO
@kinyuka
http://www.jumperz.net/
http://www.scutum.jp/

1

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

自己紹介

• 金床
• Web Application Firewall の開発
• ミッション:「攻撃検知の精度を上げる」
– 攻撃を見逃さない
– 正常な通信を止めない

2

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

ベイズの定理

– B が起こったときに A が起こる確率 P(A|B) に、
A が起こった時に B が起こる確率 P(B|A) を対応
させる式
• 「道具としてのベイズ統計 ( 涌井良幸著)」より

– 確率の計算テクニックとして使える
– 別に難しくないので、興味がある人はちょっと
時間を作って学べばすぐ理解できる

3

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

ベイジアンネットワークとは?

– ベイジアンネットワーク( Bayesian network )
は、因果関係を確率により記述するグラフィカ
ルモデルの 1 つで、複雑な因果関係の推論を有
向グラフ構造により表すとともに、個々の変数
の関係を条件つき確率で表す確率推論のモデル
である。(ウィキペディアより)
Hacker
Drunken

AVTokyo

4

Beer in
hand

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

スプリンクラーの例

•ノードとエッジが因果関係を表す
•原因 -> 結果の確率は CPT で事前に判明している
•観察されたノードに情報をエビデンスとして入力
•観察できないノードの確率が変化(出力として利用)
•計算のためにベイズの定理を使う
•「今、芝が濡れていることがわかった。さて、雨が降った確率はいくつだろうか?」
5

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

Weka

– オープンソース、 Java によるデータマイニング
ソフトウェア集
– ライブラリ、 GUI ツールなどなんでもあり
– 老舗
– (スプリンクラーのデモ)

6

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

ウェブの侵入検知でベイジアンネットワークをどう使うか?
•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%

7

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

スパムフィルタとナイーヴベイズ

8

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

WAF(Web Application Firewall) の検知性能向上への挑戦

– シグネチャベース ( ブラックリスト型 )
• If ‘alert’ then die!
• 単純だがメリットも数多くある
– 挙動が明確
– パフォーマンス一定(比較的速い)
– 人間がメンテしやすい

• 最大のデメリット 検知精度は低い(誤検知が多
い)

9

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

WAF(Web Application Firewall) の検知性能向上への挑戦

– 閾値モデル
シグネチャごとに点数を加えたり減らしたりする
最終的に閾値を超えていたら攻撃とみなす
検知精度↑
メンテナンス性↓
チューニング作業中に違和感あり
UNION で 5 点加算(ルール 1 )
SELECT で 5 点加算(ルール 2 )
UNION と SELECT 両方ある場合は? 10 点でいいの
か?
• UNION も SELECT もある場合は 20 点加算(ルール
3)
• 組み合わせが増えすぎる
10
02/17/14
•
•
•
•
•
•
•
•

Copyright (c) Bitforest Co., Ltd.
 

WAF(Web Application Firewall) の検知性能向上への挑戦

– 閾値モデル(つづき)
– Alert で 5 点加算
– UNION で 5 点加算
– “Alert UNION” で 10 点?
– 「 XSS 」「 SQLi 」など複数の属性ごとに計算す
べき

11

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

WAF(Web Application Firewall) の検知性能向上への挑戦

– ベイジアンネットワーク
• 閾値モデルが持っていた問題をほぼ全て解決

12

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

ベイジアンネットワークの利点

– 複雑な属性同士の関係性をそのままネットワー
ク (GUI 操作 ) で表現できる
– ベイズの定理によって乗算・確率表現ができる
– チューニングしやすい
– エキスパートの勘とのシンクロ感

13

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

複雑な属性同士の関係性をそのままネットワークで表現できる

– 一対多(エッジの引き方)、強弱( CPT )が表
現できる
– GUI でモデルを作り、それを使ってそのまま計
算ができる
• Weka の Bayesian Network Editor を使用

– 複雑な属性同士の関係性
• 例( XSS 、 CMS )
• 例(脆弱性検査、国内のユーザ )
• 例 (eval と Java, Ruby, JavaScript, Perl, PHP)

14

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

ベイズの定理によって乗算・確率表現ができる

– UNION だけの場合 ( それほど…)
– SELECT だけの場合(別に…)
– UNION と SELECT の両方の場合(これはまず
い!)
– ベイズの定理による計算によって、「希なケー
ス」の場合には「攻撃である確率が高い」こと
が自然に導出される

15

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

チューニングしやすい

– 中間的な役目のノード (mediating variables) が便
利
– CPT の数値を変更した際の全体への影響が予想
通りになる
– ニューラルネットワークのようなブラックボッ
クスではないので、細かく作業を積み重ねてい
ける

16

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

エキスパートの勘とのシンクロ感

「 A という条件と B という条件だったら C っぽ
くなる」
のような、専門家(エキスパート)の感覚が、そ
のまま数値として出力されてくる
人間の意志決定のプロセスとベイジアンネット
ワークの相似性

17

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

まとめ

ベイジアンネットワークは、複数の観察された情
報に基づいて意志決定する際に最適な技術
「専門家 ( エキスパート ) が目で見れば攻撃かど
うか判別ができる」
→ それをコンピュータにやらせたい
という場面で使うことができる技術

18

02/17/14

Copyright (c) Bitforest Co., Ltd.
 

おまけ

– 株式会社ビットフォレストではウェブ侵入検知
をはじめ、ウェブアプリケーションセキュリ
ティに興味があるエンジニアを募集中です。
– データサイエンスに興味がある人も大歓迎
– @kinyuka までお気軽に

19

02/17/14

Copyright (c) Bitforest Co., Ltd.

ベイジアンネットワークによるウェブ侵入検知 金床 AVTokyo 2013.5