|Title||Efficient Program Tracing and Monitoring Through Power Consumption -- With A Little Help From The Compiler|
|Publication Type||Conference Paper|
|Year of Publication||2016|
|Authors||Moreno, C., S. Kauffman, and S. Fischmeister|
|Conference Name||Proc. of Design, Automation, and Test (DATE)|
|Conference Location||Dresden, Germany|
Ensuring correctness and enforcing security are growing concerns given the complexity of modern connected devices and safety-critical systems. A promising approach is non-intrusive runtime monitoring through reconstruction of program execution traces from power consumption measurements. This can be used for verification, validation, debugging, and security purposes.
In this paper, we propose a framework for increasing the effectiveness of power-based program tracing techniques. These systems determine the most likely block of source code that produced an observed power trace (CPU power consumption as a function of time). Our framework maximizes distinguishability between power traces for different code blocks. To this end, we provide a special compiler optimization stage that reorders intermediate representation (IR) and determines the reorderings that lead to power traces with highest distances between each other, thus reducing the probability of misclassification. Our work includes an experimental evaluation, using LLVM for an ARM architecture. Experimental results confirm the effectiveness of our technique.