Hunting Security Bugs in Soc Designs: Lessons Learned

Hunting Security Bugs in Soc Designs: Lessons Learned

This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2020.3013727, IEEE Design and Test Hunting Security Bugs in SoC Designs: Lessons Learned Mohammad Mahdi Bidmeshki, Yunjie Zhang, Monir Zaman, Liwei Zhou, Yiorgos Makris Department of Electrical and Computer Engineering The University of Texas at Dallas Richardson, Texas fbidmeshki, yunjie.zhang, monir.zaman, lxz100320, [email protected] Abstract—Security of hardware designs is gaining more atten- personal computers and server or cloud systems mostly uti- tion due to the pervasiveness of computing and communication lize high-performance processors, embedded and Internet of elements in our everyday lives and the constant discovery of Things (IoT) devices which have lower processing capabilities previously unknown vulnerabilities, such as Spectre and Melt- down, in hardware computing devices. Consequently, a shift in are an important part of our connected world and constitute a the thinking of hardware developers is necessary to prioritize wide attack surface which can be exploited by adversaries. security in addition to correct functionality during the hardware Most of these attacks may exploit software vulnerabilities; design and development cycle. Towards providing insight to however, hardware features can also provide opportunities to other researchers, in this article we present our experience from be exploited. Therefore, establishing a security-aware design participating in Hack@DAC, a hardware security contest where teams were tasked with finding security bugs in large System- process, both from the software and from the hardware per- on-Chip (SoC) designs. spective, is paramount. Index Terms—Hardware Security, SoC Vulnerability, Security- Hardware design and development follows a life cycle Oriented Design similar to software, namely requirement analysis, design, man- ufacturing, testing, distribution, deployment (use and mainte- I. INTRODUCTION nance), and disposal [5]. Attack vectors can be introduced in every stage of this life-cycle [6] and, therefore, hardware Increased complexity of hardware designs has caused the security should be studied from different perspectives, e.g., emergence of previously unknown vulnerabilities, which can security bugs in the design, hardware Trojans (malicious be exploited by an adversary to develop new attacks for gain- capabilities planted in the hardware at the design or at the ing access to private and sensitive information, or disrupting manufacturing stage, which can be exploited later by attacks), the operation of computer systems. For example, out-of-order or recycled/unreliable devices which may enter the system at execution, branch prediction, and speculative execution of the distribution stage. instructions are techniques used by modern microprocessors In 2018, we participated in the Hack@DAC two-phase to fill the empty slots of an execution pipeline and improve competition [7] where we were tasked with finding bugs with performance. While these techniques have been implemented security implications in the HDL code of two SoC designs. in modern microprocessors for many years, the security impli- Given a brief requirement description, we had to analyze a cations of their specific implementation were overlooked until considerable amount of HDL source code and report possible 2018, when their vulnerability to attacks known as Meltdown security vulnerabilities. This article summarizes our experi- [1], Spectre [2], and Foreshadow [3] was revealed. ence in this competition, and points out procedures which Although this example shows an extreme case of overlooked may help in extending the hardware developer’s mindset to vulnerabilities in high-performance, modern microprocessors, a security-oriented approach. Considering the task at hand, in other new vulnerabilities in a wide range of hardware or soft- this article we focus on security vulnerabilities (inadvertent or ware systems are being constantly discovered. Unlike software malicious) in the design stage, i.e., in the HDL source code of vulnerabilities, hardware vulnerabilities are very difficult, if the hardware. Since we were not involved in the development not impossible, to patch through firmware, software or oper- of the design, our strategy is centered on streamlining our ating system (OS) modifications. In addition, such software search, in order to identify and report as many bugs as patches for hardware vulnerabilities may disable hardware possible. We also introduce other procedures which could be capabilities or introduce additional overhead, causing perfor- useful in order to improve our bug-finding approach. mance degradation [2]. In turn, this can result in customer While the competition organizers presented a thorough dissatisfaction, as certain features which were paid for to analysis of various testing and verification approaches, and improve performance, e.g., speculative execution, cannot be tools to find the introduced or inherent security bugs in SoC fully utilized due to security concerns. designs [7], they were aware of what bugs they are looking Security concerns are not limited to top of the line, high- for in their analysis, which makes the task easier. We, on performance processors and systems. While smart-phones, the other hand, were the participants in the competition and, 1 2168-2356 (c) 2020 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information. Authorized licensed use limited to: Univ of Texas at Dallas. Downloaded on August 04,2020 at 23:37:37 UTC from IEEE Xplore. Restrictions apply. This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/MDAT.2020.3013727, IEEE Design and Test Core Instr. instr data Data RAM debug RAM Bridge Bridge Bridge Boot ROM AXI4 Interconnect FLL Control Bridge APB SoC Event Control Timer Unit SPI Adv. 2 SPI GPIO UART I C Master Slave Debug Unit GPIO UART I2C SPI SPI JTAG Fig. 1. Block diagram of one of the analyzed SoC designs (i.e., the PULPino platform [4]) therefore, did not have the foreknowledge of the security bugs incomplete, which made our bug-hunting task rather difficult. to develop or evaluate our approach. Also taking into account Moreover, the provided code included test benches which the time limitations of the competition, we were successful in allowed loading the software code, running it on the processor finding many, but not all of the bugs in those SoC designs. in a simulation environment and observing and monitoring the As a result, we believe that our findings in combination with state and the outputs. As expected, at first glance, the normal the experience of other participants and the organizers [7], operation of the platforms was not disturbed by the introduced can provide valuable security awareness insight to the SoC security bugs. designers and the hardware security research community. The attacker modeled in the contest was assumed to have physical access to the device and to be familiar with the II. SOCSTRUCTURE AND SPECIFICATION overall design of the SoC systems. Also, the attacker could The SoC designs provided in the competition were modified launch attacks on the systems through software, hardware versions of the single-core microcontrollers in the PULP interfaces or a combination thereof; therefore, protecting the platform [4], specifically, PULPino in the initial phase, and debug interface from unauthorized access was added as a PULPissimo in the final phase. Both of these SoC designs security specification to the SoC designs. are based on a RISC-V processor architecture [8], and can be III. SECURITY ANALYSIS PROCEDURE customized as either a 32-bit 4-stage core called RI5CY, or While various methodologies can be adopted in security bug a 32-bit 2-stage core called Ibex (formerly Zero-riscy). These finding in hardware designs, we suggest the following steps platforms are equipped with various peripherals, such as gen- which we followed to the extent that time constraints of the eral purpose input/outputs (GPIOs), universal asynchronous contest and our access to specialized tools allowed. While we receiver/transmitter (UART), serial peripheral interface (SPI), are advocates of a security-aware development process and we 2 inter-integrated circuit (I C) interface, debug unit and JTAG believe that security analysis should be part of the design and interface, etc., with the PULPissimo being the higher-end development process, these steps might provide guidelines for platform equipped with direct memory access (DMA) unit a scenario where the hardware is already developed and further and supporting the addition of hardware processing engines scrutiny of the SoC design is performed by independent teams, (HWPE), i.e., hardware accelerators. Fig. 1 shows the block as was the objective of this competition. Moreover, following diagram of the PULPino platform. guidelines and procedures for developing verifiable designs, as The PULP platform provides the HDL code for the SoC described in [9], can also help in streamlining the verification and includes simulation scripts and a software development of security-related functions. Fig. 2 summarizes the suggested kit (SDK). In addition to the

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us