Broverview Bro Workshop 2011 NCSA, Urbana-Champaign, IL Bro - - PowerPoint PPT Presentation

broverview
SMART_READER_LITE
LIVE PREVIEW

Broverview Bro Workshop 2011 NCSA, Urbana-Champaign, IL Bro - - PowerPoint PPT Presentation

The Bro Network Security Monitor Broverview Bro Workshop 2011 NCSA, Urbana-Champaign, IL Bro Workshop 2011 Outline 2 Bro Workshop 2011 Outline Philosophy and Architecture A framework for network traffic analysis. 2 Bro Workshop 2011


slide-1
SLIDE 1

Bro Workshop 2011

Bro Workshop 2011 NCSA, Urbana-Champaign, IL

Broverview

The Bro Network Security Monitor

slide-2
SLIDE 2

Bro Workshop 2011

2

Outline

slide-3
SLIDE 3

Bro Workshop 2011

Philosophy and Architecture

A framework for network traffic analysis.

2

Outline

slide-4
SLIDE 4

Bro Workshop 2011

Philosophy and Architecture

A framework for network traffic analysis.

History

From research to operations.

2

Outline

slide-5
SLIDE 5

Bro Workshop 2011

Philosophy and Architecture

A framework for network traffic analysis.

History

From research to operations.

Architecture

Components, logs, scripts, cluster.

2

Outline

slide-6
SLIDE 6

Bro Workshop 2011

3

What is Bro?

slide-7
SLIDE 7

Bro Workshop 2011

Packet Capture

3

What is Bro?

slide-8
SLIDE 8

Bro Workshop 2011

Packet Capture Traffic Inspection

3

What is Bro?

slide-9
SLIDE 9

Bro Workshop 2011

Packet Capture Traffic Inspection Attack Detection

3

What is Bro?

slide-10
SLIDE 10

Bro Workshop 2011

Packet Capture Traffic Inspection Attack Detection Log Recording

NetFlow syslog

3

What is Bro?

slide-11
SLIDE 11

Bro Workshop 2011

Packet Capture Traffic Inspection Attack Detection

Flexibility Abstraction Data Structures

Log Recording

NetFlow syslog

3

What is Bro?

slide-12
SLIDE 12

Bro Workshop 2011

Packet Capture Traffic Inspection Attack Detection

Flexibility Abstraction Data Structures

Log Recording

NetFlow syslog

3

What is Bro?

slide-13
SLIDE 13

Bro Workshop 2011

Packet Capture Traffic Inspection Attack Detection

Flexibility Abstraction Data Structures

Log Recording

NetFlow syslog

Flexibility Abstraction Data Structures

3

What is Bro?

slide-14
SLIDE 14

Bro Workshop 2011

Packet Capture Traffic Inspection Attack Detection

Flexibility Abstraction Data Structures

Log Recording

“Domain-specific Python”

NetFlow syslog

Flexibility Abstraction Data Structures

3

What is Bro?

slide-15
SLIDE 15

Bro Workshop 2011

Packet Capture Traffic Inspection Attack Detection

Flexibility Abstraction Data Structures

Log Recording

“Domain-specific Python”

S u m i s m

  • r

e t h a n t h e p i e c e s

NetFlow syslog

Flexibility Abstraction Data Structures

3

What is Bro?

slide-16
SLIDE 16

Bro Workshop 2011

4

Philosophy

slide-17
SLIDE 17

Bro Workshop 2011

Fundamentally different from other IDS.

Reset your idea of an IDS before starting to use Bro.

4

Philosophy

slide-18
SLIDE 18

Bro Workshop 2011

Fundamentally different from other IDS.

Reset your idea of an IDS before starting to use Bro.

Real-time network analysis framework.

Primarily an IDS, but many use it for general traffic analysis.

4

Philosophy

slide-19
SLIDE 19

Bro Workshop 2011

Fundamentally different from other IDS.

Reset your idea of an IDS before starting to use Bro.

Real-time network analysis framework.

Primarily an IDS, but many use it for general traffic analysis.

Policy-neutral at the core.

Can accommodate a range of detection approaches.

4

Philosophy

slide-20
SLIDE 20

Bro Workshop 2011

Fundamentally different from other IDS.

Reset your idea of an IDS before starting to use Bro.

Real-time network analysis framework.

Primarily an IDS, but many use it for general traffic analysis.

Policy-neutral at the core.

Can accommodate a range of detection approaches.

Highly stateful.

Tracks extensive application-layer network state.

4

Philosophy

slide-21
SLIDE 21

Bro Workshop 2011

Fundamentally different from other IDS.

Reset your idea of an IDS before starting to use Bro.

Real-time network analysis framework.

Primarily an IDS, but many use it for general traffic analysis.

Policy-neutral at the core.

Can accommodate a range of detection approaches.

Highly stateful.

Tracks extensive application-layer network state.

Supports forensics.

Extensively logs what it sees.

4

Philosophy

slide-22
SLIDE 22

Bro Workshop 2011

5

Target Audience

slide-23
SLIDE 23

Bro Workshop 2011

Large-scale environments.

Effective also with liberal security policies.

5

Target Audience

slide-24
SLIDE 24

Bro Workshop 2011

Large-scale environments.

Effective also with liberal security policies.

Network-savvy users.

Requires understanding of your network.

5

Target Audience

slide-25
SLIDE 25

Bro Workshop 2011

Large-scale environments.

Effective also with liberal security policies.

Network-savvy users.

Requires understanding of your network.

Unixy mindset.

Command-line based, fully customizable.

5

Target Audience

slide-26
SLIDE 26

Bro Workshop 2011

1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2011

6

Bro History

1995 2010 1996

Vern writes 1st line of code

slide-27
SLIDE 27

Bro Workshop 2011

1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2011

6

Bro History

1995 2010 1996

Vern writes 1st line of code LBNL starts using Bro

  • perationally
slide-28
SLIDE 28

Bro Workshop 2011

1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2011

6

Bro History

1995 2010 1996

Vern writes 1st line of code Bro Waters Bro 2.0 v0.2 1st CHANGES entry v0.6 RegExps Login analysis v0.8aX/0.9aX SSL/SMB

STABLE releases

BroLite v1.1/v1.2 when Stmt Resource tuning Broccoli DPD v1.5 BroControl v0.7a90 Profiling State Mgmt v1.4 DHCP/BitTorrent HTTP entities NetFlow Bro Lite Deprecated v1.0 BinPAC IRC/RPC analyzers 64-bit support Sane version numbers v0.4 HTTP analysis Scan detector IP fragments Linux support v0.7a175/0.8aX Signatures SMTP IPv6 support User manual v0.7a48 Consistent CHANGES v1.3 Ctor expressions GeoIP Conn Compressor 0.8a37 Communication Persistence Namespaces Log Rotation LBNL starts using Bro

  • perationally
slide-29
SLIDE 29

Bro Workshop 2011

1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2011

6

Bro History

1995

USENIX Paper Stepping Stone Detector Anonymizer Active Mapping Context Signat. TRW State Mgmt.

  • Independ. State

Host Context Time Machine Enterprise Traffic BinPAC DPD 2nd Path Bro Cluster Shunt Autotuning Parallel Prototype

2010 1996

Vern writes 1st line of code Bro Waters Bro 2.0 v0.2 1st CHANGES entry v0.6 RegExps Login analysis v0.8aX/0.9aX SSL/SMB

STABLE releases

BroLite v1.1/v1.2 when Stmt Resource tuning Broccoli DPD v1.5 BroControl v0.7a90 Profiling State Mgmt v1.4 DHCP/BitTorrent HTTP entities NetFlow Bro Lite Deprecated v1.0 BinPAC IRC/RPC analyzers 64-bit support Sane version numbers v0.4 HTTP analysis Scan detector IP fragments Linux support v0.7a175/0.8aX Signatures SMTP IPv6 support User manual v0.7a48 Consistent CHANGES v1.3 Ctor expressions GeoIP Conn Compressor 0.8a37 Communication Persistence Namespaces Log Rotation LBNL starts using Bro

  • perationally

Academic Publications

slide-30
SLIDE 30

Bro Workshop 2011

7

Research Heritage

slide-31
SLIDE 31

Bro Workshop 2011

Much of Bro is coming out of research projects.

Bridging gap between academia and operations.

7

Research Heritage

slide-32
SLIDE 32

Bro Workshop 2011

Much of Bro is coming out of research projects.

Bridging gap between academia and operations.

However, that meant limited engineering resources.

We were lacking resources for development, documentation, polishing.

7

Research Heritage

slide-33
SLIDE 33

Bro Workshop 2011

Much of Bro is coming out of research projects.

Bridging gap between academia and operations.

However, that meant limited engineering resources.

We were lacking resources for development, documentation, polishing.

NSF now funding Bro development at ICSI and NCSA.

Full-time engineers working 3 years on capabilities & user experience.

Office of Cyberinfrastructure

7

Research Heritage

slide-34
SLIDE 34

Bro Workshop 2011

Much of Bro is coming out of research projects.

Bridging gap between academia and operations.

However, that meant limited engineering resources.

We were lacking resources for development, documentation, polishing.

NSF now funding Bro development at ICSI and NCSA.

Full-time engineers working 3 years on capabilities & user experience.

Objective is a sustainable development model.

Aiming to create a larger user and development community.

Office of Cyberinfrastructure

7

Research Heritage

slide-35
SLIDE 35

Bro Workshop 2011

Internal Network Internet

8

Deployment

slide-36
SLIDE 36

Bro Workshop 2011

Ta

Bro

Internal Network Internet

8

Deployment

slide-37
SLIDE 37

Bro Workshop 2011

Ta

Runs on commodity platforms.

Standard PCs & NICs. Supports FreeBSD/Linux/OS X.

Bro

Internal Network Internet

8

Deployment

slide-38
SLIDE 38

Bro Workshop 2011

Network

Packets

9

Architecture

slide-39
SLIDE 39

Bro Workshop 2011

Network

Event Engine

Protocol Decoding

Events Packets

9

Architecture

slide-40
SLIDE 40

Bro Workshop 2011

Network

Event Engine

Protocol Decoding

Policy Script Interpreter

Analysis Logic

Logs Events Packets Notification

9

Architecture

slide-41
SLIDE 41

Bro Workshop 2011

Network

Event Engine

Protocol Decoding

Policy Script Interpreter

Analysis Logic

Logs Events Packets Notification

“User Interface”

9

Architecture

slide-42
SLIDE 42

Bro Workshop 2011

Task: Report all Web requests for files called “passwd”.

10

Script Example: Matching URLs

slide-43
SLIDE 43

Bro Workshop 2011

event http_request(c: connection, # Connection. method: string, # HTTP method.

  • riginal_URI: string, # Requested URL.

unescaped_URI: string, # Decoded URL. version: string) # HTTP version. { if ( method == "GET" && unescaped_URI == /.*passwd/ ) NOTICE(...); # Alarm. }

Task: Report all Web requests for files called “passwd”.

10

Script Example: Matching URLs

slide-44
SLIDE 44

Bro Workshop 2011

Task: Count failed connection attempts per source address.

11

Script Example: Scan Detector

slide-45
SLIDE 45

Bro Workshop 2011

global attempts: table[addr] of count &default=0; event connection_rejected(c: connection) { local source = c$id$orig_h; # Get source address. local n = ++attempts[source]; # Increase counter. if ( n == SOME_THRESHOLD ) # Check for threshold. NOTICE(...); # Alarm. }

Task: Count failed connection attempts per source address.

11

Script Example: Scan Detector

slide-46
SLIDE 46

Bro Workshop 2011

12

Distributed Scripts

slide-47
SLIDE 47

Bro Workshop 2011

Bro comes with >10,000 lines of script code.

Prewritten functionality that’s just loaded.

12

Distributed Scripts

slide-48
SLIDE 48

Bro Workshop 2011

Bro comes with >10,000 lines of script code.

Prewritten functionality that’s just loaded.

Scripts generate alarms and logs.

Amendable to extensive customization and extension.

12

Distributed Scripts

slide-49
SLIDE 49

Bro Workshop 2011

13

Example Logs

slide-50
SLIDE 50

Bro Workshop 2011

> bro -i en0 [ ... wait ...] > cat conn.log

13

Example Logs

slide-51
SLIDE 51

Bro Workshop 2011

> bro -i en0 [ ... wait ...] > cat conn.log

#fields ts id.orig_h id.orig_p id.resp_h id.resp_p proto service duration obytes rbytes [...] 1144876741.1198 192.150.186.169 53115 82.94.237.218 80 tcp http 16.14929 435 66363 1144876612.6063 192.150.186.169 53090 198.189.255.82 80 tcp http 4.437460 8661 63663 1144876596.5597 192.150.186.169 53051 193.203.227.129 80 tcp http 0.372440 461 753 1144876606.7789 192.150.186.169 53082 198.189.255.73 80 tcp http 0.597711 337 5146 1144876741.4693 192.150.186.169 53116 82.94.237.218 80 tcp http 16.02667 3027 11761 1144876745.6102 192.150.186.169 53117 66.102.7.99 80 tcp http 1.004346 422 1637 1144876605.6847 192.150.186.169 53075 207.151.118.143 80 tcp http 0.029663 347 1011

13

Example Logs

slide-52
SLIDE 52

Bro Workshop 2011

> bro -i en0 [ ... wait ...] > cat conn.log > cat http.log

#fields ts id.orig_h id.orig_p id.resp_h id.resp_p proto service duration obytes rbytes [...] 1144876741.1198 192.150.186.169 53115 82.94.237.218 80 tcp http 16.14929 435 66363 1144876612.6063 192.150.186.169 53090 198.189.255.82 80 tcp http 4.437460 8661 63663 1144876596.5597 192.150.186.169 53051 193.203.227.129 80 tcp http 0.372440 461 753 1144876606.7789 192.150.186.169 53082 198.189.255.73 80 tcp http 0.597711 337 5146 1144876741.4693 192.150.186.169 53116 82.94.237.218 80 tcp http 16.02667 3027 11761 1144876745.6102 192.150.186.169 53117 66.102.7.99 80 tcp http 1.004346 422 1637 1144876605.6847 192.150.186.169 53075 207.151.118.143 80 tcp http 0.029663 347 1011

13

Example Logs

slide-53
SLIDE 53

Bro Workshop 2011

> bro -i en0 [ ... wait ...] > cat conn.log

#fields ts id.orig_h id.orig_p [...] host uri status_code user_agent [...] 1144876741.6335 192.150.186.169 53116 docs.python.org /lib/lib.css 200 Mozilla/5.0 1144876742.1687 192.150.186.169 53116 docs.python.org /icons/previous.png 304 Mozilla/5.0 1144876741.2838 192.150.186.169 53115 docs.python.org /lib/lib.html 200 Mozilla/5.0 1144876742.3337 192.150.186.169 53116 docs.python.org /icons/up.png 304 Mozilla/5.0 1144876742.3337 192.150.186.169 53116 docs.python.org /icons/next.png 304 Mozilla/5.0 1144876742.3337 192.150.186.169 53116 docs.python.org /icons/contents.png 304 Mozilla/5.0 1144876742.3337 192.150.186.169 53116 docs.python.org /icons/modules.png 304 Mozilla/5.0 1144876742.3338 192.150.186.169 53116 docs.python.org /icons/index.png 304 Mozilla/5.0 1144876745.6144 192.150.186.169 53117 www.google.com / 200 Mozilla/5.0

> cat http.log

#fields ts id.orig_h id.orig_p id.resp_h id.resp_p proto service duration obytes rbytes [...] 1144876741.1198 192.150.186.169 53115 82.94.237.218 80 tcp http 16.14929 435 66363 1144876612.6063 192.150.186.169 53090 198.189.255.82 80 tcp http 4.437460 8661 63663 1144876596.5597 192.150.186.169 53051 193.203.227.129 80 tcp http 0.372440 461 753 1144876606.7789 192.150.186.169 53082 198.189.255.73 80 tcp http 0.597711 337 5146 1144876741.4693 192.150.186.169 53116 82.94.237.218 80 tcp http 16.02667 3027 11761 1144876745.6102 192.150.186.169 53117 66.102.7.99 80 tcp http 1.004346 422 1637 1144876605.6847 192.150.186.169 53075 207.151.118.143 80 tcp http 0.029663 347 1011

13

Example Logs

slide-54
SLIDE 54

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

14

Bro Ecosystem

slide-55
SLIDE 55

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

BroControl

Control User Interface Output

14

Bro Ecosystem

slide-56
SLIDE 56

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Contributed Scripts

Functionality

BroControl

Control User Interface Output

14

Bro Ecosystem

slide-57
SLIDE 57

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Other Bros

Events State

Contributed Scripts

Functionality

BroControl

Control User Interface Output

14

Bro Ecosystem

slide-58
SLIDE 58

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

Other Bros

Events State

Contributed Scripts

Functionality

BroControl

Control User Interface Output

14

Bro Ecosystem

slide-59
SLIDE 59

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

Other Bros

Events State

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

14

Bro Ecosystem

slide-60
SLIDE 60

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

Other Bros

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

14

Bro Ecosystem

slide-61
SLIDE 61

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

Other Bros

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

Bro Distribution

bro-2.0.tar.gz

14

Bro Ecosystem

slide-62
SLIDE 62

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

Other Bros

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

http:://www.bro-ids.org/download git://git.bro-ids.org

Bro Distribution

bro-2.0.tar.gz

14

Bro Ecosystem

slide-63
SLIDE 63

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

External Bro

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

15

Bro Cluster Ecosystem

slide-64
SLIDE 64

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

External Bro

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

15

Bro Cluster Ecosystem

slide-65
SLIDE 65

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

External Bro

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

15

Bro Cluster Ecosystem

Load- Balancer

slide-66
SLIDE 66

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

External Bro

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

15

Bro Cluster Ecosystem

Bro Bro Bro Bro

Packets

Load- Balancer

slide-67
SLIDE 67

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

External Bro

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

15

Bro Cluster Ecosystem

Bro Bro Bro Bro

Packets

Load- Balancer

BroControl

Control Output User Interface

slide-68
SLIDE 68

Bro Workshop 2011

Tap

Bro

Internal Network

Internet

Bro Client Communication Library

Broccoli

Events

External Bro

Events State

BTest BinPAC capstats trace- summary bro-aux

Broccoli Ruby Broccoli Python (Broccoli Perl)

Contributed Scripts

Functionality

BroControl

Control User Interface Output

15

Bro Cluster Ecosystem

Bro Bro Bro Bro

Packets

Load- Balancer

BroControl

Control Output User Interface

“Workers” “Manager” “Frontend”

slide-69
SLIDE 69

Bro Workshop 2011

16

“The Bro Team”

Vern Paxson Gregor Maier Jim Barlow Jonathan Siwek Gilbert Clark Adam Slagell Seth Hall Robin Sommer Christian Kreibich Daniel Thayer Hui Lin Matthias Vallentin