DIAT: Data Integrity Attestation for Resilient Collaboration of Autonomous Systems
Total Page:16
File Type:pdf, Size:1020Kb
DIAT: Data Integrity Attestation for Resilient Collaboration of Autonomous Systems Tigist Abera∗, Raad Bahmani∗, Ferdinand Brasser∗, Ahmad Ibrahim∗, Ahmad-Reza Sadeghi∗, and Matthias Schuntery ∗Technische Universität Darmstadt, Germany yIntel Labs, Portland, OR, U.S.A. {tigist.abera, raad.bahmani, ferdinand.brasser, ahmad.ibrahim, ahmad.sadeghi}@trust.tu-darmstadt.de, [email protected] Abstract—Networks of autonomous collaborative embedded correct and secure functioning of an autonomous collaborative systems are emerging in many application domains such as ve- system strongly relies on the integrity of the devices involved hicular ad-hoc networks, robotic factory workers, search/rescue in its operation. In particular, it must be ensured that the robots, delivery and search drones. To perform their collaborative tasks the involved devices exchange various types of information data (sensor, commands, status) on a device has not been such as sensor data, status information, and commands. For the maliciously modified before it is exchanged with any other correct operation of these complex systems each device must be device. able to verify that the data coming from other devices is correct Remote attestation is a powerful security service for veri- and has not been maliciously altered. fying the integrity of the software state of remote devices. It In this paper, we present DIAT – a novel approach that allows to verify the correctness of data by attesting the correct enables a remote entity, called verifier, to verify the integrity of generation as well as processing of data using control-flow the software running on an untrusted device, called the prover. attestation. DIAT enables devices in autonomous collaborative However, designing attestation schemes for autonomous col- networks to securely and efficiently interact, relying on a minimal laborative systems poses a number of challenges that cannot be TCB. It ensures that the data sent from one device to another met by the existing attestation solutions. Conventional remote device is not maliciously changed, neither during transport nor during generation or processing on the originating device. Data attestation solutions face two problems. They are static and exchanged between devices in the network is therefore authen- not scalable. ticated along with a proof of integrity of all software involved Static attestation approaches provide a proof that the soft- in its generation and processing. To enable this, the embedded ware initially loaded by the prover is unmodified [33], [25], devices’ software is decomposed into simple interacting modules [16], but cannot detect run-time attacks that exploit, for in- reducing the amount and complexity of software that needs to be attested, i.e., only those modules that process the data are stance, code-reuse techniques [34], [9], [17]. Recently progress relevant. As a proof of concept we implemented and evaluated has been made in tackling the static character of conventional our scheme DIAT on a state-of-the-art flight controller for attestation: The work in [2], [15], [36], [14] proposes control- drones. Furthermore, we evaluated our scheme in a simulation flow attestation of the code running on the prover device. This environment to demonstrate its scalability for large-scale systems. enables the verifier to detect run-time attacks based on code reuse. Enforcement techniques for control-flow correctness, I. INTRODUCTION such as control-flow integrity (CFI) [1], do not provide infor- mation about the executed control-flow path on collaborating Embedded systems have been omnipresent for many years devices. Control-flow attestation, however, gives the verifier mostly performing simple tasks in isolation. However, emerg- information about the executed control flow, which enables ing applications such as IoT (e.g., smart cities/homes/factories) the verifier to detect not only attacks that do not conform to and autonomous systems (e.g., cars, drones) require embedded a software program’s control-flow graph, like return-oriented systems to be highly connected and carry out autonomous programming (ROP) [34], but also a subset of attacks that lead as well as collaborative tasks. In autonomous collaborative to a valid but unintended program execution, i.e., non-control- system no central entity coordinates actions of the individual data attacks [11], [20]. Moreover, control-flow attestation (autonomous) devices. The involved devices interact with each enables the verifier to determine the appropriate reaction, in other and coordinate their actions by exchanging information, case of an attack. With CFI, a violating device would be such as sensor data, status information, and commands. The stopped and possibly crashed, which is particularly dangerous in safety critical applications. With control-flow attestation, in contrast, contextual reactions can be implemented, e.g., Network and Distributed Systems Security (NDSS) Symposium 2019 excluding a compromised device from the collaboration and 24-27 February 2019, San Diego, CA, USA the entire communication. ISBN 1-891562-55-X https://dx.doi.org/10.14722/ndss.2019.23420 Unfortunately, control-flow attestation solutions assume a www.ndss-symposium.org powerful verifier that can maintain and search in a very large database of execution paths which is very expensive for proposed solutions [2], [15]. autonomous systems where each embedded device must be • Implementation and Evaluation. We present a proof-of- able to act as both verifier and prover. concept implementation of our scheme based on Pixhawk The other limitation of conventional attestation solutions PX4 flight controller software.1 Our simulation results for lies in their scalability, i.e., they only allow for attesting autonomous networks show the scalability of DIAT. individual devices [33], [25], [16]. This problem was addressed Outline. We define our system model, present our assumptions by collective attestation of networks of connected devices [6], and list the requirements for a secure and efficient collec- [5], [21]. However, these schemes mainly assume a central tive run-time attestation scheme for autonomous collaborative verifier which is not available in autonomous networks where systems of embedded devices in Section II. We present the the verifiers are distributed. design of DIAT in Section III, describing the challenges and Goal and Contributions. We aim at tackling the above- explaining the high-level idea of our solution. We describe the mentioned problems and present DIAT – the first efficient and details of our solution in Section IV, present our implementa- secure collective run-time attestation scheme for autonomous tion and integration of DIAT into PX4 in Section V, and report collaborative systems of embedded devices. In particular, evaluation results in Section VI. In Section VII, we discuss the DIAT ensures on-device data integrity against malicious ma- security of DIAT, and in Section VIII we elaborate on security nipulation. In the context of data-flow integrity (DFI) the term architectures for embedded devices, which can be used as a data integrity is used to describe that all operations on data basis for DIAT. We overview related work in Section IX, and and variables obey a program’s data-flow graph (DFG). In conclude in Section X. contrast, in this work we focus on data that has been explicitly selected to be controlled. This data inherits its integrity from II. SYSTEM MODEL AND ASSUMPTIONS the integrity of the software modules that processed it. We We consider collaborative autonomous systems, i.e., net- provide a detailed comparison to related work on data integrity works of connected entities (devices) which interact with in Section IX. each other to perform one or more tasks. In such a network, We achieve efficiency by decomposing the underlying em- typically no central entity is needed to coordinate actions of bedded software into small interacting software modules and individual devices. However, a central entity may be used attest the control flow of those modules that are relevant for for maintenance reasons. The devices within the network are data exchanged in a given interaction. For example, consider mutually distrusting. Redundancy in the network allows the two drones that are interacting by exchanging their location overall system to tolerate the misbehavior of individual devices information (e.g., GPS coordinates). The software modules to that can be caused due to faults or by attacks on devices. be attested are those responsible for determining and possibly Redundancy is achieved, for instance, when the network is processing (altering) a drone’s GPS coordinates. The control- formed of homogeneous devices, so that one device can easily flow attestation guarantees that the data is only processed be replaced by another device in the network. In this work, for in a benign execution path. We implemented and evaluated brevity, we assume a homogeneous network. We stress that the DIAT on collaborating autonomous drones, demonstrating its focus of this paper is on how to detect the misbehavior of a effectiveness and efficiency. device in a collaborative autonomous system. How to react to In summary, DIAT provides end-to-end data integrity pro- an infected device is a complementary problem and depends tection for collaborative autonomous networks. This requires on the underlying security policy. tackling multiple challenges that constitute our individual Devices. Each individual device is self-contained and au- technical contributions: