A Proof-Of-Concept for Software-Only Attestation on Real-Time Systems Using Von Neumann Architecture and Dynamic Memory Allocation

Travis S. Potthoff

Abstract

To attest is to affirm to be correct, true, or genuine. Applied to software or executable code, attestation is the ability to affirm that the code actually being executed is the code that is expected, unmodified in any way and may be performed in either hardware or software. Current research into software-based attestation has explored the problem of static attestation, or verifying the software that the system loads at boot-time. For many systems, knowing that the systems initial state is valid is insufficient verification that the system is still in a good state is needed later and without bringing the system offline or interrupting critical processes. This thesis introduces a proof-of-concept method for performing attestation on real-time systems, named Dynamic Attestation of Run-Time Systems (DARTS). DARTS was designed to be sufficiently customizable in order to enable attestation without interfering with system operations. DARTS also has the ability to perform attestation on systems built upon Von Neumann architecture using dynamic memory allocation. A key contribution of this work is that the entire attestation process is performed wholly in software on a real-time system without impacting the operation of potentially critical processes.