  Verifying integrity of software execution in low-end micro-controller units
(MCUs) is a well-known open problem. The central challenge is how to securely
detect software exploits with minimal overhead, since these MCUs are designed
for low cost, low energy and small size. Some recent work yielded inexpensive
hardware/software co-designs for remotely verifying code and execution
integrity. In particular, a means of detecting unauthorized code modifications
and control-flow attacks were proposed, referred to as Remote Attestation (RA)
and Control-Flow Attestation (CFA), respectively. Despite this progress,
detection of data-only attacks remains elusive. Such attacks exploit software
vulnerabilities to corrupt intermediate computation results stored in data
memory, changing neither the program code nor its control flow. Motivated by
lack of any current techniques (for low-end MCUs) that detect these attacks, in
this paper we propose, implement and evaluate DIALED, the first Data-Flow
Attestation (DFA) technique applicable to the most resource-constrained
embedded devices (e.g., TI MSP430). DIALED works in tandem with a companion CFA
scheme to detect all (currently known) types of runtime software exploits at
fairly low cost.
