skip to main content
10.1145/2663716.2663735acmconferencesArticle/Chapter ViewAbstractPublication PagesimcConference Proceedingsconference-collections
research-article

HILTI: an Abstract Execution Environment for Deep, Stateful Network Traffic Analysis

Published:05 November 2014Publication History

ABSTRACT

When developing networking systems such as firewalls, routers, and intrusion detection systems, one faces a striking gap between the ease with which one can often describe a desired analysis in high-level terms, and the tremendous amount of low-level implementation details that one must still grapple with to come to a robust solution. We present HILTI, a platform that bridges this divide by providing to application developers much of the low-level functionality, without tying it to a specific analysis structure. HILTI consists of two parts: (1) an abstract machine model that we tailor specifically to the networking domain, directly supporting the field's common abstractions and idioms in its instruction set; and (2) a compilation strategy for turning programs written for the abstract machine into optimized, natively executable code. We have developed a prototype of the HILTI compiler toolchain that fully implements the design's functionality, and ported exemplars of networking applications to the HILTI model to demonstrate the aptness of its abstractions. Our evaluation of HILTI's functionality and performance confirms its potential to become a powerful platform for future application development.

References

  1. libnids. http://libnids.sourceforge.net.Google ScholarGoogle Scholar
  2. libtask. http://swtch.com/libtask.Google ScholarGoogle Scholar
  3. Objective-C Automatic Reference Counting (ARC). http://clang.llvm.org/docs/AutomaticReferenceCounting.html.Google ScholarGoogle Scholar
  4. re2c. http://re2c.org.Google ScholarGoogle Scholar
  5. Suricata source code -textttsrc/flow-hash.c. https://github.com/inliniac/suricata/blob/master/src/flow-hash.c.Google ScholarGoogle Scholar
  6. Web site and source code for HILTI and BinPACGoogle ScholarGoogle Scholar
  7. . http://www.icir.org/hilti.Google ScholarGoogle Scholar
  8. Xplico. http://www.xplico.org.Google ScholarGoogle Scholar
  9. B. Anderson. Abandoning Segmented Stacks in Rust. https://mail.mozilla.org/pipermail/rust-dev/2013-November/006314.html.Google ScholarGoogle Scholar
  10. M. B. Anwer, M. Motiwala, M. b. Tariq, and N. Feamster. SwitchBlade: A Platform for Rapid Deployment of Network Protocols on Programmable Hardware. In Proc. ACM SIGCOMM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. W. Appel. Compiling with Continuations. Cambridge University Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Corbet. A JIT for packet filters. http://lwn.net/Articles/437981/.Google ScholarGoogle Scholar
  13. S. Das. Segmented Stacks in LLVM. http://www.google-melange.com/gsoc/project/google/gsoc2011/sanjoyd/13001.Google ScholarGoogle Scholar
  14. L. De Carli, Y. Pan, A. Kumar, C. Estan, and K. Sankaralingam. PLUG: Flexible Lookup Modules for Rapid Deployment of New Protocols in High-Speed Routers. ACM SIGCOMM Computer Communication Review, 39:207--218, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. L. De Carli, R. Sommer, and S. Jha. Beyond Pattern Matching: A Concurrency Model for Stateful Deep Packet Inspection. In Proc. ACM Computer and Communications Security (CCS), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Dharmapurikar and V. Paxson. Robust TCP Stream Reassembly in the Presence of Adversaries. In USENIX Security, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. H. Dreger, A. Feldmann, V. Paxson, and R. Sommer. Operational Experiences with High-Volume Network Intrusion Detection. In Proc. ACM Computer and Communications Security (CCS), Oct. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. H. Dreger, A. Feldmann, V. Paxson, and R. Sommer. Predicting the Resource Consumption of Network Intrusion Detection Systems. In Proc. Recent Advances in Intrusion Detection (RAID), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. Fall, G. Iannaccone, M. Manesh, S. Ratnasamy, K. Argyraki, M. Dobrescu, and N. Egi. RouteBricks: Enabling General Purpose Network Infrastructure. SIGOPS Operating Systems Review, 45:112--125, February 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. N. Foster et al. Frenetic: A High-Level Language for OpenFlow Networks. In Proc. PRESTO, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. Franklin, D. Carver, and B. Hutchings. Assisting Network Intrusion Detection with Reconfigurable Hardware. In Proc. FCCM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Gude, T. Koponen, J. Pettit, B. Pfaff, M. Casado, N. McKeown, and S. Shenker. NOX: Towards an Operating System for Networks. ACM SIGCOMM Computer Communication Review, 38:105--110, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. P. Gupta and N. McKeown. Algorithms for Packet Classification. http://yuba.stanford.edu/ nickm/papers/classification_tutorial_01.pdf, 2001.Google ScholarGoogle Scholar
  24. S. Han, K. Jang, K. Park, and S. Moon. PacketShader: A GPU-accelerated Software Router. In Proc. ACM SIGCOMM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Handley, C. Kreibich, and V. Paxson. Network Intrusion Detection: Evasion, Traffic Normalization, and End-to-End Protocol Semantics. In Proc. USENIX Security, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. S. Ioannidis, K. Anagnostakis, J. Ioannidis, and A. Keromytis. xPF: Packet Filtering for Lowcost Network Monitoring. In Proc. IEEE HPSR, pages 121--126, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  27. R. Jones, A. Hosking, and E. Moss. The Garbage Collection Handbook: The Art of Automatic Memory Management. Cambridge University Press, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. K. Kennedy and J. R. Allen. Optimizing Compilers for Modern Architectures. Morgan Kaufmann, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. E. Kohler, R. Morris, B. Chen, J. Jannotti, and M. F. Kaashoek. The Click Modular Router. ACM Transactions on Computer Systems, 18:263--297, August 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. Koponen et al. Onix: A Distributed Control Platform for Large-Scale Production Networks. In USENIX OSDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. C. Lattner and V. Adve. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In Proc. Symposium on Code Generation and Optimization, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Z. Li et al. NetShield: Massive Semantics-Based Vulnerability Signature Matching for High-Speed Networks. In Proc. ACM SIGCOMM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. McCanne and V. Jacobson. The BSD Packet Filter: A New Architecture for User-level Packet Capture. In Proc. USENIX Winter 1993 Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. N. McKeown et al. OpenFlow: Enabling Innovation in Campus Networks. ACM SIGCOMM Computer Communication Review, 38:69--74, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. C. Monsanto, N. Foster, R. Harrison, and D. Walker. A Compiler and Run-time System for Network Programming Languages. In Proc. POPL, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. O. Morandi, G. Moscardi, and F. Risso. An Intrusion Detection Sensor for the NetVM Virtual Processor. In Proc. ICOIN, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. R. Pang, V. Paxson, R. Sommer, and L. Peterson. binpac: A yacc for Writing Application Protocol Parsers. In Proc. ACM Internet Measurement Conference (IMC), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. V. Paxson. Bro: A System for Detecting Network Intruders in Real-Time. Computer Networks, 31(23--24), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. V. Paxson, K. Asanovic, S. Dharmapurikar, J. Lockwood, R. Pang, R. Sommer, and N. Weaver. Rethinking Hardware Support for Network Analysis and Intrusion Prevention. In Proc. USENIX Hot Security Workshop, August 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. M. Pettersson, K. Sagonas, and E. Johansson. The HiPE/x86 Erlang Compiler: System Description and Performance Evaluation. In Proc. FLOPS, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. F. Risso and M. Baldi. NetPDL: An Extensible XML-based Language for Packet Header Description. Computer Networks, 50:688--706, April 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. N. Schear, D. Albrecht, and N. Borisov. High-Speed Matching of Vulnerability Signatures. In Proc. Recent Advances in Intrusion Detection (RAID), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. R. Sidhu and V. K. Prasanna. Fast Regular Expression Matching using FPGAs. In Proc. IEEE FCCM, Apr. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. R. Sommer, V. Paxson, and N. Weaver. An Architecture for Exploiting Multi-Core Processors to Parallelize Network Intrusion Prevention. Concurrency and Computation: Practice and Experience, 21(10):1255--1279, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. M. Vallentin, R. Sommer, J. Lee, C. Leres, V. Paxson, and B. Tierney. The NIDS Cluster: Scalable, Stateful Network Intrusion Detection on Commodity Hardware. In Proc.\ Recent Advances in Intrusion Detection (RAID), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. G. Vasiliadis, S. Antonatos, M. Polychronakis, E. P. Markatos, and S. Ioannidis. Gnort: High Performance Network Intrusion Detection Using Graphics Processors. In Proc. Recent Advances in Intrusion Detection (RAID), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. D. Zaparanuks, M. Jovic, and M. Hauswirth. Accuracy of Performance Counter Measurements. In IEEE ISPASS, 2009.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. HILTI: an Abstract Execution Environment for Deep, Stateful Network Traffic Analysis

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        IMC '14: Proceedings of the 2014 Conference on Internet Measurement Conference
        November 2014
        524 pages
        ISBN:9781450332132
        DOI:10.1145/2663716

        Copyright © 2014 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 5 November 2014

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        IMC '14 Paper Acceptance Rate32of103submissions,31%Overall Acceptance Rate277of1,083submissions,26%

        Upcoming Conference

        IMC '24
        ACM Internet Measurement Conference
        November 4 - 6, 2024
        Madrid , AA , Spain

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader