TRACES: TEE-based Runtime Auditing for Commodity Embedded Systems
<|reference_start|>TRACES: TEE-based Runtime Auditing for Commodity Embedded Systems: Control Flow Attestation (CFA) offers a means to detect control flow hijacking attacks on remote devices, enabling verification of their runtime trustworthiness. CFA generates a trace (CFLog) containing the destination of all branching instructions executed. This allows a remote Verifier (Vrf) to inspect the execution control flow on a potentially compromised Prover (Prv) before trusting that a value/action was correctly produced/performed by Prv. However, while CFA can be used to detect runtime compromises, it cannot guarantee the eventual delivery of the execution evidence (CFLog) to Vrf. In turn, a compromised Prv may refuse to send CFLog to Vrf, preventing its analysis to determine the exploit's root cause and appropriate remediation actions.   In this work, we propose TRACES: TEE-based Runtime Auditing for Commodity Embedded Systems. TRACES guarantees reliable delivery of periodic runtime reports even when Prv is compromised. This enables secure runtime auditing in addition to best-effort delivery of evidence in CFA. TRACES also supports a guaranteed remediation phase, triggered upon compromise detection to ensure that identified runtime vulnerabilities can be reliably patched. To the best of our knowledge, TRACES is the first system to provide this functionality on commodity devices (i.e., without requiring custom hardware modifications). To that end, TRACES leverages support from the ARM TrustZone-M Trusted Execution Environment (TEE). To assess practicality, we implement and evaluate a fully functional (open-source) prototype of TRACES atop the commodity ARM Cortex-M33 micro-controller unit.<|reference_end|>
@article{caulfield2024traces:,
    title={TRACES: TEE-based Runtime Auditing for Commodity Embedded Systems},
    author={Adam Caulfield, Antonio Joia Neto, Norrathep Rattanavipanon, Ivan De
  Oliveira Nunes},
    journal={arXiv preprint arXiv:2409.19125},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.19125},
    primaryClass={cs.CR}
}