A novel lightweight hardware-assisted static instrumentation approach for ARM SoC using debug components
This work addresses the need for easier and faster instrumentation in software security and monitoring for ARM-based systems, though it is incremental as it builds on existing hardware-assisted methods.
The paper tackles the problem of high software modification requirements in hardware-assisted instrumentation by proposing a lightweight approach using ARM SoC debug components, resulting in a tenfold improvement in instrumentation time (0.014 μs vs. typical solutions).
Most of hardware-assisted solutions for software security, program monitoring, and event-checking approaches require instrumentation of the target software, an operation which can be performed using an SBI (Static Binary Instrumentation) or a DBI (Dynamic Binary Instrumentation) framework. Hardware-assisted instrumentation can use one of these two solutions to instrument data to a memory-mapped register. Both these approaches require an in-depth knowledge of frameworks and an important amount of software modifications in order to instrument a whole application. This work proposes a novel way to instrument an application with minor modifications, at the source code level, taking advantage of underlying hardware debug components such as CS (CoreSight) components available on Xilinx Zynq SoCs. As an example, the instrumentation approach proposed in this work is used to detect a double free security attack. Furthermore, it is evaluated in terms of runtime and area overhead. Results show that the proposed solution takes 30 $μ$s on average to instrument an instruction while the optimized version only takes 0.014 us which is ten times better than usual memory-mapped register solutions used in existing works.