分散ハニーポット観測からのダウンロードサーバ間の相関ルール抽出 東海大学 ◎大類 将之 菊池 浩明 日立製作所 寺田真敏
マルウェアの移り変わり 第1期 第2期 スキャン 侵入 MW A MW B BO BO PS TR WO MW C MW D 潜伏 感染 BO PS TR WO MW C MW D 潜伏 感染 感染
ボットネット MW 第3期 BO DL2 PS DL1 連携活動 DL3 攻撃者
ボットネット 連携活動の発見 複数のMW間の相関を発見する必要性 ボットネットの同定やトレースへの活用 ボットネットA:PE+TROJ+WORM ボットネットB:BKDR+TSPY+WORM ボットネットの同定やトレースへの活用 連携活動の発見
連携を発見する事の困難さ 連携パターン 2 = 64通り 1週間分 7日 検査回数 448回 ← 約4億通り ← 約2千回 ← 約8千兆回 曜日 PE1 PE2 TROJ1 TORJ2 WORM1 WORM2 月 3 2 1 火 水 木 5 金 4 土 日 連携パターン 2 = 64通り 1週間分 7日 検査回数 448回 6 ← 約4億通り 単純な組み合わせなのでこの数だが、半数以下と見積もっても かなりの膨大な組み合わせを調べなければいけない ← 約2千回 ← 約8千兆回 5
アソシエーション分析 X(前件部) ⇒ Y (結論部) という相関ルールを抽出するデータマイニング手法 支持度(Support)と確信度(Confidence)に最小値を設定する事で,膨大な組み合わせから,効率よくルールを抽出できる. 支持度 = ルールの出現率 確信度 = ルールの関連性の強さ Xという前提条件部が来るならば、Yという結論部も来る コンビニで例えると、ビールを購入する人は、新聞も購入するといったルールを発見できる
相関ルールの抽出例 X(PE1) → Y(TROJ1, WORM1) 支持度 = X∩Y/N = 4/7日 60 % 確信度 =X∩Y/X = 4/5日 80 % 曜日 PE1 PE2 TROJ1 TORJ2 WORM1 WORM2 月 3 2 1 火 水 木 5 金 4 土 日 単純な組み合わせなのでこの数だが、半数以下と見積もっても かなりの膨大な組み合わせを調べなければいけない N = 7 X = 5 X∩Y = 4 7
相関ルールの抽出例 X(PE1, PE2) → Y(TROJ1, WORM1) 支持度 = X∩Y/N = 2/7日 30 % 確信度 =X∩Y/X = 2/3日 100 % 曜日 PE1 PE2 TROJ1 TORJ2 WORM1 WORM2 月 3 2 1 火 水 木 5 金 4 土 日 単純な組み合わせなのでこの数だが、半数以下と見積もっても かなりの膨大な組み合わせを調べなければいけない N = 7 X = 2 X∩Y = 2 8
Aprioriの原理 最小値を指定して枝狩りしていく 最小確信度 0.6 最小支持度 0.8 8千兆の ルール
実験目的 攻撃通信データと攻撃元データを使用し, 連携パターンを抽出 各データは約20分間隔で145個のタイムスロットに分割 20分間隔 攻撃通信データと攻撃元データを使用し, 連携パターンを抽出 各データは約20分間隔で145個のタイムスロットに分割 スロット MW名 MW1 MW2 MW3 1 感染なし 2 MW4 … 144 20分間隔
実験方法 攻撃通信データを手動で詳しく解析し,連携パターンを探す Aprioriで機械抽出し,手動解析と比較 ハニーポットや観測期間への応用 実験1 ハニーポットや観測期間への応用 実験2 実験3 実験4
実験方法 攻撃元データ 実験4 実験3 実験1,実験2 実験4 観測期間によるパターンの変化 実験3 ハニーポット間の連携パターン ハニーポットID(Honey001~096) 001 002 003 004 094 2008/05 2008/06 2008/07 2009/02 2009/03 13日 14日 2009/04 1年間(365日) 実験4 攻撃通信データ 09年3月13日と14日 Honey003(XP) 実験3 実験1,実験2 実験4 観測期間によるパターンの変化 実験3 ハニーポット間の連携パターン 実験2 DLサーバ間の連携パターン 実験1 MW間の連携パターン
17/58 手動解析の結果 PE_VIRUT.AV TROJ_BUZUS.AGB WORM_SWTYMLAI.CD 時刻 DLホストIPアドレス MW名 0:02:11 124.86.***.111 PE_VIRUT.AV 0:03:48 67.215.*.206 TROJ_BUZUS.AGB 72.10.***.195 WORM_SWTYMLAI.CD 17/58 PEをDLしたならば、TROJとWORMがDLされる
実験1 MWの相関ルール抽出 手動の連携パターンを自動抽出! 最小支持度10% 最小確信度80% 5 PE_ VIRUT.AV TROJ_ 最小支持度10% 最小確信度80% 手動の連携パターンを自動抽出! No. 前件部 結論部 支持 確信 5 PE_ VIRUT.AV TROJ_ BUZUS.AGB ⇒ WORM_ SWTYMLAI.CD 29.3 100 6 TROJ_ BUZUS.AGB No. 前件部 結論部 支持 確信 1 TROJ_BUZUS.AGB ⇒ WORM_SWTYMLAI.CD 41.4 100 2 46.6 88.9 3 BKDR_POEBOT.GN 10.3 4 5 PE_VIRUT.AV 29.3 6
実験2 DLサーバの相関ルール 最小支持度10% 最小確信度50% 複数のDLサーバを使用するMWでは正確な連携パターンが抽出できない 1 最小支持度10% 最小確信度50% 複数のDLサーバを使用するMWでは正確な連携パターンが抽出できない No. 前件部 結論部 支持 確信 対応MW 1 114.145.51.166 ⇒ 122.18.195.123 41.4 100 PE⇒PE 2 46.6 88.9 No. 前件部 結論部 支持 確信 対応MW 1 114.145.51.166 ⇒ 122.18.195.123 41.4 100 PE⇒PE 2 46.6 88.9 3 67.215.1.206 72.10.165.195 10.3 TROJ⇒WORM 4 72.10.166.195 WORM⇒TROJ なぜ50%なのか?80でも変わらない気がする 要調査
実験3 観測地点間の差 スロット数3以上 最小確信度80% 1 TROJ_ BUZUS.AGB ⇒ WORM_ SWTYMLAI.CD 36 スロット数3以上 最小確信度80% No. 前件部 結論部 Honey数 1 TROJ_ BUZUS.AGB ⇒ WORM_ SWTYMLAI.CD 36 2 TROJ_ BUZUS.AGB 6 WORM_ SWTYMLAI.CD PE_ VIRUT.AV 7 No. 前件部 結論部 Honey数 1 TROJ_BUZUS.AGB ⇒ WORM_SWTYMLAI.CD 36 2 3 BKDR_VANBOT.GN 12 4 5 TROJ_DLOADR.CBK UNKNOWN 8 6 PE_VIRUT.AV 7
1台のハニーポットでしか観測されていないルールが多い 実験3 観測地点間の差 1台のハニーポットでしか観測されていないルールが多い 複数のハニーポットで 観測されたルール
1台のハニーポットでしか観測されていないルールが多い 大規模なボットネットの可能性 実験3 観測地点間の差 1台のハニーポットでしか観測されていないルールが多い 複数のハニーポットで 観測されたルール
実験4 観測時期の差 スロット数3以上 最小確信度80% PE PE_ VIRUT.AV WORM_ SWTYMLAI.CD ⇒ TSPY_ スロット数3以上 最小確信度80% MW名 前件部 結論部 PE PE_ VIRUT.AV WORM_ SWTYMLAI.CD ⇒ TSPY_ KOLABC.CH TROJ TROJ_ BUZUS.AGB WORM
実験4 観測時期の差
連携活動期間は短い 実験4 観測時期の差
結論 各実験より, PE_VIRUT.AV, TROJ_BUZUS.AGB, WORM_SWTYMLAI.CD 間の強い相関 実験1 手動解析で発見した連携活動とほぼ同じ結 果を抽出できた 実験2 IPアドレスでは,複数のDLサーバを使用す るMWに関する有効なルールが抽出できない 実験3 広範囲で観測されたルールは大規模なボッ トネットである 実験4 連携活動期間は短い