【ネットワーク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)
📖 はじめてのWebセキュリティ #44|ネットワークForensics編
pcap解析でC2通信や情報窃取の足跡を読み解きます。 シリーズ一覧を見る →
⚠️ 大事なお約束
他者の通信を無断でキャプチャ・解析することは、通信の秘密の侵害にあたります。CTFや自分の環境のキャプチャに限って確認してください。
『通信の足跡』はメタデータが主役
かつてはHTTPやFTPが平文で流れていて、pcapを開けば中身が丸見えでした。今はTLSで暗号化された通信が大半です。それでも、『どこに・いつ・どのくらい通信したか』のメタデータからは、攻撃の輪郭が見えてきます。
たとえば毎晩深夜2時に同じドメインへ短い通信が出ているなら、それはマルウェアのC2 Beaconingかもしれません。
この“毎晩深夜2時に、同じ相手へ、同じくらいの短い通信”という規則正しさ——ここが大きなヒントです。人間のネット利用は、もっと気まぐれですよね。気になるサイトを開いたり、動画を見たり、夜中は寝ていたり。でもマルウェアは律儀で、決まった間隔で“今も生きてます”とC2サーバに報告し続ける。その“几帳面すぎる規則正しさ”こそが、人間との違いを際立たせ、検知の糸口になるんです。
図解:暗号化通信でも見えるもの
TLSは中身を隠しますが、宛先IP・ポート・通信量・タイミング・SNI(接続ホスト名)・TLSフィンガープリント(JA3)は隠れません。
ここを整理しておきましょう。TLS(暗号化)が隠してくれるのは、あくまで“封筒の中身”だけ。封筒の外側に書かれた情報——宛先のIP、つないだ先のホスト名(SNI)、通信のサイズ、やりとりのタイミング——これらは、暗号化されても外から丸見えです。つまり『何を話したか』は秘密でも、『誰と、いつ、どれだけ話したか』は記録に残る。この“封筒の外側”が、ネットワーク調査の主戦場になります。

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

ここで覚える用語: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(ネットワーク検知)の得意技です。

練習は、自分のPCのWiresharkで“ふだんの通信”を眺めてみることです。「どこにつないでるんだろう」「この通信、なんでこんなに頻繁なんだろう」と観察するだけで、ネットワークの解像度がぐっと上がります。攻撃を仕掛けるのではなく、自分の通信の地図づくり。もちろん会社や他人のネットワークを無断でキャプチャするのは厳禁です。
CTFでやってみよう:pcapから怪しい接続を見つける
自分のVMで簡単なpcap解析を体験する
目的はWiresharkで『普通とちょっと違う通信』を見つけることです。
- 自分のVMで Wireshark を起動し、5分間ローカルキャプチャを取る
Statistics > Conversationsで接続先一覧を確認Statistics > I/O Graphで通信量の時系列を可視化- DNS問い合わせ(
dnsフィルタ)で名前解決の流れを観察 - 余裕があれば
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で複数ログを時系列に並べ、侵入の全体像を組み立てます。
