Backtracking Algorithmic Complexity Attacks against a NIDS
Authors:
- 1 December 2006
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10639527,p. 89-98
Abstract
Network Intrusion Detection Systems (NIDS) have become crucial to securing modern networks. To be effective, a NIDS must be able to counter evasion attempts and operate at or near wire-speed. Failure to do so allows malicious packets to slip through a NIDS undetected. In this paper, we explore NIDS evasion through algorithmic complexity attacks. We present a highly effective attack against the Snort NIDS, and we provide a practical algorithmic solution that successfully thwarts the attack. This attack exploits the behavior of rule matching, yielding inspection times that are up to 1.5 million times slower than that of benign packets. Our analysis shows that this attack is applicable to many rules in Snorts ruleset, rendering vulnerable the thousands of networks protected by it. Our countermeasure confines the inspection time to within one order of magnitude of benign packets. Experimental results using a live system show that an attacker needs only 4.0 kbps of bandwidth to perpetually disable an unmodified NIDS, whereas all intrusions are detected when our countermeasure is used.Keywords
This publication has 14 references indexed in Scilit:
- SIFT: Snort Intrusion Filter for TCP2006
- Stateful intrusion detection for high-speed network's2005
- A High Throughput String Matching Architecture for Intrusion Detection and PreventionACM SIGARCH Computer Architecture News, 2005
- Scalable Pattern Matching for High Speed Networks2004
- Evaluation of software techniques for parallel packet processing on multi-core processors2004
- Active mapping: resisting NIDS evasion without altering traffic2004
- Enhancing byte-level network intrusion detection signatures with context2003
- Fast, Large-Scale String Match for a 10Gbps FPGA-Based Network Intrusion Detection System2003
- Bro: a system for detecting network intruders in real-timeComputer Networks, 1999
- “Maximal-munch” tokenization in linear timeACM Transactions on Programming Languages and Systems, 1998