Analyse von Claroty
So übernehmen Hacker die SPS von Siemens
Foto: FOTOGRIN - shutterstock.com
Sicherheitsforscher haben einen Weg gefunden, einen globalen Verschlüsselungsschlüssel zu extrahieren, der in den CPUs mehrerer speicherprogrammierbarer Steuerungen (SPS) von Siemens fest codiert wurde, wodurch die sichere Kommunikation und Authentifizierung der Steuerungen gefährdet ist. Siemens empfiehlt allen Kunden, sowohl die Firmware der betroffenen Geräte als auch die TIA-Portal-Software zu aktualisieren, mit der Ingenieure mit den Geräten kommunizieren und ihre Programme bereitstellen.
Was ist eine speicherprogrammierbare Steuerung (SPS)? Eine speicherprogrammierbare Steuerung ist eine Hardware-Komponente, die programmiert und eingesetzt wird, um eine industrielle Anlage oder Maschine zu regeln und zu steuern. |
Laut den Sicherheitsforschern von Claroty hat Siemens vor fast einem Jahrzehnt asymmetrische Kryptographie in seine SPS-CPUs Simatic S7-1200/1500 eingeführt, um deren Konfiguration, Programme und Kommunikation zu schützen. Das Unternehmen entschied sich jedoch dafür, einen hartcodierten globalen privaten Schlüssel für alle Geräte dieser Produktfamilien zu verwenden. Der Grund: Damals war die dynamische Schlüsselverteilung und -verwaltung noch keine gängige Praxis, sondern stellte vielmehr eine potenzielle Belastung für die Kunden dar.
"Seitdem haben Fortschritte in der Technologie, der Sicherheitsforschung und einer sich schnell verändernden Bedrohungslandschaft solche hartcodierten Kryptoschlüssel zu einem inakzeptablen Risiko gemacht", schreiben die Forscher in ihrem Bericht. "Ein böswilliger Akteur, der in der Lage ist, einen globalen, hartcodierten Schlüssel zu extrahieren, könnte die Sicherheit der gesamten Geräteproduktlinie auf irreparable Weise gefährden."
Claroty zufolge verwenden Siemens S7-1200 und S7-1500 SPS mehrere Schlüssel zur Verschlüsselung:
Ein Verbindungsschlüssel wird für die Überprüfung und Authentifizierung der Paketintegrität verwendet.
Ein CPU-Schlüssel, der pro Modell/Firmware verwendet wird, um Konfigurationen und Code zu verschlüsseln und die Code-Integrität aufrechtzuerhalten.
Ein Schlüssel pro Produktfamilie, der anstelle des CPU-Schlüssels zum Einsatz kommt, wenn dieser nicht bekannt ist.
Dies bedeutet, dass ein Angreifer, der Kenntnis über den Verschlüsselungsmechanismus des Datenverkehrs hat sowie den Zugriff auf den privaten Schlüssel besitzt, sich als legitime SPS ausgeben kann.
Im vergangenen Jahr fanden die Claroty-Forscher zudem eine Sicherheitslücke, die Remotecode-Ausführung bei allen S7-SPS ermöglicht. Somit konnten die Forscher eigenen Code auf den Geräten ausführen. Normalerweise laufen die von Ingenieure geschriebenen und über eine Engineering-Software auf der SPS bereitgestellten Programme oder Algorithmen in einer Sandbox im SPS-Betriebssystem. Die Schwachstelle CVE-2020-15782 ermöglichte es den Forschern, diese Sicherheitsschicht zu umgehen und jede normalerweise geschützte Speicheradresse auf der SPS direkt zu lesen und zu überschreiben.
"Mit der erhaltenen Leseberechtigung konnten wir die gesamte verschlüsselte SPS-Firmware extrahieren und ihre Funktionen abbilden", berichten die Forscher. "Während des Mapping-Prozesses haben wir eine Funktion gefunden, die den privaten Schlüssel auf der SPS liest. Sobald wir die Funktionsadresse hatten, schrieben wir die Funktionalität bestimmter MC7 Opcodes mit unserem Shell-Code neu und zwangen sie, die native Funktion aufzurufen, die den privaten Schlüssel aufruft. Wir haben dann den Schlüssel zu einer bekannten Speicheradresse kopiert und von dort ausgelesen. Durch die Ausführung der überschriebenen Funktion erhielten wir den vollen privaten Schlüssel der SPS."
Der Schlüssel ermöglicht mehrere Angriffe
Zwar erfordert die Interaktion mit Siemens-SPS ein Passwort, befindet sich jedoch die Berechtigung, die einem Client für ein Gerät erteilt werden soll, lediglich in Stufe eins oder zwei der insgesamt vier konfigurierbaren Schutzebenen, kann ein Angreifer ohne Erlaubnis die Konfiguration aus einer SPS extrahieren. Diese Konfiguration enthält den Kennwort-Hash, ist aber verschlüsselt. Wenn die Angreifer jedoch über den globalen privaten Schlüssel verfügen, können sie den Passwort-Hash entschlüsseln und ihn verwenden, um sich mit höheren Berechtigungen bei der SPS zu authentifizieren.
Ist die Schutzebene höher als vier, können Angreifer den privaten Schlüssel verwenden, um stattdessen einen Man-in-the-Middle-Angriff gegen einen legitimen Client zu starten. Dafür simulieren sie eine gefälschte SPS und zwingen den Client sich bei ihr zu authentifizieren. Dies würde dazu führen, dass der Client einen verschlüsselten Verbindungsschlüssel an die falsche SPS sendet, die dann mit dem extrahierten globalen Schlüssel im Besitz des Angreifers entschlüsselt und zur Verbindung mit der echten SPS verwendet wird. Die echte SPS würde mit einer Passwortabfrage antworten, die der Angreifer an den Client zurückleiten und somit seine Antwort erhalten würde.
Zudem würde das Weiterleiten der Antwort an die reale SPS es Angreifern ermöglichen, eine authentifizierte Sitzung mit der Berechtigung zum Lesen der Konfiguration einzurichten, die den Passwort-Hash enthält. Der Hash könnte dann mit dem globalen privaten Schlüssel entschlüsselt werden, wodurch Angreifer dauerhaft Zugriff erhalten, ohne die Man-in-the-Middle-Attacke zu wiederholen.
Schließlich könne ein Angreifer mit passivem Zugriff diverse Lese- und Schreibvorgänge in der Konfiguration von der SPS abfangen, warnten die Forscher. "Mit dem privaten Schlüssel kann der Angreifer die Konfiguration entschlüsseln und den Passwort-Hash extrahieren. Damit kann sich der Angreifer beim Controller authentifizieren und eine neue Konfiguration schreiben."
Diese SPS müssen aktualisiert werden
"Simatic S7-1200, S7-1500 CPUs und verwandte Produkte schützen den eingebauten globalen privaten Schlüssel in einer Weise, die nicht mehr als ausreichend angesehen werden kann", schreibt Siemens in einem neuen Advisory zu den Sicherheitslücken. "Siemens empfiehlt, sowohl die betroffenen Produkte als auch das entsprechende TIA (Totally Integrated Automation) Portal auf die neuesten Versionen zu aktualisieren."
Zu den anfälligen Geräten gehören
alle Versionen der Simatic-Drive-Controller-Familie, die älter als 2.9.2 sind,
alle Versionen der Simatic ET 200SP Open Controller CPU 1515SP PC2 (einschließlich der Siplus-Varianten), die älter als 21.9 sind,
die Versionen der Simatic-S7-1200-CPU-Familie (einschließlich Siplus-Varianten), die älter als 4.5.0 sind,
die Simatic-S7-1500-CPU-Familie (einschließlich verwandter ET200 CPUs und Siplus-Varianten) in Versionen, die älter sind als 2.9.2,
Simatic S7-1500 Software Controller in Versionen, die älter als 21.9 sind
und die Versionen von Simatic S7-PLCSIM Advanced, die älter als 4.0 sind.
Alle Versionen der Simatic ET 200SP Open Controller CPU 1515SP PC, einschließlich der Siplus-Varianten, sind ebenfalls betroffen. Für diese ist jedoch bisher kein Fix verfügbar. (ms)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation CSO Online.
Tipp: Sie möchten regelmäßig über Cyberangriffe und weitere Security-Themen informiert werden? Dann abonnieren Sie doch einfach unseren kostenlosen Newsletter.