-
In den letzten Jahren sind gezielte Attacken auf Industrieanlagen, Regelungssystem oder Robotersysteme bekannt geworden. Das bekannteste System ist sicherlich die Stuxnet Malware, mit welcher eine gezielte Attacke auf eine Industrieanlage erfolgte und diese auch erfolgreich außer Betrieb setzte. Das Schadprogramm wurde speziell für ein bestimmtes System zur Überwachung und Steuerung technischer Prozesse (SCADA-System) der Firma Siemens, die Simatic S7, entwickelt (siehe http://de.wikipedia.org/wiki/Stuxnet vom 25.11.2014). Bisher ist bekannt, dass in die Steuerung von Frequenzumrichtern eingegriffen wird, die beispielsweise eingesetzt werden eingesetzt, um die Geschwindigkeit von anderen Geräten wie z.B. Motoren zu steuern. Solche Steuerungen werden vielfach in diversen Industrieanlagen wie Wasserwerken, Klimatechnik, Pipelines usw. eingesetzt.
-
Die hier beschriebene Erfindung hat die Aufgabe eine solche Attacke zu vermeiden bzw. die attackierte Systeme zu detektierten.
-
Die genannte Aufgabe wird durch ein System gemäß Anspruch 1 gelöst, unterschiedliche Ausführungsformen und Weiterentwicklungen sind Gegenstand der abhängigen Ansprüche.
-
In der Folge wird ein Automatisierungssystem beschrieben, das gemäß einem Beispiel der Erfindung mindestens eine speicherprogrammierbare Steuerung aufweist, welche dazu ausgebildet ist, über eine Datenleitung mit einem Regelsystem zu kommunizieren. Dabei werden ein oder mehrere Steuersignale von der speicherprogrammierbaren Steuerung an das Regelsystem und/oder ein oder mehrere Feedbacksignale von dem Regelsystem an die speicherprogrammierbare Steuerung übertragen. Das System weist weiter mindestens ein SCADA-System auf, welches dazu ausgebildet ist, mit der mindestens einen speicherprogrammierbaren Steuerung über eine weitere Datenleitung (z.B. ein Netzwerk) und unter Verwendung eines ersten Kommunikationsprotokolls zu kommunizieren und Daten auszutauschen. Dabei werden Datenpakete übertragen, welche Schreib- und Lesekommandos zum Schreiben bzw. Lesen von mindestens einem Register der speicherprogrammierbaren Steuerung sowie korrespondierende Antwortnachrichten umfassen. Eine Überwachungseinheit ist dazu ausgebildet, aus den zwischen SCADA-System und speicherprogrammierbarer Steuerung übertragenen Datenpaketen und/oder aus den zwischen speicherprogrammierbarer Steuerung und Regelsystem übertragenen Steuer- und Feedbacksignalen Betriebsdaten des Regelsystems zu extrahieren und diese mit einer vorbekannten Spezifikation zulässiger Betriebsdaten des Regelsystems zu vergleichen.
-
Das Regelsystem kann einen oder mehrere Aktoren (z.B. Motoren) sowie einen oder mehrere Sensoren aufweisen, welche Istwerte von Auslenkungen der Aktoren (oder auch andere Betriebsparameter des Regelsystems) messen. Beispielsweise handelt es sich bei dem Regelsystem um einen Industrieroboter.
-
Die speicherprogrammierbare Steuerung kann dazu ausgebildet sein, über die Datenleitung mit dem Regelsystem unter Verwendung eines echtzeitfähigen zweiten Kommunikationsprotokolls zu kommunizieren. Die Datenleitung kann beispielsweise ein Feldbus sein (bzw. Teil eines Feldbus-Systems) sein. Das erste Kommunikationsprotokoll muss hingegen nicht echtzeitfähig sein. Beispielsweise ist das erste Kommunikationsprotokoll ein Protokoll, das auf TCP/IP basiert.
-
Die extrahierten Betriebsdaten des Regelsystems umfassen beispielsweise den Sollwert einer Auslenkung mindestens eines Aktors des Regelsystems oder den (durch Sensoren gemessenen) Istwert einer Auslenkung mindestens eines Aktors des Regelsystems (oder beides). Die erwähnten zulässigen Betriebsdaten des Regelsystems umfassen beispielsweise die maximale Auslenkung mindestens eines Aktors des Regelsystems, die minimale Auslenkung mindestens eines Aktors des Regelsystems, die maximale oder minimale zeitliche Änderung eines Sollwerts einer Auslenkung mindestens eines Aktors des Regelsystems, die maximale oder minimale zeitliche Änderung eines Istwerts einer Auslenkung mindestens eines Aktors des Regelsystems oder eine beliebige Kombination der vorgenannten Parameter.
-
Die speicherprogrammierbare Steuerung kann mindestens ein Register aufweisen, welches abhängig von einem, vom Regelsystem empfangenen Feedbacksignal des Regelsystems und/oder abhängig von einem von dem SCADA-System empfangenen Schreibbefehl beschrieben wird. Abhängig vom Inhalt von mindestens einem Register kann ein Steuersignal für das Regelsystem erzeugt werden und/oder eine Antwortnachricht auf einen von dem SCADA-System empfangenen Lesebefehl erzeugt werden. Die zu extrahierenden Betriebsdaten des Regelsystems sind beispielsweise auch in mindestens einem Register der speicherprogrammierbaren Steuerung gespeichert.
-
Die Überwachungseinheit kann dazu ausgebildet sein, ein Schreibkommando zu blockieren, wenn ein daraus extrahiertes Betriebsdatum einen Wert aufweist, der nicht in einem durch Spezifikation definierten zulässigen Bereich liegt. Die Überwachungseinheit kann auch dazu ausgebildet sein, einen Alarm auszulösen, wenn ein aus einer Antwortnachricht auf einen Lesebefehl extrahiertes Betriebsdatum einen Wert aufweist, der nicht in einem durch Spezifikation definierten zulässigen Bereich liegt.
-
Schließlich wird ein Verfahren zum Betrieb eines Regelsystems mittels mindestens einer speicherprogrammierbaren Steuerung und eines SCADA-Systems beschrieben. Die speicherprogrammierbare Steuerung kommuniziert über eine Datenleitung mit dem Regelsystem, wobei ein oder mehrere Steuersignale von der speicherprogrammierbaren Steuerung an das Regelsystem und/oder ein oder mehrere Feedbacksignale von dem Regelsystem an die speicherprogrammierbare Steuerung übertragen werden. Das SCADA-System kommuniziert mit der mindestens einen speicherprogrammierbaren Steuerung über ein Netzwerk und unter Verwendung eines ersten Kommunikationsprotokolls, um Daten auszutauschen, wobei Datenpakete übertragen werden, welche Schreib- und Lesekommandos zum Schreiben bzw. Lesen von mindestens einem Register der speicherprogrammierbaren Steuerung sowie korrespondierende Antwortnachrichten umfassen. Gemäß einem Beispiel der Erfindung umfasst das das Verfahren das Extrahieren von Betriebsdaten des Regelsystems aus den zwischen SCADA-System und speicherprogrammierbarer Steuerung übertragenen Datenpaketen und/oder aus den zwischen speicherprogrammierbarer Steuerung und Regelsystem übertragenen Steuer- und Feedbacksignalen. Des Weiteren umfasst das Verfahren das Vergleichen der extrahierten Betriebsdaten mit einer vorbekannten Spezifikation zulässiger Betriebsdaten des Regelsystems.
-
Die Erfindung wird nachfolgend anhand von den in den Abbildungen dargestellten Beispielen näher erläutert. Die Darstellungen sind nicht zwangsläufig maßstabsgetreu und die Erfindung beschränkt sich nicht nur auf die dargestellten Aspekte. Vielmehr wird Wert darauf gelegt, die der Erfindung zugrunde liegenden Prinzipien darzustellen. In den Abbildungen zeigt:
-
1 ein Beispiel eines Automatisierungssystems gemäß einem Beispiel der Erfindung;
-
2 zeigt schematisch einen Angriff auf ein Automatisierungssystem gemäß 1;
-
3 ein Beispiel eines Automatisierungssystems, das gegen Angriffen von außen über das Internet abgesichert ist;
-
4 zeigt den zeitlichen Verlauf eines Sensor- bzw. Feedbacksignales;
-
5 zeigt die mögliche Konfiguration eines Blockes in Matlab/Simulink; und
-
6 zeigt den beispielhaften Einsatz von Regelblöcken in einem Matlab/Simulink Modell.
-
In den Figuren bezeichnen gleiche Bezugszeichen gleiche oder ähnliche Komponenten mit jeweils gleicher oder ähnlicher Bedeutung.
-
Beschrieben wird im Folgenden ein Automatisierungssystem bzw. ein Robotiksystem, welches durch den in 1 gezeigten Aufbau charakterisiert werden kann. Gemäß dem in 1 dargestellten Beispiel umfasst das Automatisierungssystem 1 ein SCADA-System 10, eine speicherprogrammierbare Steuerung 20 (SPS, programmable logic controller, PLC), sowie ein Regelsystem 30 (control system), welches im vorliegenden Beispiel als Industrieroboter dargestellt ist.
-
Ein SCADA-System 20 (SCADA = Supervisory Control and Data Acquisition) ist ein computerbasiertes Überwachungssystem und Steuerungssystem für speicherprogrammierbare Steuerungen (SPS, PLC), wobei für die Kommunikation zwischen Systemen ein Industrieprotokoll (Kommunikationsprotokoll) verwendet wird (hier als ModBus/TCP bezeichnet), welches typischerweise keine oder eine nur sehr eingeschränkte Echtzeitfähigkeit besitzt (bei Modbus/TCP werden TCP/IP-Pakete verwendet, um die Daten zu übermitteln; seit 2007 ist die Modbus-Version Modbus/TCP Teil der Norm IEC 61158). Das SCADA-System 20 kann Lesekommandos (wie z. B. das Auslesen von einem oder mehrerer Register einer SPS) oder Schreibkommandos (wie z. B. Befehle, welche einen Wert in ein Register der SPS schreiben) an die SPS übertragen. Die SPS/PLC 20 antwortet mit in der Spezifikation des Kommunikationsprotokolls definierten Antworten. Zum Beispiel wird der Wert des Registers ausgelesen oder eine Statusmeldung der SPS zurückgesendet. Eine allgemeine Erläuterung zu SCADA findet sich z.B. online unter http://de.wikipedia.org/wiki/Supervisory_Control_and_Data_Acquisition (abgerufen am 25.11.2014).
-
Der zweite Teil des Systems umfasst typischerweise die SPS 20 und das Regelungssystem 30 (Industrieroboter). Hier erfolgt die eigentliche Steuerung bzw. Regelung der Applikation und als Kommunikationsprotokoll (in den Zeichnungen als „Real Time Industrial Protocol“ bezeichnet) wird ein System verwendet, welches in Abhängigkeit der Applikation auch harte Echtzeitanforderungen erfüllen muss. Ein oder mehrere Sensorsignale Y (allgemein Feedbacksignale) des Regelungssystem 30 dabei in die Register der SPS 20 geschrieben, welche diese dann mittels Regelungsalgorithmen (z. B. PID-Regler) in Steuerungssignale X für das Regelungssystem 30 umsetzt und an dieses überträgt. Die Definition von „Echtzeit“ der inzwischen durch DIN ISO/IEC 2382 abgelösten Norm DIN 44300 (Informationsverarbeitung), Teil 9 (Verarbeitungsabläufe) lautete: "Unter Echtzeit versteht man den Betrieb eines Rechensystems, bei dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind, derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind. Die Daten können je nach Anwendungsfall nach einer zeitlich zufälligen Verteilung oder zu vorherbestimmten Zeitpunkten anfallen." Durch die Hardware und Software muss also sichergestellt werden, dass keine Verzögerungen auftreten, welche die Einhaltung dieser Bedingung (Ergebnisse müssen innerhalb eine vorgegebenen Zeitspanne verfügbar sein) verhindern könnten. Die Verarbeitung der Daten muss dabei nicht besonders schnell erfolgen, sie muss nur garantiert schnell genug für die jeweilige Anwendung erfolgen. Eine Kommunikation (Datenübertragung) in Echtzeit ermöglichen z.B. einige moderne Feldbus-Systeme (basierend z.B. auf Echtzeit-Ethernet). Protokolle der „klassischen“ Kommunikationsprotokollfamilie TCP/IP (Transmission Control Protocol/Internet Protocol) sind dagegen nicht ohne weiteres echtzeitfähig.
-
Wird nun ein System angegriffen, kann das auf unterschiedliche Art und Weise erfolgen:
Möglichkeit 1 | – es werden gefälschte Nachrichten (Fake-Messages) eines |
| Angreifers 11 (Attacker) an die SPS 20 gesendet, wie z. B. nicht |
| erlaubte Schreibbefehle; |
Möglichkeit 2 | – es wird das Betriebssystem der SPS 20 gehackt und dann ganz |
| gezielt Register der SPS falsch beschrieben. |
-
Die folgende 2 zeigt im Wesentlichen (grau hinterlegt) die Vorgehensweise einer Attacke nach Methode 1 und 2.
-
Mit einem Automatisierungssystem gemäß einem Beispiel der Erfindung ist zur Vermeidung von derartigen Attacken dadurch abgesichert, dass ein unabhängiges Überwachungssystem 15 zwischen SCADA 10 und SPS 20 vorgesehen ist. Wird das Überwachungssystem 15 im linken Teil (zwischen SCADA 10 und SPS 20, siehe 3) platziert, sind keine signifikanten Echtzeitanforderungen notwendig.
-
Eine Platzierung der Überwachungseinheit im rechten Teil des Systems (zwischen SPS 20 und Regelungssystem 30) ist nur schwer realisierbar, da dort typischerweise hohe Echtzeitforderungen vorhanden sind. Dies würde dazu führen, dass eine Überwachungseinheit deterministische Eigenschaften aufweisen müsste (die Überwachungsaufgabe in einer vordefinierten Zeit erfüllt sein muss) und auf der anderen Seite wäre die Überwachungseinheit Teil des Steuersystems und würde somit z.B. Teil einer Zertifizierung nach Maschinenrichtlinie in Bezug auf funktionelle Sicherheit.
-
Die ein Aspekt zur Abwehr eines Angriffes besteht darin, dass man die Systemspezifikationen (z. B. die der Regelungssollwerte, der Sensor- und Aktorsignale) verwendet, um zu überwachen, ob diese verletzt werden oder nicht. Befinden sich Werte im Spezifikationsbereich kann man davon ausgehen, dass das System vernünftig arbeitet. Im Falle von Werten außerhalb des Spezifikationsbereiches wird entweder eine Alarmierung freigesetzt oder der entsprechende Befehl geblockt.
-
Die folgende 4 zeigt den zeitlichen Verlauf eines Sensorsignales X (welches z.B. von dem Regelsystem 30 an die SPS 20 übertragen wird). In der Systemspezifikation des Regelsystems kann nun der (gültige) Arbeitsbereich des Signales X definiert werden (Signalpegel Signal_max und Signal_min) oder auch eine zeitliche Beschränkung wie zum Beispiel die zeitliche Ableitung dX/dt des Signales X (Tangentensteigungen dSignal_max und dSignal_min). Vorstellbar wären natürlich auch andere Beschränkungen bzw. Randbedingungen wie z.B. mathematisch zusammenhängende Qualitätskriterien.
-
Gemäß 4 übersteigt das Sensorsignal X an der Stelle 1 den zulässigen maximalen Signalpegel Signal_max, an der Stelle 2 fällt es unter den zulässigen minimalen Signalpegel Signal_Min. An den Stellen 3 und 4 über- bzw. untersteigt die Tangentensteigung (der Tangente an das Sensorsignal X, entspricht der ersten Ableitung bzw. der Änderungsrate) die zulässige Ober- bzw. Untergrenze dSignal_max und dSignal_min.
-
Im Folgenden wird eine Überwachungseinheit 15 im linken Teil des Systems beschrieben (vgl. Darstellung aus 3), jedoch sind die Methoden auch für den rechten Teil des Systems möglich, jedoch mit den oben beschriebenen Einschränkungen. Um eine Attacke gemäß Methode 1 (gefälschte Registerschreibbefehle durch sogenannte Fake-Messages) zu vermeiden, werden Regeln verwendet, welche den Inhalt des Protokolls untersuchen und im Falle einer Verletzung des Spezifikationsbereiches die entsprechenden Befehle blockieren.
-
Um eine Attacke gemäß Methode 2 – Registerlesebefehle – zu vermeiden, werden Überprüfungs-Regeln verwendet, welche den Inhalt des Protokolls untersuchen und im Falle einer Verletzung des Spezifikationsbereiches einen Alarm produziert.
-
Zum Abarbeiten der Regeln wird eine Patternmatching-Programm verwendet, wie z. B. Snort (ein freies Network Intrusion Detection System (NIDS) und ein Network Intrusion Prevention System (NIPS)) oder ähnliche. Eine andere Möglichkeit ist, dass die Regeln in eine Logik oder einen Programmcode übersetzt werden.
-
Die Regeln können nun anhand der Kenntnis der Protokollspezifikation, der Netzwerkinfrastruktur der Registerbelegung der SPS und der Systemspezifikation erstellt werden. Dies kann manuell mittels eines Editors oder automatisiert erfolgen. Eine typische Regel besteht dabei aus folgenden Komponenten, wie anhand einer typischen Snort Regel gezeigt wird:
-
Dabei bedeutet:
- alert – Tätigkeit des Alamierens;
- tcp – das Protokoll, welches als Grundlage verwendet wird;
- 10.0.1.110/32 – zu beobachtende IP-Adressen (Adressbereich);
- any, 502 – zu überwachende Ports;
- content, offset, depth – Beschreibt den Inhalt und dessen Position im Protkoll, der süberwacht werden muss;
- flowbits – wird verwendet dynamisch weitere Regeln einzubinden
- byte_test – beschreibt das Überprüfung eines Wertes ob er innerhalb oder außerhalb des Spezfikationsbereiches liegt;
- msg – ist der Befehl, der den textuellen Output produziert, falls der Wert außerhalb des Spezifikationsbereiches liegt;
-
Zur automatischen Generierung der Regeln werden die vorher beschriebenen Kenntnisse in einem Programm verarbeitet und eine Textdatei produziert, welche dann z. B. mit Hilfe von Snort verwendet wird.
-
Zur Vereinfachung der automatischen Generierung können auch Blöcke in einer Entwicklungsumgebung (z. B. Matlab) verwendet werden, welche mit den notwendigen Kenntnissen hinterlegt sind. Die 5 zeigt die mögliche Konfiguration eines Blockes in Matlab/Simulink. In der darauf folgenden Abbildung 6 sieht man den beispielhaften Einsatz von Regelblöcken in einem Matlab/Simulink Modell. Die Überprüfungs-Regeln können dann bei der Abarbeitung einer Blocks im Matlab/Simulink erzeugt werden, was dem Regelungsingenieur ermöglicht, sich nicht näher mit den Details der Absicherung des Automatisierungssystems durch Angreifer auseinandersetzen zu müssen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- http://de.wikipedia.org/wiki/Stuxnet [0001]
- Norm IEC 61158 [0020]
- http://de.wikipedia.org/wiki/Supervisory_Control_and_Data_Acquisition [0020]
- DIN ISO/IEC 2382 [0021]
- Norm DIN 44300 [0021]