[Discussion] Virtues of a Multi-Sensor Environment

Seth Hall hall.692 at osu.edu
Wed Oct 29 19:55:29 UTC 2008


On Oct 29, 2008, at 2:13 PM, David J. Bianco wrote:

> There was some discussion on this list about Bro.  I'm a big fan of  
> Bro.
> It performs very well in the pattern analysis and policy-based  
> detection
> arenas, in which Snort (and thus, Sguil) do poorly.  Conversely, Bro's
> signature matching abilities aren't very good, and it certainly  
> doesn't have
> a robust sig library like Snort does.

Bro's signature matching is only poor because it isn't used much by  
anyone that uses Bro heavily.  I don't believe that it would be too  
much of a project to flesh out the signature matching capabilities of  
Bro to mirror Snort.  One area where Bro's signature matching already  
bests Snort is in its ability to have bidirectional signatures.  You  
can define a signature that only triggers if another signature is seen  
in the opposite direction of the connection.  For example, if you're  
matching something that requests a certain URL, maybe you only care  
about it the server responds to the client with a 200 status code.   
This is easy to do with bidirectional signatures.  You can also have  
signature matches thrown into Bro policy script code so that you can  
do any number of extended heuristics based on other information Bro  
has detected.

> My view is that they are both complementary technologies, and should  
> be
> deployed in tandem.  It has been suggested on this list that Bro be  
> the
> engine for future OISF implementation.  Great idea!  But I propose  
> that
> we consider our project a framework, or suite of tools, and that Bro  
> be
> a critical *piece* of that framework, but  not the only framework.

In my opinion, Bro would actually make a very general framework to  
build upon.  Bro is already more or less a general network analysis  
framework.  It has support for lots of various technologies that  
people want in order to do network traffic analysis and typically it's  
fairly easy to add new functionality building on top of existing  
functionality.  As an example of this, yesterday I wrote some small  
extensions that will identify windows executables being transferred  
over HTTP with libmagic and once a windows executable is identified it  
will begin building an MD5 hash of the data.  It then takes the MD5  
hash and checks it with the newly announced Team Cymru Malware Hash  
Repository[1] in realtime to see if they have that binary file in  
their malware repository.  If you would like to see how little code I  
had to write to make it work, here's the link to my changes:
   http://github.com/sethhall/bro_scripts/tree/master/md5_hash_malware

Malware Hash Registry docs:
   http://www.team-cymru.org/Services/MHR/

My point is just that Bro is very much in a position to be a central  
framework.  Much more so than any other tools currently available.

> I can envision a scenario where I'd deploy, for example, signature  
> based
> IDS (Snort), policy based IDS (Bro), correlated event alerts (OSSEC)  
> and
> perhaps even application specific sensors (mod_security, database IDS,
> spear phishing detection, etc).

The problem is that you're replicating effort there.  You'd have to  
maintain multiple machines just to run different tools (assuming  
you're looking at too much traffic to analyze on a single machine with  
multiple tools).  As I mentioned above, the problems with Bro's  
signature support are not due to a major failing in the software it's  
just temporarily suffering due to a lack of interest from the Bro  
community. :)

It probably makes sense to feed the data from other tools like OSSEC  
into Bro first too because it has very good support for writing  
scripts that deal with data expiration over time and catching time  
based events.  We use it to look for anomalies and normalize our  
authentication logs by pushing a lot of them into Bro with the  
Broccoli library (it's included with Bro).  I know of another location  
that was using instrumented sshd servers to forward the content of all  
shell sessions to their Bro instance and looking for anomalies with  
the commands being typed over ssh to catch compromised accounts.

After Bro has a chance to look at the data, it can then pass  
normalized and aggregated data (and maybe more notices if it caught  
anything strange in the data) into Squil and its database.

> All these events should go to the same
> analysis tool, they should be organized effectively, searchable,
> cross-referenced, and tied to forensic data (network sessions, packet
> captures, log files, etc).

I definitely agree with this!  Bro doesn't have anything yet that is  
end user focused towards doing forensics with the data being  
generated.  If Squil could give it that frontend, that would be awesome.

> In fact, we're much of the way there already.  I released an agent to
> slurp OSSEC events into Sguil quite some time ago, and we have done  
> the
> same with other data sources as well.  Communication between Bro and  
> Sguil
> is on my TODO list as well.  So really, the idea of deploying multiple
> types of sensors feeding into the same analysis tool is a practical  
> one.
> I think this should be a design goal of the project.

If you'd like assistance with integrating Squil and Bro, I'd be glad  
to give some pointers or lend a hand with it. :)

   .Seth

---
Seth Hall
Network Security - Office of the CIO
The Ohio State University
Phone: 614-292-9721




More information about the Discussion mailing list