ネットワークモード - PCAP/PcapNG 分析
ネットワークモード - PCAP/PcapNG 分析
パケットキャプチャファイルをオフライン分析し、量子脆弱性のある TLS および SSH の暗号ハンドシェイクを検出します
概要
ネットワークモードは、PCAP および PcapNG のパケットキャプチャファイルの オフライン分析 を実行します。ネットワークフローを再構築し、暗号ハンドシェイクを解析して PQC 対応度を評価します。ドメインモード(エンドポイントに能動的に接続する)とは異なり、ネットワークモードは既にキャプチャ済みのトラフィックを分析するため、ネットワークアクティビティを一切生成しません。
機能
PCAP & PcapNG
libpcap (.pcap) と Wireshark (.pcapng) の両方のファイル形式をサポート
TLS 1.2/1.3 解析
ClientHello、ServerHello、supported groups、key shares、SNI を抽出
SSH 2.0 解析
鍵交換アルゴリズムのネゴシエーションについて KEXINIT メッセージを解析
PQC 検出
ポスト量子およびハイブリッド鍵交換 (ML-KEM、Kyber、SNTRUP) を特定
仕組み
トラフィックをキャプチャ
tcpdump、Wireshark、tshark などのツールを使用して、ネットワークトラフィックを PCAP または PcapNG ファイルにキャプチャします。
PQC Scanner で分析
キャプチャファイルをスキャナーに渡します。5 タプルのキー (送信元 IP、送信元ポート、宛先 IP、宛先ポート、プロトコル) を使用して双方向のネットワークフローを再構築します。
ハンドシェイクを解析
スキャナーは、再構築されたフローから TLS ClientHello/ServerHello および SSH KEXINIT メッセージを抽出して解析します。
検出結果を分類
各接続は、PQC 対応 (安全) または従来型のみ (量子脆弱性あり) として分類され、リスクスコアと重大度レベルが付与されます。
使い方
# Analyze a PCAP file
dke-scanner-agent network --pcap capture.pcap
# Analyze a PcapNG file (Wireshark export) and save results
dke-scanner-agent network --pcap traffic.pcapng --output results.json
# Display results in terminal format
dke-scanner-agent network --pcap capture.pcap --format terminal
# Limit flow tracking for large captures
dke-scanner-agent network --pcap large_capture.pcap --max-flows 50000
CLI オプション
| オプション | 説明 | デフォルト |
|---|---|---|
| --pcap <FILE> | (必須) 分析する PCAP または PcapNG ファイル | - |
| --max-flows <N> | 追跡するネットワークフローの最大数 | 100000 |
| -o, --output <FILE> | 出力ファイルパス (指定しない場合は stdout) | - |
| --format <FMT> | 出力形式: json, terminal | json |
トラフィックのキャプチャ
スキャナーを実行する前に、標準的なツールを使用してトラフィックをキャプチャします。
# Capture TLS traffic on port 443
sudo tcpdump -i eth0 -w capture.pcap "tcp port 443"
# Capture TLS and SSH traffic
sudo tcpdump -i eth0 -w capture.pcap "tcp port 443 or tcp port 22"
# Capture for a specific duration (60 seconds)
sudo timeout 60 tcpdump -i eth0 -w capture.pcap "tcp port 443"
# Capture on all interfaces
sudo tcpdump -i any -w capture.pcap "tcp port 443"
PQC 検出
スキャナーは、TLS と SSH の両方のハンドシェイクにおいてポスト量子鍵交換アルゴリズムを検出します。
TLS Named Groups
| カテゴリ | アルゴリズム | ステータス |
|---|---|---|
| ハイブリッド PQC (IANA 登録済み) | X25519MLKEM768, SecP256r1MLKEM768, SecP384r1MLKEM1024 | PQ-Safe |
| 純粋 ML-KEM (FIPS 203) | MLKEM512, MLKEM768, MLKEM1024 | PQ-Safe |
| 標準化前 Kyber | Kyber768_draft, Kyber1024_draft | PQ-Safe (draft) |
| OQS テスト ID | OQS_Kyber512, OQS_Kyber768, OQS_Kyber1024 | PQ-Safe (experimental) |
| OQS ハイブリッド | X25519_Kyber768, SecP256r1_Kyber768 | PQ-Safe (experimental) |
| 従来型のみ | X25519, P-256, P-384, FFDHE, etc. | Quantum-Vulnerable |
SSH KEX アルゴリズム
| アルゴリズム | タイプ | ステータス |
|---|---|---|
| [email protected] | ハイブリッド (SNTRUP + X25519) | PQ-Safe |
| mlkem768x25519-sha256 | ハイブリッド (ML-KEM + X25519) | PQ-Safe |
| mlkem1024x448-sha512 | ハイブリッド (ML-KEM + X448) | PQ-Safe |
| kyber-512-sha256 | 純粋 Kyber | PQ-Safe |
| kyber-768-sha384 | 純粋 Kyber | PQ-Safe |
| kyber-1024-sha512 | 純粋 Kyber | PQ-Safe |
| curve25519-sha256, ecdh-sha2-nistp256, etc. | 従来型 | Quantum-Vulnerable |
リスク分類
| 検出結果 | 重大度 | 優先度 | 説明 |
|---|---|---|---|
| PQ 鍵交換を検出 | Info | P4 | 接続はポスト量子またはハイブリッド鍵交換を使用 - 量子攻撃に対して安全 |
| 従来型のみの鍵交換 | High | P1 | 接続は従来型アルゴリズムのみを使用 - harvest-now-decrypt-later 攻撃に対して脆弱 |
フロー追跡
スキャナーは、正規化された 5 タプルのキーを使用して双方向のネットワークフローを再構築します。
- 送信元 IP と 宛先 IP
- 送信元ポート と 宛先ポート
- プロトコル (TCP)
両方向のパケットは同じフローに照合されます。各フローは first_seen、last_seen、packet_count のタイムスタンプを追跡します。デフォルトの上限である 100,000 フローにより、大容量のキャプチャでメモリ使用量が無制限に増大するのを防ぎます。
非常に大きなキャプチャファイルの場合は、--max-flows を使用してメモリ使用量を制御してください。上限を超えたフローは通知なしで破棄されます。
ユースケース
本番トラフィック監査
tcpdump で本番トラフィックをキャプチャし、オフラインで分析してすべての TLS エンドポイントとその暗号パラメータを検出します
PQ 移行検証
PQ 対応の TLS 構成をデプロイした後、トラフィックをキャプチャしてクライアントが PQ 鍵交換をネゴシエートしていることを検証します
暗号スイートコンプライアンス
キャプチャしたトラフィックを分析し、すべての TLS 接続が承認済みの暗号スイートとアルゴリズムを使用していることを検証します
SSH セキュリティ評価
SSH トラフィックを分析し、インフラ全体で鍵交換アルゴリズムが PQ 対応であることを検証します
補完的なモード
ネットワークモードは、他のスキャンモードと組み合わせて使用すると最も効果的です。
--detect-pq-kexを指定した ドメインモード: 特定のターゲットに対する能動的な PQ 鍵交換検出- エージェントモード: システムレベルの証明書およびキーストア検出
- ファイルシステムモード: ディスク上の証明書ファイル分析
包括的な暗号ポスチャ評価のためには、ネットワーク分析 (ワイヤ上でネゴシエートされている内容) と filesystem/agent スキャン (ディスクにデプロイされている内容) を組み合わせてください。