skip to main content
10.1145/3316781.3317807acmconferencesArticle/Chapter ViewAbstractPublication PagesdacConference Proceedingsconference-collections
research-article

Early Concolic Testing of Embedded Binaries with Virtual Prototypes: A RISC-V Case Study

Authors Info & Claims
Published:02 June 2019Publication History

ABSTRACT

Extensive testing of IoT SW is very important to prevent errors and security vulnerabilities. In the SW domain the automated concolic testing technique has been shown very effective.

In this paper we propose an approach for concolic testing of binaries targeting RISC-V systems with peripherals. Our approach works by integrating the Concolic Testing Engine (CTE) with the architecture specific Instruction Set Simulator (ISS) inside of a Virtual Prototype (VP). We provide a designated CTE-interface to integrate (SystemC-based) peripherals into the concolic testing by means of SW models. This combination enables a high simulation performance at binary level with comparatively little effort to integrate peripherals with concolic execution capabilities. Our approach has been effective in finding several buffer overflow related security vulnerabilities in the FreeRTOS TCP/IP stack.

References

  1. FreeRTOS TCP/IP stack vulnerabilities put a wide range of devices at risk of compromise: From smart homes to critical infrastructure systems. https://blog.zimperium.com/freertos-tcpip-stack-vulnerabilities-put-wide-range-devices-risk-compromise-smart-homes-critical-infrastructure-systems.Google ScholarGoogle Scholar
  2. Porting FreeRTOS+TCP to a different microcontroller. https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Embedded_Ethernet_Porting.html.Google ScholarGoogle Scholar
  3. RISC-V Foundation. https://riscv.org/.Google ScholarGoogle Scholar
  4. A. Ahmed, F. Farahmandi, and P. Mishra. Directed test generation using concolic testing on RTL models. In DATE, pages 1538--1543, 2018.Google ScholarGoogle Scholar
  5. S. Ahn and S. Malik. Automated firmware testing using firmware-hardware interaction patterns. In CODES+ISSS, pages 25:1--25:10, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Cadar, D. Dunbar, and D. R. Engler. KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In OSDI, pages 209--224, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. K. Cha, T. Avgerinos, A. Rebert, and D. Brumley. Unleashing mayhem on binary code. In IEEE S & P, pages 380--394, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. V. Chipounov, V. Kuznetsov, and G. Candea. S2E: a platform for in-vivo multi-path analysis of software systems. In ASPLOS, pages 265--278, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. N. Corteggiani, G. Camurati, and A. Francillon. Inception: System-wide security testing of real-world embedded systems software. In USENIX Security, pages 309--326, 2018. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Davidson, B. Moench, T. Ristenpart, and S. Jha. FIE on firmware: Finding vulnerabilities in embedded systems using symbolic execution. In USENIX Security, pages 463--478, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Godefroid, M. Y. Levin, and D. A. Molnar. Automated whitebox fuzz testing. In NDSS, 2008.Google ScholarGoogle Scholar
  12. D. Große and R. Drechsler. Quality-Driven SystemC Design. Springer, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  13. V. Herdt, D. Große, H. M. Le, and R. Drechsler. Extensible and configurable RISC-V based virtual prototype. In FDL, pages 5--16, 2018.Google ScholarGoogle ScholarCross RefCross Ref
  14. V. Herdt, H. M. Le, D. Große, and R. Drechsler. Compiled symbolic simulation for SystemC. In ICCAD, pages 52:1--52:8, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. V. Herdt, H. M. Le, D. Große, and R. Drechsler. Verifying SystemC using intermediate verification language and stateful symbolic simulation. TCAD, 2018.Google ScholarGoogle ScholarCross RefCross Ref
  16. A. Horn, M. Tautschnig, C. G. Val, L. Liang, T. Melham, J. Grundy, and D. Kroening. Formal co-validation of low-level hardware/software interfaces. In FMCAD, pages 121--128, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  17. B. Huang, S. Ray, A. Gupta, J. M. Fung, and S. Malik. Formal security verification of concurrent firmware in SoCs using instruction-level abstraction for hardware. In DAC, pages 91:1--91:6, 2018. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. IEEE. IEEE Standard SystemC Language Reference Manual. IEEE Std. 1666, 2011.Google ScholarGoogle Scholar
  19. B. Lin, K. Cong, Z. Yang, Z. Liao, T. Zhan, C. Havlicek, and F. Xie. Concolic testing of SystemC designs. In ISQED, pages 1--7, 2018.Google ScholarGoogle ScholarCross RefCross Ref
  20. R. Mukherjee, M. Purandare, R. Polig, and D. Kroening. Formal techniques for effective co-verification of hardware/software co-designs. In DAC, pages 35:1--35:6, 2017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Pinto and M. S. Hsiao. RTL functional test generation using factored concolic execution. In ITC, pages 1--10, 2017.Google ScholarGoogle ScholarCross RefCross Ref
  22. Y. Shoshitaishvili, R. Wang, C. Salls, N. Stephens, M. Polino, A. Dutcher, J. Grosen, S. Feng, C. Hauser, C. Krügel, and G. Vigna. SOK: (state of) the art of war: Offensive techniques in binary analysis. In IEEE S & P, pages 138--157, 2016.Google ScholarGoogle ScholarCross RefCross Ref
  23. A. Waterman and K. Asanović. The RISC-V Instruction Set Manual; Volume I: User-Level ISA. SiFive Inc. and CS Division, EECS Department, University of California, Berkeley, 2017.Google ScholarGoogle Scholar
  24. A. Waterman and K. Asanović. The RISC-V Instruction Set Manual; Volume II: Privileged Architecture. SiFive Inc. and CS Division, EECS Department, University of California, Berkeley, 2017.Google ScholarGoogle Scholar
  25. J. Zaddach, L. Bruno, A. Francillon, and D. Balzarotti. AVATAR: A framework to support dynamic security analysis of embedded systems' firmwares. In NDSS, 2014.Google ScholarGoogle ScholarCross RefCross Ref

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
    DAC '19: Proceedings of the 56th Annual Design Automation Conference 2019
    June 2019
    1378 pages
    ISBN:9781450367257
    DOI:10.1145/3316781

    Copyright © 2019 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: 2 June 2019

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    Overall Acceptance Rate1,770of5,499submissions,32%

    Upcoming Conference

    DAC '24
    61st ACM/IEEE Design Automation Conference
    June 23 - 27, 2024
    San Francisco , CA , USA

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader