wkr | ids alert verification
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.
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.
Sections
Overview of alert verification technique
Source packages
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.