  Due to the wide adoption of IoT/CPS systems, embedded devices(IoT frontends)
become increasingly connected and mission-critical, which in turn has attracted
advanced attacks (e.g., control-flow hijacks and data-only attacks).
Unfortunately, IoT backends are unable to detect if such attacks have happened
while receiving data, service requests, or operation status from IoT devices.
As a result, currently, IoT backends are forced to blindly trust the IoT
devices that they interact with.
  To fill this void, we first formulate a new security property for embedded
devices, called "Operation Execution Integrity" or OEI. We then design and
build a system, OAT, that enables remote OEI attestation for ARM-based
bare-metal embedded devices. Our formulation of OEI captures the integrity of
both control flow and critical data involved in an operation execution.
Therefore, satisfying OEI entails that an operation execution is free of
unexpected control and data manipulations, which existing attestation methods
cannot check. Our design of OAT strikes a balance between prover's constraints
(embedded devices' limited computing power and storage) and verifier's
requirements(complete verifiability and forensic assistance). OAT uses a new
control-flow measurement scheme, which enables light-weight and space-efficient
collection of measurements (97% space reduction from the trace-based approach).
OAT performs the remote control-flow verification through abstract execution,
which is fast and deterministic. OAT also features lightweight integrity
checking for critical data (74% fewer instrumentation needed than previous
work). Our security analysis shows that OAT allows remote verifiers or IoT
backends to detect both control-flow hijacks and data-only attacks that affect
the execution of operations on IoT devices. In our evaluation using real
embedded programs, OAT incurs a runtime overhead of 2.7%.
