Technique
Active alert verification is a technique designed to reduce the false positive
rate of IDSs by actively probing for a vulnerability associated with detected
attacks. If the vulnerability corresponding to a detected attack is found to
exist in the host or network against which the attack was directed, the alert
is generated, invoking any logging and response functions as normal. If,
however, the vulnerability is determined not to exist, the alert is considered
a false positive and is suppressed.
Implementation
Our current implementation of alert verification is as a patch to Snort using
the general algorithm outlined above. The verification component of the system
is currently implemented as a set of NASL scripts mapped to
Snort rules by CVE IDs. When a rule is triggered, the suspect
packet and associated event data is queued for verification. A separate thread
processes queued unverified alerts by running an associated NASL script against
the target host to test for the presence or absence of the vulnerability
corresponding to the detected attack. If the NASL script determines that the
vulnerability does exist on the target host, the alert is marked as having
been verified. If the NASL script determines that the vulnerability does not
exist, the alert is marked as unverified. Finally, if no NASL script corresponding
to the detected attack is found, the alert is marked as unverifiable. The alert
is then released back to the Snort engine.
The latest patch against Snort may be downloaded here.
The latest patch against Snort may be downloaded here.
Limitations and Future Work
This patch requires the various components of the Nessus vulnerability scanner to perform its alert verification. However, the technique
could be implemented using a variety of different backends which could be
selected according to the specific target, vulnerability, etc.
Also, the patch currently limits the modified Snort build to non-Win32 systems, as the threading code has not been ported.
Also, the patch currently limits the modified Snort build to non-Win32 systems, as the threading code has not been ported.
Sections
Recent Project News
Snort alert verification v0.9.6 has been released for snort v2.1.3.
The patch can be downloaded from the project download page.
Snort alert verification v0.9.5.1 has been released, which updates the
preferred Nessus libraries to v2.0.10 and addresses an RPM build error
reported in v0.9.5. The patch and source archive can be downloaded here.
The v0.9.5 snort-av patch has been backported to Snort v2.0.6, and can
be downloaded at the usual
place.
An update to our alert verification patch to Snort has been released
which updates the upstream Snort source to v2.1.0 as well as fixes a
FreeBSD build issue. The current patch and pre-patched Snort source
archive can be fetched from the project software page.
Christopher and I have published a short article on alert verification over at HHWorld. We give
a short description of our implementation as well as an overview of the
categories of alert verification techniques which can be employed by an IDS.