*Result*: Automating Information Flow Analysis of Low Level Code

Title:
Automating Information Flow Analysis of Low Level Code
Publisher Information:
KTH, Teoretisk datalogi, TCS
Publication Year:
2014
Collection:
Royal Inst. of Technology, Stockholm (KTH): Publication Database DiVA
Document Type:
*Conference* conference object
File Description:
application/pdf
Language:
English
Relation:
Proceedings of CCS’14, November 3–7, 2014, Scottsdale, Arizona, USA; ISI:000482446400089
DOI:
10.1145/2660267.2660322
Rights:
info:eu-repo/semantics/openAccess
Accession Number:
edsbas.94FD29B2
Database:
BASE

*Further Information*

*Low level code is challenging: It lacks structure, it uses jumps and symbolic addresses, the control ow is often highly optimized, and registers and memory locations may be reused in ways that make typing extremely challenging. Information ow properties create additional complications: They are hyperproperties relating multiple executions, and the possibility of interrupts and concurrency, and use of devices and features like memory-mapped I/O requires a departure from the usual initial-state nal-state account of noninterference. In this work we propose a novel approach to relational verication for machine code. Verication goals are expressed as equivalence of traces decorated with observation points. Relational verication conditions are propagated between observation points using symbolic execution, and discharged using rst-order reasoning. We have implemented an automated tool that integrates with SMT solvers to automate the verication task. The tool transforms ARMv7 binaries into an intermediate, architecture-independent format using the BAP toolset by means of a veried translator. We demonstrate the capabilities of the tool on a separation kernel system call handler, which mixes hand-written assembly with gcc-optimized output, a UART device driver and a crypto service modular exponentiation routine. ; QC 20140905*