(Bild: Uli Ries)
Über die oftmals frei aus dem Internet zugänglichen Programmable Logic Controller (PLC) zum Steuern von Scada-Systemen können Angreifer Scanner zum Spionieren in Industrie-Systeme schmuggeln. Die dafür nötige Software steht frei zum Download.
Die Sicherheitsforscher Johannes Klick und Stephan Lau der Freien Universität Berlin warnten auf der Sicherheitskonferenz Black Hat vor einem bislang nicht entdeckten Weg in Scada-Netzwerke: Anstatt das Netz offline über einen infizierten Rechner, wie im Fall von Stuxnet, anzugreifen oder den Umweg über einen attackierten Büro-PC zu wählen, wie im Fall des beschädigten Hochofens in einem deutschen Stahlwerk, nahmen sich die Forscher direkt einen aus dem Internet zugänglichen PLC vor.
Mehr als 28.000 PLCs über das Internet erreichbar
Hiervon gibt es reichlich, wie den Forschern zufolge ein Scan mit der Suchmaschine Shodan belegt: Zwischen 2013 und 2015 stieg die Zahl der frei zugänglichen PLCs um gut 300 Prozent auf über 28.000. Das ist insofern bemerkenswert, weil der Stuxnet-Angriff zu dieser Zeit ja schon intensiv diskutiert wurde. Oftmals sind die Industrie-Komponenten aus Wartungsgründen direkt mit dem Internet verbunden.
Die beiden Forscher demonstrierten mit einer Siemens-PLC (S7-300), wie der von ihnen konzipierte Angriff ablaufen kann: Mittels des selbst geschriebenen Open-Source-Tools PLCinject laden sie zuerst den Hauptprogrammblock (OB1, Organization Block 1) der PLC herunter und fügen ihm anschließend einen neuen Funktionsaufruf hinzu. Programmiert ist der OB1 in Statement List, einer laut Klick und Lau Assembler-ähnlichen Sprache.
Eingeschmuggelter Schadcode spioniert
Der neue Call zeigt auf den zuvor auf die PLC hochgeladenen Schadcode. In diesem Fall ein Netzwerkscanner, der auf dem Simple Network Managment Protocol (SNMP) basiert. Anschließend lädt PLCinject den OB1 wieder hoch und der PLC arbeitet den Code ab. Danach wird ohne Unterbrechung beziehungsweise Störung des Produktionsbetriebs der eigentliche Programmcode ausgeführt.
Da alle PLCs dieser Baureihe ab Werk mit aktiviertem SNMP ausgeliefert werden, kann der nur wenige Kilobyte große Scanner von der infizierten Komponente aus das ganze Produktionsnetz scannen und alle relevanten Informationen wie aktive IP-Adressen, Subnetze oder die Software-Version eines PLC einsammeln.
PLCs abschießen
Nachdem die Scan-Daten heruntergeladen wurden, schickten die Forscher wiederum per PLCinject den Code des SOCKS-Proxy zum S7-300. Mit dessen Hilfe tunneln sie Kommandos ins Netz hinter dem ferngesteuerten PLC. In einem Video zeigten sie, wie sich ein zweiter PLC aus dem Dienst verabschiedete, nachdem die Angreifer eine DoS-Attacke ritten. Der zugrundeliegende Bug wurde im März von Siemens per Update geschlossen, nachdem die Forscher den Hersteller informierten.
Wenn kein anderer speicherintensiver Programmcode auf dem PLC läuft, schaufelt der Proxy gut 730 KByte/s ins jeweilige Netzwerk. Unter Last sinkt der Wert auf gut 40 KByte/s pro Sekunde. Inwiefern dieses Tempo beispielsweise den Einsatz von Metasploit verlangsamt, dass sich per tsocks-Proxy auf dem PLC ausführen lässt, ist nicht bekannt.
Unproblematisch scheint die CPU-Auslastung zu sein: Trotz laufendem Proxy stieg die Cycle Time auf durchschnittlich 86 Millisekunden. Schwierigkeiten gebe es erst bei gut 150 Millisekunden, erklärten die Forscher.
Nachdem PLCinject gängige Funktionen des PLC nutzt, lässt sich der gezeigte Angriff nicht durch ein Software-Update aus der Welt schaffen. Johannes Klick und Stephan Lau raten daher dazu, die PLCs unbedingt durch eine Firewall vor freiem Zugriff aus dem Netz zu schützen und den Remote-Zugriff per VPN abzuwickeln. (Uli Ries) / (des)