[Bro] using Bro as traffic analyzer.

Matthias Vallentin vallentin at icir.org
Sun Dec 4 19:19:58 PST 2011


> I want to match tcp handshake pairs and record the intervals between
> each SYN and SYN-ACK pairs with their arrival time. At the same time,
> roughly packet loss rate (vs different timescales) should be calculated
> by tcp retransmission rate. It is a statistical analysis on network
> traffic that would be processed by .bro files i think. some of them
> are similar with functions already existed. Would you please give me
> some notes on which files i should start with?

Yes, you're right. This sort of analysis can be entirely done at the
scripting layer, i.e., it only involves *.bro scripts.

Bro reassembles the full TCP byte stream. When you deal with connection
data, duplicates/retransmission are already removed. If you want to
compute round-trip times at the packet level, you can write a handler
for the events new_connection (which is generated for every new
SYN packet) and connection_established (which is generated for a
successful TCP handshake after a SYN-ACK).

For retransmissions, have a look at the events: rexmit_inconsistency,
content_gap, and gap_report. Unfortunately I cannot provide more
detailed information other than pointing you to our ongoing
documentation effort in the git repository:

    git clone git://git.bro-ids.org/bro.git
    git checkout topic/script-reference
    less src/event.bif

Maybe others can chime in and give you further guidance.

(Also, to measure system/NIC capture loss, there is
policy/misc/capture-loss.bro.)

> btw: I read the document and find that all C/C++ code is designed
> for decoding packets. bro files take charge in statistal or general
> processing. Is it right? Any general pictures were provided in bro?

That's correct. Packet "decoding" is done at the Bro core. Bro
reassembles the TCP byte stream and presents it as a connection to the
user. You may find our workshop materials helpful to better understand
the architecture of Bro: http://www.bro-ids.org/bro-workshop-2011

    Matthias



More information about the Bro mailing list