PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。
CTF・セキュリティ学習

【ネットワークForensics編】pcapとWiresharkで通信の真相を読む|CTF思考フレームワーク #44

かも次郎とアンペンが「ネットワーク解析」を解説するマスコットイラスト
安全に生きたい編集部

こんにちは、アンペンです!

今回はフォレンジック4領域の3つ目、ネットワークフォレンジックです。pcap(パケットキャプチャ)を読み解き、C2通信や情報窃取の足跡を見抜く手法を整理します。

暗号化された通信が増えた今でも、メタデータ(誰が・いつ・どこへ・どのくらい)からは多くのことが分かります。

HTTPSで暗号化されてたら、もう中身は何も分からないんじゃないの?

中身は読めないけど、『誰が・いつ・どこへ・どのくらい』は丸見えなんだ。怪しい接続先や周期的な通信パターンで攻撃を見抜ける。

『HTTPSで暗号化されてるから、もう何も見えないでしょ?』——多くの人がそう思っています。でも実は、暗号化されても“丸見え”のものがあるんです。それが通信のメタデータ。中身は読めなくても、『誰が・いつ・どこへ・どのくらい』は隠せない。今日は郵便屋さんのたとえで、暗号の向こう側にある“通信の足跡”を読み解いていきます。

まず結論

ネットワークフォレンジックは『通信の中身』だけでなく『メタデータ』が主役です。pcap・NetFlow・DNS・Proxyログから、接続先・通信量・周期性を見れば、暗号化されていてもC2通信や情報窃取の兆候を捕まえられます。守る側は『可視化+ベースライン化』を平時に仕込みます。

この記事で分かること

  • pcapから読み解ける情報(中身とメタデータ)
  • C2通信の典型パターン(Beaconing・DGA)
  • 暗号化通信でも見えるもの(SNI・JA3・TLS metadata)
  • 守る側の対策(NetFlow・DNSログ・Suricata/Zeek)
難易度:中級向け 所要時間:12分 体験:Wiresharkで自分の通信を観察 おすすめ:#43の後

📖 はじめてのWebセキュリティ #44|ネットワークForensics編
pcap解析でC2通信や情報窃取の足跡を読み解きます。 シリーズ一覧を見る →

⚠️ 大事なお約束
他者の通信を無断でキャプチャ・解析することは、通信の秘密の侵害にあたります。CTFや自分の環境のキャプチャに限って確認してください。

『通信の足跡』はメタデータが主役

かつてはHTTPやFTPが平文で流れていて、pcapを開けば中身が丸見えでした。今はTLSで暗号化された通信が大半です。それでも、『どこに・いつ・どのくらい通信したか』のメタデータからは、攻撃の輪郭が見えてきます。

たとえば毎晩深夜2時に同じドメインへ短い通信が出ているなら、それはマルウェアのC2 Beaconingかもしれません。

この“毎晩深夜2時に、同じ相手へ、同じくらいの短い通信”という規則正しさ——ここが大きなヒントです。人間のネット利用は、もっと気まぐれですよね。気になるサイトを開いたり、動画を見たり、夜中は寝ていたり。でもマルウェアは律儀で、決まった間隔で“今も生きてます”とC2サーバに報告し続ける。その“几帳面すぎる規則正しさ”こそが、人間との違いを際立たせ、検知の糸口になるんです。

図解:暗号化通信でも見えるもの

TLSは中身を隠しますが、宛先IP・ポート・通信量・タイミング・SNI(接続ホスト名)・TLSフィンガープリント(JA3)は隠れません。

ここを整理しておきましょう。TLS(暗号化)が隠してくれるのは、あくまで“封筒の中身”だけ。封筒の外側に書かれた情報——宛先のIP、つないだ先のホスト名(SNI)、通信のサイズ、やりとりのタイミング——これらは、暗号化されても外から丸見えです。つまり『何を話したか』は秘密でも、『誰と、いつ、どれだけ話したか』は記録に残る。この“封筒の外側”が、ネットワーク調査の主戦場になります。

TLS暗号化通信において中身は隠れるがメタデータ(宛先・サイズ・タイミング・SNI・JA3)は見えることを示した図解
図1:TLSで隠れるのは『中身』のみ。メタデータは丸見え
📮 たとえるなら、郵便屋さんのメモ

封筒の中身は読めなくても、『誰が・誰に・いつ・どのくらいの厚さの手紙を送ったか』は郵便屋さんには見えますよね。ネットワークフォレンジックも同じで、暗号化されていても『差出人・宛先・サイズ・タイミング』は丸見えです。同じ宛先に毎日同じ時刻に同じサイズの手紙が出ていたら、それだけで怪しいと判断できます。

郵便配達員が封筒を開けずに宛先や差出人サイズ配達時刻を記録するたとえを示したイラスト
図2:封筒は開けなくても、宛先と量は郵便屋さんに見える

ここで覚える用語:C2 Beaconing
マルウェアが感染先からC2サーバへ『生存確認』として送る定期的な通信です。一定間隔(例:60秒ごと)で短いパケットが出るため、通信パターンから検出できます。最近はjitter(ゆらぎ)を入れて検知を回避するものもあります。

『Beaconing(ビーコン)』は、灯台の光を思い浮かべると分かりやすいかもしれません。一定の間隔でピカッと光って“ここにいるよ”と知らせる——マルウェアも同じで、感染したPCから『生きてます、指示ください』と定期的に合図を送ります。これが点呼のように規則正しいので、通信のグラフにすると等間隔の点が並んで見える。最近は、わざと間隔をバラつかせて(jitter)この規則性をぼかす手口もありますが、それでも“人間らしくなさ”は残りがちです。

Wireshark / Zeek / Suricata の使いどころ

3つのツールの役割分担

  • Wireshark:GUIで1パケット単位を深掘り。CTF Forensicsで定番
  • Zeek(旧Bro):大量のpcapから『接続のサマリログ』を自動生成
  • Suricata:シグネチャベースで既知攻撃を検出(IDS/IPS)

初心者はWiresharkから入って、規模が大きくなったらZeekでサマリ化、というのが王道です。CTFのpcap問題はWiresharkだけで解けることが多いです。

3つのツールの違いも、道具で考えると覚えやすいです。Wiresharkは“虫眼鏡”——1つの通信を細かく拡大して見る。Zeekは“要約係”——膨大な通信を『誰と誰が、いつ、どれだけ』の一覧に圧縮してくれる。Suricataは“番犬”——既知の悪いパターンを見つけたら吠える。小さな事件なら虫眼鏡だけで足りるし、大規模なら要約係と番犬が要る。規模に応じて使い分けるわけです。

C2 Beaconing の見抜き方

マルウェアのC2通信には、人間のWeb閲覧とは違う特徴があります。

人間のWeb閲覧との違い

  • 周期性:人間は不規則だが、Beaconingは一定間隔で発生
  • サイズ:毎回ほぼ同じサイズの短いパケット
  • 宛先:普通のサイトではない、またはDGA(自動生成ドメイン)
  • 時間帯:業務時間外でも黙々と通信が続く

これらを統計的に検出するのが、最近のEDR/NDRの得意分野です。

なぜ機械が統計でこれを見抜けるかというと、答えは“機械は正直すぎる”から。人間の操作には必ず“ゆらぎ”があります。クリックの間隔も、見るサイトも、バラバラ。でもプログラムは、命じられた通り、きっちり同じことを繰り返す。その“きっちりさ”が、かえって不自然な指紋になる。膨大な通信の中から『妙にリズムが正確なやりとり』を拾い上げる——これが、最近のNDR(ネットワーク検知)の得意技です。

人間のWeb閲覧は不規則だがC2 Beaconingは一定間隔の規則的な通信パターンになることを比較した図解
図3:人間は不規則、C2 Beaconingは規則的。これが検知の鍵

練習は、自分のPCのWiresharkで“ふだんの通信”を眺めてみることです。「どこにつないでるんだろう」「この通信、なんでこんなに頻繁なんだろう」と観察するだけで、ネットワークの解像度がぐっと上がります。攻撃を仕掛けるのではなく、自分の通信の地図づくり。もちろん会社や他人のネットワークを無断でキャプチャするのは厳禁です。

CTFでやってみよう:pcapから怪しい接続を見つける

やってみよう / 自分の環境・CTFのみ

自分のVMで簡単なpcap解析を体験する

目的はWiresharkで『普通とちょっと違う通信』を見つけることです。

  1. 自分のVMで Wireshark を起動し、5分間ローカルキャプチャを取る
  2. Statistics > Conversations で接続先一覧を確認
  3. Statistics > I/O Graph で通信量の時系列を可視化
  4. DNS問い合わせ(dns フィルタ)で名前解決の流れを観察
  5. 余裕があれば tls.handshake.extensions_server_name でSNI一覧を見る
本番ネットワークや会社のネットワークを無断でキャプチャしないこと。検証は自分の隔離環境だけで行ってください。

守る側の発想は、フォレンジックの章で何度も出てきた“あれ”と同じです。

怪しい通信って、見ただけで分かるものなの?

実は、単体ではなかなか分からないんだ。だって、初めて見るドメインへの通信が即“悪”とは限らないからね。だから決め手になるのは『ふだんと違うか』——つまりベースライン。普段どこと、どれくらい通信しているかを知っておけば、「見慣れない宛先に、毎晩同じ時刻に通信が出ている」という“いつもと違う”が浮かび上がる。とくにDNSのログは宝の山で、攻撃はたいてい“名前を引く”ところから始まる。普段の通信を知ること——それが、怪しさを見抜く土台なんだよ。

守る側の対策:『可視化+ベースライン化』

ネットワーク防御の基本は、『普段の通信』を知っておくことです。

平時にできるネットワーク防御
  • NetFlow / sFlow / IPFIXでフロー記録を長期保管
  • DNS問い合わせログを必ず保管(攻撃で最初に見える)
  • ProxyログでアウトバウンドHTTPSの宛先を把握
  • 『正常な通信』のベースラインを作り、逸脱を検知
  • NDR(Network Detection & Response)で統計的検知
  • DNSシンクホールで既知C2を遮断

暗号化されても、メタデータでだいぶ分かるんだね。

そう。次回はフォレンジック4領域の最後、ログ領域を扱うよ。SIEMで時系列を組み立てていく。

ここまでをひと言で言うと、ネットワーク調査は『中身でなく、振る舞いで見る』。暗号化が当たり前になった今、勝負どころは“封筒の外側”——宛先・量・タイミング・周期性です。そして、それが怪しいと気づくには、平時の“ふだんの通信”を知っておくこと。可視化とベースライン、この2つがネットワーク防御の両輪になります。

まとめ:『メタデータ+周期性』で攻撃を見抜く

今回のポイント
  • 暗号化されてもメタデータは見える(宛先・サイズ・タイミング)
  • C2 Beaconingは周期性で見抜く
  • Wireshark→Zeek→Suricataの三段活用
  • 守りはNetFlow+DNSログ+ベースライン

今日の持ち帰りは『暗号化は“中身”を隠すが、“足跡”は隠せない』です。だから、通信を暗号化されても諦めることはありません。誰と、いつ、どれだけ——その足跡を集めて“ふだん”と比べれば、潜んだ攻撃の輪郭が見えてくる。封筒は開けられなくても、宛先と量で十分に語れる。それがネットワークフォレンジックの面白さです。

次回はフォレンジック4領域の最後、ログフォレンジックです。SIEMで複数ログを時系列に並べ、侵入の全体像を組み立てます。

次に読みたい記事

参考資料

記事URLをコピーしました