Lost in Translation: Sicherheitslücken im Industrial Protocol Gateway

Die Sprachbarriere besteht nicht nur zwischen IT-Mitarbeitern und Benutzern. „Intelligente“ Fabriken und Computer, die sie steuern, können auch ohne Übersetzer nicht miteinander kommunizieren - spezialisierte Gateways für Industrieprotokolle. In diesem Beitrag untersuchen wir die Schwächen von Protokoll-Gateways und wie Angreifer sie verwenden können, um Unternehmen Schaden zuzufügen.



Bild



Ein Protokoll-Gateway ist ein kleines Gerät, das eine geschäftskritische Befehlsübersetzung zwischen Werkzeugmaschinen, Sensoren, verschiedenen Aktuatoren und Computern ermöglicht, auf denen Fabriken, Dämme, Kraftwerke und Industrieanlagen betrieben werden. Diese Gateways ähneln Heimroutern: Sie haben auch mehrere Schnittstellen, die mit verschiedenen Netzwerken verbunden sind, und sind ebenso anfällig für verschiedene Angriffe. Wenn ein solches Gerät ausfällt, geht die Kommunikation zwischen Steuerungssystemen und Maschinen verloren. Die Betreiber werden nicht sehen, was los ist. Tatsächlich können sie nicht einmal feststellen, ob Maschinen, Turbinen oder Generatoren sicher arbeiten. Selbst wenn eindeutig etwas nicht stimmt, kann der Bediener bei einem Ausfall des Gateways keinen Befehl zum Starten oder Stoppen von Prozessen erteilen.



Eine ähnliche Situation musste im Dezember 2015 während seinAngriffe auf das ukrainische Stromnetz : Angreifer erhielten Zugriff auf das Stromnetz-Kontrollzentrum und deaktivierte Protokoll-Gateways an Umspannwerken, indem sie beschädigte Firmware auf sie hochluden. Dies blockierte alle Versuche der Versorgungsingenieure, den Dienst wiederherzustellen, da Befehle von Steuerungssystemen zum Schließen der Leistungsschalter nicht übertragen werden konnten.



In einem Vorfallbericht von SANS ICS (einer Abteilung der amerikanischen Bildungs- und Forschungsorganisation SANS Institute for the Study of Industrial Control Systems) und dem Power Analysis and Information Exchange Center (E-ISAC - eine Struktur, die Teilnehmer am nordamerikanischen Strommarkt zusammenbringt) wurde die Gateway-Firmware beschädigt Protokolle wurden "die Explosion von Brücken" genannt. Dies beschreibt sehr genau, was passiert ist, da die Angreifer die Schlüsselverbindung zerstört haben - die Übersetzer, die nur als Brücke zwischen Controllern und Unterstationen fungieren.

Bild

Die Struktur der Interaktion zwischen dem Steuerungsnetzwerk und dem Ausführungsnetzwerk Quelle (im Folgenden, sofern nicht anders angegeben): Trend Micro



Aufgrund seiner Position kann ein Protokoll-Gateway das schwächste Glied in einer Kette von Geräten für Industrieanlagen werden, und ein Angreifer kann solche Geräte aus zwei wichtigen Gründen angreifen:



  1. Es ist unwahrscheinlich, dass Gateways in einem kritischen Asset-Inventar landen, das von einem Sicherheitsagenten oder einem Registrierungssystem überwacht wird. Daher ist es weniger wahrscheinlich, dass der Angriff bemerkt wird.
  2. Übersetzungsprobleme sind schwer zu diagnostizieren, daher ermöglichen fortgeschrittene Angreifer aufgrund von Fehlern im Design von Protokoll-Gateways sehr verdeckte Angriffe.


Arten von Gateways



Nach Betriebsmodus können zwei Familien von Gateways unterschieden werden:



  1. Echtzeit-Gateway (Echtzeit-Gateways) leitet den Datenverkehr weiter, sobald er verfügbar ist. Jedes eingehende Paket wird sofort ausgewertet, übersetzt und weitergeleitet. Vertreter: Nexcom NIO50, Schneider Link 150, Digi One IA;
  2. Datenstationen - Arbeit asynchron die Schnittstelle Mapping - Tabelle - wartet nicht auf ein Leseanforderungsdatum von der angeschlossenen SPS zu empfangen, aber regelmäßig Anforderungsstatus - Updates von der PLC und die empfangenen Daten in dem internen Cache für auf Abruf ausgegeben wird .


Das zweite wichtige Merkmal von Protokoll-Gateways ist die Art der Protokolle, die sie unterstützen und übersetzen. Mit dieser Eigenschaft können Geräte in drei Kategorien eingeteilt werden:



  1. , , , Modbus TCP Modbus RTU, — , ;
  2. , , , Modbus RTU → Profibus, — , ;
  3. , , , Modbus TCP → Profibus, — , .


In der Studie Lost in Translation: Wenn die Übersetzung von Industrieprotokollen schief geht , haben wir die Schwachstellen der ersten Gruppe von Gateways untersucht. Zu diesem Zweck haben wir einen Prüfstand zusammengestellt, der aus folgenden Komponenten besteht:



  • Fuzzer, der eingehenden Datenverkehr für das getestete Gateway generiert. Wenn Sie beispielsweise die Übersetzung von Modbus TCP zu Modbus RTU testen, generiert Fuzzer Modbus TCP-Testfälle.
  • Gateway - studierte Gerät,
  • Simulator - ein Gerät, das eine Empfangsstation simuliert, z. B. eine SPS, die die Modbus-RTU eines Slave-Geräts implementiert - ist erforderlich, da einige Protokoll-Gateways möglicherweise nicht ordnungsgemäß funktionieren, wenn sich kein Slave in der Kette befindet.
  • ein Sniffer, der Informationen über ausgehenden Verkehr sammelt, d. h. über das Rundfunkprotokoll;
  • Analysator für eingehenden und ausgehenden Verkehr.


Bild

Blockdiagramm eines Prüfstands zur Untersuchung von Schwachstellen im Protokoll-Gateway



Bild

Realer Prüfstand



Zur Modellierung des Haupt-Modbus-Knotens verwendeten wir die Open-Source-Software QmodMaster und zur Modellierung des Slave-Geräts - pyModSlave -, um es an unsere Anforderungen anzupassen, z. B. den Empfang von Daten von / dev / ttyUSB0.



Wir haben Wireshark für Modbus TCP und IONinja für Modbus RTU verwendet, um den Verkehr abzufangen. Wir haben spezielle Parser geschrieben, um die Ausgabe dieser beiden Programme in eine gemeinsame Syntax zu konvertieren, die unser Parser verstehen kann.



Wir haben den Fuzzer auf der Basis von BooFuzz ​​implementiert und einige Module des Boofuzz-Modbus-Projekts hinzugefügt, die unter der Apache-Lizenz vertrieben werden. Wir haben den Fuzzer auf verschiedene ICS-Protokolle portierbar gemacht und damit mehrere Modbus-Implementierungen getestet.



Hier sind einige der Arten von Angriffen, die wir bei der Untersuchung verschiedener Protokollgateways festgestellt haben:



  • Angriff auf den Protokollübersetzer,
  • Wiederverwendung von Anmeldeinformationen und Entschlüsselung der Konfiguration,
  • Verkehrsverstärkung,
  • Eskalation von Privilegien.


Angriff des Protokollübersetzers



Echtzeit-Gateways übersetzen Pakete von einem Protokoll in ein anderes und ersetzen die Quellprotokoll-Header durch die Zielprotokoll-Header. Gateways von verschiedenen Anbietern behandeln ungültige Pakete unterschiedlich. Einige von ihnen senden beispielsweise ein Paket mit einer falsch angegebenen Länge, anstatt die Länge anzupassen oder zu verwerfen, so wie es ist. Mit dieser Funktion können Sie ein Paket mit der falschen Länge für Modbus TCP sorgfältig entwerfen, damit es nach der Übersetzung in Modbus RTU korrekt bleibt. Wenn Sie es jedoch als Modbus RTU-Paket lesen, hat es eine völlig andere Bedeutung als das Modbus TCP-Äquivalent.



Bild

Angriffspaket: In Modbus TCP enthält es einen Befehl zum Lesen eines Registers, in Modbus RTU jedoch bereits einen Befehl zum Schreiben mehrerer Bitzellen



Wenn dieses Paket mit Modbus TCP-Semantik analysiert wird, wird es als Befehl zum Lesen des Eingangsregisters (Funktionscode 04) aus dem Block mit ID = 3 interpretiert. In der Semantik von Modbus RTU wird dies jedoch so interpretiert, dass mehrere Bitzellen (Funktionscode 15 und 0F) in einen Block mit ID = 1 geschrieben werden.

Diese Sicherheitsanfälligkeit ist kritisch, da aus einer völlig unschuldigen Leseanforderung ein Schreibbefehl wird, da das Protokoll-Gateway das Paket nicht ordnungsgemäß verarbeitet. Ein fortgeschrittener Angreifer könnte diese Sicherheitsanfälligkeit ausnutzen, um eine spezielle industrielle Firewall zu umgehen, die Schreibbefehle von IP-Adressen blockiert, die nicht auf der Whitelist stehen.



Infolgedessen reicht ein einziger Befehl aus, um beispielsweise die Sensoren zur Überwachung des Gesundheitszustands und der Sicherheit des Motors (Temperatursensor und Drehzahlmesser) zu deaktivieren, während der Motor eingeschaltet bleibt. Wenn Ingenieure und Bediener dies nicht bemerken, wechselt der Motor möglicherweise bereits in den kritischen Modus und fällt aus, aber niemand wird davon erfahren, da Thermometer und Drehzahlmesser deaktiviert wurden.



Wiederverwenden von Anmeldeinformationen und Entschlüsseln der Konfiguration



Moxa-Gateways verwenden ein proprietäres Protokoll für die Kommunikation mit dem Fernbedienungsprogramm MGate Manager. Beim Start von MGate Manager wird der Techniker aufgefordert, einen Benutzernamen und ein Kennwort einzugeben, um auf das Protokoll-Gateway zuzugreifen. Danach setzt McGate Manager die Konfiguration automatisch zurück, damit der Benutzer die Einstellungen ändern kann. Wenn der Außendiensttechniker die Konfiguration des Protokoll-Gateways abgeschlossen hat und auf die Schaltfläche Beenden klickt, wird die Konfiguration komprimiert, verschlüsselt und auf das Gateway hochgeladen.



Bild

Konfigurationsschritte für das Moxa-Gateway



Bei diesem Verfahren gibt es zwei Sicherheitslücken, die missbraucht werden können.



- Wiederverwendung



Wenn sich ein Techniker anmeldet, wird ein Schlüssel an MGate Manager übergeben, um das Kennwort zu hashen. In der getesteten Firmware ist der Mechanismus jedoch so implementiert, dass ein Hacker das verschlüsselte Kennwort des Ingenieurs abfangen kann, um in das System einzutreten, und sich dann mit Administratorrechten anmelden kann, auch ohne das Kennwort in Form eines Textes zu kennen.



- Entschlüsseln der Konfiguration Die



über das Netzwerk übertragene verschlüsselte Konfiguration enthält einen Verschlüsselungsschlüssel, mit dem ein Hacker sie sichern und entschlüsseln kann.



Bild

Die verschlüsselte Konfiguration enthält den AES-Schlüssel zum Entschlüsseln. Sehr praktisch zum Hacken



Für die Entschlüsselung haben wir eine proprietäre Entschlüsselungsbibliothek verwendet, die aus der Firmware des Geräts extrahiert wurde. Die Konfiguration enthält Konfigurationsdateien, SQLite-Datenbanken und einen SSH-Schlüssel (Secure Shell). Unten finden Sie ein Beispiel für die entschlüsselte Konfiguration unseres eigenen Protokoll-Gateways, die wir abfangen konnten.



Bild

Moxa MGate 5105 entschlüsselte Konfigurationsdateien



Verstärkung des Verkehrs



Da Datenstationen Protokolle asynchron zueinander senden, können mehrere Ein-Bit-Schreibanforderungen zu einer einzigen Anforderung kombiniert werden, um den seriellen Bus besser nutzen zu können. Zum Beispiel kann ein Hacker die Funktion 15 aufrufen (mehrere Bits schreiben), an der Datenstation wird sie in 1 Datensatz für ID = 2, 1 für ID = 4, 1 für ID = 5, 1 für ID = 6 konvertiert. Somit wird ein Modbus-TCP-Eintrag in vier Modbus-RTU-Einträge übersetzt, was zu einer leichten Überlastung des seriellen Busses führt.



Bild

Ein TCP-Befehl zum Schreiben einer Zelle wird zu vier RTU-Befehlen.



Beachten Sie, dass diese Verstärkung keinen Denial-of-Service (DoS) verursacht, ein überlasteter RS-485-Bus jedoch zu abnormalem Verhalten führen kann.



Eskalation von Privilegien



In MGate 5105-MB-EIP haben wir die Sicherheitsanfälligkeit CVE-2020-885 bezüglich der Eskalation von Berechtigungen entdeckt, die es einem nicht privilegierten Benutzer ermöglicht, Befehle mit erhöhten Berechtigungen auszuführen.



Die Ursache des Problems ist das Fehlen einer Filterung von Benutzereingaben in der Weboberfläche des Ping-Dienstprogramms.



Bild

Mgate Ping Utility-Schnittstelle



Mit minimalen technischen Kenntnissen kann ein nicht privilegierter Benutzer den Telnet-Dämon im Kontext des Root-Benutzers mit einer einfachen HTTP-GET-Anforderung starten und mit einer Root-Shell vollständigen Remotezugriff erhalten.



Unsere Empfehlungen



Nachdem wir die Besonderheiten des Betriebs verschiedener Industrieprotokoll-Gateways untersucht haben, haben wir eine Reihe von Empfehlungen für Lieferanten, Installateure oder Endbenutzer entwickelt.



  1. - . . .
  2. — , , . ICS- . Trend Micro — TXOne Networks, OT .
  3. , — /, . , , , MQTT.
  4. OT , .



All Articles