skip to main content
10.1145/2991079.2991100acmotherconferencesArticle/Chapter ViewAbstractPublication PagesacsacConference Proceedingsconference-collections
research-article

Spicy: a unified deep packet inspection framework for safely dissecting all your data

Published:05 December 2016Publication History

ABSTRACT

Deep packet inspection systems (DPI) process wire format network data from untrusted sources, collecting semantic information from a variety of protocols and file formats as they work their way upwards through the network stack. However, implementing corresponding dissectors for the potpourri of formats that today's networks carry, remains time-consuming and cumbersome, and also poses fundamental security challenges.

We introduce a novel framework, Spicy, for dissecting wire format data that consists of (i) a format specification language that tightly integrates syntax and semantics; (ii) a compiler toolchain that generates efficient and robust native dissector code from these specifications just-in-time; and (iii) an extensive API for DPI applications to drive the process and leverage results. Furthermore, Spicy can reverse the process as well, assembling wire format from the high-level specifications. We pursue a number of case studies that show-case dissectors for network protocols and file formats---individually, as well as chained into a dynamic stack that processes raw packets up to application-layer content. We also demonstrate a number of example host applications, from a generic driver program to integration into Wireshark and Bro. Overall, this work provides a new capability for developing powerful, robust, and reusable dissectors for DPI applications. We publish Spicy as open-source under BSD license.

References

  1. ab - Apache HTTP server benchmarking tool. https://httpd.apache.org/docs/2.4/programs/ab.html.Google ScholarGoogle Scholar
  2. G. Back. DataScript - A Specification and Scripting Language for Binary Data. In Proc. ACM Conference on Generative Programming and Component Engineering, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. N. Borisov, D. J. Brumley, and H. J. Wang. A Generic Application-level Protocol Analyzer and Its Language. In Proc. Network & Distributed System Security Symposium, 2007.Google ScholarGoogle Scholar
  4. L. Burgy, L. Reveillere, J. Lawall, and G. Muller. Zebu: A Language-Based Approach for Network Protocol Message Processing. IEEE Transactions on Software Engineering, 37(4):575--591, July 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. H. Dreger, A. Feldmann, M. Mai, V. Paxson, and R. Sommer. Dynamic Application-Layer Protocol Analysis for Network Intrusion Detection. In Proc. USENIX Security Symposium, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Eronen. TLS Record Layer Bugs (Presentation at IETF67). http://www.ietf.org/proceedings/67/slides/tls-3/tls-3.ppt, 2006.Google ScholarGoogle Scholar
  7. K. Fisher and R. Gruber. PADS: A Domain-specific Language for Processing Ad Hoc Data. In Proc. ACM Conference on Programming Language Design and Implementation, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Fisher, Y. Mandelbaum, and D. Walker. The Next 700 Data Description Languages. In Proc. ACM Symposium on Principles of Programming Languages, pages 2--15, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Grune and J. Ceriel. Parsing Techniques: A Practical Guide. Springer Publishing Company, 2nd edition, 2010. ISBN 978-0-387-20248-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Haka---Software Defined Security. http://www.haka-security.org.Google ScholarGoogle Scholar
  11. Hammer. https://github.com/UpstandingHackers/hammer.Google ScholarGoogle Scholar
  12. D. Knuth. Semantics of context-free languages. Mathematical systems theory, 2(2):127--145, 1968.Google ScholarGoogle Scholar
  13. 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
  14. P. J. McCann and S. Chandra. Packet Types: Abstract Specification of Network Protocol Messages. In Proc. ACM SIGCOMM, pages 321--333, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Microsoft Developer Network - DocSigSerializedCert-Store. https://msdn.microsoft.com/en-us/library/dd922793%28v=office.12%29.aspx.Google ScholarGoogle Scholar
  16. Microsoft support - TLS/SSL fragmentation update. http://support.microsoft.com/kb/2541763.Google ScholarGoogle Scholar
  17. OpenSSL Security Advisory. https://www.openssl.org/news/secadv_20140806.txt, Aug. 2014.Google ScholarGoogle Scholar
  18. PEF Architecture Tutorial. https://msdn.microsoft.com/en-us/library/jj714800.aspx.Google ScholarGoogle Scholar
  19. R. Pang and V. Paxson. A High-Level Programming Environment for Packet Trace Anonymization and Transformation. In Proc. ACM SIGCOMM, Aug. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Pang, V. Paxson, R. Sommer, and L. Peterson. binpac: A yacc for Writing Application Protocol Parsers. In Proc. ACM Internet Measurement Conference, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. V. Paxson. Bro: A System for Detecting Network Intruders in Real-Time. Computer Networks, 31(23--24), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Protocol Buffers. https://code.google.com/p/protobuf.Google ScholarGoogle Scholar
  23. Scapy. http://www.secdev.org/projects/scapy.Google ScholarGoogle Scholar
  24. N. Schear, D. Albrecht, and N. Borisov. High-Speed Matching of Vulnerability Signatures. In Proc. Recent Advances in Intrusion Detection, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. R. Sommer, M. Vallentin, L. De Carli, and V. Paxson. HILTI: An Abstract Execution Environment for Deep, Stateful Network Traffic Analysis. In Proc. ACM Internet Measurement Conference, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. The Spicy Home Page. http://www.icir.org/hilti.Google ScholarGoogle Scholar
  27. The Open Information Security Foundation. http://www.openinfosecfoundation.org.Google ScholarGoogle Scholar
  28. The LLVM Compiler Infrastructure. http://llvm.org.Google ScholarGoogle Scholar
  29. Apache Thrift. http://thrift.apache.org.Google ScholarGoogle Scholar
  30. Wireshark. http://www.wireshark.org.Google ScholarGoogle Scholar

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 Other conferences
    ACSAC '16: Proceedings of the 32nd Annual Conference on Computer Security Applications
    December 2016
    614 pages
    ISBN:9781450347716
    DOI:10.1145/2991079

    Copyright © 2016 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 December 2016

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate104of497submissions,21%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader