ネットワークフォレンジックとメモリフォレンジック
パケットキャプチャ(pcap)とメモリダンプを取得・分析し、攻撃者の通信を再構築してRAMに潜むマルウェアを特定します。
「ネットワークフォレンジックとメモリフォレンジック」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
ネットワークフォレンジックの概要
ネットワークフォレンジックは、ネットワークトラフィックを収集・分析して、攻撃者との通信を再構成し、ラテラルムーブメントを特定し、データ流出を検出します。侵害されたホスト上で改ざんされている可能性のある証拠を調査するエンドポイントフォレンジックとは異なり、ネットワーク証拠は攻撃者による事後の改変が困難です。ネットワークタップやフローモニタリングシステムによってすでにキャプチャされたパケットを、攻撃者が後から削除することはできないためです。ネットワークフォレンジックはエンドポイントフォレンジックを補完し、攻撃の全体像を明らかにします。
パケットキャプチャの基礎
パケットキャプチャ(PCAP)は、完全なペイロードの内容を含むすべてのネットワークトラフィックを、パケットレベルで記録します。使用されるツールには、Wireshark(GUIベースで広く利用)、tcpdump(コマンドラインでスクリプト化可能)、Zeek(旧称 Bro、PCAPからプロトコルレベルのログを生成)があります。フルパケットキャプチャはストレージを大量に消費するため、高速ネットワークでは専用のキャプチャアプライアンスが必要になる場合があります。PCAPを分析すると、平文プロトコル内の認証情報、C2ビーコンのパターン、流出したデータ、ラテラルムーブメントの接続を明らかにできます。
# tcpdump: capture all traffic on eth0
tcpdump -i eth0 -w /forensics/incident.pcap
# Capture only traffic to/from attacker IP
tcpdump -i eth0 host 198.51.100.10 -w /forensics/attacker.pcap
# Wireshark filter examples:
# Show HTTP GET requests: http.request.method == 'GET'
# Show DNS queries: dns.qr == 0
# Show large outbound transfers: ip.dst != 10.0.0.0/8 && tcp.len > 1000
# Show cleartext FTP creds: ftp.request.command == 'PASS'NetFlowとトラフィック分析
NetFlow(およびオープンソースの同等技術であるIPFIX)は、ペイロードの内容をキャプチャせずに、ネットワーク通信に関するメタデータを記録します。記録される情報には、送信元・宛先IPアドレス、送信元・宛先ポート、プロトコル、バイト数、パケット数、タイムスタンプがあります。NetFlowはフルPCAPよりもはるかにストレージ効率が高く、長期保存(90~365日)に適しています。フォレンジックでは、NetFlowによって、インシデント発生期間中に通信したシステム、データ流出(大量の外向きバイト数)、C2ビーコン(外部IPへの規則的で小容量の接続)を特定できます。
# Analyze NetFlow data with nfdump
# Show top talkers (by bytes) in incident time window
nfdump -r /var/cache/netflow/2026/06/20/ \
-t '2026/06/20.02:00-2026/06/20.06:00' \
-s ip/bytes -n 20
# Show all connections TO external IPs from suspicious host
nfdump -r /var/cache/netflow/ \
'src ip 10.0.1.50 and dst ip not in [10.0.0.0/8]'
# VPC Flow Logs provide similar data in cloud environmentsDNSフォレンジック
DNSクエリログは強力なフォレンジック情報源です。多くのC2通信やマルウェアのダウンロードでは、DNS名前解決が必要になるためです。悪意のあるDNS活動の指標には、新しく登録されたドメインやレピュテーションの低いドメインへのクエリ、単一ドメインへの大量のクエリ(DGAマルウェアが生成した多数の名前を試行している可能性)、DNSトンネリング(データ流出に使用される、異常に長い、またはエントロピーの高いサブドメイン名)、既知のマルウェアファミリーに関連するドメインへのクエリがあります。HTTPトラフィックの検査が限定的な場合でも、DNSは記録されていることがよくあります。
# DNS sinkhole detection - check for DGA domains
# DGA: malware generates random domain names to find active C2
# Indicators:
# - High volume of NXDOMAIN responses from one host
# - Domain names with high entropy (random characters)
# - Queries to .ru/.cn/.tk TLDs unusual for organization
# Wireshark filter for NXDOMAIN responses
dns.flags.rcode == 3 # NXDOMAIN
# Calculate domain entropy to find DGA
# Legitimate: google.com (low entropy)
# DGA: xk3j9pqm2v.com (high entropy)C2通信のパターン
攻撃者が制御するサーバーと侵害されたシステムの間のコマンドアンドコントロール(C2)チャネルには、特徴的なパターンがあります。ビーコン通信では、一定周期(例:30秒ごと)の接続が発生します。これはNetFlow上で、同じ外部IPに対して一定間隔で送信される多数の小さなパケットとして識別できます。ジッターは、検出を回避するためにビーコン間隔をランダム化します。アナリストは、通常のWebトラフィックによるノイズの中からビーコン通信を特定するため、接続タイミングの統計的な規則性を調べます。
# Detect beaconing behavior with Zeek/RITA
# RITA (Real Intelligence Threat Analytics) analyzes Zeek logs
# Manual NetFlow beacon detection
nfdump -r /var/cache/netflow/ \
'src ip 10.0.1.50' \
-o 'fmt:%ts %sa %da %dp %byt' |
awk '{print $1}' | sort | uniq -c
# Regular intervals in the timestamp column = beaconing
# Zeek conn.log: look for many connections to same IP
# with similar connection durations and small byte countsVolatilityによるメモリフォレンジック
メモリフォレンジックは、RAMダンプを分析し、ディスク上には存在しない可能性のある悪意のある活動の証拠を抽出します。Volatility Framework(オープンソース)は、メモリ分析の業界標準ツールです。主な機能には、実行中のプロセスとその親子関係の一覧表示、正規プロセスに注入されたコードの特定、取得時点で開いていたネットワーク接続の抽出、メモリからのレジストリハイブ内容の復元、RAMに保持された暗号鍵の抽出があります。
# Volatility 3 memory analysis commands
# List running processes
vol -f memory.raw windows.pslist
# List processes showing hidden/injected processes
vol -f memory.raw windows.pstree
# Find process injection (code in wrong memory regions)
vol -f memory.raw windows.malfind
# List network connections at time of capture
vol -f memory.raw windows.netstat
# Dump a suspicious process's memory for further analysis
vol -f memory.raw windows.memmap --pid 1234 --dumpメモリ内のマルウェアの検出
メモリ内のマルウェアには、Volatilityのプラグインで特定できる固有のパターンがあります。プロセスインジェクション(svchost.exeのような正規プロセスにコードを注入する手法)は、通常は実行権限を持たないプロセス内に、実行権限を持つメモリ領域として現れます。Hollowプロセス(正規プロセスの外殻を利用し、元のコードを悪意のあるコードに置き換えたもの)では、プロセス名とメモリ内の実際のコードとの間に不整合が見られます。カーネルルートキットはプロセス一覧からプロセスを隠すことがありますが、Volatilityは実行中のプロセス一覧と、カーネルの生のプロセス構造体一覧を比較することで検出できます。
# Find suspicious executable memory regions (malfind output)
# Look for:
# - MZ header (PE file magic bytes: 4d 5a) in injected memory
# - Memory pages with Read+Write+Execute permissions (uncommon)
# - Code in heap or stack regions
vol -f memory.raw windows.malfind
# Output shows process, virtual address, protection flags, hex dump
# MZ in non-standard location = process injection indicator
# Compare pslist (API) vs psscan (pool scanner) to find hidden procs:
vol -f memory.raw windows.psscan # shows processes hidden from APIメモリからの認証情報の抽出
メモリフォレンジックは、認証情報の復元に特に有効です。Windowsは、シングルサインオンを目的として、LSASS(Local Security Authority Subsystem Service)プロセスのメモリに認証情報を保存します。Mimikatzなどのツールは、LSASSのメモリを読み取って平文パスワードやNTLMハッシュを抽出することで、これを悪用します。フォレンジック調査では、Volatilityを使って調査のために取得したメモリダンプから同じ情報を抽出できます。これにより、侵害されたシステムにどの認証情報がキャッシュされていたかが明らかになり、ラテラルムーブメントの潜在的な範囲を把握できます。
# Extract cached credentials from LSASS memory (forensic use)
vol -f memory.raw windows.hashdump # extracts NTLM hashes from SAM
# Detect Mimikatz execution in memory:
vol -f memory.raw windows.malfind | grep -i lsass
# Or search for Mimikatz strings in process memory:
vol -f memory.raw windows.strings --pid <lsass_pid> |
grep -i 'mimikatz\|sekurlsa\|wdigest'
# Defense: Credential Guard (Windows 10+) moves LSASS credentials
# to a protected VTL1 hypervisor environment Mimikatz cannot accessネットワーク証拠とメモリ証拠の相関分析
最も強力なフォレンジック分析は、ネットワーク証拠とメモリ証拠を組み合わせます。メモリからは実行中のプロセスと、それらに含まれるコードが分かり、ネットワークフォレンジックからは、それらのプロセスが行った通信が分かります。Volatilityのメモリ分析で確認されたプロセスにPCAP上のネットワーク接続があり、その接続先がDNSログで要注意とされたドメインで、さらにNetFlow上の外部IPとも一致する場合、この収束した証拠によって悪意のある活動を高い確度で帰属でき、攻撃の全体的なストーリーを裏付けられます。
Network Time Protocol(NTP)とタイムスタンプの正確性
ネットワークとエンドポイントのフォレンジック証拠を相関させるには、正確なタイムスタンプが不可欠です。サーバーの時計がファイアウォールの時計に対して15分ずれている場合、タイムスタンプでイベントを相関させると、誤った時系列が作成されます。ネットワークフォレンジックの証拠の信頼性は、ログを生成するデバイスの時刻同期の正確性に左右されます。組織は、セキュリティに関係するすべてのデバイスで一貫したNTP(Network Time Protocol)を設定し、調査中に判明した既知の時刻の不一致を記録する必要があります。
# Verify NTP synchronization on Linux
timedatectl status
# Check: 'System clock synchronized: yes'
# Check: 'NTP service: active'
# Check NTP peers
ntpq -p
# * = current reference, + = candidate
# Windows NTP status
w32tm /query /status
# During incident: document the clock offset of each system
# so timestamps can be normalized in the timeline暗号化トラフィック分析の課題
現代のC2通信の大半はTLS暗号化を使用しているため、ネットワークフォレンジックのアナリストはペイロードの内容を直接読み取れません。しかし、暗号化されたトラフィックからもメタデータは得られます。たとえば、接続タイミングのパターン(ビーコン通信)、証明書の異常(攻撃者のインフラストラクチャによる自己署名証明書や、CNフィールドの不一致)、JA3フィンガープリント(宛先に関係なく特定のマルウェアファミリーを識別できるTLSクライアントフィンガープリント)、TLSハンドシェイクの異常な特徴などです。ZeekなどのツールはTLS接続からJA3フィンガープリントを自動的に抽出し、トラフィックを復号せずに既知のマルウェアを検出できるようにします。
# Zeek extracts JA3 fingerprints from TLS connections
# ssl.log contains JA3 and JA3S hashes
# Check against known-malware JA3 database
cat ssl.log | zeek-cut ja3 ja3s server_name |
sort | uniq -c | sort -rn | head -20
# Known malware JA3 hashes (examples):
# Metasploit: 6734f37431670b3ab4292b8f60f29984
# Cobalt Strike: 72a589da586844d7f0818ce684948eea
# Reference: https://github.com/salesforce/ja3クイックチェック
このレッスンで扱ったCompTIA Security+(SY0-701)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、パケットキャプチャとNetFlowは相互に補完するネットワーク証拠を提供し、PCAPは完全な内容を示す一方、NetFlowは大規模なメタデータを示すこと、C2ビーコン通信は規則的な周期接続として現れ、接続タイミングの統計分析によって検出できること、Volatility FrameworkはRAMダンプを分析して、プロセスインジェクションを検出し、ネットワーク接続を抽出し、正規プロセスに隠れたマルウェアを特定できることを学びました。フォレンジックのモジュールを修了しました。次はリスク管理とセキュリティフレームワークです。
よくある質問
「ネットワークフォレンジックとメモリフォレンジック」レッスンは無料ですか?
はい。「ネットワークフォレンジックとメモリフォレンジック」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「ネットワークフォレンジックとメモリフォレンジック」で何を学びますか?
パケットキャプチャ(pcap)とメモリダンプを取得・分析し、攻撃者の通信を再構築してRAMに潜むマルウェアを特定します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「ネットワークフォレンジックとメモリフォレンジック」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 揮発性の順序と証拠の取得
- 証拠保全の連鎖と法的証拠能力
- Windowsフォレンジックアーティファクト:レジストリ、イベントログ、Prefetch
- ネットワークフォレンジックとメモリフォレンジック