KI-gestützte Cyberangriffe: Wie man intelligente Bedrohungen erkennt, verhindert und abwehrt

Jetzt lesen
Wir verwenden künstliche Intelligenz für Website-Übersetzungen, und obwohl wir uns um Genauigkeit bemühen, kann es sein, dass sie nicht immer 100%ig präzise sind. Wir danken Ihnen für Ihr Verständnis.

Schutz von OT-Systemen vor Fernangriffen: Wie MetaDefender OT Security™ die Micrologix™ 1400-Steuerung vor CVE-2021-22659 schützt

von OPSWAT
Jetzt teilen
Teilnehmer des OPSWAT

Der Schutz von industriellen Steuerungssystemen und OT-Umgebungen vor Angriffen aus der Ferne ist wichtiger denn je, insbesondere angesichts von Schwachstellen wie CVE-2017-14469 und jetzt CVE-2021-22659, die die weit verbreitete Micrologix 1400-Steuerung von Rockwell Automation betreffen. Studenten des OPSWAT Fellowship-Programms testeten diese Schwachstelle in einer kontrollierten Umgebung und unterstrichen damit die Notwendigkeit von Sicherheit. 

In diesem Blog gehen wir darauf ein, wie die Studenten gezeigt haben, wie Angreifer die Schwachstelle ausnutzen können, um Systeme zum Absturz zu bringen, und wie das Fehlen einer angemessenen Eingabevalidierung ausgenutzt werden kann, um den SPS-Betrieb zu stören. 

Was ist ein PLC? Rockwell Automation Micrologix 1400 Erklärt

Eine SPS (Speicherprogrammierbare Steuerung) ist ein Industriecomputer, der für die Automatisierung von Prozessen durch die Steuerung von Maschinen und anderen industriellen Vorgängen konzipiert ist. Er arbeitet in rauen Umgebungen und ist so programmiert, dass er auf der Grundlage von Sensoreingaben bestimmte Aufgaben ausführt. Die MicroLogix 1400-Steuerung von Rockwell Automation ist eine kompakte und modulare SPS, die häufig in kleinen bis mittleren Anwendungen eingesetzt wird. Sie ist bekannt für ihre Kosteneffizienz und Flexibilität, unterstützt verschiedene Kommunikationsprotokolle und bietet digitale und analoge E/A-Optionen für die Anbindung an Geräte.

Bild eines OPSWAT , das für die Überwachung industrieller Kontrollsysteme verwendet wird

Die Programmierung erfolgt in der Regel mit der Software von Rockwell Automation über die Kontaktplanlogik, mit der die Benutzer Steuerungssequenzen erstellen können. Die MicroLogix 1400 ist vielseitig und eignet sich für Aufgaben wie die Maschinensteuerung und Prozessautomatisierung. Dank ihrer Modularität können Benutzer das System je nach den spezifischen Anwendungsanforderungen erweitern und anpassen.

Einführung in CVE-2021-22659

Im Januar 2021 erhielt Rockwell Automation einen Bericht von Parul Sindhwad und Dr. Faruk Kazi vom COE-CNDS am Veermata Jijabai Technological Institute (VJTI), Indien, über eine Sicherheitslücke in der MicroLogix™ 1400-Steuerung. Sie identifizierten eine Sicherheitslücke in Version 21.6 und früher, die es einem nicht authentifizierten Angreifer ermöglicht, ein speziell gestaltetes Modbus-Paket zu senden, das es dem Angreifer ermöglicht, zufällige Werte im Register abzurufen oder zu ändern. Wenn dies erfolgreich ausgenutzt wird, kann dies zu einem Pufferüberlauf führen, der einen Denial-of-Service-Zustand zur Folge hat. Die FAULT-LED blinkt ROT und die Kommunikation kann unterbrochen werden. Um den Denial-of-Service-Zustand wiederherzustellen, muss der Fehler vom Benutzer behoben werden. 

NVD stufte diese Sicherheitslücke als hoch ein. 

CVSS 3.x-Metriken mit einem hohen Schweregrad von 8,6 von der NIST NVD

Phasen des Angriffs

Diagramm zur Veranschaulichung der Phasen eines PLC-MicroLogix-Cyberangriffs

Ein entfernter, nicht authentifizierter Angreifer mit Netzwerkzugriff auf die anfällige MicroLogix 1400 SPS könnte ein speziell gestaltetes Paket senden, um die Werte im Register zu ändern. Dies könnte einen Denial-of-Service-Zustand für das Gerät verursachen, der zu einer Beschädigung des Systems und zu Ausfallzeiten führt. Ein solcher Vorfall kann den Fertigungsbetrieb und andere Geschäftsaktivitäten des Unternehmens erheblich stören.

Modbus-Protokoll

Das 1979 von Modicon entwickelte Modbus-Protokoll ist eine Nachrichtenstruktur, die für die Client-Server-Kommunikation zwischen intelligenten Geräten entwickelt wurde. Ursprünglich für die Verwendung mit den SPS von Modicon konzipiert, hat es sich inzwischen zu einem Standard-Kommunikationsprotokoll für die Kommunikation zwischen industriellen elektronischen Geräten entwickelt. 

Es gibt Modbus-Protokolle für Ethernet (Modbus TCP) und serielle Leitungen (Modbus RTU und Modbus ASCII). Modbus RTU (Remote Terminal Unit) überträgt Daten direkt in binärer Form über die serielle Kommunikation, und Modbus TCP (Transmission Control Protocol) bettet Modbus-Protokolldaten in TCP-Pakete zur Übertragung über TCP/IP-Netzwerke ein. 

Vergleichstabelle des Modbus-Stacks und der OSI-Schichten für Kommunikationsprotokolle

Struktur der Modbus-Nachrichten

Modbus ist ein Anfrage-Antwort-Protokoll, bei dem der Client eine Anfrage an ein Modbus-Gerät sendet und das Gerät anschließend eine Antwort liefert.

Diagramm der Modbus-Transaktionskommunikation zwischen Client und Server

Eine Modbus-Nachricht, die von einem Primärgerät an ein Sekundärgerät gesendet wird, enthält die Adresse des Sekundärgeräts, den "Befehl" (z. B. "Register lesen" oder "Register schreiben"), die Daten und eine Prüfsumme (LRC oder CRC).

Aufbau einer Modbus RTU-Nachricht mit Headern und Funktionscodes

Datenadressen werden in Modbus-Abfragen zum Lesen oder Ändern von Daten verwendet. Modbus definiert vier Datentypen: Spule, Eingangsstatus, Eingangsregister und Halteregister. Zwei davon speichern Ein-Aus-Werte (1-Bit), die als Spulen und diskrete Eingänge bezeichnet werden, und zwei speichern numerische Werte als 16-Bit-Wörter, die als Register bezeichnet werden. Jedes dieser Register ist entweder schreibgeschützt oder lesend/schreibend.

DatenartZugangBeschreibung
SpuleLesen und SchreibenEinzelbit-Ausgänge.
Diskreter EingangSchreibgeschütztEinzelbit-Eingänge.
Eingabe-RegisterSchreibgeschützt16-Bit-Eingaberegister.
BestandsregisterLesen und Schreiben16-Bit-Ausgaberegister.

Es gibt drei Kategorien von Modbus-Funktionscodes:

  • Öffentliche Funktionscodes - Von 1 bis 127, außer bei benutzerdefinierten Codes. 
  • Benutzerdefinierte Funktionscodes - in zwei Bereichen von 65 bis 72 und von 100 bis 110. 
  • Reservierte Funktionscodes - werden von einigen Unternehmen für ältere Produkte verwendet und sind nicht für die Öffentlichkeit zugänglich.
FunktionstypName der FunktionFunktionscode
DatenzugangBit-ZugriffPhysikalische diskrete EingängeDiskrete Eingänge lesen2
Interne Bits oder physikalische Spulen

Spulen lesen

Einzelspule schreiben

Mehrere Coils schreiben

1

5

15

16-Bit-ZugriffPhysikalische EingaberegisterLesen von Eingangsregistern4
Interne Register oder physikalische Ausgaberegister

Mehrere Holding-Register lesen

Einzelne Holding-Register schreiben

Schreiben mehrerer Holding-Register

Lesen/Schreiben von mehreren Registern

Maske Schreibregister

FIFO-Warteschlange lesen

3

6

16

23

22

24

Akteneinsicht

Datensatz lesen

Dateisatz schreiben

20

21

Diagnostik

Ausnahmestatus lesen

Diagnostik

Get Com Ereigniszähler 

Com-Ereignisprotokoll abrufen 

Slave-ID melden 

Geräteidentifikation lesen 

7

8

11

12

17

43

AndereGekapselte Schnittstelle Transport43
Funktionstyp: Datenzugriff
Untertyp: Bit-Zugriff
Kategorie: Physikalische diskrete Eingänge
Funktionsname: Lesen diskreter Eingänge
Funktionscode: 2
Funktionstyp: Datenzugriff
Untertyp: Bit-Zugriff
Kategorie: Interne Bits oder physikalische Spulen
Funktionsname: Spulen lesen
Funktionscode: 1
Funktionstyp: Datenzugriff
Untertyp: Bit-Zugriff
Kategorie: Interne Bits oder Physical Coils
Funktionsname: Write Single Coil
Funktionscode: 5
Funktionstyp: Datenzugriff
Untertyp: Bit-Zugriff
Kategorie: Interne Bits oder Physical Coils
Funktionsname: Write Multiple Coils
Funktionscode: 15
Funktionstyp: Datenzugriff
Untertyp: 16-Bit-Zugriff
Kategorie: Physical Input Registers
Funktionsname: Read Input Registers
Funktionscode: 4
Funktionstyp: Datenzugriff
Untertyp: 16-Bit-Zugriff
Kategorie: Interne Register oder physikalische Ausgaberegister
Funktionsname: Lesen mehrerer Holding-Register
Funktionscode: 3
Funktionstyp: Datenzugriff
Untertyp: 16-Bit-Zugriff
Kategorie: Interne Register oder physikalische Ausgaberegister
Funktionsname: Write Single Holding Register
Funktionscode: 6
Funktionstyp: Datenzugriff
Untertyp: 16-Bit-Zugriff
Kategorie: Interne Register oder physikalische Ausgaberegister
Funktionsname: Write Multiple Holding Registers
Funktionscode: 16
Funktionstyp: Datenzugriff
Untertyp: 16-Bit-Zugriff
Kategorie: Interne Register oder physikalische Ausgaberegister
Funktionsname: Read/Write Multiple Registers
Funktionscode: 23
Funktionstyp: Datenzugriff
Untertyp: 16-Bit-Zugriff
Kategorie: Interne Register oder physikalische Ausgaberegister
Funktionsname: Mask Write Register
Funktionscode: 22
Funktionstyp: Datenzugriff
Untertyp: 16-Bit-Zugriff
Kategorie: Interne Register oder physikalische Ausgaberegister
Funktionsname: FIFO-Warteschlange lesen
Funktionscode: 24
Funktionstyp: Datenzugriff
Untertyp: File Record Access
Funktionsname: Read File Record
Funktionscode: 20
Funktionstyp: Datenzugriff
Untertyp: File Record Access
Funktionsname: Write File Record
Funktionscode: 21
Funktionstyp: Diagnostik
Funktionsname: Exception Status lesen
Funktionscode: 7
Funktionstyp: Diagnostik
Funktionsname: Diagnostik
Funktionscode: 8
Funktionstyp: Diagnostics
Funktionsname: Get Com Event Counter
Funktionscode: 11
Funktionstyp: Diagnostics
Funktionsname: Get Com Event Log
Funktionscode: 12
Funktionstyp: Diagnostik
Funktionsname: Slave-ID melden
Funktionscode: 17
Funktionstyp: Diagnostik
Funktionsname: Geräteidentifikation lesen
Funktionscode: 43
Funktionstyp: Sonstige
Funktionsname: Encapsulated Interface Transport
Funktionscode: 43

Ausbeutung

Schwachstellenanalyse

Bei der Analyse entdeckten unsere OPSWAT , dass das Protokoll bei der Modbus-TCP-Kommunikation keine Authentifizierung und Verschlüsselung der übertragenen Pakete vorsieht. Außerdem ist die Eingabevalidierung in der MicroLogix 1400 SPS nicht ordnungsgemäß implementiert. Folglich kann ein entfernter Angreifer das Modbus-TCP-Paket mittels Packet Sniffing analysieren und beliebige Anfragen an die SPS ohne Authentifizierung über das Modbus-TCP-Protokoll senden. Aufgrund der fehlenden Eingabevalidierung des MicroLogix 1400 PLC-Geräts könnte ein entfernter authentifizierter Angreifer eine große Anzahl von Paketen mit zufälligen Werten senden und so möglicherweise einen Absturz der SPS verursachen.

Überschreiben von Registern

Zunächst haben wir versucht, Modbus-TCP-Pakete zu erfassen, die zum Lesen oder Schreiben von Registern auf der SPS verwendet werden. Zu diesem Zweck untersuchten wir Pakete, die von einer Anwendung namens Modbus Poll generiert wurden, die das Lesen und Schreiben von Registern auf der MicroLogix 1400 SPS ermöglicht.

Screenshot der Modbus Poll Tool-Schnittstelle zum Schreiben einzelner Register

Durch die Verwendung von Wireshark, um alle Pakete von der Netzwerkschnittstelle zu erfassen, konnten wir das Modbus-TCP-Paket zum Schreiben eines einzelnen Registers identifizieren:

Paketaufnahme einer Modbus-Transaktion mit Funktionscode zum Schreiben eines einzelnen Registers
Detaillierte Aufschlüsselung der Modbus-TCP-Nutzdaten, einschließlich Transaktions- und Protokollkennungen

Auf der Grundlage der Struktur der gesnifften Pakete haben wir ein einfaches Python-Skript entwickelt, um TCP-Pakete zu senden, die das Schreiben eines Registers auf der Ziel-SPS anfordern. In diesem Szenario lautet die IP-Adresse der SPS 192.168.93.89.

Python-Codebeispiel für die Initiierung einer Modbus-TCP-Verbindung und das Senden einer Nutzlast

Das Register der SPS wurde nach dem Empfang unseres bösartigen, nicht authentifizierten Pakets geändert. 

Paketaufnahme des Modbus/TCP-Protokolls mit einem Funktionscode zum Schreiben mehrerer Register
Screenshot eines Kontaktplans mit einem ADD-Funktionsblock zum Hinzufügen von Quellwerten

In der Micro Logix 1400 verwenden die meisten mathematischen Anweisungen drei Parameter: Quelle A, Quelle B und Ziel

Die Werte für Quelle A und Quelle B können aus zwei 16-Bit-Registern namens N13:3 und N13:4 stammen. Außerdem sind die Werte in diesen 16-Bit-Registern wie N13:3 und N13:4 auf den Bereich von -32.768 bis +32.767 beschränkt. Wenn die Werte von N13:3 und N13:4 groß sind, kann das Ergebnis des Match-Befehls den maximalen Bereich des Datentyps überschreiten, was zum Absturz der SPS führen kann. Um einen Absturz der SPS auszulösen, müssen daher große Zufallswerte in alle Register, einschließlich N13:3 und N13:4, geschrieben werden. Um dies zu erreichen, haben wir unser Python-Skript wie folgt geändert: 

Python-Skript, das die Erstellung einer Modbus-TCP-Nutzlast zum Schreiben mehrerer Register zeigt

Simulieren Sie den Angriff

Um einen realen Angriff zu simulieren, haben unsere OPSWAT Graduate Fellows versucht, die MicroLogix 1400 PLC in den OPSWAT CIP Labs zum Absturz zu bringen, unter der Annahme, dass sowohl der Angreifer als auch die PLC im selben Netzwerk sind und miteinander kommunizieren können. 

Im normalen Betriebszustand der MicroLogix 1400 SPS bei OPSWAT Labs, wenn sich die SPS in der Betriebsart FERNBETRIEB befindet, sind alle Registerwerte gültig und liegen innerhalb des für ihre Datentypen vorgesehenen Bereichs, was darauf hindeutet, dass das Anwenderprogramm korrekt funktioniert. 

Screenshot der RSLogix 500-Datendatei mit N13-Datenwerten im Dezimalformat

Bei Ausführung unseres Python-Skripts werden zahlreiche Modbus-TCP-Pakete an die SPS gesendet, die das Schreiben großer Zufallswerte in alle Register ohne Authentifizierung anfordern:

Paketaufnahme mit wiederholten Modbus-TCP-Schreibanfragen für mehrere Register

Nach dem Empfang dieser bösartigen Paketanforderungen werden die Werte aller Register, einschließlich N13:3 und N13:4, auf 16.990 gesetzt. Das Ergebnis der ADD-Operation in den Registern N13:3 und N13:4 überschreitet den gültigen Bereich eines 16-Bit-Registers. Dieses Problem führt zu einem Integer-Überlauf, der zu einem Fehler führt und den Betrieb der SPS unterbricht, was durch den Zustand FAULTED angezeigt wird.

RSLogix 500 zeigt einen Fehlerzustand und Datenwerte für N13-Adressen an

Unsere OPSWAT Graduate Fellows haben die MicroLogix 1400 PLC erfolgreich zum Absturz gebracht, indem sie CVE-2021-22659 ausnutzten.

Sanierung

Screenshot eines PLC-Schwachstellen-Dashboards mit CVE-Details und kritischen Sicherheitslücken für Rockwell Automation MicroLogix

Angesichts von Schwachstellen wie CVE-2021-22659 sind umfassende Abhilfemaßnahmen für den Schutz von OT- und cyber-physischen Systemen von entscheidender Bedeutung. Im Folgenden werden einige der wichtigsten Strategien vorgestellt, die zur Verhinderung der Ausbreitung von Angriffen eingesetzt werden können:

  1. Erkennung bekannter CVEs: Regelmäßiges Scannen von Netzwerken auf Sicherheitslücken wie CVE-2021-22659.
  2. Überwachung auf anomale Verhaltensweisen: Erkennung von ungewöhnlichen Häufungen in der Kommunikation mit der Micrologix 1400 SPS, die auf einen laufenden Angriff mit unerlaubter Datenübertragung hindeuten könnten.
  3. Erkennung neuer Geräteverbindungen: Das System sollte erkennen, wenn ein neues Gerät an die SPS angeschlossen wird. 
  4. Netzwerksegmentierung: Die Isolierung betroffener Geräte kann dazu beitragen, die seitliche Ausbreitung von Angriffen zu verhindern und so die Auswirkungen zu minimieren.

MetaDefender OT Security von OPSWATerfüllt diese Anforderungen durch die Erkennung von CVEs, die kontinuierliche Überwachung des Netzwerks auf ungewöhnliche Verhaltensweisen und die Identifizierung nicht autorisierter Verbindungen. Mithilfe von KI lernt es normale Verkehrsmuster, legt ein Basisverhalten fest und implementiert Richtlinien, um Anomalien zu melden. Dies ermöglicht sofortige, fundierte Reaktionen auf potenzielle Bedrohungen. 

Im Falle eines Angriffs, der CVE-2021-22659 ausnutzt, integriert sich MetaDefender OT Security mit der MetaDefender Industrial Firewall , um verdächtige Kommunikationen basierend auf festgelegten Regeln zu blockieren. Die Firewall nutzt KI, um regelmäßige Verkehrsmuster zu erlernen und Richtlinien durchzusetzen, um nicht autorisierte Verbindungen zu verhindern. 

Durch die Kombination dieser Erkennungs-, Alarmierungs- und Netzwerksegmentierungsfunktionen wird MetaDefender OT Security zum idealen Verteidigungsmechanismus für industrielle Umgebungen, der das Risiko und die Auswirkungen von Cyberbedrohungen in betrieblichen Technologieumgebungen deutlich reduziert.

Erfahren Sie, wie die OPSWATfür umfassende Cybersicherheit Ihre Sicherheit verbessern und ausbauen kann. Sprechen Sie noch heute mit einem Experten für eine kostenlose Demo.

Bleiben Sie auf dem Laufenden mit OPSWAT!

Melden Sie sich noch heute an, um die neuesten Unternehmensinformationen zu erhalten, Geschichten, Veranstaltungshinweise und mehr.