410 likes | 426 Views
This research presents a novel string matching architecture for intrusion detection systems, ensuring real-time network traffic analysis with non-interruptible updates and high throughput. The architecture includes a reconfigurable string matching engine, rule compiler, and partitioned rule modules for efficient processing. The algorithm mapping utilizes the Aho-Corasick algorithm, split state machines, and optimized rule partitioning to enhance performance and reduce processing overhead. The analysis of design covers theoretical and practical optimal partitioning for effective implementation.
E N D
CSCE 713 A High Throughput String Matching Architecture for Intrusion Detection and Prevention • Authors: Lin Tan and Timothy Sherwood • Presented by: Jamie Huenefeld
CSCE 713 Introduction • Intrusion Detection Systems (IDS) • desire real-time network traffic analysis • use a set of rules to identify known attacks, which contain: • packet type • identifier string • location • resultant action, if all rule conditions are satisfied
CSCE 713 Introduction • IDS implementations require adequate: • Processing Time • Storage Space
CSCE 713 Introduction • The string matching engine must have bounded performance in the worst case • prevents performance based attack • Updates must be rolled out with minimal service interruptions • prevents attacks while the system is updating
CSCE 713 Outline • Research Contributions • Architecture • Algorithm Mapping • Analysis of Design • Related Work • Conclusions
CSCE 713 Research Contributions • Novel, Reconfigurable String Matching Architecture • .4 Mb storage space • 10 Gbit/sec processing • Conjunction of many state machines with a reduced number of edges
CSCE 713 Research Contributions • Rule Compiler • Partitions and Bit-Splits FSM into a set of small state table transitions • Replacement update module that allows non-interruptible updates
CSCE 713 Outline • Research Contributions • Architecture • Algorithm Mapping • Analysis of Design • Related Work • Conclusions
CSCE 713 Architecture • IDS require deep packet inspection • Stringent worst case performance • Non-interrupting rule update • High throughput per area
CSCE 713 Architecture • String Match Engine • Breaks strings into set of smaller state machines • Can recognize a subset of strings from the rule set
CSCE 713 Architecture • Rule Module • Acts as large state machine • Outputs string matches • Full set of rules is partitioned between rule modules • Composed of set of tiles • State machine is partitioned into a set of state machines, recognizing parts of the input stream
CSCE 713 Architecture • Tiles • Tables containing entries • Row contains one state • Each state has: • Next Pointers • Partial Match Vector
CSCE 713 Architecture
CSCE 713 Architecture • Non-Interrupting Updates • Utilizes temporary tiles • To compile new rule: • New rule stored in temporary state machine, and compiled • Temporary state machine is copied to a module, after compilation is complete
CSCE 713 Architecture
CSCE 713 Outline • Research Contributions • Architecture • Algorithm Mapping • Analysis of Design • Related Work • Conclusions
CSCE 713 Algorithm Mapping • Searches for a match amongst a set of possible strings • Aho-Corasick Algorithm • Encodes search strings • Use of tree, edge traversal • Insertion of failure edges • Suffix to Prefix
CSCE 713 Algorithm Mapping • Implementation Issues: • Too many edges • Storage and processing issues • Use of Snort • 1000 Suspicious Strings • 10,000 Nodes
CSCE 713 Algorithm Mapping • Split State Machines • Desire less next pointers, regular behaviour • 2 Next States • State Machines execute independantly • Increase speed by traversing more than one edge at a time
CSCE 713 Algorithm Mapping
CSCE 713 Algorithm Mapping • Split State Machines • Responsible for 1 of 8 bits • Indicate “potential” match • No mapping to non-output states • Bit vector • Used to track all potential matches • All bit vectors must agree to verify match
CSCE 713 Algorithm Mapping • Take the AND of bit vectors to find matches
CSCE 713 Algorithm Mapping • Partition Rules • Partially matching 1000 bits per vector = wasteful • Divide strings into smaller groups containing a few strings • Partial Vector is 16 bits
CSCE 713 Algorithm Mapping • Partition Rules • Optimize number of strings pertaining to both partial vectors and state entries • Without exceeding 16 strings or 256 states • Sort strings lexicographically • Common prefixes share states therefore using less states in total
CSCE 713 Algorithm Mapping • Filling Tables • Next state and partial match vectors stored in entries • Partial match vector are produced by each tile • AND all partial match vectors • Output only after entire packet is scanned
CSCE 713 Analysis of Design
CSCE 713 Analysis of Design
CSCE 713 Outline • Research Contributions • Architecture • Algorithm Mapping • Analysis of Design • Related Work • Conclusions
CSCE 713 Analysis of Design • Theoretical Optimal Partitioning • Combination of 2 parameters: • Module size n • Group size s • More state machines = less fan out
CSCE 713 Analysis of Design • Practical Optimal Partitioning • Major Issues: • Longest string is longer than the approximation • More groups imply more overhead
CSCE 713 Analysis of Design • Optimal Group Size • Traditional implementation utilizing 256 pointers uses more storage than the idea. • Group size of 8 still requires 3.74 Mb • Optimal • Fanout of 4 with group size 8 or 16 • Requires .4 Mb to store Snort rule set
CSCE 713 Analysis of Design
CSCE 713 Analysis of Design • Detailed throughput and Area Comparison • Worst case throughput is 10 Gbit/sec • Alternatives can only guarantee 3 Gbit/sec • Efficiency • Design achieves 320.972 characters/mm2 • 4 times more than the best FPGA design examined
CSCE 713 Analysis of Design
CSCE 713 Outline • Research Contributions • Architecture • Algorithm Mapping • Analysis of Design • Related Work • Conclusions
CSCE 713 Related Work • Software • Reduce common case performance • FPGA
CSCE 713 Related Work
CSCE 713 Outline • Research Contributions • Architecture • Algorithm Mapping • Analysis of Design • Related Work • Conclusions
CSCE 713 Conclusions • Improve string matching by splitting larger problem into manageable sub-problems • 2 states/node • more string to be read at once generates more throughput • Reasonable storage increase • Simple, yet scaleable