Finding Snort Sensors
Over the past few years, there have been several vulnerabilities disclosed about the Snort network intrusion detection sensor. I recently had a Tenable customer inquire for a strategy of "scanning" to find these Snort systems. This blog discusses some basic and more advanced ideas and issues on how to approach this with Nessus and the Passive Vulnerability Scanner.
Network Scanning of Passive Listening Devices
Solutions like Snort sniff packets on a network interface for evidence of network abuse and log this data to SYSLOG, a local file or some sort of log agent.
Typically, there are no daemons or open ports that can be probed or fingerprinted which indicate that Snort is indeed installed. In many cases, best practice for running a network IDS also recommends that the monitoring interface not even have an IP address.
There have been tools and research in the past used to identify devices that are sniffing, but these don't specifically identify Snort. A good example of this is the AntiSniff tool written and released by the L0pht.
Using Credentials to Find Managed Snort Packages
If Snort is included or supported with your OS distribution, Nessus may likely have some client side checks to look for these security issues. At nessus.org, using the plugin search interface, there were eight different UNIX patch audits concerning Snort as shown below:
There are a few issues with looking for Snort this way though:
- Many Snort users obtain distributions directly from snort.org and not the operating system provider
- Some Snort users hand compile their distributions
- Relying on the patch from an operating system vendor might take longer than getting it directly from Snort.org.
Scanning for Snort Files
Nessus Direct Feed customers can look for evidence of Snort installations on UNIX systems with the following .audit file:
<check_type: "Unix">
<custom_item>
type: PROCESS_CHECK
description: "Check snort process status"
name: "snort"
status: OFF
</custom_item>
</check_type>
This audit simply checks if the 'snort' process is running and reports a failure if it is detected. This scan requires SSH credentials to perform the audit.
Passive Network Monitoring
The Passive Vulnerability Scanner can detect systems that send SYSLOG messages which contain "snort" logs. If your organization uses SYSLOG to send logs from your Snort sensors to a central location, PVS rule #3986 will identify those systems. The rule will also match a secondary log server which is forwarding log which contain Snort events as well.
In order to see these logs, the PVS would need to observe the SYSLOG traffic. If your PVS was on the perimeter of your network and your Snort sensors were further inside and logging to an internal host, it would not be able to observe the traffic.
For More Information
If running Snort alongside Tenable products is interesting to you, please consider these other blog entries:
- Vulnerability Based Snort IDS Management - Use the vulnerabilities found by Nessus and the PVS to manage the active rules on your Snort sensors.
- Automated audit policy creation for UNIX Nessus compliance checks - Discusses how to use the current settings in your configuration files to build a baseline template. Uses the snort.conf file as an example.
- Good and Bad Uses of Vulnerability Data for IDS Correlation - Discusses some of the nuances of correlating IDS events with vulnerabilities.