-
Die vorliegende Erfindung bezieht sich auf ein insbesondere industrielles Steuerungssystem, insbesondere in der industriellen Automatisierungstechnik, sowie ein Verfahren in der industriellen Automatisierungstechnik zum Betreiben eines Steuerungssystems bzw. eines Automatisierungsgeräts. Bevorzugt bezieht sich die vorliegende Erfindung auf ein Verfahren und/oder ein industrielles Steuerungssystem bzw. Software für industrielle Steuerung in unabhängig voneinander agierenden Modulen.
-
Weiter bezieht sich die vorliegende Erfindung auf ein Computerprogramm, umfassend Befehle, die bewirken, dass das Steuerungssystem die Verfahrensschritte ausführt sowie auf ein computerlesbares Speichermedium, auf dem das Computerprogramm gespeichert ist.
-
Die vorliegende Erfindung kann insbesondere Anwendung finden bei einer Werkzeugmaschine, beispielsweise einer Fräs-, Schleif- oder Druckmaschine, einer Verpackungsmaschine, einer Beladeportalvorrichtung, einer Füllmaschine, einer Hydraulikpresse oder einer Automatisierungsanlage bzw. einem Automatisierungsgerät. Des Weiteren sind Anwendungen auch denkbar bei Anlagen mit elektrischen, hydraulischen oder pneumatischen Antrieben.
-
Bei heutigen industriellen Systemen aus dem Stand der Technik handelt es sich aus technischer Sicht in der Regel um monolithische Systeme. Betriebssystemkern, Betriebssystem und Applikationen werden gebündelt als Firmware bereitgestellt. Weiterhin werden bei heutigen industriellen Systemen IT-Sicherheitsmechanismen - sofern vorhanden - häufig von jedem Bestandteil (Applikation, Betriebssystem, ...) eigenständig bereitgestellt.
-
Diese Aspekte wirken sich negativ aus, sobald eine Aktualisierung einzelner Bestandteile - beispielsweise aufgrund von Security-Schwachstellen - notwendig wird. In einem solchen Fall muss stets die gesamte Firmware ausgetauscht werden. Hierbei werden in der Regel mehrere Bestandteile auf einmal aktualisiert, was das Risiko möglicher Seiteneffekte und damit von Stillstandzeiten signifikant erhöht. Auch deshalb wird häufig gänzlich auf zeitnahe Sicherheits-Updates verzichtet und das entstehende Risiko akzeptiert.
-
Insbesondere im Hinblick auf künftige bzw. bereits angewendete Szenarien im Kontext Industrie 4.0 - und somit der steigenden Vernetzung der Geräte - steigt jedoch die Notwendigkeit, beim Bekanntwerden von Schwachstellen Sicherheitslücken durch Software-Aktualisierung zeitnah zu schließen. Wie obig bereits ausgeführt, ist derzeit allerdings eine Aktualisierung der Software eines Automatisierungssystems architekturbedingt mit hohem Aufwand und Risiken verbunden.
-
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Steuerungssystem sowie ein Verfahren insbesondere in der industriellen Automatisierungstechnik bzw. einen Computercode bereitzustellen, mithilfe dem der mit einer Aktualisierung einer Software verknüpfte Aufwand bzw. das hiermit verknüpfte Risiko deutlich reduziert wird.
-
Dies wird erfindungsgemäß durch die Gegenstände der unabhängigen Ansprüche erreicht. Vorteilhafte Ausführungsformen und Weiterbildungen sind Gegenstand der Unteransprüche.
-
Ein erfindungsgemäßes Steuerungssystem (insbesondere Automatisierungssystem), insbesondere in der industriellen Automatisierungstechnik, weist eine Hardware umfassend wenigstens einen Prozessor und wenigstens eine Speichereinrichtung auf, in der von dem Steuerungssystem, insbesondere durch den Prozessor, auszuführende Applikationen ablegbar (oder abgelegt) sind, wobei das Steuerungssystem derart konfiguriert ist, dass wenigstens zwei und bevorzugt eine Vielzahl voneinander isolierter Ausführungsumgebungen vorgesehen und/oder eingerichtet sind. Bevorzugt ist das Steuerungssystem dazu geeignet und bestimmt, eine oder mehrere Applikationen bzw. Aufgaben (insbesondere Software-Aufgaben) aus der Steuerungstechnik, insbesondere einer Maschinensteuerung und/oder Automatisierungsgerätesteuerung, durchzuführen. Mithilfe des Steuerungssystems kann beispielsweise ein (automatisierter) Prozess, beispielsweise eines Automatisierungsgeräts und/oder Feldgeräts und/oder Aktor und/oder Antriebsregler, überwacht und/oder geregelt und/oder gesteuert werden.
-
Erfindungsgemäß sind wenigstens zwei, und bevorzugt eine Vielzahl, voneinander unabhängig ausführbare und/oder agierende Funktionsmodule vorgesehen, welche jeweils, insbesondere ausschließlich, in je einer isolierten Ausführungsumgebung ausführbar sind (und bevorzugt ausgeführt werden) und/oder agieren. Dabei sind die Funktionsmodule (insbesondere jeweils) charakteristisch für (verschiedene) Funktionen (oder Funktionsbereiche) des Steuerungssystems. Insbesondere sind die Funktionsmodule charakteristisch für (verschiedene) Funktionen (bzw. Funktionsbereiche) und/oder Bestandteile einer Firmware (des Steuerungssystems). Bevorzugt sind die (bevorzugt alle) Funktionsmodule (jeweils) eigenständig lauffähig.
-
Mit anderen Worten werden in der vorliegenden Erfindung unabhängig voneinander agierende Module vorgeschlagen. Durch die modulare Bereitstellung der einzelnen Applikationen bzw. Betriebssystemkern und/oder Betriebssystem und/oder Steuerungskern wird sowohl der Aufwand der Aktualisierung der Software des Steuerungssystems als auch das Risiko reduziert. Es wird also vorgeschlagen, anstelle eines monolithischen Systems mit gebündelter Bereitstellung von Betriebssystemkern, Betriebssystem und Applikationen ein modulares System bereitzustellen, in dem die jeweiligen Funktionsmodule isoliert voneinander ausgeführt werden und eigenständig lauffähig sind. Dadurch betrifft die Aktualisierung der Software und die Sicherheit einer Funktion lediglich ein einzelnes Modul und nicht die vollständige Firmware.
-
Bevorzugt ist jeder isolierten Ausführungsumgebung ein Teil der gesamten System-Ressourcen zugeordnet. Bevorzugt ist die isolierte Ausführungsumgebung, besonders bevorzugt sind die isolierten Ausführungsumgebungen jeweils, als Sandbox realisiert. Unter den System-Ressourcen werden dabei insbesondere die in dem (gesamten) Steuerungssystem und/oder einer oder mehreren und bevorzugt allen Hardware-Komponente(n) des Steuerungssystems verfügbaren (bevorzugt realen) System-Ressourcen verstanden. Bevorzugt werden und/oder sind jeder isolierten Ausführungsumgebung exklusive System-Ressourcen, insbesondere exklusive (physikalische) Hardware- und/oder Betriebssystem-Ressourcen (und/oder Firmware-Ressourcen) zugeordnet. Dabei handelt es sich bevorzugt um reale System-Ressourcen und nicht um virtuelle System-Ressourcen.
-
Unter einem Funktionsmodul wird insbesondere ein (virtuelles) Modul verstanden, welches etwa eine funktionale Einheit der Firmware des Steuerungssystems gruppiert bzw. umfasst (oder auch repräsentiert). Bevorzugt beziehen sich verschiedene Funktionsmodule auf verschiedene Funktionen.
-
In einer vorteilhaften Ausführungsform ist die Funktion des Steuerungssystems ausgewählt aus einer Gruppe, die den Steuerungskern, den Betriebssystemkern, Applikationen, Kommunikation und dergleichen (etwa weitere Firmware-Bestandteile) sowie Kombinationen hieraus umfasst. Bevorzugt sind diese Funktionen als Module ausgeführt. Mit anderen Worten ist ein Funktionsmodul charakteristisch für (wenigstens und bevorzugt genau) einen Bestandteil, der ausgewählt ist aus der Gruppe, die den Steuerungskern, den Betriebssystemkern, verschiedene Applikationen, Kommunikation und dergleichen sowie Kombinationen umfasst. Bevorzugt kann eine, und bevorzugt jede, von der Firmware und/oder dem Steuerungssystem durchzuführende Aufgabe genau einem Funktionsmodul (eindeutig) zugeordnet werden.
-
Bevorzugt ist jedem Funktionsmodul lediglich der (direkte) Zugriff auf die ihm zugeordneten System-Ressourcen (insbesondere ohne Vornahme einer Zugriffsberechtigung) möglich. Bevorzugt ist jedem Funktionsmodul (insbesondere ohne Vornahme einer Zugriffsberechtigung) kein Zugriff auf die einem und besonders bevorzugt jedem weiteren Funktionsmodul zugeordneten System-Ressourcen möglich. Bevorzugt ist jedem Funktionsmodul lediglich der Zugriff auf die Dateien (bzw. das Dateisystem der jeweiligen isolierten Ausführungsumgebung und insbesondere der jeweiligen Sandbox) und/oder lediglich der Zugriff auf die Konfiguration der (jeweiligen) isolierten Ausführungsumgebung, insbesondere der jeweiligen Sandbox möglich. Bevorzugt ist jedem Funktionsmodul kein Zugriff auf die einem (und bevorzugt jedem) weiteren Funktionsmodul zugeordneten Dateien und/oder der Konfiguration der jeweiligen isolierten Ausführungsumgebung (insbesondere der jeweiligen Sandbox des weiteren Funktionsmoduls) möglich. Bevorzugt verfügt jedes Funktionsmodul über eine unabhängige und/oder geschützte Speicherverwaltung. Es wird bevorzugt (insbesondere über eine Virtualisierungsschicht des Steuerungssystems) eine Speichervirtualisierung vorgenommen, die den einzelnen isolierten Ausführungsumgebungen (und damit den Funktionsmodulen) jeweils (nur) eine Teilmenge des physikalisch verfügbaren (Haupt-)Speichers bereitstellt und besonders bevorzugt exklusiv zur Verfügung gestellt.
-
Bevorzugt weist das Steuerungssystem wenigstens ein Funktionsmodul, welches charakteristisch ist für einen Betriebssystemkern, und/oder wenigstens ein Funktionsmodul, welches charakteristisch ist für einen Steuerungskern, und/oder wenigstens ein Funktionsmodul, welches charakteristisch ist für eine Applikation und/oder wenigstens ein Funktionsmodul auf, welches charakteristisch ist für eine Echtzeit-Applikation. Bevorzugt werden verschiedene Applikationen als verschiedene Funktionsmodule ausgeführt.
-
Bevorzugt sind (im Wesentlichen) alle Applikationen als (jeweils separate) Funktionsmodule ausgeführt. Bevorzugt sind verschiedene Bestandteile der Firmware jeweils in (separate) Funktionsmodule eingeteilt. Beispielsweise kann die Firmware in kleinstmöglich (jeweils funktional zusammenhängende) Bestandteile unterteilt und als eigenständiges Funktionsmodul ausgeführt werden. Dies bietet den Vorteil eines kleinstmöglichen Aufwands und Risiko bei einer Aktualisierung der Software eines Bestandteils.
-
In einer vorteilhaften Ausführungsform kann eine Kommunikation und/oder Interaktion zwischen zwei Funktionsmodulen, bevorzugt ausschließlich, über wenigstens einen vorgegebenen Kommunikationskanal, insbesondere eine Schnittstelle, oder über eine Vielzahl vorgegebener Kommunikationskanäle (insbesondere Schnittstellen) erfolgen. Mit anderen Worten ist bevorzugt eine Kommunikation und/oder Interaktion zwischen den (Funktions-)Modulen nur über definierte Schnittstellen möglich. Dies erlaubt vorteilhaft eine rückwirkungsfreie Aktualisierung einzelner Bestandteile des Systems.
-
Bevorzugt ist eine Kommunikation und/oder Interaktion zwischen zwei Funktionsmodulen ausschließlich über eine IP-basierte Netzwerkkommunikation und/oder über eine Interfacebasierte Kommunikationsschicht möglich.
-
Bevorzugt ist der Zugriff einer (jeder) Applikation bzw. der Zugriff einer innerhalb eines Funktionsmoduls ausgeführten Anwendung auf die einer isolierten Ausführungsumgebung (insbesondere exklusiv) zugeordneten System-Ressourcen nur möglich, wenn diese Applikation bzw. Anwendung diesem Funktionsmodul zugeordnet ist und/oder zuordenbar ist, welches in der isolierten Ausführungsumgebung ausführbar ist und/oder agiert.
-
In einer weiter vorteilhaften Ausführungsform ist wenigstens ein (bevorzugt genau ein) zentrales Modul zur Ausführung und/oder Übernahme wenigstens einer ein Funktionsmodul betreffenden Funktion vorgesehen, wobei bevorzugt die Funktion von einem Funktionsmodul an das zentrale Modul delegiert wurde und wobei bevorzugt das zentrale Modul in einer isolierten Ausführungsumgebung ausgeführt wird und/oder agiert. Bevorzugt betrifft diese Funktion die (IT-)Sicherheit des Funktionsmoduls. Ein Vorsehen eines zentralen Moduls bietet den Vorteil, von mehreren Funktionsmodulen benötigte oder verwendete Funktionen an ein (gemeinsames) zentrales Modul auslagern bzw. delegieren zu können. Diese (gemeinsame bzw. für mehrere Funktionsmodule ausführbare) Funktion des zentralen Moduls muss nicht für jedes einzelne Funktionsmodul aktualisiert werden, sondern kann in einem einmaligen Schritt aktualisiert werden.
-
Bevorzugt ist das zentrale Modul dazu eingerichtet und bestimmt, eine (wenigstens eine) Funktion für wenigstens ein Funktionsmodul und bevorzugt für eine Vielzahl von Funktionsmodulen zu übernehmen.
-
In einer weiter vorteilhaften Ausführungsform trägt das zentrale Modul zur Sicherstellung der Sicherheit wenigstens eines Funktionsmoduls und/oder des Steuerungssystems bei, und/oder dass das zentrale Modul dazu geeignet und/oder konfiguriert ist, wenigstens eine Funktion betreffend eine Transportverschlüsselung, eine Verwaltung von Nutzern und/oder Gruppen, und/oder eine Durchsetzung von Zugriffsbeschränkungen auszuführen. Bevorzugt verwaltet das zentrale Modul wenigstens einen Sicherheits-relevanten Mechanismus, bevorzugt mehrere und besonders bevorzugt (im Wesentlichen) alle Sicherheits-relevanten Mechanismen. Mit anderen Worten werden bevorzugt im Steuerungssystem die Security-relevanten Mechanismen - z. B. die Transportverschlüsselung, die Verwaltung von Nutzern und Gruppen, die Durchsetzung von Zugriffsbeschränkungen - von einer zentralen Komponente (zentralem Modul) verwaltet.
-
In einer weiter vorteilhaften Ausführungsform stellt wenigstens ein Funktionsmodul und bevorzugt eine Vielzahl von Funktionsmodulen dem zentralen Modul Konfigurationsdaten, insbesondere über einen Adapter, bereit und/oder übergibt Konfigurationsdaten, wobei bevorzugt die Konfigurationsdaten charakteristisch sind für eine Sicherheitsmaßnahme. Eine als (Funktions-)Modul ausgeführte Applikation muss also bevorzugt dieser zentralen Komponente (bzw. dem zentralen Modul) lediglich einige wenige Security-relevante Konfigurationsdaten zur Verfügung stellen. Die Durchsetzung der Security beim Zugriff auf das Gerät erfolgt anschließend durch die zentrale Komponente (dem zentralen Modul). Dies vereinfacht die Entwicklung von Applikationen durch Drittentwickler (diese können sich auf funktionale Aspekte konzentrieren) und verringert potentielle Fehlerquellen durch fehlerhafte Implementierungen von Security-Mechanismen in den Applikationen.
-
Bevorzugt weist ein Funktionsmodul und besonders bevorzugt weist jedes Funktionsmodul einen Adapter für Konfigurationsdaten auf. Über diesen Adapter stellen die einzelnen Funktionsmodule dem zentralen Modul (optional) Konfigurationsmodul zur Verfügung.
-
Bevorzugt ist das Steuerungssystem derart konfiguriert, dass das zentrale Modul wenigstens einem Funktionsmodul und bevorzugt allen Funktionsmodulen und/oder den als Funktionsmodulen ausgeführten Applikationen, Security-Funktionen (Sicherheitsmaßnahmen) zur Verfügung stellt.
-
In einer weiter vorteilhaften Ausführungsform fungiert das zentrale Modul als Proxy insbesondere für Kommunikationsanfragen, bevorzugt für Zugriffsanfragen auf eine Applikation und/oder zur Zugriffsgewährung auf eine Applikation. Bevorzugt ist also das zentrale Modul (in seiner Eigenschaft als Security-Modul) geeignet, als Proxy Anfragen an das Gerät zu bündeln und/oder nur über einen definierten Zugangsweg den Zugriff auf Applikationen zu ermöglichen. Dies reduziert die potentielle Angriffsfläche für Angreifer.
-
Bevorzugt ist das Steuerungssystem derart eingerichtet, dass eine Kommunikation und/oder Datenaustausch mit einem Funktionsmodul, welche beispielsweise über eine externe Schnittstelle und/oder mit einem externen Client und/oder mit einem Beteiligten außerhalb des Steuerungssystems bzw. des Automatisierungsgeräts erfolgt, jedenfalls über das zentrale Modul erfolgt. Bevorzugt verwaltet das zentrale Modul Zugriffsberechtigungen, besonders bevorzugt separat für (jedes Funktionsmodul bzw.) die Funktionsmodule. Bevorzugt weist das zentrale Modul eine Speichereinrichtung auf, in der Konfigurationsdaten und/oder Daten, welche charakteristisch sind für die Sicherheit und/oder Zugriffsberechtigung(en) ablegbar sind und/oder abgelegt sind. Bevorzugt sind diese Daten in Abhängigkeit der einzelnen Funktionsmodule (etwa im Rahmen einer Datenbank) abgelegt.
-
Bevorzugt ist kein Funktionsmodul direkt (insbesondere ohne Zwischenverbindung über das zentrale Modul) zur Kommunikation mit einer (jeder) externen Schnittstelle verbunden. Bevorzugt muss also ein in die externe Schnittstelle verlaufender Datenaustausch mit einem Funktionsmodul über das zentrale Modul erfolgen.
-
Bevorzugt weist das Steuerungssystem zwischen einem (bevorzugt jedem) Funktionsmodul und dem zentralen Modul (jeweils) wenigstens einen und bevorzugt genau einen (insbesondere geschützten) Kommunikationskanal auf. Bevorzugt ist das Steuerungssystem derart konfigurierbar, dass zwischen jedem Funktionsmodul und dem zentralen Modul wenigstens ein (geschützter) Kommunikationskanal eingerichtet werden kann. Denkbar ist aber auch, dass ein Funktionsmodul, beispielsweise ein Echtzeit-Kommunikationsmodul, keinen (eingerichteten) Kommunikationskanal zum zentralen Modul aufweist.
-
Bevorzugt weist das Steuerungssystem mindestens ein als Security-Modul ausgeführtes zentrales Modul, wenigstens ein Echtzeit-Applikations-Funktionsmodul, wenigstens ein Echtzeit-Kommunikations-Funktionsmodul, wenigstens ein Kommunikations-Funktionsmodul und/oder wenigstens ein Applikations-Funktionsmodul auf.
-
Bevorzugt kann jedes Funktionsmodul und/oder das zentrale Modul direkt auf das Betriebssystem bzw. auf Betriebssystem-Ressourcen zugreifen.
-
Bevorzugt weist das Steuerungssystem ein echtzeitfähiges (bzw. deterministisch ausführbares) Betriebssystem auf.
-
In einer weiter vorteilhaften Ausführungsform ist dem Steuerungssystem vorgebbar oder das Steuerungssystem derart konfigurierbar, dass ein Funktionsmodul eine an das zentrale Modul delegierbare (bzw. von dem zentralen Modul ausführbare) Funktion selbst ausführt. Die Nutzung des Security-Moduls bzw. des zentralen Moduls ist bevorzugt optional, das heißt eine als (Funktions-)Modul ausgeführte Applikation kann alle, einen Teil oder auch keine der bereitgestellten Security-Funktionen bzw. anderweitigen von dem zentralen Modul angebotenen Funktionen nutzen, abhängig von der Applikation.
-
In einer weiter vorteilhaften Ausführungsform ist das Steuerungssystem dazu geeignet und bestimmt, die Vertrauenswürdigkeit eines zu installierenden und/oder auszuführenden Funktionsmoduls zu überprüfen. Bevorzugt ist das Steuerungssystem und insbesondere das zentrale Modul derart konfiguriert, dass nur Module (Funktionsmodule) installiert und/oder ausgeführt werden können, welche aus vertrauenswürdigen Quellen installiert werden bzw. wurden (Store-Prinzip). Das zentrale Modul (in seiner Eigenschaft als Security-Modul) übernimmt bevorzugt die Aufgabe, die Vertrauenswürdigkeit (eines zu installierenden und/oder auszuführenden Funktionsmoduls oder Applikation) zu überprüfen.
-
Bevorzugt wird wenigstens eine Applikation in einem Betriebszustand des Steuerungssystems bzw. des zu steuernden und/oder zu regelnden und/oder zu überwachenden Geräts bzw. Anlage ausgeführt. Bevorzugt weist das Steuerungssystem die Vielzahl isolierter Ausführungsumgebungen auf, wobei die Hardware des Steuerungssystems verteilt und/oder als physikalische Einheit vorliegen kann.
-
Die vorliegende Erfindung ist weiterhin gerichtet auf ein Automatisierungsgerät. Erfindungsgemäß weist es ein Steuerungssystem gemäß einer obig beschriebenen Ausführungsform auf. Bevorzugt weist das Automatisierungsgerät ein Außengehäuse auf, innerhalb dem die Hardware und/oder der Prozessor und/oder die Speichereinrichtung angeordnet sind.
-
Die vorliegende Erfindung ist weiterhin gerichtet auf eine Automatisierungsanlage mit wenigstens einem Automatisierungsgerät und bevorzugt mit einer Vielzahl von Automatisierungsgeräten und besonders bevorzugt mit einer Vielzahl von Feldgeräten. Erfindungsgemäß umfasst die Automatisierungsanlage ein Steuerungssystem gemäß einer obig beschriebenen Ausführungsform. Bevorzugt erfolgt mit dem Automatisierungsgerät und insbesondere mithilfe des Steuerungssystems eine Überwachung, Steuerung und/oder Regelung wenigstens eines (automatisierten) Prozesses, der von der Automatisierungsanlage ausgeführt wird (etwa unter Verwendung eines Feldgeräts).
-
Die vorliegende Erfindung ist weiterhin gerichtet auf ein insbesondere industrielles (Steuerungs- und/oder Regelungs- und/oder Überwachungs-)Verfahren in der industriellen Automatisierungstechnik zum Betreiben eines Steuerungssystems mit einer Hardware umfassend wenigstens einen Prozessor und wenigstens eine Speichereinrichtung, in der von dem Steuerungssystem auszuführende Applikationen ablegbar sind, umfassend wenigstens einen und bevorzugt alle der folgenden Schritte:
- - Bereitstellen wenigstens einer und bevorzugt eine Vielzahl, insbesondere in einer isolierten Ausführungsumgebung ausführbaren, als Funktionsmodul ausgeführten Applikation bzw. bevorzugt ausgeführter Applikationen; Bevorzugt können die Funktionsmodule isoliert voneinander ausgeführt werden. Bevorzugt sind die Funktionsmodule eigenständig lauffähig.
- - Bereitstellen wenigstens eines und bevorzugt genau eines, insbesondere in einer isolierten Ausführungsumgebung ausführbaren, zentralen Moduls;
- - Übernahme wenigstens einer Sicherheitsmaßnahme für wenigstens ein Funktionsmodul und bevorzugt für eine Vielzahl von Funktionsmodulen durch das zentrale Modul. Bevorzugt trägt das zentrale Modul zur Sicherstellung der Sicherheit wenigstens eines Funktionsmoduls und bevorzugt einer Vielzahl von Funktionsmodulen und besonders bevorzugt von allen Funktionsmodulen bei.
- - Bevorzugt verwaltet das zentrale Modul wenigstens teilweise und bevorzugt vollständig (IT-)Security-relevante Maßnahmen, wie beispielsweise eine Transportverschlüsselung, eine Verwaltung von Nutzern und Gruppen und/oder eine Durchsetzung von Zugriffsbeschränkungen, für das gesamte Steuerungssystem und/oder für wenigstens ein Funktionsmodul und/oder für alle Funktionsmodule.
-
Das Verfahren kann dabei mit allen obig im Zusammenhang mit der Systemsteuerung beschriebenen Verfahrensschritten und Merkmalen einzeln oder in Kombination miteinander ausgestattet sein, welche daher einzeln und in Kombination als auch im Zusammenhang mit der Systemsteuerung (und auch mit dem Automatisierungsgerät) offenbart anzusehen sind. Umgekehrt ist die Systemsteuerung und auch das Automatisierungsgerät bevorzugt dazu geeignet und bestimmt, die im Zusammenhang mit der Systemsteuerung beschriebenen Verfahrensschritte einzeln oder in Kombination miteinander auszuführen. Das Steuerungssystem bzw. das Automatisierungsgerät ist dabei bevorzugt geeignet zum Durchführen von wenigstens einer (Software-)Aufgabe aus der Steuerungstechnik, insbesondere einer Maschinensteuerung.
-
Bevorzugt können zwei Funktionsmodule untereinander nur über definierte bzw. vorgegebene Schnittstellen und/oder Kommunikationskanäle kommunizieren.
-
Bevorzugt stellt eine (bevorzugt jede) als Funktionsmodul dem zentralen Modul (leidgliche einige wenige), insbesondere Security-relevante, Konfigurationsdaten zur Verfügung. Bevorzugt erfolgt (anschließend) eine Durchsetzung der Security beim Zugriff auf das Steuerungssystem bzw. auf das (Automatisierungs-) Gerät durch das zentrale Modul.
-
Bevorzugt kann, durch die einzelnen Funktionsmodule, das zentrale Modul optional genutzt werden. Eine als Modul ausgeführte Applikation kann bevorzugt alle, einen Teil oder auch keine der bereitgestellten Security-Funktionen des zentralen Moduls nutzen, insbesondere abhängig von der Applikation. Bevorzugt delegieren einzelne Funktionsmodule Sicherheitsrelevante Maßnahmen an das zentrale Modul.
-
Bevorzugt wird das zentrale Modul als Proxy verwendet. Das zentrale Modul ist bevorzugt geeignet, als Proxy Anfragen an das Gerät zu bündeln und/oder nur über einen definierten Zugangsweg den Zugriff auf Applikationen zu gewähren. Bevorzugt verwaltet das zentrale Modul Zugriffsrechte.
-
Bevorzugt prüft das zentrale Modul die Vertrauenswürdigkeit eines zu installierenden und/oder auszuführenden Funktionsmodul und/oder einer zu installierenden und/oder auszuführenden Applikation.
-
Bevorzugt erfolgt bei der Installation einer Applikation und/oder einer Ausführung der Applikation als Funktionsmodul eine Einrichtung einer isolierten Ausführungsumgebung, in der diese Applikation (ausschließlich) ausgeführt wird (unter ausschließlicher Zuteilung physikalischer Hardware-Ressourcen). Bevorzugt wird ein (geschützter) Kommunikationskanal zwischen der isolierten Ausführungsumgebung bzw. dem Funktionsmodul und dem zentralen Modul eingerichtet.
-
Die vorliegende Erfindung ist weiterhin gerichtet auf ein Computerprogramm, umfassend Befehle, die bewirken, dass das obig beschriebene Steuerungssystem gemäß einer Ausführungsform die Verfahrensschritte des obig beschriebenen Verfahrens gemäß einer Ausführungsform ausführt.
-
Die vorliegende Erfindung ist weiterhin gerichtet auf ein computerlesbares Speichermedium, auf dem das obig beschriebene Computerprogramm gemäß einer Ausführungsform gespeichert ist.
-
Weitere Vorteile und Ausführungsformen ergeben sich aus der beigefügten Zeichnungen:
-
Darin zeigen:
- 1 Eine schematische Darstellung eines Aufbaus eines monolithischen Steuerungssystems gemäß einer Ausführungsform aus dem Stand der Technik; und 2 eine schematische Darstellung eines Aufbaus eines erfindungsgemäßen Steuerungssystems gemäß einer Ausführungsform.
-
1 zeigt eine schematische Darstellung eines Aufbaus eines herkömmlichen monolithischen Automatisierungssystems bzw. Steuerungssystems. Das Bezugszeichen 1 kennzeichnet ein Automatisierungsgerät. Dieses Automatisierungsgerät 1 kann ein Steuerungssystem (wenigstens teilweise oder vollständig) umfassen oder auch Teil einer Automatisierungsanlage sein, welche ein Steuerungssystem aufweist.
-
Dabei kennzeichnet das Bezugszeichen 10 eine (physikalische) Hardware des industriellen Steuerungssystems. Das Bezugszeichen 30 kennzeichnet die Betriebssystemschicht, beispielsweise ein Echtzeitbetriebssystem, welches auf der Hardware 10 ausgeführt wird. Die Hardware weist insbesondere (wenigstens) einen Prozessor und wenigstens eine Speichereinrichtung auf.
-
Das Bezugszeichen 20 kennzeichnet die Firmware des Steuerungssystems. Bei einer Aktualisierung muss der mit dem Bezugszeichen 20 gekennzeichnete Bereich (Firmware) komplett ersetzt werden, auch wenn ein Fehler nur in einer Komponente, z. B. Communication Module #1 vorliegt.
-
1 zeigt auch, dass jede Applikation über die Gerätegrenze hinaus Dienste anbietet. So veranschaulichen in der 1 die linienförmigen Doppelpfeile eine Kommunikation bzw. den Datentransfer zwischen verschiedenen Komponenten, beispielsweise zwischen den einzelnen Komponenten 22, 24, 26, 28 und 32 einerseits und dem externen Computer 40. Dabei kennzeichnet das Bezugszeichen 22 eine Communication-Komponente #1, das Bezugszeichen 24 eine Realtime-Application-Komponente, das Bezugszeichen 26 eine Communication-Komponente #2, Bezugszeichen 28 eine Application-Komponente #1, Bezugszeichen 32 eine Applikation-Komponente #2. Nur die mit Bezugszeichen 34 gekennzeichnete Realtime-Communication-Komponente weist keine (direkte) Kommunikationsverbindung zu einem externen Gerät, dem Computer 40, auf.
-
1 illustriert ebenfalls, dass eine Vielzahl der Komponenten, nämlich die mit den Bezugszeichen 22, 26, 28 und 24 gekennzeichneten Komponenten, jeweils eine Security-Einrichtung, gekennzeichnet mit Bezugszeichen 5 aufweisen. Diese Security-Einrichtung 5 stellt jeweils eine (IT-)Sicherheit der Komponente (etwa der Kommunikationsverbindung zu einem externen Gerät) sicher.
-
Die (breiter ausgeführten) Einfachpfeile illustrieren, dass verschiedene Komponenten, hier die Realtime-Applikation-Komponente 24, die Realtime-Communication-Komponente 33, die Communication Komponente #1 gekennzeichnet mit Bezugszeichen 22, die Communication-Komponente #2 gekennzeichnet mit Bezugszeichen 26, die Application-Komponente #1 gekennzeichnet mit Bezugszeichen 28 sowie die Application-Komponente #2 gekennzeichnet mit Bezugszeichen 32, jeweils von dem Betriebssystem-Modul abhängig (Operating-System-Modul) 30 sind. Darüber hinaus sind auch zwischen den verschiedenen Komponenten Abhängigkeiten vorhanden, welche ebenfalls durch (breiter ausgeführte) Einfachpfeile veranschaulicht werden. So etwa ist die Communication-Komponente #1 (Bezugszeichen 22) von der Realtime-Application-Komponente 24, und diese wiederum von der Realtime-Communication-Komponente 34 abhängig.
-
2 zeigt eine schematische Darstellung eines Aufbaus eines erfindungsgemäßen Steuerungssystems gemäß einer Ausführungsform. Dabei wird eine exemplarische Implementierung eines modularen (Steuerungs-)Systems illustriert. Dieses Steuerungssystem kann dabei in einem Automatisierungsgerät 1 angeordnet sein.
-
Die einzelnen Funktionsmodule, gekennzeichnet durch die Bezugszeichen 25, 35, 23, 27, 29 und 33, bei welchen es sich hier um das Realtime-Applikation-Modul 25, das Realtime-Communication-Modul 35, das Communication Modul #1 gekennzeichnet mit Bezugszeichen 23, das Communication Modul #2 gekennzeichnet mit Bezugszeichen 27, das Application-Modul #1 gekennzeichnet mit Bezugszeichen 29 sowie das Application-Modul #2 gekennzeichnet mit Bezugszeichen 33 handelt, stellen dem Security-Modul 40 (obig allgemein als zentrales Modul beschrieben) optional über einen Adapter 7 Konfigurationsdaten zur Verfügung. Das Security-Modul 40 (obig allgemein als zentrales Modul beschrieben) stellt im Gegenzug Security-Funktionen zur Verfügung. In der 2 veranschaulichen die linienförmigen Doppelpfeile eine Kommunikation(-sverbindung) und/oder eine Lose-Kopplung zwischen verschiedenen Modulen, insbesondere zwischen den einzelnen Funktionsmodulen 23, 35, 23, 27, 29 und 33 einerseits und dem zentralen Modul, hier Security-Modul 40.
-
Die (breiter ausgeführten) Einfachpfeile, gekennzeichnet beispielhaft durch das Bezugszeichen 52, illustrieren, dass das zentrale Modul (hier das Security-Modul 40), sowie die Funktionsmodule, hier das Realtime-Applikation-Modul 25, das Realtime-Communication-Modul 35, das Communication Modul #1 gekennzeichnet mit Bezugszeichen 23, das Communication Modul #2 gekennzeichnet mit Bezugszeichen 27, das Application-Modul #1 gekennzeichnet mit Bezugszeichen 29 sowie das Application-Modul #2 gekennzeichnet mit Bezugszeichen 33, jeweils zwar von dem Betriebssystem-Modul abhängig (Operating-System-Modul) 30 abhängig sind, allerdings nicht von einem weiteren Modul oder von einem anderen Funktionsmodul. Im Unterschied zu dem monolithischen Steuerungssystem aus dem Stand der Technik (beispielsweise 1) sind die einzelnen Funktionsmodule unabhängig voneinander (ausführbar) und eigenständig lauffähig.
-
Der Zugriff über eine externe Schnittstelle, z. B. mittels eines Computers 40 über einen Engineering-Port, auf die Applikationen, welche das Security-Modul 40 nutzen, wird ausschließlich über einen (oder mehrere) abgesicherte Kommunikationskanäle (gekennzeichnet etwa durch das Bezugszeichen 50) ermöglicht. Falls dies nicht möglich ist, kann eine Applikation - etwa aus Legacy Gründen - nach wie vor einen eigenständigen Kommunikationskanal zur Verfügung stellen (siehe das in 2 am rechten Figurenrand gezeigte Modul, welches eine mittels eines Doppelpfeils dargestellte direkte Kommunikationsverbindung zum Computer 40 aufweist).
-
Die Anmelderin behält sich vor, sämtliche in den Anmeldungsunterlagen offenbarten Merkmale als erfindungswesentlich zu beanspruchen, sofern sie einzeln oder in Kombination gegenüber dem Stand der Technik neu sind. Es wird weiterhin darauf hingewiesen, dass in der Figur auch Merkmale beschrieben wurden, welche für sich genommen vorteilhaft sein können. Der Fachmann erkennt unmittelbar, dass ein bestimmtes in einer Figur beschriebenes Merkmal auch ohne die Übernahme weiterer Merkmale aus dieser Figur vorteilhaft sein kann. Ferner erkennt der Fachmann, dass sich auch Vorteile durch eine Kombination mehrerer in der Figur gezeigter Merkmale ergeben können.