banner

Nachricht

May 06, 2023

Forscher extrahieren Hauptverschlüsselungsschlüssel aus Siemens-SPS

Von Lucian Constantin

CSO Senior Writer, CSO |

Sicherheitsforscher haben eine Möglichkeit gefunden, einen globalen Verschlüsselungsschlüssel zu extrahieren, der in den CPUs mehrerer Siemens-Produktlinien für speicherprogrammierbare Steuerungen (SPS) fest codiert war, wodurch sie ihre sichere Kommunikation und Authentifizierung gefährden konnten. Siemens empfiehlt allen Kunden, sowohl die Firmware der betroffenen Geräte als auch die TIA-Portal-Software zu aktualisieren, die Ingenieure für die Kommunikation mit ihnen und die Bereitstellung ihrer Programme verwenden.

Laut Sicherheitsforschern von Claroty hat Siemens vor fast einem Jahrzehnt asymmetrische Kryptografie für seine SIMATIC S7-1200/1500 SPS-CPUs eingeführt, um deren Konfiguration, Programme und Kommunikation zu schützen. Das Unternehmen entschied sich jedoch für die Verwendung eines fest codierten globalen privaten Schlüssels für alle Geräte dieser Produktfamilien, da die dynamische Schlüsselverteilung und -verwaltung damals keine gängige Praxis war und eine potenzielle Belastung für die Kunden darstellte.

„Seitdem haben jedoch Fortschritte in der Technologie, der Sicherheitsforschung und eine sich schnell verändernde Bedrohungslandschaft solche fest codierten Kryptoschlüssel zu einem inakzeptablen Risiko gemacht“, sagten die Forscher in ihrem Bericht. „Ein böswilliger Akteur, der in der Lage ist, einen globalen, fest codierten Schlüssel zu extrahieren, könnte die Sicherheit der gesamten Geräteproduktlinie auf irreparable Weise gefährden.“

Laut Claroty verwenden die SPS S7-1200 und S7-1500 von Siemens mehrere Tasten. Ein „pro Familie“-Schlüssel wird von allen Geräten einer Produktlinie gemeinsam genutzt und ein „pro Modell/Firmware“-Schlüssel wird zum Verschlüsseln von Konfigurationen und zur Aufrechterhaltung der Codeintegrität sowie als Verbindungsschlüssel verwendet, der im Authentifizierungsprozess verwendet wird um die Kommunikation mit Kunden zu verschlüsseln. Der Verbindungsschlüssel wird aus den Konfigurationsschlüsseln abgeleitet und für die elliptische Kurven-basierte Verschlüsselung verwendet.

Dies bedeutet, dass Angreifer an den Konfigurationsschlüssel gelangen und möglicherweise das Benutzerkennwort aus der Konfiguration einer SPS entschlüsseln sowie Man-in-the-Middle-Angriffe starten können, selbst wenn sie keinen Zugriff zum Lesen der verschlüsselten Konfiguration haben.

Das Problem besteht darin, dass dieser familienweite Konfigurationsschlüssel nicht in der Geräte-Firmware – dem Betriebssystem, das auf dem Gerät läuft – gespeichert ist, sondern in der CPU selbst, sodass zum Lesen des Schlüssels Zugriff auf die direkte Interaktion mit der CPU über Opcodes erforderlich ist. Dies muss nur einmal auf einem Gerät durchgeführt werden, da alle den Schlüssel teilen.

Letztes Jahr fanden die Claroty-Forscher eine Schwachstelle (CVE-2020-15782) zur Remotecodeausführung, die sich auf S7-SPS auswirkte und es ihnen ermöglichte, nativen Code auf den Geräten auszuführen. Normalerweise laufen die Programme oder die Logik, die Ingenieure über die spezielle Engineering-Software schreiben und auf SPSen bereitstellen, in einer Sandbox im SPS-Betriebssystem. 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 schreiben.

„Mithilfe der von uns erhaltenen DA-Leseberechtigung (Direct Memory Access) konnten wir die gesamte verschlüsselte SPS-Firmware (SIMATIC S7-1500) extrahieren und ihre Funktionen abbilden“, sagten die Forscher. „Während des Zuordnungsprozesses haben wir eine Funktion gefunden, die den privaten Schlüssel auf der SPS liest. Sobald wir die Funktionsadresse hatten, haben wir die Funktionalität bestimmter MC7+-Opcodes mit unserem Shell-Code neu geschrieben und sie gezwungen, die native Funktion aufzurufen, die den privaten Schlüssel liest.“ . Anschließend haben wir den Schlüssel an eine bekannte Speicheradresse kopiert und von dort ausgelesen. Durch die Ausführung der überschriebenen Funktion erhielten wir den vollständigen privaten Schlüssel der SPS.“

Für die Interaktion mit Siemens-SPS ist ein Passwort erforderlich. Die Berechtigungen, die der Client dem Gerät gewährt, werden jedoch durch vier konfigurierbare Schutzstufen definiert. Wenn die Schutzstufe niedriger als drei ist, kann ein Angreifer ohne besondere Erlaubnis die Konfiguration aus der SPS extrahieren. Diese Konfiguration enthält den Passwort-Hash, ist jedoch verschlüsselt. Wenn sie jedoch über den globalen privaten Schlüssel verfügen, können Angreifer den Passwort-Hash entschlüsseln und ihn zur Authentifizierung bei der SPS mit höheren Privilegien verwenden.

Wenn die Schutzstufe höher als vier ist, können Angreifer stattdessen mit dem privaten Schlüssel einen Man-in-the-Middle-Angriff gegen einen legitimen Client starten. Dies würde so funktionieren, dass sie eine gefälschte SPS simulieren und den Client zwingen würden, zu versuchen, sich bei dieser zu authentifizieren. Dies würde dazu führen, dass der Client einen verschlüsselten Verbindungsschlüssel an die betrügerische SPS sendet, der dann mit dem extrahierten globalen Schlüssel im Besitz des Angreifers entschlüsselt und für die Verbindung mit der echten SPS verwendet wird. Die echte SPS antwortet mit einer Passwortabfrage, die der Angreifer an den Client weiterleitet und dessen Antwort erhält.

Die Weiterleitung der Challenge-Antwort an die reale SPS würde es dieser ermöglichen, eine authentifizierte Sitzung mit den Berechtigungen zum Lesen der Konfiguration einschließlich des Passwort-Hashs aufzubauen. Der Passwort-Hash könnte dann mithilfe des globalen privaten Schlüssels entschlüsselt werden, sodass Angreifer künftig Zugriff erhalten, ohne den Man-in-the-Middle-Sitzungs-Hijacking wiederholen zu müssen.

Schließlich „kann ein Angreifer mit passivem Zugriff, um den Datenverkehr zu einer bestimmten SPS im Netzwerk abzufangen, Konfigurations-Lese-/Schreibvorgänge von der SPS abfangen“, warnten die Forscher. „Mithilfe des privaten Schlüssels kann der Angreifer die Konfiguration entschlüsseln und den Passwort-Hash extrahieren. Mit dem Passwort-Hash kann sich der Angreifer beim Controller authentifizieren und eine neue Konfiguration schreiben.“

„SIMATIC S7-1200-, S7-1500-CPUs und verwandte Produkte schützen den integrierten globalen privaten Schlüssel in einer Weise, die nicht länger als ausreichend angesehen werden kann“, sagte Siemens in einer neuen Mitteilung zu diesem Problem. „Siemens empfiehlt, sowohl die betroffenen Produkte als auch das entsprechende TIA Portal-Projekt auf die neuesten Versionen zu aktualisieren. TIA Portal V17 und verwandte CPU-Firmware-Versionen führten den Schutz vertraulicher Konfigurationsdaten auf Basis individueller Passwörter pro Gerät und TLS-geschütztem PG/PC ein HMI-Kommunikation.“

Zu den anfälligen Geräten gehören Versionen der SIMATIC Drive Controller-Familie unter 2.9.2, Versionen der SIMATIC ET 200SP Open Controller CPU 1515SP PC2 (einschließlich SIPLUS-Varianten) unter 21.9 und Versionen der SIMATIC S7-1200-CPU-Familie (einschließlich SIPLUS-Varianten) unter 4.5.0 , SIMATIC S7-1500 CPU-Familie (einschließlich zugehöriger ET200-CPUs und SIPLUS-Varianten) Versionen kleiner als 2.9.2, SIMATIC S7-1500 Software Controller Versionen kleiner als 21.9 und SIMATIC S7-PLCSIM Advanced Versionen kleiner als 4.0. Betroffen sind auch alle Versionen des SIMATIC ET 200SP Open Controller CPU 1515SP PC (inkl. SIPLUS-Varianten), für die jedoch kein Fix verfügbar oder geplant ist.

Lucian Constantin ist leitender Autor bei CSO und befasst sich mit Informationssicherheit, Privatsphäre und Datenschutz.

Urheberrecht © 2022 IDG Communications, Inc.

Siemens-SPS verwenden kryptografische Schlüssel zur Authentifizierung und zum Schutz des Codes. Forscher haben direkten Zugriff auf den Speicher erhalten, um den Schlüssel zu extrahieren. Benutzern wurde empfohlen, die anfälligen Geräte und die Engineering-Software zu aktualisieren. Lesen Sie dies als Nächstes
AKTIE