TCPフィンガープリントによる
悪意のある通信の分析
早稲田大学大学院 基幹理工学研究科
後藤研究室 修士2年
研究の背景
ボットの脅威の拡大、検出の難しさ
カーネルマルウェアの増加
– カーネルモードで動作するマルウェア
– すべての動作をカーネルモードで実行できるマルウェアをフル
カーネルマルウェア(FKM) と呼ぶ
– FKMは既存OSのTCP/IP実装とは異なる独自のネットワークドラ
イバを実装
cf. Srizbi.trojan ※カーネルモード:CPU の動作モードの中で最も高いレベル。一般に OSのカーネルはカーネルモードで動作する。研究の目的
カーネルマルウェアの可能性がある通信をTCPフィン
ガープリントによって識別する手法を提案する
– ハニーポットの通信データの分析を行い、既存のOSとは異なるシ
グネチャで攻撃などの悪意のある通信が行われていることを示す
– 上記分析により得られたシグネチャを実ネットワーク上の通信
データに適用し、その有効性を示す
Passive TCP fingerprinting
TCP/IP の仕様はRFC で定義されているが,OS 毎にそ
の実装は異なる
fingerprintingとは、通信を分析することで対象システムの
OSを推定する技術
– active:対象システムに対して通信を行い、得られたデータから
OSを推定する(nmapが有名)
– passive:対象システムに対して通信を行わず、取得済みの通信
データを分析してOSを推定する
今回はp0fというツールを用い、Passive fingerprintingを
p0f
p0fにはいくつかのモードがあるが、今回用いたのはSYN
パケットを分析対象とするモード
判定に用いるのは以下のデータ
– ウィンドウサイズ
– TTL の初期値
– Don’t Fragment ビット
– SYN パケット全体のサイズ
– TCP オプション(NOP、EOL、ウィンドウスケール、最大セグメント
サイズ、SACK、タイムスタンプ等)
– その他特徴的な点など
これらを集約し、シグネチャとしてデータベース化している
CCC DATAsetの分析
サイバークリーンセンターが運用するハニーポットのデー
タから作成された、マルウェア研究用のデータセット
– CCC DATAset 2008,2009の2年分が存在
– そのうち、2台のハニーポットの通信を2日間フルキャプチャしたも
のを使用
p0fを適用した結果、既存のOSではないと判定されたシグ
ネチャが多数得られた
– TTLを2の累乗の値に切り上げ、初期値として推定、集約
– アウトバウンド1種、インバウンド43種のシグネチャが得られた
このシグネチャを総称して、MWSシグネチャと呼ぶことに
する
MWSシグネチャの例
60352:64:0:52:M1240,N,W2,N,N,S:.:MWS:60352_1
– ウィンドウサイズが60352バイト
– TTLの初期値が64
– Don’t Fragmentビットが0
– SYNパケット全体のサイズが52バイト
– 以下のTCPオプションが設定されている
最大セグメントサイズ、NOPオプション、ウィンドウスケールオプション、 SACK– その他の特徴はなし
– OSの名称、詳細(バージョン等)
今回は、ウィンドウサイズの値により分類し、名称を付けたCCC DATAsetの分析:全体(1)
既存シグネチャ、MWSシグネチャのSYNパケット数の比較
– 2009年度は2008年度に比べ全体的に通信量が減少している
CCC DATAsetの分析:全体(2)
シグネチャ毎の送信元IPアドレス数
– SYNパケット数ほどではないが全体的に減少している
– 送信元ホストの半分以上がMWSシグネチャによる通信をしてい
る
CCC DATAsetの分析:
シグネチャ別SYNパケット数
CCC DATAsetの分析:
シグネチャ別送信元IP数
CCC DATAsetの分析:
MWSシグネチャの送信先ポート(2009) (1)
両年度を通じて登場頻度の高いシグネチャについて、
2009年のデータにおける送信先ポートを分析
CCC DATAsetの分析:
MWSシグネチャの送信先ポート(2009) (2)
左: 60352_3、右: 60352_6
135、139、445、 1433、2967の各ポートは、いずれも
ポートスキャンの対象(脆弱性があるもの)として著
名なもの
CCC DATAsetの分析:
頻度の高い通信パターンの分析(1)
ホストAはMWS 60352_6シグネチャで通信
– 以下SYNパケットのみ
21:26:41 ホストA:9109 -> ハニーポットA:135 (scan) 21:26:41 ホストA:9110 -> ハニーポットA:135 (rpc) 21:26:43 ホストA:9197 -> ハニーポットA:135 (rpc)
21:26:43 ホストA:9203 -> ハニーポットA:1013 (シェルコード送信) 21:26:43 ハニーポットA:1028 -> ホストA:3450 (malware 要求) 21:26:43 ハニーポットA:1028 -> ホストA:3450 (malware 要求)
CCC DATAsetの分析:
頻度の高い通信パターンの分析(2)
ホストBはMWS 53760_4シグネチャで通信
00:35:11 ホストB:56101 -> ハニーポットB:135 (rpc) 00:35:13 ハニーポットB:1027 -> ホストB:47602 (malware 要求) 00:35:13 ハニーポットB:1027 -> ホストB:47602 (malware 要求) CCC DATAsetの攻撃元データ(マルウェアのダウンロー
ド記録)に、ダウンロードが成功した記録が残されている
2009-03-13 00:35:13, ハニーポットB,1027, ホストB,47602,
TCP,c925531e659206849bf7********************,
PE_VIRUT.AV,C:¥WINNT¥system32¥csrs.exe
CCC DATAsetの分析:
頻度の高い通信パターンの分析(3)
ホストCは、最初のSYNパケットのみMWS 16384_1シグネ
チャで通信
2つ目・3つ目のSYNパケットはWindowsのシグネチャであった 00:57:09 ホストC:6000 -> ハニーポットB:135 (scan) 00:57:13 ホストC:3197 -> ハニーポットB:135 (rpc) 00:57:15 ホストC:4139 -> ハニーポットB:135 (rpc)CCC DATAsetの分析:
シグネチャ毎の通信内容
シグネチャ
ftp
http
irc
shell
smb
sql
MWS 60352_6
232
0
0
558
0
0
MWS 53760_4
50
1
0
307
0
0
MWS 60352_3
38
0
0
66
0
0
MWS 65535_7
12
0
0
21
0
0
MWS 60352_2
0
0
0
18
0
0
MWS 60352_1
0
0
0
6
0
0
一度以上通信が成立したシグネチャについてまとめ
た表
MWSシグネチャではftpとshellコード送信が多く、他
はほとんどないことがわかる
DFビット
– CCC DATAsetにおけるインバウンド通信は、すべてDFビットが0
だった
– DFビットは通信環境により削除されることがある
– MWSシグネチャのDFビットを1にしたMWS+DFシグネチャを作成
最大セグメントサイズオプション
– 最大セグメントサイズの値は通信環境により左右されることが多
い
– 最大セグメントサイズの値のみが異なるシグネチャについて、こ
れをワイルドカードとして6種に集約し、MWS_Genシグネチャを作
成
以降、MWSシグネチャ、MWS+DFシグネチャ、MWS_Genシ
MWSシグネチャの拡張
他のネットワーク通信データの分析:
早稲田大学(1)
早稲田大学の対外接続回線におけるすべての通信デー
タ (SYNパケットのみ、09/12/25~09/12/31)を分析
シグネチャ種別ごとの統計
– SYNパケット数では合計8.5%、送信元IP数では合計5.5%程度
SYN パケット数 送信元IP数 MWS 5.140% 0.007% MWS+DF 0.904% 0.770% MWS Gen 2.569% 4.656% UNKNOWN 20.180% 6.444%他のネットワーク通信データの分析:
早稲田大学(2)
各種MWSシグネチャ別に集計を行ったところ、MWS
16384_1シグネチャによるSYNパケット数が圧倒的に多
かった
– 送信元IP数は少数
他に上位にきているシグネチャ4種の送信先ポート番号を
集計したところ、445番ポートが最も多かった
– 135 番、139 番、2967 番、1433 番も多い
– 他にHTTP (80 番、8080 番)、HTTPS(443 番)、SMTP (25 番)、
bittorent(6886 番、6889 番)など
– ターゲット不明のポート番号も
他のネットワーク通信データの分析:
企業のsmtp通信データ(1)
ある企業網の電子メールサーバに接続したネットワーク
セグメントで収集したTCP ヘッダデータ(SYNパケットのみ、
09/3/1~09/3/31)を分析
シグネチャ種別ごとの統計
– SYNパケット数では合計3%、送信元IP数では4%程度
SYN パケット数 送信元IP数 MWS 0.004% 0.004% MWS+DF 0.794% 0.240% MWS_Gen 2.107% 3.500% UNKNOWN 13.398% 9.728%他のネットワーク通信データの分析:
企業のsmtp通信データ(2)
各種MWSシグネチャ別に集計を行ったところ、他の通信
データと異なりMWS 16384_1シグネチャによるSYNパケッ
ト送信が一切なかった
MWSシグネチャによるSYNパケット送信があったIPアドレ
スについて発信したメールの内容を判別したところスパム
メールであった
– マルウェアの構成によってはスパム送信モジュールを搭載するも
のもあると推定できる
WIDE Projectによるインターネット定点観測において取得
されている通信データ
本研究ではその中でも太平洋を横断するネットワーク回
線で毎日取得されているもの(2006年11月~2009年11
月)を分析、月別で集計した
シグネチャ別に集計したところ、多い月ではSYNパケット
全体の10%以上がMWS 16384_1シグネチャによるもの
だった
多くの月においてMWS+DF シグネチャ、MWS_Gen シグネ
チャによるSYNパケットが全体のおよそ1.5% 以上存在し
他のネットワーク通信データの分析:
MAWIデータセット
MWS 16384_1シグネチャについて、早稲田大学のデータ
とMAWIデータセット(2009年11月分のみ)を分析した
少数の送信元IPから大量のSYNパケットが送信されてい
た
スキャン行為と思われる通信が確認できた
SYNパケットのうち95%程度は、送信元ポートが6000番で
あった
他のネットワーク通信データの分析:
MWS 16384_1シグネチャ
通信データ SYN パケット数 送信元IP 数 早稲田大学 12,058,445 166 MAWI (2009 年11 月) 2,030,839 106まとめ
ハニーポットの通信データからカーネルマルウェアの可能
性がある(既存OSのTCP/IPスタックと異なる実装である)
シグネチャを抽出、通信の分析を行った
これらのシグネチャによる攻撃通信が多数見られた
他のネットワーク上でもこれらのシグネチャが見られるこ
とが確認できた
今後の課題
– さらに通信内容に踏み込んだ分析
– MWSシグネチャによるSYNパケットの送信元ホストの分析
– シグネチャのアップデート
p0fのシグネチャにおけるTCPオプションリスト
p0f (1)
N NOP オプション E EOL オプション(オプションリストの終了) Wnnn ウィンドウスケールオプション(nnn は値を表す) Mnnn 最大セグメントサイズオプション(nnn は値を表す) S Selective ACK オプション T タイムスタンプオプション T0 タイムスタンプオプション(タイムスタンプ値が0) ?n 上記以外のオプション(n はオプションを表す番号)
p0fのシグネチャにおけるその他の特徴リスト
p0f (2)
E EOL オプションの後にオプションがある Z IP パケットにおけるID フィールドが0 である I IP パケットでオプションが設定されている U 緊急ポインタフィールドが0 でない X 未使用領域が0 でない A ACK 番号が0 でない T タイムスタンプ・エコー応答の値が0 でない F 通常設定されないフラグ(URG、PSH など)が設定さ れている D TCP ヘッダの後にデータが存在するCCC DATAsetの分析:
シグネチャ別SYNパケット数
CCC DATAsetの分析:
シグネチャ別送信元IP数
– 53760:64:1:64:M*,N,W3,N,N,T0,N,N,S:.:MWS_Gen:53760
– 5808:64:1:60:M*,S,T,N,W0:.:MWS_Gen:5808
– 60352:64:1:52:M*,N,W2,N,N,S:.:MWS_Gen:60352
– 65535:64:1:52:M*,N,W2,N,N,S:.:MWS_Gen:65535_1
– 65535:64:1:64:M*,N,W3,N,N,T0,N,N,S:.:MWS_Gen:65535_2
– 8192:64:1:64:M*,N,W0,N,N,T0,N,N,S:.:MWS_Gen:8192
MWS_Genシグネチャリスト
企業のsmtpデータにおける
MWSシグネチャの送信メール内訳
シグネチャ名 スパム 通常メール 送信元IPアドレス数 65535_8 290 0 9 65535_5 252 0 8 65535_3 90 0 4 65535_7 64 0 6 16384_3 25 0 3 65535_4 16 0 7 53760_4 16 0 2 65535_12 9 0 1各種MWSシグネチャごとのSYNパケット数
(早稲田大学)
シグネチャ SYNパケット数 MWS 16384_1 12,058,445 MWS_Gen 65535_1 2,088,113 MWS_Gen 53760 1,398,351 MWS_Gen 60352 1,335,506 MWS_Gen 65535_2 1,101,716 MWS+DF 8192_1 952,104 MWS+DF 60352_6 244,401 MWS+DF 65535_13 241,613 MWS+DF 53760_4 194,928 MWS_Gen 8192 136,019ポート番号 SYNパケット数 445 1,827,882 80 120,384 6889 48,207 21053 11,828 8080 10,566 25 10,119 6649 9,778 28582 5,822 443 4,069 6886 3,009
シグネチャごとの送信先ポート番号
(早稲田大学) (1)
MWS_Gen 65535_1 ポート番号 SYNパケット数 445 533,677 80 378,072 6889 75,996 21053 20,479 6649 12,757 28582 10,356 443 7,436 8088 6,930 14229 6,648 25 5,000 MWS_Gen 65535_2ポート番号 SYNパケット数 445 1,322,036 1433 7,660 80 1,843 25 925 139 368 135 302 2967 134 6649 54 21053 51
シグネチャごとの送信先ポート番号
(早稲田大学) (2)
MWS_Gen 53760 ポート番号 SYNパケット数 445 1,322,036 1433 7,660 80 1,843 25 925 139 368 135 302 2967 134 6649 54 21053 51 MWS_Gen 60352各種MWSシグネチャごとのSYNパケット数
(SMTPデータ)
シグネチャ SYNパケット数 MWS_Gen 65535_1 65,108 MWS+DF 8192_1 46,206 MWS_Gen 65535_2 40,396 MWS_Gen 60352 24,131 MWS_Gen 53760 13,004 MWS_Gen 8192 3,726 MWS+DF 65535_3 1,624 MWS+DF 60352_3 1,306 MWS+DF 65535_4 1,163 MWS+DF 65535_7 1,016各種MWS シグネチャによるSYN パケット割合の推移
(MAWI) 1
各種MWS シグネチャによるSYN パケット割合の推移
(MAWI) 2
MWS 16384 1 シグネチャによるSYN パケット割合の推移
(MAWI) 1
MWS 16384 1 シグネチャによるSYN パケット割合の推移
(MAWI) 2
MWS 16384 1 シグネチャ以外の各種MWS シグネチャによる
SYN パケット割合の推移(MAWI) 1
MWS 16384 1 シグネチャ以外の各種MWS シグネチャによる
SYN パケット割合の推移(MAWI) 2
MWS Gen シグネチャ4 種によるSYN パケット割合の推移
(MAWI) 1
MWS Gen シグネチャ4 種によるSYN パケット割合の推移
(MAWI) 2
各種MWS シグネチャによる送信元IP アドレス数の推移
(MAWI) 1
各種MWS シグネチャによる送信元IP アドレス数の推移
(MAWI) 2
各種MWSシグネチャごとのSYNパケット数
(MAWI)
シグネチャ SYNパケット数 MWS 16384_1 46,226,393 MWS_Gen 65535_2 3,977,229 MWS_Gen 53760 3,709,951 MWS_Gen 65535_1 2,844,464 MWS_Gen 8192 2,286,077 MWS+DF 8192_1 1,267,833 MWS_Gen 60352 751,435 MWS+DF 53760_4 463,724 MWS+DF 65535_12 254,946 MWS+DF 65535_7 209,522ポート番号 SYNパケット数 2967 5,827,791 1433 2,968,309 135 1,460,904 3306 344,411 1521 223,939 8088 201,510 8080 196,786 445 84,127 その他合計 750,668