Top Banner
Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen
23

Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Bro: A System for Detecting Network Intruders in Real-Time

Presented by Zachary SchneirovCS 395-0

Professor Yan Chen

Page 2: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

What is Bro?

• Bro is a stand-alone system that observes network traffic directly to detect intruders

• Emphasizes monitoring over blocking

Page 3: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Goals• High speed passive network monitoring:

100Mbps at most• Real time notifications• Division between policy and mechanism• Extensibility• Assumption that the monitor will be

attacked• Should be difficult for users to make

mistakes

Page 4: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

System Structure/Flow

• Network ->

• Packet Filter ->

• Event Engine ->

• Policy Script Interpreter ->

• Real time notifications, other actions

Page 5: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

As abstraction level increases, more processing can be performed at each level

Page 6: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Packet filter

• Uses libpcap for platform independence

• With BPF, packet discarding can occur in kernel space

• Captures only headers for packets with SYN, FIN, and RST flags

• Captures entire packet otherwise

Page 7: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Event engine

• Tracks TCP connection states

• Upon receiving an initial SYN

• Generates the following events:– SYN-ACK: connection_established– RST: connection_rejected– FIN: connection_finished

• For UDP, udp_request and udp_reply are generated based on source and dest. addresses

Page 8: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Policy Scripts

• Grabs events asynchronously from a FIFO queue

• Executes policy scripts in a special Bro language

• Calls predefined handlers in the script for different events generated

Page 9: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Event actions

• Scripts can generate new events from an event handler

• Log notifications with syslog

• Write packet traces to disk

• Or modify the internal state for further processing

Page 10: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Bro Language

• Designed to “avoid simple mistakes”

• Strongly typed

• Variable references always valid at runtime

• Domain specific: variable types include port and addr

• Does not support looping constructs to ensure constant time processing

Page 11: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Attacks on the monitor

• Overload

• Crash

• Subterfuge

Page 12: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Overload attack

• Overload the monitor until it drops packets

• Accomplished by indiscriminate flooding

• Or by repeatedly triggering events that require CPU or disk processing

• Attacker then conducts intrusion while packets are being dropped

Page 13: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Overloading defenses

• Attacker will not always know the full power and typical load of the monitor

• Attacker will not know the exact policy conditions and actions

• Event engine can also generate events in the case of dropped packets

Page 14: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Crashing attack

• Crash the monitor and attempt intrusion unnoticed

• Find a flaw to trigger an immediate crash

• Or exhaust available memory and/or disk space (e.g. through connection states)

Page 15: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Crashing defenses

• Attacker does not know the size of the disk

• Cannot assume that the monitor will not generate alerts after the disk is full

• Monitor process uses UNIX alarm signals to periodically test availability

Page 16: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Subterfuge

• Rely on unnoticed flaws in the system that create a difference between what the monitor sees and what an end-host sees

• Trick monitor into discarding packets with bad checksums

• Use a TTL that takes packets past monitoring point but not to end-host

• Set the MTU such that it passes through monitor but is rejected downstream

Page 17: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

A sample attack

• Send packets with a smaller TTL containing benign keywords

• Send packets with a TTL that reach the host containing the actual malicious commands

• Give both sets the same TCP sequence numbers

• Monitor cannot decide which version to accept

Page 18: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Illustration

Page 19: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Subterfuge Defenses

• Generate an error upon receiving “retransmitted” packets with different payloads

• “Bifurcating analysis”– Spawn multiple threads for each possible

interpretation of data

Page 20: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Application-specific processing

• Bro supports finger, FTP , portmapper, telnet, and rlogin protocols

• Extensible architecture allows easy addition of other protocols

Page 21: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Port scan detection

• Uses predefined thresholds for the ratio of attempted connections of each source address to unique destination peers and ports

• No restrictions on port or address order

• But generates false positives due to passive connections to FTP servers

Page 22: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Real world experiences

• Broken TCP implementations generate false positives; difficult to differentiate from subterfuge attacks

• Many unbalanced fragmented packets

• Incorrect application protocol implementations also cause problems

Page 23: Bro: A System for Detecting Network Intruders in Real-Time Presented by Zachary Schneirov CS 395-0 Professor Yan Chen.

Future improvements

• Implement support for more applications

• Actively block bad connections

• Bifurcation analysis

• Sensors on end-hosts