A major security challenge for modern Internet of Things (IoT) deployments is to ensure that the devices run legitimate firmware free from malware. This challenge can be addressed through a security primitive called attestation which allows a remote backend to verify the firmware integrity of the devices it manages. In order to accelerate broad attestation adoption in the IoT domain the Trusted Computing Group (TCG) has introduced the Device Identifier Composition Engine (DICE) series of specifications. DICE is a hardware-software architecture for constrained, e.g., microcontroller-based IoT devices where the firmware is divided into successively executed layers. In this paper, we demonstrate a remote Time-Of-Check Time-Of-Use (TOCTOU) attack on DICE-based attestation. We demonstrate that it is possible to install persistent malware in the flash memory of a constrained microcontroller that cannot be detected through DICE-based attestation. The main idea of our attack is to install malware during runtime of application logic in the top firmware layer. The malware reads the valid attestation key and stores it on the device's flash memory. After reboot, the malware uses the previously stored key for all subsequent attestations to the backend. We conduct the installation of malware and copying of the key through Return-Oriented Programming (ROP). As a platform for our demonstration, we use the Cortex-M-based nRF52840 microcontroller. We provide a discussion of several possible countermeasures which can mitigate the shortcomings of the DICE specifications.
翻译:现代Tings Internet (IoT) 部署的主要安全挑战是确保设备运行合法固态软件,没有恶意软件。 这一挑战可以通过一个叫作证明的安全原始程序来解决, 使一个远程后端能够核查它所管理的设备的固态完整性。 为了在 IoT 域加快广泛认证的采用, 信任的计算组(TCG) 引入了设备标识构成引擎系列规格。 DICE 是一个用于限制的硬件软件结构, 例如, 以微控制器为基础的 IoT 设备, 将公司软件分为连续执行的层。 在本文中, 我们展示了远程时间- 检查时间- 时间- 使用 (TOTOOU) 对 DICE 所管理设备进行的攻击。 我们表明, 可以在限制的微控制器的记忆中安装持续恶意软件, 无法通过 DICET 验证。 我们攻击的主要目的是在应用系统顶层逻辑运行期间安装错误软件。 恶意软件读了它作为关键存储器的钥匙和仓库, 我们使用后存储系统 复制了系统 。