不完全な定点観測から

不完全な定点観測から
真の不正ホストの分布が分かるか?
◎小堀 智弘,菊池 浩明(東海大学)
寺田 真敏(日立製作所)
不正パケット:送信元アドレスの分布
• どちらの観測値が正しいのか?
10000
100000
Frequency [packets]
Frequency [packets]
10000
1000
100
1000
100
10
10
1
1
0
50
100
150
IP address [/8]
218.*.*.*
200
250
0
50
100
150
IP address [/8]
222.*. *.*
200
250
モデル
• 基本定義
条件付確率
P(A|B = b1)
定点センサ
a1
a2
観測地b1での分布
P(A|B = b2)
B = b1
ワーム
P(A)
発信元
A = a1
a1
a2
発信元の真の分布
A = a2
A: 発信元の確率変数
B = b2
a1
a2
観測地b2での分布
B = b3
B: 宛先の確率変数
定点観測の問題点
• ポートスキャンの局所性
– 多くのワームは感染元のサブネットを狙う.
観測データはセンサのアドレスに依存
• センサの非一様性
– センサの設置アドレスの制約(未使用アドレス).
センサはアドレス空間上に偏る
• 不完全な観測データ
– 局所性とセンサアドレスの偏りから生じる
観測データの歪み
スキャンの局所性[石黒2005]
1
約半分のパケッ
トは観測地から
8ビット以内のア
ドレスから届く
Proportion of hosts
0.8
all
TCP
UDP
135
445
1433
0.6
0.4
0.2
0
0
5
25
20
15
10
Difference of address [bin]
30
観測アドレスと発信元アドレス間のビット差(MSBから)
35
本研究の目的
• 入力:不完全な観測データ
– S = {s1,…,sn}のn台のセンサで観測した
宛先がsiの時の発信元Aの確率分布 P(A|B = si)
• 出力:
1. 不正パケット発信元の真の分布 P(A)
2. 任意の宛先アドレスbにおける,発信元の観測値
P(A|B = b)
従来研究
• センサの平均
– ISDAS定点観測,センサの平均値
センサアドレスの偏りに依存して歪む.国内のみ.
• 空間補間
– [田村2005] アドレス距離から空間近似モデル
IPアドレス間の距離とパケット数は比例?
• 時系列分析
– [Zou2003] カルマンフィルタを用いた予測モデル
時間軸上の近似.
新規性
• 提案方式のアイデア
– 1. ワームブラックボックス解析
– 2. ベイズ推定
– 3. 逐次的学習
1. ブラックボックス解析
• 任意の発信元Aにおける宛先Bの分布
宛先の分布
P(B|A=a1)
ワーム
感染実験
b1 b2 b3
P(B|A=a2)
A = a1
B = b1
B = b2
B = b3
b1 b2 b3
A = a2
感染実験
►
実験PC
- Pentium4 3.0GHz
- 1.0GB RAM
- Windows XP SP2
►
仮想OSを構築するソフト
- VMware
►
感染させたOS
- Windows 2000 SP2
►
►
観測期間 – 60[s]
ウィルスの入手元
- http://vx.netlux.org/
仮想OS
ベースのOS
ログをキャプチャー
実験結果:宛先の分布 P(B|A=b)
• W32.Sasser.F (発信元b=100.100.100.1)
1000
Frequency
100
10
1
0
50
100
150
200
IP address [/8]
250
300
モデル化した宛先分布
• 宛先分布P(A|B=60)
1
実際の観測値に近
くなるように作った
ピークを0.54とした
確率分布
probability
0.1
0.01
0.001
0
50
100
150
IP address [/8]
200
250
2. ベイズの定理
• 宛先分布P(B|A)から,センサアドレスsiにお
ける発信元分布P(A|B)を推定
P( B  si | A) P( A)
P( A | B  si ) 
P( B  si )
P( B  si | A) P( A)

 P( B  si | A  a) P( A  a)
a
宛先分布は
感染実験から既知
事前確率(ワーム分布)
は未知
3. 逐次的学習
• 第0次近似
n
1
P( A) 0   P( A | B  si )
n i 1
• 第k次近似
n
1
P( A) k 1   P( A | B  si ) k
n i 1
• 終了条件
– P(A)* = P(A)k if P(A)k = P(A)k+1
数値例
真の分布 P(AB)
B
A
宛先分布 P(B|A)
1
2
3
B
1
0.2
0.1
0.05
2
0.15
0.25
3
0.05
0
A
1
2
3
1
0.5
0.3
0.2
0
2
0.37
0.7
0
0.2
3
0.13
0
0.8
観測値 P(A|B)
B
A
1
2
3
1
0.57
0.3
0.13
2
0.3
0.6
0
3
0.2
0
0.8
←わざと抜いて推定する
数値例 P(A)の収束
0.5
0.45
0.4
0.35
P(A)
0.3
0.25
0.2
0.15
真の値
A=1
A=2
A=3
0.1
0次近似
(センサ平均)
0.05
0
P(A)
P(A)^0
P(A)^1
P(A)^2
近似レベル
P(A)^3
P(A)^4
実観測値による評価
• JPCERT/CC ISDAS
– 定点観測システム
– 定常的に不正アクセスを観察
– センサ数11台
• 観測期間2006年5月 (1ヶ月間)
• 学習: S = {s1,…,s10} 10台
• 評価: s11 1台
実験結果1: 不正者分布P(A)*
1
P(A)0
P(A)5
0.1
P(A)
0.01
0.001
0.0001
1e-005
1e-006
0
50
100
150
IP address [IP/8]
200
250
実験結果2: 未知観測値 P(A|B=s11)*
1
P(A|B)
1
P(A|B)0
9
P(A|B)9
P(A|B)
0.1
0.01
0.001
0.0001
1e-005
0
50
100
150
IP address [IP/8]
200
250
考察
• 誤差の原因
– 宛先分布P(B|A)が不正確: Aに依存しない一様
な分布の仮定に問題
– アドレスブロックの粒度: /8のブロックの大きさ
結論
• 不完全な観測データから真の分布を推定す
る方式を提案した
– 不正ホストの分布 P(A)*
– 任意のアドレスにおける不正パケットの観測値分
布 P(A|B)*
• 提案方式の妥当性を,人工的な数値例と実
観測データに適用して評価した.
実測値と予測値の散布図
• A=61の宛先アドレスの確率
0.5
0.45
Observed Distribution
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
0
0.01
0.02
0.03
0.04
Estimated Distribution
0.05
0.06
SasserFの宛先分布
800
"hist_100.100.100.1"
700
Frequency
600
500
400
300
200
100
0
0
50
100
IP/8
150
200
250
問題点
• ウィルスやワームの探索パケットには大きな局所性
が存在する
18000
16000
14000
Frequency
12000
10000
8000
6000
4000
2000
0
0
50
100
150
IP/8
200
250
実験結果3: 誤差
• 宛先分布P(A|B=60)
A
P(B=b)1 P(B=b)
58
0.14
0.11
59
0.05
0.01
61
0.14
0.09
0.19
…
…
…
222
0.14