Ausnutzung von Schwachstellen
Data Distribution Service: Nicht immer sicher
Das Data Distribution Service (DDS)-Protokoll wird seit mehr als einem Jahrzehnt verwendet, ist aber selbst vielen Branchenexperten nicht bekannt. Wir haben diese wichtige Middleware auf Lücken untersucht – und sind leider fündig geworden.
Das Data Distribution Service (DDS)-Protokoll wird seit mehr als einem Jahrzehnt verwendet, ist aber selbst vielen Branchenexperten nicht bekannt. Die Middleware-Technologie ist für den Betrieb von Milliarden öffentlicher und privater Geräte und Mechanismen verantwortlich. DDS ist integraler Bestandteil eingebetteter Systeme, die eine Echtzeitkommunikation von Maschine zu Maschine erfordern, und ermöglicht eine zuverlässige Kommunikationsebene zwischen Sensoren, Steuerungen und Aktoren. Die Technologie wird am Beginn der Lieferkette als eine Schicht eingesetzt, die Anwendungen, Sensoren und Aktoren verbindet, steuert und überwacht, um Interoperabilität und Fehlertoleranz zu gewährleisten. Sie wird in verschiedenen kritischen Sektoren wie dem Gesundheitswesen, dem Transportwesen, dem industriellen Internet der Dinge (IIoT), der Robotik, der Luft- und Raumfahrt und dem Militär verwendet. Angesichts dieser Faktoren ist die Middleware ein attraktives Ziel für Angreifer.
Bei der Analyse der Software fanden wir mehrere Sicherheitsschwachstellen. Wir listen 13 identifizierte Sicherheitslücken auf, denen neue CVE-IDs zugewiesen wurden. Sie sind in den sechs gängigsten DDS-Implementierungen vorhanden und betreffen hauptsächlich die Bereitstellung.
Neue Schwachstellen
Unsere Untersuchung schloss sechs weit verbreitete DDS-Implementierungen mit ein. Die Auswahl erfolgte auf der Grundlage der Anzahl der Nutzer und Kunden in den kritischen Sektoren weltweit. Zudem untersuchten wir auch das Echtzeit-Publishing-Subscribe-Paket (RTPS) jeder Implementierung, da DDS von seinem eigenen Standardprotokoll der unteren Schicht abhängig ist. Auch das Robot Operating System 2 (ROS 2) kam unter die Lupe, da es DDS als Standard-Betriebssystem-Middleware für alle Robotik- und Automatisierungsanwendungen einsetzt. Angesichts der Stellung des Dienstes als Sicherheits- und Betriebsbaustein wirken sich alle DDS betreffenden Schwachstellen auch auf den Rest des Software-Stacks aus, z. B. RTPS und alle ROS 2-Instanzen.
Product Name | Developer | HQ Region | Open Source | Core Language | Year Developed |
---|---|---|---|---|---|
Fast-DDS | eProsima | EMEA | Apache License 2.0 | C++ | 2014 |
Cyclone DDS | Eclipse Foundation project, driven by ADLINK | EMEA | Eclipse Public License 2.0 and Eclipse Development License 1.0 | C | 2011 |
OpenDDS | OCI | NABU | Custom | C++ | 2005 |
Connext DDS | RTI | NABU | Extensions are open source | C++ | 2005 (NDDS – 1995) |
CoreDX DDS | TwinOaks | NABU | Not open source | C | 2009 |
Gurum DDS | GurumNetworks | APAC | Not open source | C |
Tabelle 1. Liste aller für die Untersuchung analysierter DDS-Implementierungen
MITRE ATT&CK ICS | Attack Surface | Vector | CVE | Scope | CVSS | Weaknesses (CWE) |
---|---|---|---|---|---|---|
T0804: Brute Force I/O T0814: DoS T0827: Loss of Control T0880: Loss of Safety T0802: Automated Collection T0846: Remote System Discovery T0856: Spoof of Reporting Message |
Network | RTPS discovery packet | CVE-2021-38425 | Fast-DDS, ROS 2 | 7.5 | CWE-406: Network amplification |
CVE-2021-38429 | OpenDDS, ROS 2 | 7.5 | ||||
CVE-2021-38487 | Connext DDS, ROS 2 | 7.5 | ||||
CVE-2021-43547 | CoreDX DDS, ROS 2 | 7.5 | ||||
Malformed RTPS packet | CVE-2021-38447 | OpenDDS, ROS 2 | 8.6 | CWE-405: Network amplification | ||
CVE-2021-38445 | OpenDDS, ROS 2 | 7.0 | CWE-130: Improper handling of length | |||
CVE-2021-38423 | Gurum DDS, ROS 2 | 8.6 | CWE-131: Incorrect calculation of buffer size | |||
CVE-2021-38435 | Connext DDS, ROS 2 | 8.6 | ||||
CVE-2021-38439 | Gurum DDS, ROS 2 | 8.6 | CWE-122: Heap-based buffer overflow | |||
T0862: Supply Chain Compromise T0839: Module Firmware T0873: Project File Infection |
Configuration | XML file | CVE-2021-38427 | Connext DDS, ROS 2 | 6.6 | CWE-121: Stack-based buffer overflow |
CVE-2021-38433 | Connext DDS, ROS 2 | 6.6 | ||||
CVE-2021-38443 | Cyclone DDS, ROS 2 | 6.6 | CWE-228: Improper handling of syntactically invalid structure | |||
CVE-2021-38441 | Cyclone DDS, ROS 2 | 6.6 | CWE-123: Write-what-where condition |
Tabelle 2. Zusammenfassung unserer Ergebnisse für die wichtigsten DDS-Implementierungen und Standardspezifikationen
Nutzt ein Angreifer die Sicherheitslücken auf der Netzwerk-Angriffsfläche aus, kann er Aktionen wie Spoofing, Erkundung, automatische Datenerfassung und Denial-of-Service (DoS) betreiben und so die Kontrolle über ein gefährdetes System übernehmen. Die Schwachstellen, die wir auf der Angriffsfläche der Konfiguration gefunden haben, können dazu missbraucht werden, um den DDS-Entwickler oder Systemintegratoren zu schädigen und so möglicherweise die Integrität der Software-Lieferkette zu gefährden.
Schwachstellen in der Standardspezifikation
Das integrierte RTPS-Discovery-Protokoll wird in Peer-to-Peer-Netzen verwendet, um den Standort jedes Teilnehmers zu ermitteln (z. B. IP-Adresse und UDP/TCP-Port oder Offset im gemeinsamen Speicher). Die Tatsache, dass das Protokoll viele Details preisgibt und dass es von jedem kontaktierten Teilnehmer eine Antwort erwartet, gepaart mit leicht zu fälschenden Transportprotokollen wie dem User Datagram Protocol (UDP), machen RTPS anfällig für Netzwerkspiegelungen und -verstärkungen. Die Vertraulichkeit und Authentizität dieser Daten ist selbst mit Hilfe von DDS Security nicht gewährleistet, so dass es einem Angreifer möglich ist, die Informationen zu fälschen. Die Netzspiegelungs- und -verstärkungsschwachstelle mit Bandbreitenverstärkungsfaktor (BAF) wird als Verhältnis zwischen ausgehendem und reflektiertem Verkehr berechnet. Die Tabelle mit den Einzelheiten ist im Originalbeitrag enthalten.
Ein Angreifer kann diese integrierte Discovery-Funktion für die Remote-Discovery und das Fingerprinting missbrauchen. Wir schickten RPTS Discovery Probes an den gesamten IPv4-Raum (mit Ausnahme der No-Scan-Subnetze) und erhielten Antworten von 643 Hosts (ohne offensichtliche Honeypots). Bemerkenswert ist, dass die Hosts nie aufhörten, Daten an uns zu senden, selbst wenn wir ihnen nur ein einziges 288-Byte-Paket schickten.
Die von uns gefundene neue Sicherheitslücke, die das Netzwerk spiegelt, ist nicht das einzige Beispiel für eine Sicherheitslücke auf Spezifikationsebene. Sicherheitsforscher verschiedener Organisationen haben bereits 2015 Angriffsszenarien dokumentiert und erstellt, die diese Schwachstellen ausnutzen.
Fazit
Ordnungsgemäße Supply-Chain-Management-Prozesse ermöglichen die Kontextualisierung, Verfolgung und Überwachung neuer Schwachstellen innerhalb verschiedener nachgelagerter Software mit Hilfe einer spezifischen Bibliothek wie DDS. Im Fall dieser Middleware-Technologie ist DDS nur eine der vielen kritischen Bibliotheken, die in eingebetteten Anwendungen verwendet werden und die man leicht aus den Augen verlieren kann. Unser Whitepaper „A Security Analysis of the Data Distribution Service (DDS) Protocol“ enthält bewährte Verfahren und Empfehlungen zur kurz- und langfristigen Gefahrenabwehr sowie Überlegungen zur Einführung eines Shift-Left-Ansatzes.
Wir bedanken uns auch für die Kooperation und die engagierte Reaktion einiger Anbieter wie ADLINK, die wir sie mit unseren Erkenntnissen konfrontiert haben. Wir ermutigen weitere DDS-Forscher, -Benutzer und -Implementierer, das DDS-Ökosystem weiter zu erforschen und das Sicherheitsbewusstsein zu fördern.