Recent high-profile attacks on the Internet of Things (IoT) have brought to the forefront the vulnerability of "smart" devices, and have resulted in numerous IoT-focused security analyses. Many of the attacks had weak device configuration as the root cause. One potential source of rich and definitive information about the configuration of an IoT device is the device's firmware. However, firmware analysis is complex and automated firmware analyses have thus far been confined to devices with more traditional operating systems such as Linux or VxWorks. Most IoT peripherals, due to lacking traditional operating systems and implementing a wide variety of communication technologies, have only been the subject of smaller-scale analyses. Peripheral firmware analysis is further complicated by the fact that such firmware files are predominantly available as stripped binaries, without the ELF headers and symbol tables that would simplify reverse engineering. In this paper, we present argXtract, an open-source automated static analysis tool, which extracts security-relevant configuration information from stripped IoT peripheral firmware. Specifically, we focus on binaries that target the ARM Cortex-M architecture, due to its growing popularity among IoT peripherals. argXtract overcomes the challenges associated with stripped Cortex-M analysis and is able to retrieve arguments to security-relevant supervisor and function calls, enabling automated bulk analysis of firmware files. We demonstrate this via three real-world case studies. The largest case study covers a dataset of 243 Bluetooth Low Energy binaries targeting Nordic Semiconductor chipsets, while the other two focus on Nordic ANT and STMicroelectronics BlueNRG binaries. The results reveal widespread lack of security and privacy controls in IoT, such as minimal or no protection for data, fixed passkeys and trackable device addresses.
翻译:最近在互联网上发生的高清晰度攻击事件(IoT)使“智能”装置的易失能性成为最前沿,并导致大量以IoT为主的安全分析。许多攻击的起因是设备配置薄弱。关于IoT装置配置的丰富和明确信息的潜在来源是该装置的固态软件。然而,公司软件分析是复杂的,自动化的固态软件分析迄今仅限于使用Linux或VxWorks等较传统的操作系统的设备。大多数IoT外围设备由于缺乏传统的操作系统,采用各种各样的通信技术,只是小规模分析的主题。许多攻击的起因是设备配置配置配置薄弱。许多攻击的根源是作为根源的装置配置配置。由于这种固态软件主要作为已拆的二进制二进制的二进制工具,因此更复杂得多的硬质软件分析。我们展示了一个公开源的自动静态分析工具,它从已拆掉的IOT系统内部的内置安全信息, 具体地说,我们专注于针对ARM Cortex-M公司内部的二进制数据分析, 并且通过不断变换的系统分析显示其内部安全结构。