Visible to the public O3FA: A Scalable Finite Automata-based Pattern-Matching Engine for Out-of-Order Deep Packet Inspection

TitleO3FA: A Scalable Finite Automata-based Pattern-Matching Engine for Out-of-Order Deep Packet Inspection
Publication TypeConference Paper
Year of Publication2016
AuthorsYu, Xiaodong, Feng, Wu-chun, Yao, Danfeng(Daphne), Becchi, Michela
Conference NameProceedings of the 2016 Symposium on Architectures for Networking and Communications Systems
PublisherACM
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-4183-7
Keywordscomposability, deep packet inspection, finite automata, Intrusion Detection Systems, Metrics, out-of-order deep packet inspection, pubcrawl, regular expressions, Scalability
Abstract

To match the signatures of malicious traffic across packet boundaries, network-intrusion detection (and prevention) systems (NIDS) typically perform pattern matching after flow reassembly or packet reordering. However, this may lead to the need for large packet buffers, making detection vulnerable to denial-of-service (DoS) attacks, whereby attackers exhaust the buffer capacity by sending long sequences of out-of-order packets. While researchers have proposed solutions for exact-match patterns, regular-expression matching on out-of-order packets is still an open problem. Specifically, a key challenge is the matching of complex sub-patterns (such as repetitions of wildcards matched at the boundary between packets). Our proposed approach leverages the insight that various segments matching the same repetitive sub-pattern are logically equivalent to the regular-expression matching engine, and thus, inter-changing them would not affect the final result. In this paper, we present O3FA, a new finite automata-based, deep packet-inspection engine to perform regular-expression matching on out-of-order packets without requiring flow reassembly. O3FA consists of a deterministic finite automaton (FA) coupled with a set of prefix-/suffix-FA, which allows processing out-of-order packets on the fly. We present our design, optimization, and evaluation for the O3FA engine. Our experiments show that our design requires 20x-4000x less buffer space than conventional buffering-and-reassembling schemes on various datasets and that it can process packets in real-time, i.e., without reassembly.

URLhttp://doi.acm.org/10.1145/2881025.2881034
DOI10.1145/2881025.2881034
Citation Keyyu_o3fa:_2016