diff --git a/articles/ros2_threat_model.md b/articles/ros2_threat_model.md index de3765154..46722558c 100644 --- a/articles/ros2_threat_model.md +++ b/articles/ros2_threat_model.md @@ -5,12 +5,19 @@ permalink: articles/ros2_threat_model.html abstract: This document describes security concerns robotic systems built using ROS 2 may face. - The first section describes potential threats to ROS 2 systems while the + The first section describes potential threats to ROS 2 systems. The second section describes potential attacks and mitigations on a reference - platform (TurtleBot 3). + platform (TurtleBot 3). The third covers potential attacks, mitigations and + some preliminary results in an industrial reference platform (MARA modular robot). author: > [Thomas Moulard](https://github.com/thomas-moulard), [Juan Hortala](https://github.com/juanrh) + [Xabi Perez](https://github.com/XabierPB) + [Gorka Olalde](https://github.com/olaldiko) + [Borja Erice](https://github.com/borkenerice) + [Odei Olalde](https://github.com/o-olalde) + [David Mayoral](https://github.com/dmayoral) + published: true categories: Security --- @@ -44,19 +51,78 @@ This is a **DRAFT DOCUMENT**. +## Table of Contents + +- [{{ page.title }}](#pagetitle) + - [Table of Contents](#table-of-contents) + - [Document Scope](#document-scope) + - [Robotic Systems Threats Overview](#robotic-systems-threats-overview) + - [Defining Robotic Systems Threats](#defining-robotic-systems-threats) + - [Robot Application Actors, Assets, and Entry Points](#robot-application-actors-assets-and-entry-points) + - [Robot Application Actors](#robot-application-actors) + - [Assets](#assets) + - [Entry Points](#entry-points) + - [Robot Application Components and Trust Boundaries](#robot-application-components-and-trust-boundaries) + - [Threat Analysis and Modeling](#threat-analysis-and-modeling) + - [Including a new robot into the threat model](#including-a-new-robot-into-the-threat-model) + - [Threat Analysis for the `TurtleBot 3` Robotic Platform](#threat-analysis-for-the-turtlebot-3-robotic-platform) + - [System description](#system-description) + - [Architecture Dataflow diagram](#architecture-dataflow-diagram) + - [Hardware](#hardware) + - [Processes](#processes) + - [Software Dependencies](#software-dependencies) + - [External Actors](#external-actors) + - [Robot Data Assets](#robot-data-assets) + - [Entry points](#entry-points) + - [Use case scenarios](#use-case-scenarios) + - [Threat model](#threat-model) + - [Threat Diagram: An attacker deploys a malicious node on the robot](#threat-diagram-an-attacker-deploys-a-malicious-node-on-the-robot) + - [Attack Tree](#attack-tree) + - [Threat Model Validation Strategy](#threat-model-validation-strategy) + - [Threat Analysis for the `MARA` Robotic Platform](#threat-analysis-for-the-mara-robotic-platform) + - [System description](#system-description-1) + - [Architecture Dataflow diagram](#architecture-dataflow-diagram-1) + - [Assets](#assets-1) + - [Hardware](#hardware-1) + - [Network](#network) + - [Software processes](#software-processes) + - [Software dependencies](#software-dependencies) + - [External Actors](#external-actors-1) + - [Robot Data assets](#robot-data-assets) + - [Use case scenarios](#use-case-scenarios-1) + - [Entry points](#entry-points-1) + - [Trust Boundaries for MARA in `pick & place` application](#trust-boundaries-for-mara-in-pick--place-application) + - [Threat Model](#threat-model) + - [Attack Trees](#attack-trees) + - [Physical vector attack tree](#physical-vector-attack-tree) + - [ROS2 API vector attack tree](#ros2-api-vector-attack-tree) + - [H-ROS API vector attack tree](#h-ros-api-vector-attack-tree) + - [Code repository compromise vector attack tree](#code-repository-compromise-vector-attack-tree) + - [Threat Model Validation Strategy](#threat-model-validation-strategy-1) + - [Security Assessment preliminary results](#security-assessment-preliminary-results) + - [Introduction](#introduction) + - [Results](#results) + - [Findings](#findings) + - [References](#references) + ## Document Scope This document describes potential threats for ROS 2 robotic systems. The document is divided into two parts: 1. Robotic Systems Threats Overview -1. Threat Analysis for the TurtleBot 3 Robotic Platform +2. Threat Analysis for the TurtleBot 3 Robotic Platform +3. Threat Analysis for the MARA Robotic Platform The first section lists and describes threats from a theoretical point of view. Explanations in this section should hold for any robot built using a component-oriented architecture. The second section instantiates those threats on a widely-available reference platform, the TurtleBot 3. Mitigating threats on this platform enables us to demonstrate the viability of our recommendations. +The third section instantiates those same threats on a widely-available industrial +reference platform, the MARA modular robot. Similarly, mitigating threats on this +platform enables us to demonstrate the viability of our recommendations. A section to +treat mitigated vulnerabilities is also disclosed for the MARA robot ## Robotic Systems Threats Overview @@ -187,6 +253,10 @@ attack). Physical Safety The robotic system must not harm its users or environment. + + Robot Integrity + The robotic system must not damage itself. + Robot Actuators Command Integrity Unallowed actors should not be able to control the robot actuators. @@ -781,14 +851,123 @@ Stephen, Damon McCoy, Brian Kantor, Danny Anderson, Hovav Shacham, Stefan Savage, Karl Koscher, Alexei Czeskis, Franziska Roesner, and Tadayoshi Kohno. “Comprehensive Experimental Analyses of Automotive Attack Surfaces.” In Proceedings of the 20th USENIX Conference on Security, 6–6. SEC’11. -Berkeley, CA, USA: USENIX Association, 2011. - - - - Embedded / Software / OS & Kernel - - - An attacker compromises the real-time clock to disrupt the kernel RT +Berkeley, CA, USA: USENIX Association, 2011. + + + Embedded / Software / Communication / Remote Application Interface + + + An attacker gains unauthenticated access to the remote application interface. + ✓ + ✓ + ✘ + ✓ + ✓ + ▲ + 3 + 3 + 1 + 1 + 3 + 11 + ✓ + ✓ + ✓ + ✓ + ✘ + ✘ + ✘ + ✓ + ✘ + ✓ + ✓ + ✓ + ✓ + ✓ + + + + + + + An attacker could eavesdrop communications to the Robot’s remote application interface. + ✘ + ✘ + ✘ + ✓ + ✘ + ✘ + 1 + 1 + 1 + 1 + 3 + 7 + ✘ + ✓ + ✘ + ✘ + ✘ + ✘ + ✘ + ✘ + ✘ + ✘ + ✘ + ✘ + ✘ + ✓ + + + + + + + + An attacker could alter data sent to the Robot’s remote application interface. + ✓ + ✓ + ✘ + ✓ + ✓ + ▲ + 3 + 3 + 1 + 1 + 3 + 11 + ✓ + ✓ + ✓ + ✓ + ✘ + ✘ + ✘ + ✓ + ✘ + ✓ + ✓ + ✓ + ✓ + ✓ + + + + + + + Embedded / Software / OS & Kernel + + + An attacker compromises the real-time clock to disrupt the kernel RT scheduling guarantees. ✘ ✘ @@ -1131,39 +1310,41 @@ users and/or components. Ahmad Yousef, Khalil, Anas AlMajali, Salah Ghalyon, Waleed Dweik, and Bassam Mohd. “Analyzing Cyber-Physical Threats on Robotic Platforms.” Sensors 18, no. 5 (May 21, -2018): 1643. - - - - An attacker accesses configuration values without authorization. - ✘ - ✘ - ✓ - ✘ - ✘ - ✘ - 1 - 3 - 3 - 3 - 3 - 13 - ✘ - ✘ - ✘ - ✘ - ✘ - ✘ - ✓ - ✘ - ✘ - ✘ - ✘ - ✘ - -