netflows について
netflowsはPCAPまたはPCAPNGファイルからTCP・UDPフローを抽出し、キャプチャ内のDNS応答を使ってホスト名を解決します。ネットワーク調査やIoTデバイスの通信先分析に利用できます。
主な機能
- 01TCP・UDPフローの抽出
- 02キャプチャ内のDNS応答から対応表を作成
- 03IPアドレスからホスト名を特定
- 04送信元IPによるフローの絞り込み
- 05テキスト、JSON、簡易リストで出力
活用シーン
- 01IoTデバイスが接続するサービスの把握
- 02インシデント時の通信先の調査
- 03テレメトリーやトラッキング先の発見
- 04ファイアウォールの許可・拒否リスト作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ brownfinesecurity/ iothackbot --skill netflowsインストール後、Claude Code で/netflowsを入力して読み込まれたか確認します。
詳細
NetFlows - DNS 解決機能付きネットワークフロー抽出ツール
netflows ツールを使って、ユーザーがパケットキャプチャファイルからネットワークフローを抽出、分析できるよう支援します。
ツールの概要
NetFlows は pcap/pcapng ファイルを分析し、次の処理を行います。
- 一意な TCP および UDP フロー(宛先 IP:ポートの組み合わせ)を抽出します
- キャプチャ内の DNS 応答から DNS 解決テーブルを作成します
- 可能な場合は IP アドレスをホスト名に自動的に解決します
- 送信元 IP アドレスでフローをフィルタリングします
- 接続したすべてのネットワーク宛先の概要を生成します
これは、IoT デバイスが通信する外部サービスを把握するための分析に特に役立ちます。
手順
ユーザーからネットワークフローの分析、宛先の抽出、またはデバイスが通信するホストの特定を依頼された場合は、次の手順に従います。
-
要件を確認する:
- pcap/pcapng ファイルのパスを取得します
- 特定の送信元 IP(例:IoT デバイスの IP)でフィルタリングするかどうかを確認します
- 希望する出力形式を確認します
-
分析を実行する:
- iothackbot の bin ディレクトリにある netflows コマンドを使用します
-
結果を解釈する:
- 解決されたホスト名とその意味を説明します
- 追加調査が必要と思われる未解決の IP を示します
- 興味深いパターン(クラウドサービス、P2P 接続など)を強調します
使用方法
基本的な分析
すべてのフローを表示して pcap ファイルを分析します。
netflows capture.pcap
送信元 IP によるフィルタリング
特定のデバイスからのフローを抽出します。
netflows capture.pcap --source-ip 192.168.1.100
複数ファイル
複数のキャプチャファイルを分析します。
netflows capture1.pcap capture2.pcapng
出力形式
# Human-readable colored output (default)
netflows capture.pcap --format text
# Machine-readable JSON
netflows capture.pcap --format json
# Minimal output - just hostname:port list
netflows capture.pcap --format quiet
パラメーター
入力:
pcap_files:分析する 1 つ以上の pcap/pcapng ファイル(必須)
フィルタリング:
-s, --source-ip:この IP アドレスを送信元とするフローをフィルタリングします
出力:
--format text|json|quiet:出力形式(デフォルト:text)-v, --verbose:詳細出力を有効にします
例
IoT デバイスのトラフィックを分析します。
netflows iot-capture.pcap --source-ip 192.168.1.50
スクリプトで使うフローリストのみを取得します。
netflows capture.pcap -s 10.0.0.100 --format quiet
解析用の JSON 出力です。
netflows capture.pcap --format json | jq '.data[].flow_summary'
出力情報
テキスト形式には次の情報が含まれます:
- 検出された DNS マッピング(IP -> ホスト名)
- ホスト名の解決状態を含む TCP フロー
- ホスト名の解決状態を含む UDP フロー
- 統合されたフローの概要(hostname:port または ip:port)
JSON 形式には次の情報が含まれます:
dns_mappings:IP とホスト名のマッピングを格納した辞書tcp_flows:ホスト名、IP、ポートを含む TCP フローオブジェクトのリストudp_flows:ホスト名、IP、ポートを含む UDP フローオブジェクトのリストflow_summary:「hostname:port」または「ip:port」形式の文字列のリストdns_queries:問い合わせられた DNS ドメインのリストtotal_packets:分析したパケット数
使用例
- IoT デバイスのプロファイリング:IoT デバイスが通信するクラウドサービスとエンドポイントをすべて特定します
- ネットワークフォレンジック:インシデント中に接続した宛先を列挙します
- プライバシー分析:テレメトリーおよびトラッキングのエンドポイントを検出します
- ファイアウォールルールの作成:エンドポイントの許可リスト/ブロックリストを生成します
- マルウェア分析:C2 サーバーと情報流出先を特定します
重要な注意事項
- このツールは、同じ pcap ファイル内で見つかった DNS 応答を使用してホスト名を解決します
- キャプチャ内に対応する DNS ルックアップがない IP は「unresolved」と表示されます
- pcap と pcapng の両形式に対応しています
- (ライブキャプチャツールとは異なり)昇格した権限は必要ありません
- 大容量の pcap ファイルは処理に時間がかかる場合があります
コメント
Markdown 対応