Tuesday, January 18, 2005

Marty Roesch Explains Snort Stream Strategy

Today in #snort-gui on irc.freenode.net, Marty Roesch of Snort fame explained how Snort handles stream reassembly:

roesch: when stream4 is doing it's thing it queues cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tcp segments as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y come in

roesch: in stream4 we actually queue cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire packet and keep a pointer to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payload to management reassembly

roesch: "flushing" is what happens when we accumulate a certain number of bytes on a stream that's in excess of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "flush point" for that stream

roesch: when we flush, we reassemble cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 segments into a pseudopacket and run it back thru cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 preprocessor stack and detection engine

roesch: if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's a detect, we ask stream4 to log all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 queued *packets* on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stream

roesch: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first packet gets identified as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack packet and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m are tagged off of that event

roesch: so if you're detecting on "foobar" and it's been spread across three packets as "fo" "ob" "ar" cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you're going to get one even packet and two tagged packets

roesch: this was in 2.1.x or maybe 2.2

roesch: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea is that we don't want to log cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pseudopacket since it's pretty much "inadmissable" from a evidence standpoint

qru: roesch: Yeah, I always hated that thing. What do you do w/cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pseudo packet cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n?

roesch: we chuck it

roesch: as an analyst you'll need to have something that can reassemble cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 segments and present cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to you

roesch: which in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ory is pretty easy but in implementation is a pain if you've got an evasive attacker

This explanation is important for several reasons. First, it's important to understand how your IDS works. If you don't understand how it works, you're less likely to trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 alert data it generates. If you don't trust IDS alerts, why are you collecting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m?

Second, this stream implementation represents a trade-off between capability and performance. Sensors are not built with unlimited ability to capture and reassemble traffic. Anything you can do to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 traffic stream cleaner for your sensor, like packet scrubbing, helps.

Third, Marty demonstrates that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pseudopacket that Snort presents to an analyst may not be an actual packet that crossed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wire. If an analyst wants to see exactly what passed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sensor, she must turn to full content data collected independently of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 alert data generation with Snort.

No comments: