Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3607199.3607217acmotherconferencesArticle/Chapter ViewAbstractPublication PagesraidConference Proceedingsconference-collections
research-article
Open Access

Shimware: Toward Practical Security Retrofitting for Monolithic Firmware Images

Published:16 October 2023Publication History

ABSTRACT

In today’s era of the Internet of Things, we are surrounded by security- and safety-critical, network-connected devices. In parallel with the rise in attacks on such devices, we have also seen an increase in devices that are abandoned, reached the end of their support periods, or will not otherwise receive future security updates. While this issue exists for a wide array of devices, those that use monolithic firmware, where the code and data are opaquely intermixed, have traditionally been difficult to examine and protect.

In this paper, we explore the challenges of retrofitting monolithic firmware images with new security measures. First, we outline the steps any analyst must take to retrofit firmware, and show that previous work is missing crucial aspects of the process, which are required for a practical solution. We then automate three of these aspects—locating attacker-controlled input, a safe retrofit injection location, and self-checks preventing modifications—through the use of novel automated program analysis techniques. We assemble these analyses into a system, Shimware, that can simplify and facilitate the process of creating a retrofitted firmware image, once the vulnerability is identified.

To evaluate Shimware, we employ both a synthetic evaluation and actual retrofitting of three case study devices: a networked bench power supply, a Bluetooth-enabled cardiac implant monitor, and a high-end programmable logic controller (PLC). Not only could our system identify the correct sources of input, injection locations, and self-checks, but it injected payloads to correct serious safety and security-critical vulnerabilities in these devices.

References

  1. 2019. D-Link Adds More Buggy Router Models to ‘Won’t Fix’ List. https://threatpost.com/d-link-wont-fix-router-bugs/150438/.Google ScholarGoogle Scholar
  2. 2020. Arduino. http://arduino.cc/.Google ScholarGoogle Scholar
  3. 2020. CA S.B. 327. https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=201720180SB327.Google ScholarGoogle Scholar
  4. 2020. OpenDPS. https://github.com/kanflo/opendps.Google ScholarGoogle Scholar
  5. 2020. S.734 - Internet of Things Cybersecurity Improvement Act of 2019. https://www.congress.gov/bill/116th-congress/senate-bill/734.Google ScholarGoogle Scholar
  6. Ioannis Agadakos, Di Jin, David Williams-King, Vasileios P Kemerlis, and Georgios Portokalidis. 2019. Nibbler: debloating binary shared libraries. In Annual Computer Security Applications Conference. 70–83.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. AliExpress. 2020. RD DPS5015. https://www.aliexpress.com/item/32702714880.html.Google ScholarGoogle Scholar
  8. Amazon. 2020. Creating a code-signing certificate for the Texas Instruments CC3220SF-LAUNCHXL. https://docs.aws.amazon.com/freertos/latest/userguide/ota-code-sign-cert-ti.html.Google ScholarGoogle Scholar
  9. Frank Armstrong. 2013. A Discussion on Atmel Lock Byte and Firmware Protection. https://www.avrfreaks.net/sites/default/files/A%20discussion%20on%20Atmel%20Lock%20Bits.pdf.Google ScholarGoogle Scholar
  10. Erick Bauman, Zhiqiang Lin, and Kevin W Hamlen. 2018. Superset Disassembly: Statically Rewriting x86 Binaries Without Heuristics.. In NDSS.Google ScholarGoogle Scholar
  11. Catalin Cimparu. 2019. DHS and FDA warn about much broader impact of Urgent/11 vulnerabilities. https://www.zdnet.com/article/dhs-and-fda-warn-about-much-broader-impact-of-urgent11-vulnerabilities/.Google ScholarGoogle Scholar
  12. Clements, Abraham and Gustafson, Eric and Scharnowski, Tobias and Grosen, Paul and Fritz, David and Kruegel, Christopher and Vigna, Giovanni and Bagchi, Saurabh and Payer, Mathias. 2020. HALucinator: Firmware Re-hosting through Abstraction Layer Emulation. In USENIX Security Symposium.Google ScholarGoogle Scholar
  13. European Commission. 2022. Cyber Resilience Act. https://digital-strategy.ec.europa.eu/en/library/cyber-resilience-act.Google ScholarGoogle Scholar
  14. DARPA. 2020. Assured Micro-Patching (AMP). https://www.darpa.mil/program/assured-micropatching.Google ScholarGoogle Scholar
  15. Sushant Dinesh, Nathan Burow, Dongyan Xu, and Mathias Payer. 2020. RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization. In IEEE Security and Privacy.Google ScholarGoogle Scholar
  16. Steven H.H. Ding, Benjamin C.M. Fung, and Philippe Charland. 2019. Asm2Vec: Boosting Static Representation Robustness for Binary Clone Search against Code Obfuscation and Compiler Optimization. In IEEE Security and Privacy.Google ScholarGoogle Scholar
  17. Ruian Duan, Ashish Bijlani, Yang Ji, Omar Alrawi, Yiyuan Xiong, Moses Ike, Brendan Saltaformaggio, and Wenke Lee. 2019. Automating Patching of Vulnerable Open-Source Software Versions in Application Binaries.. In NDSS.Google ScholarGoogle Scholar
  18. EEVBlog. 2017. Flaming Power Supply!https://www.youtube.com/watch?v=Q2rvAoO-MIA.Google ScholarGoogle Scholar
  19. Sebastian Eschweiler, Khaled Yakdan, and Elmar Gerhards-Padilla. 2016. discovRE: Efficient Cross-Architecture Identification of Bugs in Binary Code. In NDSS.Google ScholarGoogle Scholar
  20. Bo Feng, Alejandro Mera, and Long Lu. 2020. P2IM: Scalable and Hardware-independent Firmware Testing via Automatic Peripheral Interface Modeling. In USENIX Security Symposium.Google ScholarGoogle Scholar
  21. Felix Gröbert. 2010. Automatic identification of cryptographic primitives in software. Ruhr-University Bochum (2010), 115.Google ScholarGoogle Scholar
  22. Eric Gustafson, Marius Muench, Chad Spensky, Nilo Redini, Aravind Machiry, Aurelien Francillon, Davide Balzarotti, Yung Ryn Choe, Christopher Kruegel, and Giovanni Vigna. 2019. Toward the Analysis of Embedded Firmware through Automated Re-hosting. In Research in Attacks, Intrusions, and Defenses (USENIX RAID).Google ScholarGoogle Scholar
  23. Yi He, Zhenhua Zou, Kun Sun, Zhuotao Liu, Ke Xu, Qian Wang, Chao Shen, Zhi Wang, and Qi Li. 2022. RapidPatch: Firmware Hotpatching for Real-Time Embedded Devices. In Usenix Security Symposium.Google ScholarGoogle Scholar
  24. Y. Hu, Y. Zhang, and D. Gu. 2019. Automatically Patching Vulnerabilities of Binary Programs via Code Transfer From Correct Versions. IEEE Access 7 (2019), 28170–28184. https://doi.org/10.1109/ACCESS.2019.2901951Google ScholarGoogle ScholarCross RefCross Ref
  25. Galen Hunt and Doug Brubacher. 1999. Detours: Binary Interception of Win32 Functions. In USENIX Windows NT Symposium.Google ScholarGoogle Scholar
  26. Taegyu Kim, Aolin Ding, Sriharsha Etigowni, Pengfei Sun, Jizhou Chen, Luis Garcia, Saman Zonouz, Dongyan Xu, and Dave Tian. 2021. Reverse Engineering and Retrofitting Robotic Aerial Vehicle Control Firmware using DisPatch. In International Conference on Mobile Systems, Applications and Services (MobiSys).Google ScholarGoogle Scholar
  27. Taegyu Kim, Chung Hwan Kim, Hongjun Choi, Yonghwi Kwon, Brendan Saltaformaggio, Xiangyu Zhang, and Dongyan Xu. 2017. RevARM: A Platform-Agnostic ARM Binary Rewriter for Security Applications. In Annual Computer Security Applications Conference (ACSAC). 412–424.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. JongHyup Lee, Thanassis Avgerinos, and David Brumley. 2011. TIE: Principled Reverse Engineering of Types in Binary Programs. In NDSS.Google ScholarGoogle Scholar
  29. Pierre Lestringant, Frédéric Guihéry, and Pierre-Alain Fouque. 2015. Automated identification of cryptographic primitives in binary code with data flow graph isomorphism. In ACM Symposium on Information, Computer and Communications Security (CCS).Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. mbed OS 2020. mbed OS. https://www.mbed.com/en/development/mbed-os/.Google ScholarGoogle Scholar
  31. Microchip. 2020. AT16743: SAM V7/E7/S7 Safe and Secure Bootloader. http://ww1.microchip.com/downloads/en/AppNotes/Atmel-42725-Safe-and-Secure-Bootloader-for-SAM-V7-E7-S7-MCUs_AT16743_ApplicationNote.pdf.Google ScholarGoogle Scholar
  32. Jose Nazario. 2017. The problem with patching in addressing IoT vulnerabilities. https://www.fastly.com/blog/problem-patching-addressing-iot-vulnerabilities.Google ScholarGoogle Scholar
  33. Lily Hay Newman. 2019. Decades-Old Code Is Putting Millions of Critical Devices at Risk. https://www.wired.com/story/urgent-11-ipnet-vulnerable-devices/.Google ScholarGoogle Scholar
  34. Christian Niesler, Sebastian Surminski, and Lucas Davi. 2021. HERA: Hotpatching of Embedded Real-time Applications. In Symposium on Network and Distrbuted Systems Security (NDSS).Google ScholarGoogle Scholar
  35. Office of Naval Research (ONR). 2020. Total Platform Cyber Protection (TPCP). https://www.onr.navy.mil/-/media/Files/Funding-Announcements/BAA/2017/N00014-17-S-B010.ashx.Google ScholarGoogle Scholar
  36. Osbourne, Paul. [n. d.]. CMSIS-SVD Repository and Parsers. https://github.com/posborne/cmsis-svd.Google ScholarGoogle Scholar
  37. Chenxiong Qian, Hong Hu, Mansour Alharthi, Pak Ho Chung, Taesoo Kim, and Wenke Lee. 2019. RAZOR: A Framework for Post-deployment Software Debloating. In USENIX Security Symposium.Google ScholarGoogle Scholar
  38. Anh Quach and Aravind Prakash. 2019. Bloat Factors and Binary Specialization. In ACM Workshop on Forming an Ecosystem Around Software Transformation.Google ScholarGoogle Scholar
  39. Vaibhav Rastogi, Drew Davidson, Lorenzo De Carli, Somesh Jha, and Patrick McDaniel. 2017. Cimplifier: automatically debloating containers. In Joint Meeting on Foundations of Software Engineering. 476–486.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Nilo Redini, Aravind Machiry, Dipanjan Das, Yanick Fratantonio, Antonio Bianchi, Eric Gustafson, Yan Shoshitaishvili, Christopher Kruegel, and Giovanni Vigna. 2017. BootStomp: On the Security of Bootloaders in Mobile Devices. In USENIX Security Symposium. Vancouver, BC.Google ScholarGoogle Scholar
  41. Nilo Redini, Aravind Machiry, Ruoyu Wang, Chad Spensky, Andrea Continella, Yan Shoshitaishvili, Christopher Kruegel, and Giovanni Vigna. 2020. KARONTE: Detecting Insecure Multi-binary Interactions in Embedded Firmware. In IEEE Security & Privacy.Google ScholarGoogle Scholar
  42. Nilo Redini, Ruoyu Wang, Aravind Machiry, Yan Shoshitaishvili, Giovanni Vigna, and Christopher Kruegel. 2019. BinTrimmer: Towards Static Binary Debloating Through Abstract Interpretation. In International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment. 482–501.Google ScholarGoogle Scholar
  43. Jessica Rich. 2016. What happens when the sun sets on a smart product?https://www.ftc.gov/news-events/blogs/business-blog/2016/07/what-happens-when-sun-sets-smart-product.Google ScholarGoogle Scholar
  44. Rockwell Automation. 2020. ControlLogix and GuardLogix Controllers. https://literature.rockwellautomation.com/idc/groups/literature/documents/td/1756-td001_-en-p.pdf.Google ScholarGoogle Scholar
  45. Yan Shoshitaishvili, Ruoyu Wang, Christopher Salls, Nick Stephens, Mario Polino, Audrey Dutcher, John Grosen, Siji Feng, Christophe Hauser, Christopher Kruegel, and Giovanni Vigna. 2016. SoK: (State of) The Art of War: Offensive Techniques in Binary Analysis. In IEEE Symposium on Security and Privacy.Google ScholarGoogle ScholarCross RefCross Ref
  46. STMicroelectronics. 2020. AN4701: Proprietary code read-out protection on microcontrollers of the STM32F4 Series. https://www.st.com/resource/en/application_note/dm00186528-proprietary-code-readout-protection-on-microcontrollers-of-the-stm32f4-series-stmicroelectronics.pdf.Google ScholarGoogle Scholar
  47. subwire. 2020. Autoblob: Automatic Blob-loading for CLE. https://github.com/subwire/autoblob.Google ScholarGoogle Scholar
  48. TI. 2020. Understanding security features for MSP430™ Microcontrollers. http://www.ti.com/lit/ml/swpb018/swpb018.pdf?ts=1587844615741.Google ScholarGoogle Scholar
  49. Ruoyu Wang, Yan Shoshitaishvili, Antonio Bianchi, Aravind Machiry, John Grosen, Paul Grosen, Christopher Kruegel, and Giovanni Vigna. 2017. Ramblr: Making Reassembly Great Again.. In NDSS.Google ScholarGoogle Scholar
  50. Shuai Wang, Pei Wang, and Dinghao Wu. 2015. Reassembleable Disassembling.. In USENIX Security Symposium. 627–642.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. S. Wang, P. Wang, and D. Wu. 2016. UROBOROS: Instrumenting Stripped Binaries with Static Reassembling. In Conference on Software Analysis, Evolution, and Reengineering (SANER).Google ScholarGoogle Scholar
  52. Shuai Wang, Wenhao Wang, Qinkun Bao, Pei Wang, XiaoFeng Wang, and Dinghao Wu. 2017. Binary Code Retrofitting and Hardening Using SGX. In Workshop on Forming an Ecosystem Around Software Transformation (FEAST).Google ScholarGoogle Scholar
  53. Haohuang Wen, Zhiqiang Lin, and Yinqian Zhang. 2020. FirmXRay: Detecting Bluetooth Link Layer Vulnerabilities From Bare-Metal Firmware. In ACM Conference on Computer and Communications Security (CCS).Google ScholarGoogle Scholar
  54. Matthias Wenzl, Georg Merzdovnik, Johanna Ullrich, and Edgar Weippl. 2019. From Hack to Elaborate Technique - A Survey on Binary Rewriting. In ACM Computing Surveys (CSUR).Google ScholarGoogle Scholar

Index Terms

  1. Shimware: Toward Practical Security Retrofitting for Monolithic Firmware Images

    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
      RAID '23: Proceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses
      October 2023
      769 pages
      ISBN:9798400707650
      DOI:10.1145/3607199

      Copyright © 2023 Owner/Author

      This work is licensed under a Creative Commons Attribution International 4.0 License.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 16 October 2023

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited
    • Article Metrics

      • Downloads (Last 12 months)448
      • Downloads (Last 6 weeks)59

      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