Wireshark Network Traffic Analysis について
Wireshark Network Traffic Analysis は、Wireshark を使うネットワーク・セキュリティ分析者向けのスキルです。ライブキャプチャや PCAP を調べ、パケットの絞り込み、通信の再構成、統計確認、異常調査を行います。
主な機能
- 01ライブ通信のキャプチャと PCAP の確認
- 02ホスト・プロトコル・内容によるパケット絞り込み
- 03TCP・UDP・HTTP ストリームの再構成
- 04プロトコルと通信の統計確認
- 05不審な通信とネットワーク問題の調査
活用シーン
- 01接続障害やアプリの遅延の診断
- 02セキュリティインシデントやマルウェア通信の調査
- 03キャプチャ内の不審な DNS やスキャンの確認
- 04パケットレベルの分析結果の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill wireshark-network-traffic-analysisインストール後、Claude Code で/wireshark-network-traffic-analysisを入力して読み込まれたか確認します。
詳細
Wireshark ネットワークトラフィック分析
目的
Wireshark を使用して包括的なネットワークトラフィック分析を実行し、ネットワークパケットのキャプチャ、フィルタリング、検査を行います。セキュリティ調査、パフォーマンス最適化、トラブルシューティングに活用できます。このスキルにより、ネットワークプロトコルの体系的な分析、異常の検出、PCAP ファイルからの通信の再構築が可能になります。
入力 / 前提条件
必要なツール
- Wireshark のインストール(Windows、macOS、または Linux)
- キャプチャ権限を持つネットワークインターフェース
- オフライン分析用の PCAP/PCAPNG ファイル
- ライブキャプチャ用の管理者/root 権限
技術要件
- ネットワークプロトコル(TCP、UDP、HTTP、DNS)の理解
- IP アドレッシングとポートへの精通
- OSI 参照モデルの各層に関する知識
- 一般的な攻撃パターンの理解
ユースケース
- ネットワークのトラブルシューティングと接続性の問題
- セキュリティインシデントの調査
- マルウェアトラフィックの分析
- パフォーマンスの監視と最適化
- プロトコル学習と教育
出力 / 成果物
主な出力
- 特定のトラフィックに絞り込んだパケットキャプチャ
- 再構築された通信ストリーム
- トラフィックの統計と可視化
- インシデントの証拠文書
基本ワークフロー
フェーズ 1: ネットワークトラフィックのキャプチャ
ライブキャプチャの開始
ネットワークインターフェースでパケットのキャプチャを開始します:
1. Launch Wireshark
2. Select network interface from main screen
3. Click shark fin icon or double-click interface
4. Capture begins immediately
キャプチャ操作
| 操作 | ショートカット | 説明 |
|---|---|---|
| キャプチャの開始/停止 | Ctrl+E | キャプチャのオン/オフを切り替え |
| キャプチャの再開始 | Ctrl+R | 停止して新しいキャプチャを開始 |
| PCAP ファイルを開く | Ctrl+O | 既存のキャプチャファイルを読み込み |
| キャプチャの保存 | Ctrl+S | 現在のキャプチャを保存 |
キャプチャフィルター
データ収集を制限するため、キャプチャ前にフィルターを適用します:
# Capture only specific host
host 192.168.1.100
# Capture specific port
port 80
# Capture specific network
net 192.168.1.0/24
# Exclude specific traffic
not arp
# Combine filters
host 192.168.1.100 and port 443
フェーズ 2: 表示フィルター
基本フィルター構文
キャプチャしたパケットを分析用にフィルタリングします:
# IP address filters
ip.addr == 192.168.1.1 # All traffic to/from IP
ip.src == 192.168.1.1 # Source IP only
ip.dst == 192.168.1.1 # Destination IP only
# Port filters
tcp.port == 80 # TCP port 80
udp.port == 53 # UDP port 53
tcp.dstport == 443 # Destination port 443
tcp.srcport == 22 # Source port 22
プロトコルフィルター
特定のプロトコルでフィルタリングします:
# Common protocols
http # HTTP traffic
https or ssl or tls # Encrypted web traffic
dns # DNS queries and responses
ftp # FTP traffic
ssh # SSH traffic
icmp # Ping/ICMP traffic
arp # ARP requests/responses
dhcp # DHCP traffic
smb or smb2 # SMB file sharing
TCP フラグフィルター
特定の接続状態を特定します:
tcp.flags.syn == 1 # SYN packets (connection attempts)
tcp.flags.ack == 1 # ACK packets
tcp.flags.fin == 1 # FIN packets (connection close)
tcp.flags.reset == 1 # RST packets (connection reset)
tcp.flags.syn == 1 && tcp.flags.ack == 0 # SYN-only (initial connection)
コンテンツフィルター
特定のコンテンツを検索します:
frame contains "password" # Packets containing string
http.request.uri contains "login" # HTTP URIs with string
tcp contains "GET" # TCP packets with string
分析フィルター
潜在的な問題を特定します:
tcp.analysis.retransmission # TCP retransmissions
tcp.analysis.duplicate_ack # Duplicate ACKs
tcp.analysis.zero_window # Zero window (flow control)
tcp.analysis.flags # Packets with issues
dns.flags.rcode != 0 # DNS errors
フィルターの組み合わせ
論理演算子を使用して複雑なクエリを作成します:
# AND operator
ip.addr == 192.168.1.1 && tcp.port == 80
# OR operator
dns || http
# NOT operator
!(arp || icmp)
# Complex combinations
(ip.src == 192.168.1.1 || ip.src == 192.168.1.2) && tcp.port == 443
フェーズ 3: ストリームの追跡
TCP ストリームの再構築
TCP の通信全体を表示します:
1. Right-click on any TCP packet
2. Select Follow > TCP Stream
3. View reconstructed conversation
4. Toggle between ASCII, Hex, Raw views
5. Filter to show only this stream
ストリームの種類
| ストリーム | アクセス方法 | ユースケース |
|---|---|---|
| TCP ストリーム | Follow > TCP Stream | Web、ファイル転送、任意の TCP |
| UDP ストリーム | Follow > UDP Stream | DNS、VoIP、ストリーミング |
| HTTP ストリーム | Follow > HTTP Stream | Web コンテンツ、ヘッダー |
| TLS ストリーム | Follow > TLS Stream | 暗号化トラフィック(鍵が利用可能な場合) |
ストリーム分析のヒント
- リクエストとレスポンスのペアを確認します
- 送信されたファイルやデータを特定します
- 平文の認証情報がないか確認します
- 通常と異なるパターンやコマンドに注意します
フェーズ 4: 統計分析
プロトコル階層
プロトコルの分布を表示します:
Statistics > Protocol Hierarchy
Shows:
- Percentage of each protocol
- Packet counts
- Bytes transferred
- Protocol breakdown tree
会話
通信のペアを分析します:
Statistics > Conversations
Tabs:
- Ethernet: MAC address pairs
- IPv4/IPv6: IP address pairs
- TCP: Connection details (ports, bytes, packets)
- UDP: Datagram exchanges
エンドポイント
アクティブなネットワーク参加者を表示します:
Statistics > Endpoints
Shows:
- All source/destination addresses
- Packet and byte counts
- Geographic information (if enabled)
フローグラフ
パケットのシーケンスを可視化します:
Statistics > Flow Graph
Options:
- All packets or displayed only
- Standard or TCP flow
- Shows packet timing and direction
I/O グラフ
時間経過によるトラフィックをプロットします:
Statistics > I/O Graph
Features:
- Packets per second
- Bytes per second
- Custom filter graphs
- Multiple graph overlays
フェーズ 5: セキュリティ分析
ポートスキャンの検出
偵察活動を特定します:
# SYN scan detection (many ports, same source)
ip.src == SUSPECT_IP && tcp.flags.syn == 1
# Review Statistics > Conversations for anomalies
# Look for single source hitting many destination ports
不審なトラフィックの特定
異常をフィルタリングします:
# Traffic to unusual ports
tcp.dstport > 1024 && tcp.dstport < 49152
# Traffic outside trusted network
!(ip.addr == 192.168.1.0/24)
# Unusual DNS queries
dns.qry.name contains "suspicious-domain"
# Large data transfers
frame.len > 1400
ARP スプーフィングの検出
ARP 攻撃を特定します:
# Duplicate ARP responses
arp.duplicate-address-frame
# ARP traffic analysis
arp
# Look for:
# - Multiple MACs for same IP
# - Gratuitous ARP floods
# - Unusual ARP patterns
ダウンロードの調査
ファイル転送を分析します:
# HTTP file downloads
http.request.method == "GET" && http contains "Content-Disposition"
# Follow HTTP Stream to view file content
# Use File > Export Objects > HTTP to extract files
DNS 分析
DNS アクティビティを調査します:
# All DNS traffic
dns
# DNS queries only
dns.flags.response == 0
# DNS responses only
dns.flags.response == 1
# Failed DNS lookups
dns.flags.rcode != 0
# Specific domain queries
dns.qry.name contains "domain.com"
フェーズ 6: エキスパート情報
エキスパート分析へのアクセス
Wireshark の自動検出結果を表示します:
Analyze > Expert Information
Categories:
- Errors: Critical issues
- Warnings: Potential problems
- Notes: Informational items
- Chats: Normal conversation events
一般的なエキスパート所見
| 所見 | 意味 | 対処 |
|---|---|---|
| TCP Retransmission | パケットの再送 | パケットロスを確認する |
| Duplicate ACK | ロスの可能性あり | ネットワーク経路を調査する |
| Zero Window | バッファが満杯 | 受信側のパフォーマンスを確認する |
| RST | 接続のリセット | ブロックやエラーを確認する |
| Out-of-Order | パケットの順序入れ替わり | 通常は正常、過剰な場合は問題 |
クイックリファレンス
キーボードショートカット
| 操作 | ショートカット |
|---|---|
| ファイルを開く | Ctrl+O |
| ファイルを保存 | Ctrl+S |
| キャプチャの開始/停止 | Ctrl+E |
| パケットを検索 | Ctrl+F |
| パケットへ移動 | Ctrl+G |
| 次のパケット | ↓ |
| 前のパケット | ↑ |
| 最初のパケット | Ctrl+Home |
| 最後のパケット | Ctrl+End |
| フィルターを適用 | Enter |
| フィルターをクリア | Ctrl+Shift+X |
一般的なフィルターのリファレンス
# Web traffic
http || https
# Email
smtp || pop || imap
# File sharing
smb || smb2 || ftp
# Authentication
ldap || kerberos
# Network management
snmp || icmp
# Encrypted
tls || ssl
エクスポートオプション
File > Export Specified Packets # Save filtered subset
File > Export Objects > HTTP # Extract HTTP files
File > Export Packet Dissections # Export as text/CSV
制約とガードレール
運用上の境界
- 許可されたネットワークトラフィックのみをキャプチャする
- キャプチャしたデータはプライバシーポリシーに従って取り扱う
- 不必要に認証情報をキャプチャしないようにする
- 機密データを含む PCAP ファイルは適切に保護する
技術的な制限
- 大規模なキャプチャは多くのメモリを消費する
- 鍵がない場合、暗号化されたトラフィックの内容は見えない
- 高速ネットワークではパケットがドロップされる場合がある
- 一部のプロトコルは完全なデコードにプラグインが必要である
ベストプラクティス
- キャプチャフィルターを使用して収集データを制限する
- 長時間のセッションでは定期的にキャプチャを保存する
- パケットを削除するのではなく、表示フィルターを使用する
- 分析結果と手法を文書化する
例
例 1: HTTP 認証情報の分析
シナリオ: 平文での認証情報送信の可能性を調査する
1. Filter: http.request.method == "POST"
2. Look for login forms
3. Follow HTTP Stream
4. Search for username/password parameters
所見: 認証情報がフォームデータに平文で送信されている。
例 2: マルウェアの C2 検出
シナリオ: コマンド&コントロール(C2)トラフィックを特定する
1. Filter: dns
2. Look for unusual query patterns
3. Check for high-frequency beaconing
4. Identify domains with random-looking names
5. Filter: ip.dst == SUSPICIOUS_IP
6. Analyze traffic patterns
指標:
- 一定の時間間隔
- エンコード/暗号化されたペイロード
- 通常とは異なるポートやプロトコル
例 3: ネットワークのトラブルシューティング
シナリオ: Web アプリケーションの遅延を診断する
1. Filter: ip.addr == WEB_SERVER
2. Check Statistics > Service Response Time
3. Filter: tcp.analysis.retransmission
4. Review I/O Graph for patterns
5. Check for high latency or packet loss
所見: ネットワークの輻輳を示す TCP 再送。
トラブルシューティング
パケットがキャプチャされない
- 正しいインターフェースが選択されているか確認する
- 管理者/root 権限があるか確認する
- ネットワークアダプターが有効か確認する
- 問題が解消しない場合はプロミスキャスモードを無効にする
フィルターが機能しない
- フィルター構文を確認する(赤色はエラー)
- フィールド名のタイプミスを確認する
- 有効なフィールドは Expression ボタンで確認する
- フィルターをクリアし、段階的に組み立て直す
パフォーマンスの問題
- キャプチャフィルターを使用してトラフィックを制限する
- 大規模なキャプチャは小さなファイルに分割する
- キャプチャ中は名前解決を無効にする
- 不要なプロトコルディセクターを閉じる
TLS/SSL を復号できない
- サーバーの秘密鍵を入手する
- Edit > Preferences > Protocols > TLS で設定する
- エフェメラル鍵の場合は、ブラウザからプリマスターシークレットを取得する
- 一部の最新の暗号スイートは受動的に復号できない