Team82 Logo Claroty
Zurück zum Blog

Umgehung des lokalen Chassis-Sicherheitsschutzes von Rockwell Automation Logix-Steuerungen

/

Zusammenfassung

  • Team82 hat eine Sicherheitslücke in Rockwell Automation ControlLogix 1756 Geräten entdeckt und veröffentlicht.

  • Mit unserer Technik konnten wir die von Rockwell implementierte Trusted-Slot-Funktion umgehen, die Sicherheitsrichtlinien durchsetzt und es dem Controller ermöglicht, die Kommunikation über nicht vertrauenswürdige Pfade im lokalen Chassis zu verweigern.

  • Die von uns gefundene Schwachstelle ermöglichte es einem Angreifer, innerhalb eines 1756-Gehäuses mittels CIP-Routing zwischen lokalen Backplane-Steckplätzen zu wechseln und so die Sicherheitsgrenze zu überwinden, die die CPU vor nicht vertrauenswürdigen Karten schützen soll. 

  • Ein Angreifer benötigt Netzwerkzugriff auf das Gerät, um diese Sicherheitslücke auszunutzen. Ein erfolgreicher Angriff würde es einem Angreifer ermöglichen, die Sicherheitseinschränkung zu umgehen und erweiterte Befehle an die SPS-CPU zu senden.

  • Rockwell hat eine Korrektur für CVE-2024-6242 (CVSSv3: 8.4) herausgegeben, und die Benutzer werden dringend gebeten, diese sofort anzuwenden.

  • Die CISA hat außerdem ein Beratungsschreiben mit Empfehlungen zur Schadensbegrenzung veröffentlicht.

  • Nach Angaben von Rockwell sind ControlLogix-, GuardLogix- und 1756 ControlLogix-E/A-Module von dieser Sicherheitslücke betroffen.

  • Außerdem veröffentlicht Team82 eine Snort-Regel, die Versuche erkennt, diesen Sicherheitsschutz auf Geräten über das CIP-Protokoll zu umgehen.

Einführung

ControlLogix 1756 ist eine Serie von programmierbaren Automatisierungssteuerungen von Rockwell Automation. Sie ist Teil der ControlLogix-Familie, die für hochleistungsfähige, skalierbare industrielle Automatisierungsanwendungen konzipiert ist. In den meisten Fällen wird die 1756 als Chassis-Komponente bezeichnet, die als modulares Gehäuse dient, in dem verschiedene E/A-Module, Steuerungen und Kommunikationsprozessoren untergebracht sind. Sie stellt die physischen und elektrischen Verbindungen bereit, die für den gemeinsamen Betrieb dieser Komponenten erforderlich sind.

Wie die meisten Industrieprodukte von Rockwell kommunizieren auch die ControlLogix 1756-Geräte über CIP (Common Industrial Protocol), ein Kommunikationsprotokoll, das in industriellen Netzwerken verwendet wird, um den Datenaustausch zwischen Geräten wie Sensoren, Aktoren und Steuerungen zu erleichtern. Es wurde zur Unterstützung verschiedener industrieller Automatisierungsanwendungen entwickelt und bietet eine standardisierte Methode für die Kommunikation von Geräten innerhalb eines Netzwerks.

Das 1756-Gehäuse enthält Steckplätze (auch als Karten oder Module bezeichnet), die über die Backplane verbunden sind und miteinander kommunizieren. Bei der Backplane handelt es sich um eine Leiterplatte, die die verschiedenen Module innerhalb des Chassis miteinander verbindet und ihre Kommunikation ermöglicht. Die Backplane stellt die elektrischen Verbindungen und Datenpfade bereit, die den Informationsaustausch zwischen der Steuerung und den E/A-Modulen ermöglichen.

Ein Rockwell Automation 1756 ControlLogix-Rackmodul mit 7 Steckplätzen.

Das bedeutet, dass ein Bediener, der über eine Engineering-Workstation mit einer ControlLogix 1756-SPS kommuniziert, in den meisten Fällen tatsächlich über das CIP-Protokoll mit der CPU-Karte kommuniziert, die an dieselbe Backplane im selben Chassis wie die Netzwerkkarte angeschlossen ist.

Team82 hat eine Schwachstelle in einer lokalen Chassis-Sicherheitsfunktion namens "Trusted Slot" aufgedeckt, die dazu dient, nicht vertrauenswürdige Kommunikation von nicht vertrauenswürdigen Netzwerkkarten auf der Chassis-Ebene zu verweigern. Wenn diese Funktion aktiviert ist, verweigert ein Controller die Kommunikation über Pfade, die nicht vertrauenswürdig sind. 

Wir haben eine Schwachstelle gefunden, die es einem Angreifer ermöglicht, die Funktion des vertrauenswürdigen Steckplatzes zu umgehen, indem er zwischen lokalen Backplane-Steckplätzen innerhalb eines 1756-Gehäuses mit CIP-Routing springt und so die Sicherheitsgrenze überquert, die die CPU vor nicht vertrauenswürdigen Karten schützen soll. 

Ein Angreifer mit dieser Art von Zugriff wäre in der Lage, erweiterte Befehle wie das Herunterladen von Logik auf die SPS-CPU zu senden, selbst wenn sich der Angreifer hinter einer nicht vertrauenswürdigen Netzwerkkarte befindet.

Das grundlegende Schema einer Studio 5000-Engineering-Workstation, die mit SPS-Hardware kommuniziert: Rockwell Automation 1756-L71 (Logix5571) ControlLogix CPU.

CIP-Routing

Zur Unterstützung dieser Architektur wurde das CIP-Routing eingeführt. In CIP ist ein Pfad ein entscheidendes Konzept, das den Weg oder die Abfolge von Geräten und Kommunikationsobjekten definiert, die eine Anfrage oder Nachricht durchläuft. Ein Pfad in CIP spezifiziert den Weg von einem Quellgerät (z. B. einem vernetzten Gerät oder einer Steuerung) zu einem Zielgerät (z. B. einem E/A-Modul oder einer anderen Steuerung). Er beschreibt, wie das Netzwerk durchquert und mit dem gewünschten Gerät kommuniziert werden kann.

In einem ControlLogix-System werden die Backplane-Steckplätze durch eine eindeutige Pfadstruktur identifiziert. Diese Struktur legt fest, wie auf jeden Steckplatz zugegriffen werden kann, indem sie den Kommunikationsweg durch die Backplane definiert. Jeder Steckplatz im 1756-Chassis hat eine eindeutige Steckplatznummer. Mit dem CIP-Protokoll können Sie eine Steckplatznummer im Pfad angeben, um ein bestimmtes Modul anzusprechen. Wenn Sie beispielsweise auf Daten von einem E/A-Modul in Steckplatz 4 zugreifen möchten, würde der Pfad diese Steckplatznummer enthalten.

Das CIP-Protokoll verwendet das Backplane-Adressierungsschema (siehe OVDA-Dokument hier, Abschnitt 2.8. CIP-Routing), um die Kommunikation zwischen der Steuerung und den Modulen in verschiedenen Steckplätzen zu erleichtern. Durch die Definition des richtigen Pfades können Sie die Steuerung anweisen, Daten von einem bestimmten Steckplatz auf der Backplane zu senden oder zu empfangen. 

Ein Pfad könnte etwa so aussehen: 1,3,1,0 - Backplane (01), Karte 3 (03), Backplane (01), Karte 0 (00):

Ein Bildschirmfoto von Wireshark, das einen CIP-Pfad zeigt.

Lokale Fahrgestellsicherheit

Eine 1756 SPS in einer Produktionslinie kann über verschiedene Netzwerkkarten mit mehreren Quellen verbunden sein, z. B. mit dem HMI-Panel, der Engineering-Workstation und anderen Geräten. Um sicherzustellen, dass nur bestimmte einzelne Geräte erhöhte Operationen auf der SPS durchführen, wie z. B. das Herunterladen von Logik, wurde ein Sicherheitsmechanismus namens Trusted Slot eingeführt. 

Die Funktion für vertrauenswürdige Steckplätze hilft bei der Festlegung und Durchsetzung von Sicherheitsrichtlinien innerhalb des ControlLogix-Chassis. Sie stellt sicher, dass nur autorisierte Steckplätze miteinander kommunizieren können, und schützt so vor unberechtigtem Zugriff und möglichen Manipulationen.

Wenn die Funktion für vertrauenswürdige Steckplätze aktiviert ist, verweigert die Steuerung die Kommunikation über nicht vertrauenswürdige Pfade. Dies erfordert eine Authentifizierung des Moduls, damit jemand mit der Programmiersoftware auf die Steuerung zugreifen kann. Ein bestimmtes Modul kann als vertrauenswürdiger Steckplatz bezeichnet werden, was bedeutet, dass es frei mit anderen Steckplätzen innerhalb desselben Chassis und insbesondere mit der CPU kommunizieren darf.

Rockwell's Local Chassis Security aus einem 1756 Handbuch.

Wenn beispielsweise im obigen Beispiel die Sicherheitsfunktion aktiviert ist, unsere Netzwerkkarte aber nicht vertrauenswürdig ist, verweigert die CPU die Annahme erhöhter Operationen für jeglichen CIP-Verkehr, der von der nicht vertrauenswürdigen Netzwerkkarte ausgeht.

Umgehung der lokalen Chassis-Sicherheit über CVE-2024-6242 

Wir haben diesen Mechanismus untersucht und eine interessante Schwachstelle gefunden. Da alle Steckplätze über die Backplane verbunden sind und CIP einen Pfad (Routing) unterstützt, konnten wir ein CIP-Paket erzeugen, das durch eine vertrauenswürdige Karte geleitet wird, bevor es die CPU erreicht. Die Methode bestand im Wesentlichen darin, mit Hilfe von CIP-Routing zwischen lokalen Backplane-Steckplätzen innerhalb eines 1756-Gehäuses zu "springen". Diese Technik ermöglichte es uns, die Sicherheitsgrenze, die die CPU vor nicht vertrauenswürdigen Karten schützen sollte, zu überwinden. 

Gemäß der CIP-Spezifikation und der Funktionsweise des CIP-Nachrichtenroutings kann die CPU nur den letzten Steckplatz und nicht die gesamte Steckplatzkette überprüfen. Diese Einschränkung ermöglichte es uns, den Schutz des vertrauenswürdigen Steckplatzes zu umgehen und mit der CPU über eine nicht vertrauenswürdige Netzwerkkarte zu kommunizieren, hinter der wir uns befanden.

Ein Angreifer mit Zugriff auf das interne Netzwerk könnte diese Schwachstelle ausnutzen, die Sicherheitsbeschränkung umgehen und erweiterte Befehle an die SPS-CPU senden, wie z. B. Download- und Upload-Befehle und Updates an die CPU der Steuerung.

Snort-Regel erkennt "Sprung"-Verhalten

Um die Sicherheit weiter zu erhöhen und die Erkennung ähnlicher Schwachstellen in der Zukunft zu unterstützen, veröffentlichen wir eine Snort-Regel, die dieses spezielle "Sprung"-Verhalten erkennen soll. Snort, ein Open-Source-System zur Erkennung von Eindringlingen in Netzwerke, enthält nun eine Regel, die Versuche, das CIP-Protokoll auf diese Weise auszunutzen, überwacht und identifiziert. Diese Regel wird Unternehmen dabei helfen, potenzielle Sicherheitsbedrohungen besser zu erkennen und darauf zu reagieren.

Unsere Snort-Regel wird versuchen, alle CIP Forward Open Requests zu finden, bei denen der angeforderte Pfad 2 oder mehr lokale Chassis-Umleitungen auf derselben Backplane der SPS hat.

alert tcp any any -> any 44818 (content: "|6f 00|"; offset:0; pcre:"/\x54.*\xa3[^\x00-\x03](\x01[\x00-\x16]){2,}\x20\x02\$\x01/ms"; msg: " CVE-2024-6242: CIP suspicious forward open (might be used to bypass local chassis security)";

reference:url,claroty.com/team82/research/bypassing-rockwell-automation-logix-controllers-local-chassis-security-protection;reference:cve,2024-6242; classtype:misc-attack; sid:987002; rev:1;)

Zusammenfassung

Zusammenfassend lässt sich sagen, dass wir eine erhebliche Schwachstelle in den 1756 Logix-Steuerungen von Rockwell Automation entdeckt haben, und zwar speziell im Mechanismus der lokalen Chassis-Sicherheit. Diese Schwachstelle könnte dazu führen, dass kritische Steuerungssysteme über das CIP-Protokoll unbefugten Zugriff erhalten, der von nicht vertrauenswürdigen Chassis-Steckplätzen ausgeht.

Außerdem möchten wir uns bei Rockwell Automation bedanken. Nach der Identifizierung und Meldung dieser Sicherheitslücke hat Rockwell Automation gehandelt und das Problem behoben. Das Unternehmen hat inzwischen einen Fix veröffentlicht, der die Sicherheitslücke behebt, den Schutz seiner Logix-Steuerungen verbessert und das mit dieser Umgehungstechnik verbundene Risiko mindert.

Bleiben Sie auf dem Laufenden

Erhalten Sie den Team82-Newsletter

Offenlegung verwandter Schwachstellen

Claroty
LinkedIn Twitter YouTube Facebook