skip to main content
10.1145/3491371.3491372acmotherconferencesArticle/Chapter ViewAbstractPublication PagesnsyssConference Proceedingsconference-collections
research-article
Public Access

Finding Memory Vulnerabilities in Protocol Stack Implementations using Hybrid Program Analysis

Published:21 December 2021Publication History

ABSTRACT

As the number of Internet of Things (IoT) devices proliferate, an in-depth understanding of the IoT attack surface has become quintessential for dealing with the security and reliability risks. IoT devices and components execute implementations of various communication protocols. Vulnerabilities in the protocol stack implementations form an important part of the IoT attack surface. Therefore, finding memory errors in such implementations is essential for improving the IoT security and reliability. This paper presents a protocol knowledge guided hybrid program analysis for detecting memory errors in protocol stack implementations. Our approach utilizes the program structure, the precise memory model of symbolic execution, and the high coverage of static analysis for scalable bug finding. We have implemented our approach in a tool called SEESAW and applied it to the USB and Bluetooth modules within the Linux kernel. SEESAW can reproduce known memory vulnerabilities and reach protocol relevant targets in a more scalable way (up to 99% speedup) compared to baseline symbolic execution.

References

  1. [n.d.]. BlueBorne. https://www.armis.com/blueborne/.Google ScholarGoogle Scholar
  2. [n.d.]. CVE-2017-1000251 Detail. https://nvd.nist.gov/vuln/detail/CVE-2017-1000251.Google ScholarGoogle Scholar
  3. [n.d.]. CVE-2018-20169 Detail. https://nvd.nist.gov/vuln/detail/CVE-2018-20169.Google ScholarGoogle Scholar
  4. [n.d.]. mac80211: Properly access radiotap vendor data. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/net/mac80211/rx.c?id=d359bbce0601c6a19203a4b813a7e3910fcba282. last accessed October 2021.Google ScholarGoogle Scholar
  5. Fraser Brown, Deian Stefan, and Dawson Engler. 2020. Sys: a Static/Symbolic Tool for Finding Good Bugs in Good (Browser) Code. (2020).Google ScholarGoogle Scholar
  6. Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (San Diego, California) (OSDI’08). 209–224.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Heming Cui, Gang Hu, Jingyue Wu, and Junfeng Yang. 2013. Verifying systems rules using rule-directed symbolic execution. ACM SIGPLAN Notices 48, 4 (2013), 329–342.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Dawson Engler and Daniel Dunbar. 2007. Under-constrained execution: making automatic code destruction easy and scalable. In Proceedings of the 2007 international symposium on Software testing and analysis. 1–4.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. David Gens, Simon Schmitt, Lucas Davi, and Ahmad-Reza Sadeghi. 2018. K-Miner: Uncovering Memory Corruption in Linux.. In NDSS.Google ScholarGoogle Scholar
  10. Istvan Haller, Asia Slowinska, Matthias Neugschwandtner, and Herbert Bos. 2013. Dowser: a guided fuzzer to find buffer overflow vulnerabilities. In Proceedings of the 22nd USENIX Security Symposium. 49–64.Google ScholarGoogle Scholar
  11. Kin-Keung Ma, Khoo Yit Phang, Jeffrey S Foster, and Michael Hicks. 2011. Directed symbolic execution. In International Static Analysis Symposium. Springer, 95–111.Google ScholarGoogle ScholarCross RefCross Ref
  12. David A Ramos and Dawson Engler. 2015. Under-constrained symbolic execution: Correctness checking for real code. In 24th {USENIX} Security Symposium ({USENIX} Security 15). 49–64.Google ScholarGoogle Scholar
  13. Yulei Sui and Jingling Xue. 2016. SVF: interprocedural static value-flow analysis in LLVM. In Proceedings of the 25th international conference on compiler construction. 265–266.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Tuba Yavuz and Ken Yihang Bai. 2020. Analyzing system software components using API model guided symbolic execution. Autom. Softw. Eng. 27, 3 (2020), 329–367.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Finding Memory Vulnerabilities in Protocol Stack Implementations using Hybrid Program Analysis
          Index terms have been assigned to the content through auto-classification.

          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
            NSysS '21: Proceedings of the 8th International Conference on Networking, Systems and Security
            December 2021
            138 pages
            ISBN:9781450387378
            DOI:10.1145/3491371

            Copyright © 2021 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 ACM 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: 21 December 2021

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed limited

            Acceptance Rates

            Overall Acceptance Rate12of44submissions,27%
          • Article Metrics

            • Downloads (Last 12 months)49
            • Downloads (Last 6 weeks)5

            Other Metrics

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format