著者
KAWADA Tomoaki HONDA Shinya MATSUBARA Yutaka TAKADA Hiroaki
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.39, no.2, pp.2_39-2_68, 2022-04-21 (Released:2022-06-21)

CFI (Control-Flow Integrity) is a class of defensive techniques against control-flow attacks such as Return-Oriented Programming. We propose a lightweight CFI scheme for RTOS-based applications, TZmCFI, which utilizes TrustZone for Armv8-M, a hardware-assisted security feature for embedded systems with tight resource constraints. TZmCFI embodies several existing CFI techniques to provide a self-contained toolset for building an instrumented application. The toolset is comprised of a modified LLVM-based compiler and a runtime library called Monitor. The modified LLVM code generator implements the traditional shadow stack technique by inserting calls to Monitor. To protect exception handlers, Monitor replaces an application's exception vector table and wrap interrupt handlers with exception trampolines, which implement variations of the shadow exception stack technique we proposed in our previous work. The performance evaluation on NXP Semiconductors LPC55S69 indicated a -7–35% increase in the execution times of FreeRTOS+MPU system calls and a 9.36% runtime overhead on CoreMark.