1

私は1000以上のtcpフローを持つ大きなpcapを持っています。100を超えるパケットを含む主要なフローをフィルタリングしたい。会話に移動してそれらのフローを右クリックすると、それらのフローをフィルタリングできますが、それを数回実行する必要があり、pcapが大きいため、それを超える可能性があります。 100.パケット数>n(nは任意の+ ve整数)のフローを提供する、使用できる他のクイック表示フィルターはありますか。

次のようなフィルターを言う:

flow.num_pkt > 100

それは私にそのようなすべての流れを与えることができます。

どうもありがとう、

どんな助けでも大歓迎です。

4

1 に答える 1

4

Broは、接続指向の分析に適したツールです。フローごとのパケット数を確認するには、トレースに対して Bro を実行し、ログから値を抽出します。

bro -r trace.pcap
bro-cut id.orig_h id.orig_p id.resp_h id.resp_p orig_pkts resp_pkts < conn.log \
    | awk '$5+$6 > 100 {print $1,$2,$3,$4,$5,$6}' \
    | sort -rn -k 5 \
    | head

これにより、次の出力が得られます。

192.168.1.105 49325 137.226.34.227 80 73568 146244
192.168.1.105 49547 198.189.255.74 80 16764 57098
192.168.1.105 49531 198.189.255.74 80 5186 14843
192.168.1.105 49255 198.189.255.73 80 4749 32164
192.168.1.104 1422 69.147.86.184 80 2657 2656
192.168.1.105 49251 198.189.255.74 80 2254 13854
192.168.1.1 626 224.0.0.1 626 2175 0
192.168.1.105 49513 198.189.255.82 80 2010 3852
192.168.1.103 2026 151.207.243.129 80 1953 2570
192.168.1.105 49330 143.166.11.10 64334 1514 3101

このツールbro-cutは Bro に付属しており、ログから特定の名前付き列を抽出する便利な方法を提供します。このタスクでは、以下が必要です。

  • id.orig_h: 接続元(送信元)のIP
  • id.orig_p: 接続元 (送信元) のトランスポート層ポート
  • id.resp_h: 接続先(宛先)のIP
  • id.resp_p: 接続レスポンダーのトランスポート層ポート (送信元)
  • orig_pkts: 発信元が送信したパケット数
  • resp_pkts: レスポンダーが送信したパケット数

awkフィルター式に注意してください。

awk '$5+$6 > 100 {print ...}'

合計パケット数が 100 を超える接続に出力を制限します。

固定サイズのパケットを使用している場合を除き、パケット サイズ (IP または TCP ペイロード) などの他のメトリックも調査することをお勧めします。これらは、orig_bytesおよびresp_bytes列を介して接続ログに簡単に記録されます。

于 2012-04-23T17:08:00.797 に答える