Open Source IDS Tools
Open Source IDS Tools
Whether you need to monitor hosts or the networks connecting them to identify the
latest threats, there are some great open source intrusion detection (IDS) tools
available to you.
Suricata
Bro (Zeek)
OSSEC
Samhain Labs
OpenDLP
A NIDS device monitors and alerts on traffic patterns or signatures. When malicious
events are flagged by the NIDS device, vital information is logged. This data needs
to be monitored in order to know an event happened. By combining this information
with events collected from other systems and devices, you can see a complete
picture of your network’s security posture. Note that none of the tools here correlate
logs by themselves. This is generally the function of a Security Information and
Event Manager (SIEM).
Snort
Ah, the venerable piggy that loves packets. Many people will remember 1998 as the
year Windows 98 came out, but it was also the year that Martin Roesch first released
Snort. Although Snort wasn't a true IDS at the time, that was its destiny. Since then it
has become the de-facto standard for IDS, thanks to community contributions.
It's important to note that Snort has no real GUI or easy-to-use administrative
console, although lots of other open source tools have been created to help out,
such as BASE and Sguil. These tools provide a web front end to query and analyze
alerts coming from Snort IDS.
Snort Summary
Suricata
What's the only reason for not running Snort? If you're using Suricata instead.
Although Suricata's architecture is different than Snort, it behaves the same way as
Snort and can use the same signatures. What's great about Suricata is what else it's
capable of over Snort. It does so much more, it probably deserves a dedicated post
of its own.
There are third-party open source tools available for a web front end to query and
analyze alerts coming from Suricata IDS.
Suricata Summary
Multi-Threaded - Snort runs with a single thread meaning it can only use one
CPU(core) at a time. Suricata can run many threads so it can take advantage of all
the cpu/cores you have available. There has been much contention on whether this
is advantageous, Snort says No and a few benchmarks say Yes.
Built in Hardware Acceleration - Did you know you can use graphic cards to inspect
network traffic?
File Extraction - Someone downloading malware? You can capture it right from
Suricata and study it.
LuaJIT - It's a lot of letters yes, but it's also a scripting engine that can be used with
information from the packets inspected by Suricata. This makes complex matching
even easier and you can even gain efficiency by combining multiple rules into one
script.
Logging more than packets - Suricata can grab and log things like TLS/SSL certs,
HTTP requests, DNS requests
o Modern TCP/IP support including a scalable flow engine, full IPv4/IPv6, TCP
streams, and IP packet defragmentation
o Protocol parsers - packet decoding, application layer decoding
o File extraction
Bro (renamed Zeek)
Bro, which was renamed Zeek in late 2018 and is sometimes referred to as Bro-IDS
or now Zeek-IDS, is a bit different than Snort and Suricata. In a way, Bro is both a
signature and anomaly-based IDS. Its analysis engine will convert traffic captured
into a series of events. An event could be a user login to FTP, a connection to a
website or practically anything. The power of the system is what comes after the
event engine and that's the Policy Script Interpreter. This policy engine has its own
language (Bro-Script) and it can do some very powerful and versatile tasks.
If you're an analyst and you've wondered "How can I automate some of my work?"
then this is the tool you've been looking for. Want to download files seen on the wire,
submit them for malware analysis, notify you if a problem is found then blacklist the
source and shutdown the user's computer who downloaded it? Want to track the
usage patterns of a user after they've contacted an IP from a reputation database?
If you're not an analyst then this tool will have a challenging learning curve. Since it
was developed as a research tool, it didn't initially focus on things like GUIs,
usability, and ease of installation. While it does numerous cool things out of the box
many of those things aren't immediately actionable and may be difficult to interpret.
There’s no native GUI but there are third-party open source tools available for a web
front end to query and analyze alerts coming from Bro-IDS. Consider ELK stack.
Bro Summary
Complicated to set up
o File extraction
o Extensible architecture
o Analysts can use Bro for automation (file extraction, malware analysis,
blacklisting, track usage patterns, research work, etc.)
HIDS search for unusual or nefarious activities by examining logs created by the
operating system, looking for changes made to key system files, tracking installed
software, and sometimes examining the network connections a host makes.
The first HIDS systems were basic, usually just creating MD5 hashes of files on a
recurring basis and looking for discrepancies, utilizing a process dubbed file integrity
monitoring (FIM). Since then, HIDS have grown far more complex and perform a
variety of useful security functions and will continue to grow. This includes modern
Endpoint Response (EDR) capabilities.
If your organization has a compliance mandate, such as for PCI DSS, HIPAA, or ISO
27001, then you may require HIDS to demonstrate file integrity monitoring (FIM) as
well as active threat monitoring.
OSSEC
In the realm of full-featured open source HIDS tools, there is OSSEC and not much
else. The great news is OSSEC is very good at what it does and is rather extensible.
OSSEC runs on almost any major operating system and includes client/server based
management and logging architecture, which is very important in a HIDS system.
Since local HIDS can be compromised at the same time the OS is, it is very
important security and forensic information leave the host and be stored elsewhere
asap to avoid any kind of tampering or obfuscation that would prevent detection.
When discussing OSSEC (and other HIDS) there is often anxiety over installing an
agent or software on critical servers. It should be noted that the installation of
OSSEC is extremely light (the installer is under 1MB) and the majority of analysis
actually occurs on the server which means very little CPU is consumed by OSSEC
on the host. OSSEC also has the ability to send OS logs to the server for analysis
and storage, which is particularly helpful on Windows machines that have no native
and cross-platform logging mechanisms.
OSSEC Summary:
o Active response can invoke automated response action when alerts are
triggered
o Client/Server architecture
Samhain is probably the only HIDS open-source that gives OSSEC a run for its
money. But it’s very much the case of “same but different” when comparing the two.
Samhain has the same client/server architecture but doesn’t require it as OSSEC
does. The agent itself has a variety of output methods, one being a central log
repository but includes others like Syslog, Email, and RDBMS. There is even an
option to use Samhain as a standalone application on a single host.
Samhain Summary:
Harder to install
o Rootkit detection
o Port monitoring
o Multi-platform support
Some FIM are actively developed while others haven't been updated in years. Open
Source Tripwire and AFICK are two open-source FIM products options. For
standalone Unix-based systems, consider checking out rootkit-finding file integrity
checkers, such as chkrootkit, rkhunter, or Unhide. The unique rootkit-finding
mechanism makes these solutions worth considering. Proprietary solutions are also
available for Windows.
Final Thoughts
Hopefully this guide has helped you understand some of your open source options.
As shown here, there has never before been so many choices or a broader set of
tools available. With careful planning, and a plan for ongoing maintenance, you can
build a secure network with these tools. With careful planning, and a plan for ongoing
maintenance, you can build a secure netork with these tools.