Open Operational Technology Testing Guide
Ein standardisierter Security-Testing-Guide für Operational Technology — entwickelt von AWARE7, offen für die Security-Community.
Einleitung
Ein Security Testing Guide ist ein unverzichtbares Werkzeug für den Prozess zur Qualitätssicherung, insbesondere in Bezug auf IT-Sicherheit. Durch sorgfältiges Testen können Schwachstellen und Sicherheitslücken in Produkten identifiziert werden, bevor sie zu einem Sicherheitsrisiko für Endanwender werden. Ein standardisierter Security Testing Guide bietet dabei eine umfassende und praxisnahe Anleitung zum Testen von Produkten und ist somit ein wichtiger Bestandteil eines erfolgreichen Sicherheitskonzepts. Mit dem Open Operational Technology Testing Guide (OOTTG) wird ein solcher Standard für Security Testing vorgestellt, der sich speziell auf die Identifikation von Sicherheitslücken in OT konzentriert.
Zur Operational Technology zählen Software und Hardware die zur Überwachung und Steuerung von industriellen Anlagen oder physischer Maschinen und ihrer Prozesse dienen. In Abgrenzung zur IT, welche hauptsächlich mit Software und Daten arbeitet, nutzt die OT Hardware- und Software-Systeme, um Prozesse in der physischen Welt zu steuern und zu automatisieren. In der OT geht es darum, reale Prozesse und Maschinen zu überwachen und zu steuern, während die IT sich auf die Verwaltung und Analyse von Daten und Informationen konzentriert. Angesichts der Industrie 4.0 und dem industriellen Internet der Dinge (IIoT) wird die Unterscheidung von OT- und IT-Systemen jedoch immer schwieriger und erfordert eine integrierte und ganzheitliche Betrachtung der Prozesse und Systeme.
Im Zuge dieser Entwicklung werden (vernetzte) OT-Systeme immer anfälliger für Cyberangriffe. Ein umfassendes Sicherheitskonzept, das speziell auf die Anforderungen von OT-Systemen ausgerichtet ist, ist daher unverzichtbar, um Angriffe zu verhindern und die Zuverlässigkeit von Industrie- und Produktionsprozessen sicherzustellen. Der OOTTG stellt einen zuverlässigen Prüfplan für die Überprüfung eines solchen Sicherheitskonzeptes bereit.
Modellierung
Bevor ein Penetrationstest gestartet wird, ist eine korrekte Modellierung notwendig. Diese gibt den Rahmen vor, an den sich die Tester halten und entspricht den Wünschen der Kunden. Die Modellierung eines OT-Penetrationstests umfasst die Identifizierung der Informationsbasis, die Aggressivität des Tests, die Zugangsmöglichkeiten und die Testkanäle.
Informationsbasis
Alle verfügbaren Informationen über das zu testende System, einschließlich Architektur, Betriebssysteme, Netzwerkstruktur und Anwendungen. Black-Box (keine Infos), Grey-Box (teilweise) oder White-Box (vollständig).
Aggressivität
Grad der Intensität: Passiv, Vorsichtig, Abwägend oder Aggressiv. Höhere Aggressivität liefert umfassendere Ergebnisse, erhöht aber das Risiko von Schäden und Ausfällen.
Zugang
Innen- oder Außentäter. Bei einem Test von innen müssen keine Zugangskontrollen überwunden werden. Bei einem Test von außen müssen Firewalls oder Gebäudeschließeinrichtungen überwunden werden.
Testkanäle
Art der Angriffsdurchführung: Netzwerktests überprüfen Protokolle, Bus-Tests evaluieren die Kommunikation zwischen Komponenten, Firmware-Tests suchen Schwachstellen, physische Tests decken Schwachstellen durch physischen Zugang auf.
Phasen eines Penetrationstests
- Beauftragung: Scope abstecken, Vereinbarungen treffen, Erwartungshaltungen anpassen, Zeitraum der Untersuchung festlegen und Zielsysteme definieren.
- Informationsbeschaffung: Möglichst viele Informationen über die Zielsysteme sammeln — sowohl öffentlich zugängliche als auch interne Informationen wie Netzwerkpläne oder Zugangsdaten von Mitarbeitern.
- Enumerierung: Die gesammelten Informationen nutzen, um eine möglichst vollständige Liste der gefundenen Systeme, Anwendungen oder Dienste zu erstellen.
- Identifikation: Spezifische Informationen über das Zielsystem sammeln und Schwachstellen identifizieren.
- Exploitation: Gezielt die zuvor identifizierten Schwachstellen ausnutzen, um tatsächlich in das System einzudringen und Zugriff auf geschützte Daten und Ressourcen zu erlangen.
- Post-Exploitation: Zugriff auf weitere Ressourcen innerhalb des Systems erlangen und sich innerhalb des Zielsystems bewegen. Möglicherweise wird die Kontrolle über das gesamte System und dazugehörige Netzwerke erlangt.
- Reporting: Alle Informationen und Schwachstellen verständlich an den Auftraggeber weitergeben, sodass die identifizierten Schwachstellen behoben werden können.
Katalog Firmware
Dieser Katalog bezieht sich auf Test-Module, welche speziell für die Firmware von OT-Geräten angewendet werden. Dies umfasst die Eigenschaften der Firmware-Images, aber auch die Prozesse von der Installation der Firmware, Updates der Firmware und der Betrieb der Firmware.
Es können unverschlüsselte Firmware-Images erlangt werden. Diese können die Manipulation des gesamten Systems ermöglichen. Durch den Zugriff können sensible Informationen, wie zum Beispiel Passwörter ausgelesen werden. Gewonnene Informationen können unter Umständen weitere Angriffe ermöglichen.
Testvorgehen
Es wird überprüft, ob Informationen aus einem vorliegenden Firmware-Image extrahiert werden können. Dafür können Tools wie firmwalker, binwalk, hexdump und strings verwendet werden. Unter Umständen ist es möglich, den gesamten Inhalt der Firmware zu extrahieren.
Quellen
Bei der Installation von Firmware-Images wird die Integrität nicht ausreichend überprüft. Dies kann die Manipulation des gesamten Systems durch Installation von veränderten Firmware-Images ermöglichen. Abhängig von der Quelle der Firmware-Updates können Angriffe auch extern durchgeführt werden, wenn ein Angreifer zum Beispiel Zugriff auf den Update-Server erlangt.
Testvorgehen
Es werden gezielte Änderungen an einem Firmware-Image vorgenommen und geprüft, ob die Installation auf einem Gerät möglich ist. Zusätzlich kann der Netzwerk-Verkehr untersucht werden, um die Kommunikation mit Update-Servern festzustellen.
Die Firmware beinhaltet veraltete Softwareversionen, die unter Umständen für bekannte Sicherheitslücken anfällig ist. Durch die vorhandenen Sicherheitslücken kann ein externer Angriff ermöglicht werden.
Testvorgehen
Die Existenz von bekannten Schwachstellen kann anhand der verwendeten Softwareversionen festgestellt werden. Durch Extrahieren von Firmware-Images können genaue Informationen über die verwendeten Softwareversionen erlangt werden. Wird Open-Source-Software verwendet, können Versionsinformationen über Lizenzen oder veröffentlichten Source-Code bestimmt werden.
Die Firmware enthält Standardzugangsdaten, welche bei der Installation oder Inbetriebnahme nicht geändert oder gelöscht werden. Es kann vorkommen, dass die Existenz von Standardzugangsdaten dem Betreiber nicht bewusst ist.
Testvorgehen
Standardzugangsdaten können bei der Untersuchung oder Extraktion des Firmware-Images festgestellt werden. Zusätzlich können Login-Möglichkeiten auf dem Gerät oder über das Netzwerk auf bekannte Zugangsdaten getestet werden.
Es wird kein ausreichender Schutz vor der Installation von veralteten Firmware-Images implementiert. Durch physikalischen Zugriff auf das Gerät oder Manipulation des Update-Servers könnte es einem Angreifer möglich sein, veraltete Firmware-Images mit bekannten Sicherheitslücken zu installieren.
Testvorgehen
Es wird getestet, ob veraltete Firmware-Images auf dem Gerät installiert werden können. Wenn das Gerät einen Update-Server nutzt, muss unter Umständen die Netzwerk-Kommunikation manipuliert werden.
Eine unsichere Implementierung des Update-Prozesses ermöglicht einem Angreifer, Schadcode auf dem Gerät auszuführen. Durch die Verwendung von Update-Servern könnte dieser Angriff auch extern durchgeführt werden.
Testvorgehen
Wurde in einem vorherigen Test bereits ein Firmware-Image extrahiert, werden Programmdateien der Firmware, welche im Zusammenhang mit dem Update-Prozess stehen, untersucht. Dabei sollte der Fokus besonders auf Funktionen gelegt werden, welche Inhalte aus dem Update-Image nicht ausreichend prüfen.
Die Firmware enthält Debug-Funktionalitäten, welche einem Angreifer sensible Informationen über das System liefern. Unter Umständen können durch die Debug-Funktionen Manipulationen am Gerät vorgenommen werden oder vollständiger Zugriff auf das Gerät ermöglicht werden.
Testvorgehen
Das Firmware-Image wird gezielt auf Debug-Funktionalitäten untersucht. Zusätzlich kann das Gerät während des Betriebs auf offene bekannte Debug-Ports untersucht werden, welche ein Hinweis auf die Existenz von Debug-Funktionalitäten geben können.
Weitere Quellen
Tools
Webseiten
Katalog Physikalisch
Physikalische Angriffe zielen darauf ab, die Hardware selbst zu manipulieren, um unautorisierten Zugriff auf das System oder sensible Informationen zu erlangen. Typische physikalische Angriffe umfassen Tampering, Side-Channel-Angriffe oder Fault-Injection.
Zugriff über die JTAG Schnittstelle als Administrator auf das System oder eine einzelne Komponente ermöglichen ein umfangreiches Debugging und ermöglicht so ein Umgehen von implementierten Sicherheitsmaßnahmen. Diese Schnittstellen werden meist während der Entwicklung zur Fehlerbehebung benötigt, aber erfüllen meist keine Funktionalität in Produktion, weswegen diese deaktiviert oder verschlüsselt werden sollten.
Testvorgehen
Um die Sicherheit der JTAG Schnittstellen zu überprüfen, müssen diese zunächst identifiziert werden. Hierzu kann das Tool JTAGulator genutzt werden. Sind diese Schnittstellen identifiziert, können mit JTAGenum die verwendeten Befehle enumeriert und gegebenenfalls ausgenutzt werden.
Side-Channel-Angriffe zielen darauf ab, geheime Informationen wie Passwörter oder Schlüssel durch beispielsweise Analyse des Energieverbrauchs, der elektromagnetischen Strahlung oder des Timing-Verhaltens zu ermitteln. Es ist wichtig, dass OT-Systeme angemessen gegen solche Angriffe gesichert werden, um unautorisierten Zugriff oder Informationsfluss zu verhindern.
Testvorgehen
Side-Channel-Angriffe sind in der Praxis schwierig durchzuführen und größtenteils zeitaufwändig. Darüber hinaus werden zur Verbrauchs- oder elektromagnetischen Abstrahlungsmessung spezielle Geräte benötigt. Zur Hilfestellung kann unter anderem das Tool ChipWhisperer genutzt werden.
Fault Injection-Attacken manipulieren die physische Umgebung eines Geräts, um unerwartete Fehler zu verursachen, die dazu führen können, dass das Gerät sich anders verhält als vorgesehen. Hierbei können Angreifer beispielsweise Stromausfälle oder elektromagnetische Interferenzen auslösen, um fehlerhafte Ergebnisse zu erzielen.
Testvorgehen
Fault Injection Attacks gehen meist mit Side-Channel Attacks einher und sind daher meist genauso technisch aufwendig durchzuführen. Unter anderem kann dazu das Tool ChipSHOUTER genutzt werden.
Angriffe auf GPIO-Pins zielen darauf ab, diese zu manipulieren, um unautorisierten Zugriff oder Kontrolle über OT-Systeme zu erlangen. Es ist wichtig, dass die GPIO-Pins in OT-Systemen angemessen abgesichert werden, um unautorisierte Manipulationen zu verhindern. Wenn diese Schnittstellen keine Funktionalität in Produktion besitzen, dann sollten diese deaktiviert werden.
Testvorgehen
Da GPIO-Pins von der Hardware selbst verwaltet werden, ist an dieser Stelle ein individuelles Vorgehen gefordert. Über bekannte Mikrocontroller wie einem Raspberry Pi können die GPIO-Pins angesprochen und ausgelesen werden.
UART Schnittstellen werden zur seriellen Kommunikation zwischen Systemen verwendet und können, wenn diese nicht abgesichert sind, administrativen Zugang zu dem Gerät liefern. Ähnlich zu JTAG wird UART überwiegend zur Fehlerbehebung während der Entwicklung verwendet und erfüllt in Produktion keinen aktiven Nutzen.
Testvorgehen
UART erfordert ein ebenso individuelles Vorgehen wie bei GPIO-Schnittstellen. Eine Hilfestellung können dabei die Scripte des UART Hacking Tool liefern.
Viele Mikrocontroller erlauben In-System-Programmierung über SPI oder auch JTAG. Angriffe auf das SPI-Interface können dazu genutzt werden, unautorisierten Zugriff auf das System zu erlangen oder Daten auszulesen. Nach der initialen Konfiguration sollte die Schnittstelle angemessen verschlüsselt und gegen unautorisierte Zugriffe abgesichert werden.
Testvorgehen
Für SPI Schnittstellen gilt ein ähnliches Vorgehen wie bei den zuvor genannten Schnittstellen. Ausführliches individuelles Testen ist notwendig und für verschiedene Szenarien kann das SPITool genutzt werden.
Tampering bezieht sich auf den physischen Eingriff in Hardware-Komponenten, z.B. das Öffnen des Geräts oder das Entfernen von Chips, um sensible Daten wie Passwörter oder Schlüssel zu extrahieren oder das Gerät zu manipulieren. Unter anderem können auch Geräte, die der Angreifer kontrolliert, in Systeme eingeschleust werden und so weitere Angriffe ermöglichen.
Testvorgehen
Zunächst kann eine physische Untersuchung der Hardware-Komponenten durchgeführt werden. Hierbei kann beispielsweise die Überprüfung von Siegeln, Schrauben und anderen Verschlüssen erfolgen, um Anzeichen von Manipulationen zu erkennen. Außerdem kann eigene Hardware zwischen Komponenten platziert werden, um weitere Angriffe vorzubereiten.
DMA ermöglicht es Daten direkt zwischen Speichergeräten und Peripheriegeräten zu übertragen, ohne dass dabei die CPU beteiligt ist. DMA kann jedoch auch genutzt werden, um unautorisierten Zugriff auf den Speicher zu erlangen oder sensible Informationen zu stehlen.
Testvorgehen
Zunächst muss eine physische Untersuchung der Hardware-Komponenten durchgeführt werden, um mögliche Schwachstellen zu erkennen. Hierbei kann beispielsweise die Überprüfung von Zugriffskontrollmechanismen und anderen Schutzvorrichtungen erfolgen. Wenn DMA über PCIe angreifbar ist, kann mit Hilfe des Tools PCILeech der Speicher ausgelesen werden.
Quellen
Weitere Quellen
Tools
Katalog Netzwerk
Dieser Katalog beinhaltet Test-Module und Angriffe, die über das Netzwerk vorgenommen werden können — auf Ethernet, IP oder einem Transportprotokoll wie TCP oder UDP bis hin zu Anwendungsprotokollen wie SSH, telnet oder HTTP.
Es wird veraltete Software auf dem untersuchten System verwendet. Für die veraltete Software sind unter Umständen Schwachstellen und Angriffe bekannt.
Testvorgehen
Scannen und Fingerprinting von Servern und Schnittstellen, durch teilweise ungültige Anfragen. Auslesen des zurückgegebenen Inhalts, der Metadaten, Banner, Header, und Fehlermeldungen.
Es werden administrative Interfaces identifiziert, welche nicht oder nur gering gesichert sind. Dies kann eine Übernahme des Systems bedeuten.
Testvorgehen
Überprüfen, ob bei gefundenen Services oder Schnittstellen ein Admin-Panel vorhanden ist.
Quellen
Laufende Services offenbaren unnötig viele Informationen bezüglich eingesetzter Software, Bibliotheken und deren Versionen. Dies kann in Headern, Bannern, Fehlermeldungen oder durch bestimmte Netzwerkprotokolle passieren.
Testvorgehen
Scannen und Fingerprinting von Servern und Schnittstellen, durch teilweise ungültige Anfragen. Auslesen des zurückgegebenen Inhalts, der Metadaten, Banner, Header, und Fehlermeldungen.
Quellen
Bei auftretenden Fehlern werden die Fehlermeldungen direkt an den Anwender zurückgegeben. Durch Fehlermeldungen in Form von Stack-Traces und Debugging-Informationen kann ein Angreifer ein tiefgehendes Verständnis einer Anwendung und eines Servers erlangen.
Testvorgehen
Senden von ungültigen Paketen, Headern und Einsatz von falschen Versionen. Hervorrufen von Randbedingungen: ungültiger Typ (Zahlen statt Zeichen), leere oder lange Eingaben, binäre Eingaben und Sonderzeichen.
Quellen
Auf dem System laufende Dienste erfordern keine Authentifizierung für Funktionen oder einen Authentifizierungsmechanismus mit voreingestellten Zugangsdaten oder schwachen Kennwörtern.
Testvorgehen
Testen von Standardzugangsdaten und schwachen/häufigen Kennwörtern.
Quellen
Das zu testende System benötigt für den Betrieb bestimmte Netzwerkkomponenten innerhalb der Infrastruktur, welche ausnutzbare Schwachstellen aufweisen. Beispiele können sein: DNS-, NTP-, DHCP-, NAS-Server oder Router und Switches. Eine Kompromittierung einer Netzwerkkomponente bedeutet die Bedrohung für das OT-System.
Testvorgehen
Testen von vom System abhängigen Systemkomponenten.
Bei der Kommunikation zwischen Systemen und Clients kommt es zu keiner oder einer unsicheren Verwendung von Verschlüsselung und Integritätsschutz. Das führt dazu, dass ein in die Kommunikation dazwischengeschalteter Akteur die Kommunikation mitlesen und/oder verändern kann.
Testvorgehen
In einem Man-in-the-Middle Szenario Pakete mitschneiden und ggf. manipulieren oder wiederholend senden.
Quellen
In der zu testenden Infrastruktur konnten Systeme oder Services gefunden werden, welche nicht inventarisiert sind und nicht gewartet werden. Dies können beispielsweise vergessene und nicht mehr genutzte Test- oder Entwicklungssysteme sein.
Testvorgehen
Scanning des Netzwerks und Abgleichen mit bereitgestellter Inventarliste.
In der eingesetzten PKI konnten Schwachstellen gefunden werden, wie die unsichere Ablage von Schlüsselmaterial, schwache Ciphersuites, abgelaufene oder ungültige Zertifikate und unzureichendes PKI-Management für das Erneuern und Zurückweisen von Zertifikaten.
Testvorgehen
Scannen von TLS-Diensten und Überprüfen von Serverzertifikaten.
Quellen
Weitere Quellen
Tools
Katalog Bus
Die BUS-Kommunikation kann ein potenzielles Ziel für Angriffe in OT-Umgebungen sein. Übliche Beispiele für BUS-Kommunikationsprotokolle sind Modbus, Profibus, CAN sowie Ethernet-basierte Protokolle wie EtherNet/IP, PROFINET und Modbus TCP.
Wenn die BUS-Kommunikation nicht ausreichend gesichert oder verschlüsselt ist, kann ein Angreifer mit Zugang zur Netzinfrastruktur die Kommunikation abfangen oder abhören. Dadurch können möglicherweise sensible Informationen wie Steuerbefehle oder Sensormesswerte offengelegt werden, was zu unbefugtem Zugriff oder Datenmanipulation führen kann.
Testvorgehen
Es werden mögliche Zugänge auf den BUS überprüft. Es wird sichergestellt, dass sensible Informationen nur verschlüsselt übertragen werden.
Quellen
Ein Angreifer könnte sich zwischen den über den BUS kommunizierenden Geräten positionieren und die übertragenen Daten abfangen oder verändern. Indem er sich in den Kommunikationspfad einschleust, kann er die Daten manipulieren, bösartige Befehle einschleusen oder die Integrität der Kommunikation verfälschen.
Testvorgehen
Es wird überprüft, dass die Integrität und Authentizität der Nachrichten sichergestellt wird.
Bei einem Replay-Angriff fängt ein Angreifer einen legitimen Kommunikationsaustausch zwischen Geräten über das BUS ab und spielt ihn erneut ab. Dies kann besonders effektiv sein, wenn die Kommunikation nicht über angemessene Authentifizierungs- oder Timestampmechanismen verfügt.
Testvorgehen
Es wird überprüft, ob Timestamps oder ähnliche Validierungsmaßnahmen implementiert wurden.
Die BUS-Kommunikation kann ein Ziel für DoS-Angriffe sein, bei denen ein Angreifer den BUS mit übermäßigem oder bösartigem Datenverkehr überflutet und so eine Unterbrechung oder Beeinträchtigung der Kommunikation verursacht.
Testvorgehen
Es wird überprüft ob ein DoS Angriff erkannt und gemeldet bzw. abgewehrt wird. Dabei werden Funktionen mit erhöhtem Zeit- und Rechenaufwand besonders in den Fokus genommen.
Ein Angreifer kann versuchen, sich als ein legitimes Gerät auf dem BUS auszugeben, indem er dessen Identität fälscht oder klont. Auf diese Weise kann er sich unbefugten Zugriff auf den BUS verschaffen und möglicherweise die Kommunikation zwischen den Geräten manipulieren oder stören.
Testvorgehen
Es wird überprüft, ob die Authentizität der Kommunikationsparteien sichergestellt wird.
Weitere Quellen
Tools
Webseiten
Danksagungen
Wir möchten uns bei den folgenden Personen bedanken, die öffentlich zu diesem Projekt beigetragen haben:
OT-Penetrationstest nach OOTTG
Wir testen Ihre industriellen Steuerungssysteme nach dem OOTTG-Standard. Safety-First-Methodik, IEC 62443, KRITIS-Erfahrung.
Kostenlos · 30 Minuten · Unverbindlich