Modeling Complex Packet Filters With Finite State Automata

Designing an efficient and scalable packet filter for modern computer networks becomes more challenging each day: Faster link speeds, the steady increase in the number of encapsulation rules (e.g., tunneling), and the necessity to precisely isolate a given subset of traffic cause filtering expressions to become more complex than in the past. Most current packet filtering mechanisms cannot deal with those requirements because their optimization algorithms either cannot scale with the increased size of the filtering code or exploit simple domain-specific optimizations that cannot guarantee to operate properly in case of complex filters. This paper presents pFSA, a new model that transforms packet filters into finite state automata and guarantees the optimal number of checks on the packet, also in case of multiple filters composition, hence enabling efficiency and scalability without sacrificing filtering computation time.

[1]  Gertjan van Noord,et al.  Finite State Transducers with Predicates and Identities , 2001, Grammars.

[2]  Herbert Bos,et al.  FFPF: Fairly Fast Packet Filters , 2004, OSDI.

[3]  Somesh Jha,et al.  Fast Signature Matching Using Extended Finite Automaton (XFA) , 2008, ICISS.

[4]  Herbert Bos,et al.  Ruler: high-speed packet matching and rewriting on NPUs , 2007, ANCS '07.

[5]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[6]  Ju Liu,et al.  A Tunnel-Aware Language for Network Packet Filtering , 2010, 2010 IEEE Global Telecommunications Conference GLOBECOM 2010.

[7]  Steven McCanne,et al.  BPF+: exploiting global data-flow optimization in a generalized packet filter architecture , 1999, SIGCOMM '99.

[8]  Fulvio Risso,et al.  NetPDL: An extensible XML-based language for packet header description , 2006, Comput. Networks.

[9]  Larry L. Peterson,et al.  PathFinder: A Pattern-Based Packet Classifier , 1994, OSDI.

[10]  R. Sekar,et al.  Synthesizing Fast Intrusion Prevention/Detection Systems from High-Level Specifications , 1999, USENIX Security Symposium.

[11]  Jeffrey C. Mogul,et al.  The packer filter: an efficient mechanism for user-level network code , 1987, SOSP '87.

[12]  Matthew Simon,et al.  Automata Theory , 1999 .

[13]  Fulvio Risso,et al.  SPAF: Stateless FSA-Based Packet Filters , 2011, IEEE/ACM Transactions on Networking.

[14]  Zhenyu Wu,et al.  Swift: A Fast Dynamic Packet Filter , 2008, NSDI.

[15]  Dawson R. Engler,et al.  DPF: Fast, Flexible Message Demultiplexing Using Dynamic Code Generation , 1996, SIGCOMM.

[16]  Fulvio Risso,et al.  Filtering network traffic based on protocol encapsulation rules , 2013, 2013 International Conference on Computing, Networking and Communications (ICNC).

[17]  Steven McCanne,et al.  The BSD Packet Filter: A New Architecture for User-level Packet Capture , 1993, USENIX Winter.

[18]  Fulvio Risso,et al.  Creating portable and efficient packet processing applications , 2011, Des. Autom. Embed. Syst..

[19]  Fulvio Risso,et al.  Enabling Flexible Packet Filtering Through Dynamic Code Generation , 2008, 2008 IEEE International Conference on Communications.