NEMIANA: cross-platform execution migration for debugging

N Kanaya, Y Tsuda, Y Takano, Y Fujiwara… - Proceedings of the 3rd …, 2022 - dl.acm.org
N Kanaya, Y Tsuda, Y Takano, Y Fujiwara, R Isawa, D Inoue
Proceedings of the 3rd ACM/IEEE International Conference on Automation of …, 2022dl.acm.org
Many IoT devices are compromised by exploiting their software vulnerabilities in these
devices. A technique during a development phase to fix such vulnerabilities efficiently is
leveraging advantages of various platforms (eg, single-board computers, emulators, and
FPGA (Field Programmable Gate Array) boards). As a debugging scenario, developers
discover some vulnerability-candidates of software under test on an emulator like QEMU
with rich debugging plugins. They then check those candidates in detail on a single-board …
Many IoT devices are compromised by exploiting their software vulnerabilities in these devices. A technique during a development phase to fix such vulnerabilities efficiently is leveraging advantages of various platforms (e.g., single-board computers, emulators, and FPGA (Field Programmable Gate Array) boards). As a debugging scenario, developers discover some vulnerability-candidates of software under test on an emulator like QEMU with rich debugging plugins. They then check those candidates in detail on a single-board computer (i.e., a real device) with GDB. To efficiently conduct this kind of debugging, we propose NEMIANA (Noncomplex Execution Migration Integrated Architecture for Nonstop Analyses), an architecture for automatically conducting cross-platform execution migration. It can migrate execution-state of software at any execution points (e.g., 500 steps after the beginning) from a platform (e.g., a single-board computer) to another platform (e.g., a FPGA board). Developers then seamlessly continue debugging at that execution point on the destination platform. A key idea for cross-platform migration is an abstraction model of execution-state (e.g., CPU register/memory values), which can be applied to various platforms (if they have CPUs of the same ISA (Instruction Set of Architecture)). Another key idea is to trace all instructions executed by software. This incurs a system performance overhead; however, it enables developers to choose any execution points, which we hope is very helpful for debugging. In the evaluation, a prototype system of NEMIANA demonstrates three case studies: a typical debugging with GDB, benchmarking, and vulnerability discovery. It shows developers can use NEMIANA for their debugging purposes.
ACM Digital Library
Showing the best result for this search. See all results