Das Stuxnet-Virus ist von hoher Komplexität. Wie bekannt wurde, hat es \’Stuxnet\‘ nur auf bestimmte Maschinen abgesehen. Leider hat sich dadurch die Meinung gebildet, dass ein Angriff auf die SPS nur mit sehr hochentwickelten Schadprogrammen möglich ist. Im Folgendem möchte ich erläutern, warum das nicht so ist. Aus meiner Erfahrung ist mir bekannt, dass oftmals in Firmen keine Trennung zwischen Verwaltungs- und Automatisierungsnetzwerk existiert. So kommt es nicht selten vor, dass ein Verwaltungsangestellter einer Gemeinde direkten Zugriff auf die SPS der Kläranlage oder des Pumpwerks hat. Der Grund, warum häufig keine Netztrennung existiert, ist die Meinung, dass das Übertragungsprotokoll zu SPS höchst geheim und sicher ist. Dabei kommt die größte Bedrohung für eine SPS aus dem eignen Hausnetzwerk. Jeder Computer, der auf die S7 Zugriff hat, kann potentiellen Schaden in der Steuerung und somit im Prozess- und Produktionsablauf anrichten.
Offene TCP/IP-Schnittstelle
Die SPS besitzt eine offene TCP/IP-Schnittstelle. Über den TCP/IP-Port 102 läuft das RFC-1006-Protokoll, auch ISO on TCP genannt. RFC-1006 ist ein Protokoll im Protokoll, also im Grunde nichts anderes als ein virtuelles Kabel. Im RFC-1006 sind wiederum Anfangs- und Endpunkt (Transportserviceaccesspoint: Source-TSAP, Dest-TSAP) definiert. Das sind im Grunde die Parameter, über die z.B. die Verbindung eines Scada-Systems mit einer Simatic-S7 festgelegt wird. Über solche Verbindungen wird programmiert, diagnostiziert, visualisiert und gesteuert. Praktisch jeder S7-OPC-Server basiert auf diesem Protokoll. Dabei ist es der SPS egal, wer diese Kanäle verwendet und darüber von ihr liest oder etwas irgendwo hineinschreibt. Die SPS prüft noch nicht einmal den Absender der Telegramme. Zwar gibt es die Möglichkeit PG- OP- oder SPS-Kanäle zu verwenden, jedoch sind alle Verbindungskanäle gleichberechtigt. Das bedeutet, dass jeder Teilnehmer, der dieses Protokoll spricht, alles (!) in der SPS tun darf. Dies geht vom Programmieren, Start, Stopp der Steuerung bis hin zum Lesen und Schreiben Prozessabbilden, Peripheriezustände, Datenbausteinen etc. Schlichtweg alle Daten der SPS stehen im Zugriff. Das S7-Protokoll ist zwar nicht offengelegt, jedoch gibt es Implementierungen als Bibliothek (z.B. LibNoDave, Prodave, IP-S7-LINK). Damit lässt sich mit jeder x-beliebigen Programmiersprache (C#, VB, C++, Delphi, Java, Excel) auf die SPS ungehindert schreiben und lesen!
Gefahr droht aus dem eigenen Netz
Der Zugriff auf Daten über TCP/IP wird von der SPS nicht kontrolliert. Die S7-SPS besitzt verschiedene Datenbereiche wie: Systemdaten, Programmspeicher, Peripheriespeicher, Prozessabbild, Merker, Zähler, Timer, Datenbausteine. Jede Art dieses Speichers kann per TCP/IP Port 102 gelesen und geschrieben werden. Im Klartext: Ausgangsbaugruppen, Merker, interne Datenbausteine können ungehindert beschrieben werden. Absichtliche und auch unabsichtliche Fehlzugriffe auf den SPS-Speicher können schlimme Folgen für den Prozessablauf in der Steuerung bzw. der ganzen Anlage zur Folge haben. Selbst HMI-Geräte oder PC, welche rechtmäßig Zugriff auf die SPS haben, können durch Fehlkonfiguration Schaden anrichten. Da genügt es im einfachsten Fall das Vertauschen von IP-Adressen oder Datenbausteinnummern. Schon landet der Sollwert im internen DB der SPS und das Programm zeigt ein Fehlverhalten.
Reale Gefahr
Die Frage ist nicht, ob die offene S7-Schnittstelle von schadhafter Software verwendet wird, sondern vielmehr wann. Deshalb gilt es diese Lücke schnellst möglich zu schließen. Ein Weg ist sicherlich, das SPS-Netz vom Verwaltungsnetzwerk über eine Firewall zu trennen, um so nur den Teilnehmern im Produktionsnetz Zugriff auf die SPS zu erlauben. Soll tatsächlich fehlerhafter Schreibzugriff auf die Prozessdaten der S7 verhindert werden, so ist dies mit Standard-Firewall-Lösungen nicht machbar. Die Simatic S7 300/400/200 verfügt über keinen skalierbaren Zugriffschutz der SPS-Daten. Somit bleibt nur der Weg über intelligente Lösung, die den richtigen Zugriff sicherstellt. Mehr dazu im zweiten Teil des Beitrags.