PCAPによるネットワークフォレンジック
トラフィックから攻撃を再構成します。
「PCAPによるネットワークフォレンジック」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
ネットワークフォレンジックで取得できるもの
ネットワークフォレンジックでは、キャプチャした通信を分析し、通信上で何が起きたかを再構成します。対象には、接続、転送されたファイル、コマンド&コントロール、データの持ち出しなどがあります。
ディスクフォレンジックとは異なり、ネットワークの証拠は揮発性です。イベント発生中にキャプチャしていなければ、パケットは失われます。そのため、組織では事前に全パケットキャプチャとフローロギングを導入します。
PCAPとキャプチャツール
PCAP(パケットキャプチャ)形式は、タイムスタンプ付きの生のフレームを保存します。tcpdumpとtsharkは、タップまたはSPANポートからキャプチャします。
フォレンジック用途では、ファイルに書き込み、実行中に名前解決を行わず(DNSルックアップがノイズを加えるため)、使用したキャプチャフィルターを記録します。
# Capture all traffic on eth0 to a rotating set of files
tcpdump -i eth0 -n -s 0 -w capture-%Y%m%d-%H%M%S.pcap -G 3600
# -n no name resolution
# -s 0 full packet (snaplen)
# -G 3600 rotate hourly全パケットデータとフローデータ
証拠には2つのレベルがあります。
- 全パケットキャプチャ(PCAP):すべてのバイトを保存するため、内容を再構成できますが、ストレージを大量に消費します
- フローデータ(NetFlow/IPFIX):メタデータのみを保存します。誰が誰と、いつ、どれだけ通信したかは分かりますが、ペイロードはありません
フローレコードは長期保存のコストが低く、ビーコン通信やデータ持ち出しの量を見つけるのに適しています。その後、詳細を調べるためにPCAPへ切り替えます。
Wiresharkの表示フィルター
Wireshark(およびtshark)では、表示フィルターを使って関連する通信を絞り込みます。いくつかを使いこなすだけで、分析速度が大幅に向上します。
# Traffic to/from a suspect host
ip.addr == 10.0.0.66
# DNS queries only
dns.flags.response == 0
# HTTP requests
http.request
# TCP retransmissions (possible tampering or instability)
tcp.analysis.retransmissionストリームの追跡
TCP再構成によって、パケットを元の通信に組み立て直します。WiresharkのFollow TCP Stream(またはtshark -z follow)を使うと、HTTPの通信、チャット、転送されたファイルを再構成できます。
通信が暗号化されていない場合、平文の認証情報、持ち出された文書、攻撃者のコマンドが明らかになります。
# Reconstruct TCP stream index 5 as raw bytes
tshark -r capture.pcap -z follow,tcp,raw,5 -q転送ファイルの抽出
HTTP、FTP、SMBで転送されたファイルは、キャプチャから抽出できます。Wiresharkはオブジェクトをエクスポートし、tcpflowやforemostはペイロードを再構成します。
抽出したファイルのハッシュ値を計算し、脅威インテリジェンスのハッシュセットと照合して、マルウェアの配布を特定します。
# Reassemble flows into per-connection files
tcpflow -r capture.pcap -o extracted/
# Export HTTP objects via tshark
tshark -r capture.pcap --export-objects http,http_objects/指標としてのDNS
ペイロードが暗号化されていても、DNSから多くの情報を得られます。
- DGAドメイン:ランダムに見える長い名前は、マルウェアを示唆します
- 高いNXDOMAIN率:ドメイン生成の試みを示します
- DNSトンネリング:データを運ぶ、サイズが過大または頻度が高いTXT/NULLクエリです
通常のDNSのベースラインを作成すると、異常が目立つようになります。
# Count queries per domain to spot beaconing or tunneling
tshark -r capture.pcap -Y dns.flags.response==0 \
-T fields -e dns.qry.name | sort | uniq -c | sort -rn | headビーコン通信の検出
コマンド&コントロールチャネルは、コントローラーに対して一定間隔でビーコンを送信することがよくあります。フォレンジック調査では、次の特徴を探します。
- 1つの宛先への規則的で周期的な接続
- 小さく一貫したペイロードサイズ
- 長時間継続するセッション、または一定のジッター
通常、フロー分析(接続のタイミング)を使うと、パケット検査よりも速くビーコン通信を見つけられます。
暗号化通信の分析
現在の通信の大半はTLSで暗号化されているため、ペイロードの内容は見えません。代わりにメタデータを分析します。
- (確認できる場合の)SNIと証明書フィールド
- クライアントのツールを特定する、TLSハンドシェイクのJA3/JA3Sフィンガープリント
- パケットサイズとタイミング
TLSキーがキャプチャされていれば(ラボでのSSLKEYLOGFILEなど)、Wiresharkで復号できますが、実際の証拠でこの状況が発生することはまれです。
# Extract TLS server names (SNI) from a capture
tshark -r capture.pcap -Y 'tls.handshake.type==1' \
-T fields -e tls.handshake.extensions_server_name | sort -uログとの相関分析
ネットワークの証拠は、ホストやインフラストラクチャのログと相関させると最も有効です。対象には、ファイアウォールの拒否ログ、プロキシログ、IDSアラート(Suricata/Zeek)、エンドポイントテレメトリなどがあります。
Zeekは生のPCAPを構造化ログ(conn.log、dns.log、http.log、files.log)に変換するため、パケットだけを調べるよりも、関連情報を簡単にたどれます。
# Generate Zeek logs from a capture
zeek -r capture.pcap
# Inspect connection summary
cat conn.log | zeek-cut id.orig_h id.resp_h proto duration orig_bytes resp_bytesキャプチャの完全性と保管
PCAPも証拠であるため、ディスクイメージと同じ厳格さで扱います。取得時にハッシュ値を計算し、読み取り専用で保管し、キャプチャポイント、インターフェース、クロックソースを記録します。
- タップが通信の両方向を確認できていたかを記録する
- ドロップパケット数を記録する(欠落があると結論の信頼性が下がります)
- 元のキャプチャを保存し、コピーを分析する
# Hash the capture and report stats including drops
sha256sum capture.pcap
capinfos capture.pcap | grep -E 'packets|drop|duration'確認テスト
ネットワークフォレンジックについて理解度を確認します。
まとめ
通信から攻撃を再構成する方法を学びました。
- PCAPはすべてをキャプチャし、フローデータは長期的なメタデータの保存に適しています
- 表示フィルターとストリームの追跡によって、通信を絞り込み、再構成できます
- オブジェクト抽出によって、転送されたファイルを復元できます
- DNS分析とビーコン検出によって、C2やトンネリングを見つけられます
- 暗号化通信はメタデータとJA3によって評価します
- Zeekとログの相関分析によって、情報を結び付けられます
次は、ディスクとネットワークのアーティファクトをタイムラインとレポートにまとめます。
よくある質問
「PCAPによるネットワークフォレンジック」レッスンは無料ですか?
はい。「PCAPによるネットワークフォレンジック」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「PCAPによるネットワークフォレンジック」で何を学びますか?
トラフィックから攻撃を再構成します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「PCAPによるネットワークフォレンジック」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- フォレンジックの基礎と証拠保全
- ディスクイメージングとファイルシステム解析
- PCAPによるネットワークフォレンジック
- タイムライン分析とレポート作成