-
VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht den Vorteil der am 23. September 2019 eingereichten vorläufigen
US-Patentanmeldung Nr. 62/904,229 mit dem Titel „Whitelisting for HART Communications in a Process Control System“, deren Gesamtheit hiermit ausdrücklich durch Verweis hierin eingebunden ist.
-
GEBIET DER TECHNIK
-
Die vorliegende Erfindung betrifft allgemein Prozesssteuerungssysteme und Sicherheitssysteme, die in Prozessanlagen verwendet werden, und insbesondere die Ausübung von Cybersicherheit in einem kombinierten Prozesssteuerungs- und Sicherheitssystem.
-
BESCHREIBUNG DER VERWANDTEN TECHNIK
-
Prozesssteuerungssysteme, wie sie in chemischen, erdölbezogenen oder anderen Prozessen verwendet werden, enthalten typischerweise einen oder mehrere Prozess-Controller, die über analoge, digitale oder kombinierte Analog-/Digitalbusse kommunikativ mit mindestens einer Host- oder Bediener-Workstation und mit einem oder mehreren Feldgeräten gekoppelt sind. Die Feldgeräte, die z. B. Ventile, Ventil-Stellungsregler, Schalter und Transmitter (z. B. Temperatur-, Druck- und Durchflusssensoren) sein können, führen Funktionen innerhalb der Prozessanlage, wie z. B. das Öffnen oder Schließen von Ventilen und das Messen von Prozessparametern durch. Die Prozess-Controller empfangen Signale, die von den Feldgeräten durchgeführte Prozessmessungen und/oder andere Informationen über die Feldgeräte anzeigen, verwenden diese Informationen, um Steuerungsroutinen zu implementieren und erzeugen dann Steuerungssignale, die über die Busse an die Feldgeräte gesendet werden, um den Betrieb des Prozesses zu steuern. Informationen von den Feldgeräten und den Controllern werden in der Regel einer oder mehreren Anwendungen bereitgestellt, die von der Bediener-Workstation ausgeführt werden, um einem Bediener zu ermöglichen, die gewünschten Funktionen in Bezug auf den Prozess auszuführen, wie z. B. Konfigurieren des Prozesses, Anzeigen des aktuellen Prozesszustands, Modifizieren des Prozessbetriebs usw.
-
In einigen Prozesssystemen kann ein separates Sicherheitssystem vorgesehen sein, um signifikante sicherheitsrelevante Probleme innerhalb der Prozessanlage zu erkennen und Ventile automatisch zu schließen, Strom von Geräten abzuschalten, Strömungen innerhalb der Anlage umzuschalten usw., wenn ein Problem auftritt, das zu einer ernsten Gefahr in der Anlage führen oder eine solche ergeben könnte, wie z. B. ein Auslaufen toxischer Chemikalien, eine Explosion usw. Diese Sicherheitssysteme umfassen in der Regel ein oder mehrere separate Eingabe-/Ausgabegeräte (E/A-Geräte), die neben den Prozesssteuerungs-Controllern Controller aufweisen, die über separate Busse oder Kommunikationsleitungen, die innerhalb der Prozessanlage angeordnet sind, mit Sicherheitsfeldgeräten verbunden sind. Die Sicherheits-Controller verwenden die Sicherheitsfeldgeräte zur Erkennung von Prozesszuständen, die mit signifikanten Ereignissen verbunden sind, wie z. B. die Stellung bestimmter Sicherheitsschalter oder Abschaltventile, Über- oder Unterläufe im Prozess, dem Betrieb wichtiger Energieerzeugungs- oder Steuereinrichtungen, dem Betrieb von Fehlererkennungseinrichtungen usw., um dadurch „Ereignisse“ innerhalb der Prozessanlage zu erkennen. Sobald ein Ereignis erkannt wird, ergreift der Sicherheits-Controller Maßnahmen zur Eingrenzung der schädlichen Wirkung des Ereignisses wie z. B. das Schließen von Ventilen, das Ausschalten von Geräten, das Abschalten der Stromversorgung von Anlagenteilen usw.
-
In der Vergangenheit gab es Versuche, Daten aus den Prozesssteuerungs- und Sicherheitssystemen in derselben Anlage auf derselben Benutzerschnittstelle zu integrieren, um durch ein integriertes Steuerungs- und Sicherheitssystem (ICSS) die Anzeige und Bearbeitung dieser verschiedenen Daten am selben Ort zu ermöglichen. Eines der häufigsten Verfahren zum Abrufen von Informationen von Feldgeräten in einem ICSS ist das Highway-Addressable-Remote-Transmitter(HART®)-Kommunikationsprotokoll, und eines der häufigsten Verfahren zum Abrufen von Informationen zu Feldgeräten über ein ICSS ist die Verwendung von Durchgangskommunikationen von HART-Befehlen.
-
Die HART-Kommunikationsprotokollbefehle werden in bestimmte Gruppen eingeteilt. Insbesondere definiert das HART-Kommunikationsprotokoll Universalbefehle, die alle Geräte, die das Protokoll verwenden, erkennen und unterstützen müssen, Common-Practice-Befehle, die von einigen, aber nicht allen HART-Kommunikationsgeräten erkannt und unterstützt werden, und gerätespezifische Befehle, die Funktionen darstellen, die für jedes Feldgerät eindeutig sind. Die Vielzahl der HART-Befehle kann weiter als Lese- oder Schreibbefehle klassifiziert werden. Im Allgemeinen lesen Lesebefehle Informationen von Feldgeräten, während Schreibbefehle entweder eine interne Einstellung oder einen physischen Zustand des Feldgeräts ändern. Gerätespezifische Befehle werden durch eine formale Beschreibung der Betriebsabläufe eines Geräts definiert und nutzbar gemacht, die als Gerätebeschreibung bezeichnet wird. Gerätebeschreibungen werden im Allgemeinen vom Gerätehersteller erstellt und bereitgestellt und können dazu verwendet werden, die Common-Practice- und die für jedes Feldgerät spezifischen, gerätespezifischen Befehle zu ermitteln.
-
Gerätebeschreibungen werden normalerweise von einem Asset Management System (ASM) oder einem Konfigurationssystem von Prozessanlagen während der Installation des Feldgeräts gesammelt oder erfasst. Das System kann einen „Befehl Null“ ausgeben, um diese Gerätebeschreibung aus einer Datenbank oder einem anderen Gerätebeschreibungs-Aufbewahrungsort abzurufen. Darüber hinaus können Gerätebeschreibungen, die in Konfigurationsdatenbanken in einem unveränderten Format gespeichert werden können, zuerst geparst und dann gespeichert werden. Beispielsweise können Gerätebeschreibungen für Gerätevariablen, Gerätebefehle und Gerätemenüs geparst werden, und jedes geparste Segment kann separat gespeichert werden. Auf Gerätebeschreibungen und ihre Unterfelder kann normalerweise zum Lesen von anderen Geräten in einer Prozessanlage zugegriffen werden.
-
Manchmal besteht Bedarf an einer höheren Sicherheitsstufe in einem ICSS, das das HART-Kommunikationsprotokoll implementiert. Zu diesem Zweck verfügen Sicherheits-Logic-Solver und -Controller normalerweise über eine Art Hardwareschlüssel, um ein höheres Sicherheitsniveau zu verhindern oder zu aktivieren. In einigen Fällen wurde dieses höhere Sicherheitsniveau verwendet, um bestimmte HART-Befehle zu blockieren, anstatt diese Befehle an die Geräte weiterzuleiten, die mit den Sicherheits-Logic-Solvern und -Controllern verbunden sind. Einige Verfahren mit hoher ICSS-Sicherheit umfassen das Blockieren aller Befehle, z. B. HART-Befehle, für die Feldgeräte des Sicherheitssystems. Dieser Ansatz ist jedoch unflexibel und ermöglicht daher keine fortgesetzte Weiterleitung von Befehlen, die nicht gefährlicher Natur sind. Weitere Verfahren mit hoher ICSS-Sicherheit umfassen das Zulassen aller Lese-Universalbefehle. Im Gegensatz zum Blockieren aller Befehle können mit diesem Verfahren bestimmte Nachrichten, die nicht gefährlich sind, fortgesetzt weitergeleitet werden (insbesondere Lese-Universalbefehle). Im Allgemeinen werden Lesebefehle als sicher angesehen, da sie von Natur aus den Status von Geräten in einer Prozessanlage nicht ändern. Stattdessen fragen diese Lesebefehle lediglich aktuelle Werte von Datenfeldern ab. Im Gegensatz dazu können Schreibbefehle in böswilliger Absicht verwendet werden, um die Prozessanlage und Personen in der Anlage in Gefahr zu bringen. Dieses aktuelle Verfahren zur Bereitstellung von Sicherheit innerhalb eines Sicherheitssystems durch Blockieren aller HART-Befehle mit Ausnahme von Nurlese-Universalbefehlen nutzt den sicheren Charakter der Nurlese-Universalbefehle des HART-Protokolls, um eine grobkörnige Blockierung potenziell gefährlicher Nachrichten zu ermöglichen und gleichzeitig Lese-Universalbefehle zuzulassen. Dieses Verfahren blockiert und/oder verwirft jedoch alle sicheren Lesebefehle außerhalb der begrenzten Gruppe von Universalbefehlen. Mit anderen Worten, alle Common-Practice-Lesebefehle und alle Gerätetyp-Lesebefehle, die im Allgemeinen als sicher gelten, werden durch dieses Verfahren weiterhin blockiert. Infolgedessen erschweren oder verunmöglichen Steuerungs- und Sicherheitssysteme, die ein hohes Maß an Sicherheit verwenden, wie beispielsweise eine der oben beschriebenen Blockierungsverfahren, das Nutzen der Vielzahl von Diagnose- und anderen Zusatzfunktionen der im Sicherheitssystem verwendeten HART-Geräte, indem das Lesen von Daten, die von Gerätefunktionen bereitgestellt werden, die nicht durch die Universalbefehle des HART-Protokolls definiert sind, nicht aktiviert wird, wodurch diese Verfahren in laufenden Prozessen weitaus weniger effektiv sind. Daher fehlt den vorhandenen Verfahren die feinkörnige Spezifität, um der Notwendigkeit gerecht zu werden, eine große Auswahl an erweiterten Diagnose- und Geräteinformationen bereitzustellen und gleichzeitig das richtige Sicherheitsniveau zu gewährleisten.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Eine Prozessanlage enthält eine Whitelist-Konfigurationsanwendung, mit der ein Benutzer einen Sicherheits-Logic-Solver oder einen Prozess-Controller sicher konfigurieren kann, um ein angemessenes Sicherheitsniveau bereitzustellen und gleichzeitig die Notwendigkeit zu berücksichtigen, eine große Menge an Informationen zwischen den Geräten des Sicherheitssystems und einer oder mehreren Supervisor- oder Support-Anwendungen wie Konfigurations-, Asset-Management- und anderen Anwendungen, zu übertragen. In einer Ausführungsform kann, wenn ein Sicherheits-Logic-Solver auf eine bestimmte Sicherheitsstufe eingestellt ist (z. B. ein Hardwareschlüssel auf Sperrposition gesetzt ist, was zu einer höheren oder höchsten Sicherheitsstufe führt), die Kommunikationsschnittstelle des Sicherheits-Logic-Solvers auf ein Empfangen einer Nachricht reagieren, indem sie eine Whitelist-Ausführungsanwendung ausführt, die auf dem Gerät konfiguriert wurde. Die Whitelist-Ausführungsanwendung kann auf eine von einer Vielzahl im Speicher gespeicherter Whitelists zugreifen, teilweise basierend auf der aktuellen Sicherheitsstufe und den Konfigurationsinformationen. Dann kann die Whitelist-Ausführungsanwendung den Befehlstyp der Nachricht mit den Befehlstypen in der ausgewählten Whitelist vergleichen. Wenn keine Übereinstimmung vorliegt, blockiert die Anwendung möglicherweise die Nachricht, einschließlich allenfalls einer Nichtweiterleitung der Nachricht an ein Sicherheitssystem-Feldgerät, z. B. in einem Durchgangskommunikationsschema, und allenfalls einer Benachrichtigung von Prozessanlagenbetreibern oder anderen Benutzern. Wenn die Whitelist eine Übereinstimmung aufweist, kann die Anwendung die Standardoperation ausführen, die ein Zugreifen auf und Ausführen eines oder mehrerer Logikmodule und ein Weiterleiten der Nachricht an das gewünschte Gerät enthalten kann.
-
Darüber hinaus kann eine Whitelist-Lernanwendung ein System und ein Verfahren zum Durchführen einer automatischen Whitelist-Konfiguration sowohl für das Prozesssteuerungssystem als auch für das Sicherheitssystem bereitstellen. Insbesondere kann eine Whitelist-Lernanwendung einem Benutzer ermöglichen, eine oder mehrere Whitelist-Konfigurationen für einen oder mehrere Sicherheits-Logic-Solver (auch als Sicherheits-Controller bekannt) und/oder Prozess-Controller zu erstellen, indem die eine oder die mehreren Controller in einen Lernmodus versetzt werden, wobei der Lernmodus die Befehlstypen eingehender Befehle extrahiert und Whitelists auf Basis der Sicherheitsstufe des Controllers (und gegebenenfalls auf Basis des Befehlszieles) erstellt. Wenn die Controller wieder in einen Sperrmodus zurückversetzt werden, speichert die Whitelist-Lernanwendung die Whitelists, die sie in der Whitelist-Ausführungsanwendung für die zukünftige Befehlsverarbeitung erstellt hat.
-
Darüber hinaus bietet eine Whitelist-Konfigurationsanwendung ein anderes System und ein anderes Verfahren zum Durchführen einer automatischen Whitelist-Konfiguration unter Verwendung einer Schnittstelle. Insbesondere kann eine Whitelist-Konfigurationsanwendung es einem Benutzer ermöglichen, eine Whitelist-Konfiguration für einen Sicherheits-Logic-Solver oder einen Prozess-Controller zu erstellen und kann die Whitelist-Konfiguration in dem gewünschten Gateway-Gerät mit unterschiedlichen Automatisierungsgraden speichern. In einer Ausführungsform koordiniert die Whitelist-Konfigurationsanwendung mit einer Konfigurationsdatenbank, um eine Gerätebeschreibung eines installierten Feldgeräts zu lesen und zu parsen, um die gerätespezifischen und Common-Practice-Lesebefehle dieses Feldgeräts zu bestimmen. Anschließend generiert und konfiguriert die Whitelist-Konfigurationsanwendung eine oder mehrere Whitelists, die aus einigen oder allen gerätespezifischen und Common-Practice-Lesemeldungen zusammengesetzt sind, und konfiguriert den entsprechenden Prozess-Controller oder Sicherheits-Logic-Solver, um eingehende Nachrichten mit Hilfe einer oder mehrerer der erstellten Whitelists zu verarbeiten.
-
Figurenliste
-
- 1 ist ein Blockdiagramm einer beispielhaften Prozessanlage mit einem Sicherheitssystem, das in ein Prozesssteuerungssystem integriert ist und eine oder mehrere Schnittstellen-, Whitelist-Konfigurations- und Whitelist-Ausführungsanwendungen enthält, die integrierte Sicherheits-, Konfigurations- und Diagnoseaktivitäten in Bezug auf das Prozesssteuerungssystem und das Sicherheitssystem bereitstellen.
- 2 ist eine beispielhafte Bildschirmanzeige, die eine Konfigurationsansicht der Prozessanlage von 1 veranschaulicht, die sowohl die Geräte des Prozesssteuerungssystems als auch die Geräte des Sicherheitssystems zeigt.
- 3A ist ein Blockdiagramm eines beispielhaften Sicherheits-Logic-Solvers, der schematisch in 1 dargestellt ist.
- 3B ist ein Blockdiagramm einer beispielhaften Whitelist-Ausführungsanwendung, die in einem beispielhaften Sicherheits-Logic-Solver betrieben wird, der schematisch in 3A dargestellt ist.
- 4 veranschaulicht ein Blockdiagramm einer Operation einer Whitelist-Ausführungsanwendung.
- 5A ist ein Blockdiagramm einer beispielhaften Whitelist-Lernanwendung.
- 5B veranschaulicht ein Blockdiagramm eines Betriebsablaufs eines Whitelist-Lernanwendungsablaufs.
- 6 ist ein Blockdiagramm eines beispielhaften Whitelist-Konfigurationsanwendungssystems mit einer Whitelist-Konfigurationsanwendung, die in einer oder mehreren der Workstations von 1 angeordnet ist, die Whitelist-Konfigurationen verwaltet, erstellt und bearbeitet.
- 7 veranschaulicht ein Blockdiagramm eines Betriebsablaufs einer Whitelist-Konfigurati onsanwendung.
- 8 veranschaulicht ein Blockdiagramm eines Betriebsablaufs einer Routine, die gerätespezifische und Common-Practice-Befehlstypen aus einer Gerätebeschreibung erfasst.
- 9A ist eine beispielhafte Bildschirmanzeige, die von der Whitelist-Konfigurationsanwendung der 6 erzeugt wird, in der der Authentifizierungsschritt der 7 angezeigt ist.
- 9B ist eine beispielhafte Bildschirmanzeige, die von der Whitelist-Konfigurationsanwendung der 6 erzeugt wird, in der der Konfigurationsschritt der 7 angezeigt ist.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 veranschaulicht allgemein eine Prozessanlage 10, die ein kombiniertes Prozesssteuerungs- und Sicherheitssystem implementiert und die so konfiguriert ist, dass sie einen Satz von Whitelist-Komponenten oder -Anwendungen enthält, die ein hohes Maß an Cybersicherheit in der Anlage 10 gewährleisten und gleichzeitig die Verwendung der höheren Funktionalität der verschiedenen Feldgeräte und insbesondere von HART-Feldgeräten innerhalb der Anlage 10 ermöglichen. Im Allgemeinen umfassen die Whitelist-Komponenten oder - Anwendungen eine oder mehrere Whitelist-Ausführungsanwendungen, die Nachrichten, z. B. HART-Nachrichten oder -Befehle, sicher verarbeiten, wenn diese Nachrichten von Sicherheits-Gateway-Geräten, wie z. B. Logic-Solvern und Prozess-Controllern, empfangen werden, indem die eingehenden Signale analysiert werden, indem die Befehlstypen der Nachrichten mit einer oder mehreren gespeicherten Whitelists verglichen werden, um festzustellen, ob die Nachricht an ein Teilsystem-Gerät weitergeleitet werden kann. Zu den Whitelist-Komponenten gehören auch eine oder mehrere Whitelist-Konfigurationsanwendungen, mit denen ein Benutzer die Whitelist-Ausführungsanwendung und die dabei verwendeten Whitelists für beliebige einer Anzahl von Sicherheits-Gateway-Geräten sicher einrichten, erstellen, bearbeiten, herunterladen und konfigurieren kann.
-
Im Allgemeinen enthält die beispielhafte Prozessanlage 10 von 1 ein Prozesssteuerungssystem 12, das mit einem Sicherheitssystem 14 integriert ist (durch gepunktete Linien angezeigt), das im Allgemeinen als sicherheitsinstrumentiertes System (SIS) arbeitet, um die vom Prozesssteuerungssystem 12 bereitgestellte Steuerung zu überwachen und zu überschreiben, um den wahrscheinlichen sicheren Betrieb der Prozessanlage 10 zu maximieren. Die Prozessanlage 10 enthält auch eine oder mehrere Host-Workstations, Computer oder Benutzerschnittstellen 16 (die jede Art von Personalcomputern, Workstations usw. sein können), auf die das Anlagenpersonal zugreifen kann, wie z. B. Prozesssteuerungsbediener, Wartungspersonal, Konfigurationsingenieure usw. Diese Workstations hosten und führen eine Whitelist-Konfigurationsanwendung 80 aus. In dem in 1 veranschaulichten Beispiel sind drei Benutzerschnittstellen 16 als mit zwei getrennten Prozesssteuerungs-/Sicherheitssteuerungsknoten 18 und 20 und mit einer Konfigurationsdatenbank 21 über eine gemeinsame Kommunikationsleitung oder einen gemeinsamen Bus 22 verbunden gezeigt. Das Kommunikationsnetzwerk 22 kann unter Verwendung einer beliebigen gewünschten Bus-basierten oder nicht Bus-basierten Hardware unter Verwendung einer beliebigen fest verdrahteten oder drahtlosen Kommunikationsstruktur und unter Verwendung eines beliebigen oder geeigneten Kommunikationsprotokolls, beispielsweise eines Ethernet-Protokolls, implementiert werden.
-
Es versteht sich, dass jeder der Knoten 18 und 20 der Prozessanlage 10 sowohl Prozesssteuerungssystemgeräte als auch Sicherheitssystemgeräte umfasst, die über eine Busstruktur miteinander verbunden sind, die auf einer Rückwandplatine vorgesehen sein kann, an der die verschiedenen Geräte angeschlossen sind. Der Knoten 18 ist in 1 so dargestellt, dass er einen Prozess-Controller 24 (der ein redundantes Controllerpaar sein kann) sowie eine oder mehrere Eingabe/Ausgabe(E/A)-Geräte 28, 30 und 32 des Prozesssteuerungssystems enthält, während der Knoten 20 so dargestellt ist, dass er einen Prozess-Controller 26 (der ein redundantes Controllerpaar sein kann) sowie ein oder mehrere Eingabe/Ausgabe(E/A)-Geräte 34 und 36 des Prozesssteuerungssystems enthält. Jedes der E/A-Geräte 28, 30, 32, 34 und 36 des Prozesssteuerungssystems ist kommunikativ mit einem Satz prozesssteuerungsbezogener Feldgeräte verbunden, die in 1 als Feldgeräte 40 und 42 dargestellt sind. Die Prozesssteuerungen 24 und 26, die E/A-Geräte 28-36 und die Prozesssteuerungsfeldgeräte 40 und 42 bilden im Allgemeinen das Prozesssteuerungssystem 12 der 1. Zusätzlich können, wie nachstehend ausführlicher erörtert, die Prozess-Controller 24 und 26 eine oder mehrere Whitelist-Ausführungsanwendungen 202 und/oder Whitelist-Lernanwendungen 204 in einem Speicher 75 speichern und ausführen, um Nachrichten, die für Feldgeräte 40 und 42 bestimmt sind, sicher zu verarbeiten.
-
Ebenso enthält der Knoten 18 einen oder mehrere Sicherheitssystem-Logic-Solver 50 und 52, während der Knoten 20 Sicherheitssystem-Logic-Solver 54 und 56 enthält. Jeder der Logic-Solver 50-56 ist ein E/A-Gerät (auch verschiedentlich als Sicherheits-Controller bezeichnet) mit einer Verarbeitungseinheit 57, die Sicherheitslogikmodule und eine in einem Speicher 58 gespeicherte Whitelist-Ausführungsanwendung 202 ausführen kann, und diese Geräte sind kommunikativ verbunden, um Steuerungssignale an die Feldgeräte 60 und 62 des Sicherheitssystems abzugeben und/oder von diesen zu empfangen. Zusätzlich kann jeder der Knoten 18 und 20 mindestens ein Nachrichtenausbreitungsgerät (MPD) 70 oder 72 enthalten, das über eine Ringbusverbindung 74 (von der in 1 nur ein Teil dargestellt ist) kommunikativ miteinander gekoppelt ist. Die Sicherheitssystem-Logic-Solver 50-56, die Sicherheitssystem-Feldgeräte 60 und 62, die MPDs 70 und 72 und der Bus 74 bilden allgemein das Sicherheitssystem 14 der 1. Wie klar ist, können die Sicherheitssystem-Logic-Solver 50-56 die oben erwähnte Whitelist-Ausführungsanwendung 202 und/oder die Whitelist-Lernanwendung 204 in einem Speicher 58 speichern, um Nachrichten, die für die Feldgeräte 60 und 62 des Sicherheitssystems bestimmt sind, sicher zu verarbeiten.
-
Die Prozess-Controller 24 und 26, bei denen es sich beispielsweise um DeltaV™-Controller von Emerson Process Management oder eine beliebige andere gewünschte Art von Prozess-Controllern handeln kann, sind so programmiert, dass sie Prozesssteuerungsfunktionalität bieten (unter Verwendung von allgemein als Steuermodule bezeichneten Modulen), und zwar unter Verwendung der E/A-Geräte 28, 30 und 32 (für den Controller 24), der E/A-Geräte 34 und 36 (für den Controller 26) und der Feldgeräte 40 und 42. Insbesondere implementiert oder überwacht jeder der Controller 24 und 26 eine oder mehrere Prozesssteuerungsroutinen (auch als Steuerungsmodule bezeichnet), die in einem Speicher 75 gespeichert sind oder auf andere Weise damit verbunden sind, und kommuniziert mit den Feldgeräten 40 und 42 und den Workstations 14, um den Prozess 10 oder einen Teil des Prozesses 10 auf eine beliebige Weise zu steuern. Die Prozess-Controller 24 und 26 können auch die Whitelist-Ausführungsanwendung 202 und/oder die Whitelist-Lernanwendung 204 speichern und ausführen, um Sicherheitsprüfungen für Nachrichten durchzuführen, die vor oder während der Ausführung der einen oder der mehreren in einem Speicher 75 gespeicherten Prozesssteuerungsroutinen an die Prozesssteuerungs- oder Sicherheitssysteme gesendet werden. Die Feldgeräte 40 und 42 können beliebige Arten von Feldgeräten sein, wie Sensoren, Ventile, Transmitter, Positionierer usw., und können jedem gewünschten offenen, proprietären oder anderen Kommunikations- oder Programmierprotokoll entsprechen, einschließlich beispielsweise dem HART- oder dem 4-20-mA-Protokoll (wie für die Feldgeräte 40 dargestellt), eines beliebigen Feldbusprotokolls, wie dem FOUNDATION®-Fieldbus-Protokoll (wie für die Feldgeräte 42 veranschaulicht) oder der CAN-, Profibus- oder AS-Interface-Protokolle, um nur einige zu nennen. In ähnlicher Weise können die E/A-Geräte 28-36 beliebige bekannte Arten von Prozesssteuerungs-E/A-Geräten sein, die ein beliebiges geeignetes Kommunikationsprotokoll bzw. beliebige geeignete Kommunikationsprotokolle verwenden.
-
Die Sicherheits-Logic-Solver 50-56 von 1, bei denen es sich um einen beliebigen gewünschten Typ von Steuersystemsteuerungsgeräten handeln kann, umfassen einen Prozessor 57 und einen Speicher 58, in dem Sicherheitslogikmodule gespeichert sind, um Steuerfunktionen bereitzustellen, die mit dem Sicherheitssystem 14 unter Verwendung der Sicherheitsfeldgeräte 60 und 62 assoziiert sind. Die Speicher 58 der Sicherheits-Logic-Solver 50-56 können die Whitelist-Ausführungsanwendung 202 und/oder die Whitelist-Lernanwendung 204 speichern, die ausgelegt sind, vor oder während der Ausführung der Sicherheitslogikmodule auf dem Prozessor 57 ausgeführt werden. Natürlich können die Sicherheitsfeldgeräte 60 und 62 eine beliebige gewünschte Art von Feldgeräten sein, die einem beliebigen bekannten oder gewünschten Kommunikationsprotokoll entsprechen oder dieses verwenden, wie etwa die oben erwähnten. Insbesondere können die Feldgeräte 60 und 62 sicherheitsrelevante Feldgeräte des Typs sein, die herkömmlicherweise durch ein separates, dediziertes sicherheitsrelevantes Steuerungssystem gesteuert werden. In der in 1 veranschaulichten Prozessanlage 10 sind die Sicherheitsfeldgeräte 60 so dargestellt, dass sie ein dediziertes oder Punkt-zu-Punkt-Kommunikationsprotokoll verwenden, wie beispielsweise das HART- oder das 4-20-mA-Protokoll, während die Sicherheitsfeldgeräte 62 so dargestellt sind, dass sie ein Buskommunikationsprotokoll verwenden, beispielsweise ein Fieldbus-Protokoll. Typischerweise werden die Sicherheitsgeräte sowohl der Sicherheitssystem-Logic-Solver (Controller) 50-56 als auch der Sicherheitssystem-Feldgeräte 60 und 62, die als Teil des Sicherheitssystems 14 verwendet werden, als Sicherheitsgeräte eingestuft, was typischerweise bedeutet, dass diese Geräte ein Bewertungsverfahren durchlaufen müssen, um von einer geeigneten Stelle als Sicherheitsgerät klassifiziert zu werden.
-
In jedem der Knoten 18 und 20 wird eine gemeinsame Rückwandplatine 76 (angezeigt durch eine gepunktete Linie durch die Controller 24, 26, die E/A-Geräte 28-36, die Sicherheits-Logic-Solver 50-56 und die MPDs 70 und 72) verwendet, um die Controller 24 und 26 mit den Prozesssteuerungs-E/A-Karten 28, 30 und 32 oder 34 und 36 sowie mit den Sicherheits-Logic-Solver 52 und 54 oder 56 und 58 und mit den MPDs 70 oder 72 zu verbinden. Die Steuerungen 24 und 26 sind auch kommunikativ mit dem Bus 22 verbunden und arbeiten als Bus-Arbiter für diesen, um jedem der E/A-Geräte 28-36, der Logic-Solver 52-56 und der MPDs 70 und 72 die Kommunikation mit jeder der Workstations 16 über den Bus 22 zu ermöglichen.
-
Wie klar sein wird, dass die Prozessoren 57 und die Speicher 58 der Sicherheits-Logic-Solver 50-56 und die Prozessoren und Speicher 75 der Prozess-Controller 24 oder 26 der 1 die Verwendung und Konfiguration der Whitelist-Ausführungsanwendungen 202 ermöglichen, in denen Whitelists beispielsweise von HART-Befehlen und der Whitelist-Lernanwendung 204 (falls gewünscht) gespeichert sind.
-
Unter erneuter Bezugnahme auf 1 ist die Prozessanlage 10 konfiguriert, um Benutzern die Möglichkeit zu geben, die Whitelist-Ausführungsanwendungen 202 der Sicherheits-Controller 50-56 und der Prozess-Controller 24 und 26 zu konfigurieren. Insbesondere umfassen eine oder mehrere der Workstations 16 einen Prozessor 77 und einen Speicher 78, in denen eine beliebige Anzahl von Benutzerschnittstellen-, Konfigurations-, Whitelist-, Diagnose- und/oder Anzeigeanwendungen gespeichert sein kann, die zur Ausführung auf dem Prozessor 77 geeignet sind. Eine Whitelist-Konfigurationsanwendung 80 und eine Prozessanlagenkonfigurationsanwendung 82 sind in einer Explosionsansicht in 1 so dargestellt, dass sie in einer der Workstations 16 gespeichert sind, während eine Benutzerschnittstelle oder Anzeigeanwendung 85 als in einer zweiten der Workstations 16 gespeichert dargestellt ist. Falls gewünscht, könnten diese Anwendungen jedoch auf verschiedenen Arbeitsstationen 16 oder auf anderen Computern gespeichert und ausgeführt werden, die mit der Prozessanlage 10 assoziiert sind. Im Allgemeinen stellt die Whitelist-Konfigurationsanwendung 80 einem Konfigurationsingenieur Whitelist-Konfigurationsinformationen zur Verfügung, um einige oder alle Elemente der Whitelist-Funktionalität zu konfigurieren, die in der Prozessanlage 10 enthalten sind. Als Teil der Konfigurationsaktivitäten, die von der Whitelist-Konfigurationsanwendung 80 ausgeführt werden, kann der Konfigurationsingenieur neue Whitelists erstellen, vorhandene Whitelists bearbeiten und entfernen und diese verschiedenen Whitelist-Konfigurationen in die entsprechenden Whitelist-Ausführungsanwendungen 202 der Prozess-Controller 24 und 26 herunterladen, und die Sicherheits-Logic-Solver 50-56 über den Bus 22 und die Controller 24 und 26.
-
Im Allgemeinen liefert die Prozessanlagenkonfigurationsanwendung 82 einem Konfigurationsingenieur Informationen zur Konfiguration der Prozessanlage, um einige oder alle Elemente der Prozessanlage 10 zu konfigurieren, von denen einige Elemente an der Ausführung der Whitelist beteiligt sein können, und um diese Konfiguration in der Konfigurationsdatenbank 21 zu speichern. Als Teil der Konfigurationsaktivitäten, die von der Konfigurationsanwendung 82 durchgeführt werden, kann der Konfigurationsingenieur Steuerungsroutinen oder Steuerungsmodule für die Prozess-Controller 24 und 26 erstellen, kann Sicherheitslogikmodule 58 für alle und jeden der Sicherheits-Logic-Solver 50-56 erstellen und kann diese verschiedenen Prozesssteuermodule und Sicherheitsmodule über den Bus 22 und die Controller 24 und 26 in die entsprechenden Prozess-Controller 24 und 26 und die Sicherheits-Logic-Solver 50-56 herunterladen, um das Verhalten der Sicherheits-Logic-Solver 50-56 und der Prozess-Controller 24 und 26 während der Verarbeitung von Befehlen außerhalb oder neben der Ausführung der Whitelist zu steuern.
-
2 veranschaulicht einen beispielhaften Anzeigebildschirm 83, der die Hierarchie und Beziehungen zwischen Geräten und Modulen innerhalb der Prozessanlage 10 demonstriert, die Whitelist-Ausführungsanwendungen 202 verwenden können, um eine sichere Übertragung von Nachrichten zwischen den verschiedenen Geräten in der Anlage 10 sicherzustellen. Der Anzeigebildschirm 83 kann z. B. durch die Konfigurationsroutine 82 von 1 erzeugt werden, oder durch eine Bedienerschnittstellenanwendung, die eine Anlagenkonfiguration darstellt. Wie in dem Anzeigebildschirm 83 veranschaulicht, umfasst die Prozessanlage 10 einen physischen Netzwerkabschnitt 84, der die physischen Verbindungen der Geräte innerhalb der Prozessanlage 10 anzeigt, und einen Sicherheitsnetzwerkabschnitt 85, der Sicherheitssystemgeräte anzeigt. Der physische Netzwerkabschnitt 84 umfasst ein Steuerungsnetzwerk 86, das einen Satz von Controllern enthält, einschließlich eines Controllers 87 (mit CTLR1 bezeichnet) und eines Controllers 101 (mit CTLR2 bezeichnet). Der Controller 87, der einer der Controller 24, 26 aus 1 sein kann, enthält einen Satz zugewiesener Module 88, die Steuerungsmodule sind, die im Controller 87 gespeichert sind und von diesem ausgeführt werden, und einen E/A-Geräteabschnitt 89, der zu Kommunikationszwecken mit dem Controller 87 verbunden ist. Der E/A-Geräteabschnitt 89 ist erweitert, um alle E/A-Karten 90 zu veranschaulichen, die mit dem Controller 87 (CTLR1) über eine der Rückwandplatinen 76 der 1 verbunden sind. In diesem Beispiel enthält der E/A-Geräteabschnitt 89 Prozesssteuerungs-Eingabe-/Ausgabekarten C01-C09, C11, C14 und C15 (zusammenfassend mit der Nummer 90 bezeichnet). Jede dieser Karten kann erweitert werden, um die Identität und andere Informationen zu veranschaulichen, die mit den verschiedenen Feldgeräten (die einzelne der Feldgeräte 40 und 42 aus 1 sind) assoziiert sind, die mit jeder dieser Karten verbunden sind. Der Controller 87 (CTLR1) kann beispielsweise eine Whitelist-Ausführungsanwendung implementieren, um den Schutz seiner assoziierten Feldgeräte sicherzustellen.
-
Das Sicherheitssystem 14 ist im Sicherheitsnetzwerkabschnitt 85 so veranschaulicht, dass es drei Sicherheits-Logic-Solver 91-93 mit den Namen BLR1BMS, BLR2BM und LS1 enthält. Der Sicherheits-Logic-Solver 91 wird erweitert, um zu veranschaulichen, dass er zugewiesene Sicherheitsmodule, einen oder mehrere Kanäle (die mit Sicherheitsfeldgeräten wie den Geräten 60 und 62 von 1 verbunden sind) und sichere Parameter enthält. Der Sicherheits-Logic-Solver 91 (und/oder die Solver 92 und 93) können gleichermaßen beispielsweise eine Whitelist-Ausführungsanwendung implementieren, um den Schutz seiner assoziierten Sicherheitsfeldgeräte sicherzustellen. In diesen Fällen können eine oder mehrere Whitelists 95 in der Konfigurationsanzeige 83 als mit den Sicherheits-Logic-Solver 91, 92, 93 assoziiert (in diesen gespeichert und von diesen verwendet) veranschaulicht sein.
-
Der Konfigurationsanzeigebildschirm 83 von 2 veranschaulicht die Art und Weise an, in der eine Konfigurationsanwendung 82 die Software (und Hardware) konfiguriert hat, die mit den verschiedenen Geräten innerhalb der Prozessanlage 10 assoziiert ist, und kann von einem Konfigurationsingenieur verwendet werden, um die aktuelle Konfiguration der Prozessanlage 10 durch Herunterladen neuer Konfigurationssoftware für die Geräte in der Prozessanlage 10 zu erstellen oder zu ändern, einschließlich der Prozesssteuerungssystemgeräte und der Sicherheitssystemgeräte. Er kann ferner anzeigen, wie die Konfigurationsinformationen in der Konfigurationsdatenbank 21 von 1 gespeichert sind. Es versteht sich, dass die Whitelist-Konfigurationsanwendung 82 diese Informationen dazu verwendet, Whitelist-Ausführungsanwendungen 202 und die dabei verwendeten Whitelists zu konfigurieren.
-
3A veranschaulicht ein Blockdiagramm eines Geräts 300, das einer der Sicherheits-Logic-Solver 50-56 von 1 oder ein Prozess-Controller 24 und 26 von 1 sein kann, der neben anderen Funktionen eine Whitelist-Ausführungsanwendung 320 und eine Whitelist-Lernanwendung 330 implementiert. Das Gerät 300 ist so veranschaulicht, dass es einen oder mehrere Prozessoren oder CPUs 301, einen Direktzugriffsspeicher (RAM) 302, einen Hardwareschlüssel zum Einstellen einer Sicherheitsstufe 303, eine Kommunikationsschnittstelle 304 zum Senden und Empfangen von Daten über ein lokales Netzwerk, ein Weitverkehrsnetz oder ein anderes geeignetes Netzwerk, ein manuelles Konfigurationsportal 305 und ein Speicher 310, in dem verschiedene ausführbare Module oder Daten gespeichert sind, die von dem Gerät 300 verwendet werden, enthält. Allgemein kann das Gerät 300 während des Betriebs der Prozessanlage 10 von 1 mit Feldgeräten, E/A-Geräten, den Benutzer-Workstations und/oder einem anderen geeigneten Computergerät kommunizieren. Der Prozessor 301 kann neben anderen Funktionen Logik in dem Speicher 310 ausführen, wobei die ausführbare Logik Verarbeitungsbefehle umfasst, die das Gerät 300 über ein Kommunikationsnetzwerk empfängt, das mit der Kommunikationsschnittstelle 304 gekoppelt ist. Ein Teil der ausführbaren Logik kann von einem Zustand eines Hardwareschlüssels 303 abhängen, der eine Sicherheitsstufe anzeigt.
-
Es ist wichtig, dass der Speicher 310 von 3A so veranschaulicht ist, dass er ein Betriebssystem 311 und einen Satz von Logikmodulen 312 enthält, die auf der Verarbeitungseinheit 301 ausgeführt werden, um Prozesssteuerungsaktivitäten, wie Sicherheitssystemsteuerungs- und Abschaltaktionen, auszuführen sowie Nachrichten zu verarbeiten, die durch das Gerät 300 über die Kommunikationsschnittstelle 304 empfangen wurden. Die Logikmodule 312 können die gleichen sein wie die zuvor erwähnten Module, die von einem Konfigurationsingenieur über die Konfigurationsanwendung 80 der 1 konfiguriert wurden. Die Logikmodule 312 können steuern, wie das Gerät 300 auf Befehle reagiert, die von einem anderen Controller oder einem anderen Benutzerschnittstellengerät (wie einem von denen aus 1) empfangen wurden, sowie auf Daten oder Nachrichten, die von Sicherheitssystem- oder Prozesssteuerungs-Feldgeräten empfangen wurden, die über die Schnittstelle 304 mit dem Gerät 300 verbunden sind. Wie in 3A dargestellt, speichert überdies der Speicher 310 eine Whitelist-Ausführungsanwendung 320 und/oder eine Whitelist-Lernanwendung 330. Obwohl die Whitelist-Lernanwendung 330 und die Whitelist-Ausführungsanwendung 320 als separate Anwendungen dargestellt sind, kann ihre Funktionalität in einer einzigen Anwendung kombiniert werden.
-
Im Allgemeinen wird die Whitelist-Ausführungsanwendung 320 (die eine der Anwendungen 202 von 1 sein kann) auf der Verarbeitungseinheit 301 ausgeführt, um als Cybersicherheits-Gateway für Nachrichten wie HART-Nachrichten zu fungieren, die an ein oder mehrere Feldgeräte oder andere Geräte in einem Teilnetz gesendet werden, das mit dem Gerät 300 verbunden ist. Insbesondere decodiert und analysiert die Whitelist-Ausführungsanwendung 320 eingehende Nachrichten, die über die Kommunikationsschnittstelle 304 empfangen wurden und für Geräte (z. B. Feldgeräte) im Teilnetz, wie z. B. Sicherheitssystem-Feldgeräte, bestimmt vorgesehen sind oder an diese adressiert sind, um zu bestimmen, ob diese Nachricht an das vorgesehene Gerät gesendet oder ob die Nachricht stattdessen blockiert werden soll. Die Whitelist-Ausführungsanwendung 320 kann beispielsweise eine eingehende Nachricht decodieren und den mit der Nachricht assoziierten Befehlstyp (z. B. den HART-Befehlstyp) bestimmen. Die Whitelist-Ausführungsanwendung 320 kann dann diesen Befehlstyp mit der Liste von Befehlstypen vergleichen, die an ein Gerät im Teilnetz gesendet werden dürfen, wie in einer oder mehreren Whitelists definiert, die in dem Gerät 300 gespeichert sind. Wenn beispielsweise der Befehlstyp in einer geeigneten Whitelist gespeichert ist, kann die Anwendung 320 ermöglichen, dass die Nachricht über die Schnittstelle 304 an das Gerät im Teilnetz (z. B. das Feldgerät) weitergeleitet wird. Wenn der Befehlstyp jedoch nicht in der entsprechenden Whitelist gespeichert ist, blockiert die Anwendung 320 das Senden der Nachricht an das Gerät im Teilnetz über die Schnittstelle 304 und kann stattdessen eine Nachricht an das sendende Gerät senden (d. h. das Gerät, das die Nachricht gesendet hat), die anzeigt, dass die Nachricht als nicht zulässig blockiert wurde. Ferner kann die Whitelist-Ausführungsanwendung 320 die geeignete Whitelist bestimmen, die für diese Funktionalität verwendet werden soll, basierend auf der Einstellung des Hardwareschlüssels 303 oder basierend auf anderen Konfigurationsdaten, die dem Gerät 300 während seiner Konfiguration bereitgestellt werden, wobei die bereitzustellenden Sicherheitsstufe und -typen basierend auf verschiedenen anderen Faktoren definiert werden, einschließlich der Einstellung der Sicherheitsstufe beispielsweise durch den Hardwareschlüssel 303 (oder einen Softwareschlüssel), des bestimmten Geräts oder der bestimmten Geräte, an die die Nachrichten gesendet werden, des Betriebszustands des Geräts 300 oder der Prozessanlage, in der das Gerät 300 eingesetzt wird, usw.
-
Darüber hinaus kann, wie nachstehend ausführlicher beschrieben wird, die Whitelist-Lernanwendung 330 auf der Verarbeitungseinheit 301 ausgeführt werden, um Nachrichten anzunehmen, Informationen über die Nachrichten und insbesondere die in den Nachrichten vorhandenen Befehlstypen zu erhalten und dann eine oder mehrere Whitelists zu erzeugen, die von der Whitelist-Ausführungsanwendung 320 basierend auf diesen Informationen verwendet werden sollen. Insbesondere kann die Whitelist-Lernanwendung 330 in einem sicheren Modus arbeiten (d. h., wenn bekannt ist, dass das Anlagen- oder Prozesssteuerungsnetzwerk in einem sicheren Modus oder einer sicheren Umgebung arbeitet), um die Befehle oder Befehlstypen (z. B. die HART-Befehle) zu lernen, die normalerweise in Nachrichten erscheinen, die an das Sicherheitsgateway-Gerät gesendet werden, und eine oder mehrere Whitelists mit diesen Befehlen oder Befehlstypen darin erstellen. Wenn danach die Anlage oder das Sicherheitsgateway-Gerät auf einen Sperrmodus eingestellt ist, kann das Sicherheitsgateway-Gerät unter Verwendung der gelernten Whitelists arbeiten, um zu bestimmen, welche Nachrichten im Gateway-Gerät oder in einem Gerät in einem Teilnetz des Gateway-Geräts verarbeitet werden dürfen.
-
3B veranschaulicht mindestens einen Teil des Geräts 300 von 3A detaillierter, einschließlich einer erweiterten Ansicht der Whitelist-Ausführungsanwendung 320, die auf dem Prozessor 301 des Geräts 300 ausgeführt wird. Die erweiterte Ansicht der Whitelist-Ausführungsanwendung 320 enthält ein Whitelist-Ausführungslogikmodul 326, ein Entschlüsselungsmodul 325, Whitelist-Konfigurationsinformationen 324 und einen Satz von einer oder mehreren Whitelists 321, einen sicheren Schreibclient 322 und eine Sicherheitsstufeneinstellung 323. Der sichere Schreibclient 322 kann die Authentifizierung von Benutzern ermöglichen, die beabsichtigen, die Whitelist-Konfigurationsinformationen 324 und Whitelists 321 der Whitelist-Ausführungsanwendung 320 zu ergänzen, daraus zu löschen und allgemein zu bearbeiten. Einige der Whitelist-Konfigurationsinformationen 324 können in verschlüsselter Form an die Whitelist-Ausführungsanwendung 320 gesendet werden. Verschlüsselte Whitelist-Konfigurationsinformationen können durch das Entschlüsselungsmodul 325 entschlüsselt werden. Darüber hinaus enthält das Whitelist-Ausführungslogikmodul 326 eine Logik oder Programmierung, die, wenn sie auf dem Prozessor 301 der 3A ausgeführt wird, Nachrichten oder Befehle von der Kommunikationsschnittstelle 304 (die von einem Prozess-Controller, einer Benutzerschnittstelle oder einem anderen Gerät gesendet werden und für das Gerät 300 oder ein Gerät in einem mit dem Gerät 300 verbundenen Teilnetzwerk bestimmt sind) empfängt und in Abstimmung mit den anderen Komponenten der Whitelist-Ausführungsanwendung 300 bestimmt, ob die Nachrichten oder Befehle von dem Gerät 300 (z. B. in den Logikmodulen 312) weiter verarbeitet oder an ein oder mehrere Geräte (z. B. die Feldgeräte 22) in einem Teilnetz gesendet werden sollen, das mit dem Gerät 300 verbunden ist.
-
Das Whitelist-Ausführungslogikmodul 326 bestimmt, ob eine über die Kommunikationsschnittstelle 304 empfangene Nachricht zulässig sein soll oder nicht (z. B. von dem Gerät 300 verarbeitet oder an ein Gerät in dem Teilnetz gesendet, für das das Gerät 300 als Gateway dient), teilweise basierend auf den Whitelist-Konfigurationsinformationen 324, den Whitelists 321 und der Sicherheitsstufe 323. Die Sicherheitsstufe 323 speichert die Sicherheitsstufe des Whitelist-Implementierungsgeräts 300 zu einem bestimmten Zeitpunkt. Die Sicherheitsstufe 323 kann unter Verwendung eines Hardwareschlüssels 303 von 3A eingestellt werden, oder sie kann über einen geeigneten Benutzer einer oder mehrerer der Benutzer-Workstations 16 von 1 eingestellt werden, oder über ein anderes gewünschtes Verfahren. Die Whitelists 321 bilden eine Liste von Whitelists. Jede Whitelist ist ein exklusiver Satz zulässiger Befehlstypen. Es versteht sich, dass mindestens eine der Vielzahl von Whitelists 321 gerätespezifische und/oder Common-Practice-Befehle enthalten kann, insbesondere gerätespezifische und/oder Common-Practice-Lesebefehle. Die Whitelist-Konfigurationsinformationen 324 enthalten Daten, die verwendet werden, um zu bestimmen, welche Whitelist 321 für einen gegebenen eingehenden Befehl oder Prozessstatus verwendet werden kann, oder andere Informationen, die sich darauf auswirken können, welche Whitelist 321 verwendet werden soll. Insbesondere können die Whitelist-Konfigurationsinformationen 324 eine Tabelle darstellen, wie beispielsweise eine Hashtabelle, die definiert, welche Whitelist(s) verwendet werden soll(en), wenn das dargestellte Gerät auf eine bestimmte Sicherheitsstufe eingestellt ist. Die Whitelists 321 und die Whitelist-Konfigurationsinformationen 324 können in Listen, Tabellen, Hashtabellen, Hash-Gruppen, verknüpften Listen, Warteschlangen, Stapel und/oder einer anderen anwendbaren Datenstruktur gespeichert sein. Die Art und Weise, in der die Whitelists 321 ausgewählt werden und in der die eingehenden Nachrichten zugelassen werden oder nicht, wird durch den Betrieb des Whitelist-Ausführungslogikmoduls 326 bestimmt, wie dies ausführlicher durch ein Flussdiagramm 400 in 4 dargestellt ist.
-
Wie insbesondere in 4 dargestellt, empfängt das Whitelist-Ausführungslogikmodul 326 von 3B in einem Schritt 401 einen Befehl oder eine Nachricht (z. B. eine HART-Nachricht) von der Kommunikationsschnittstelle 304. Dann identifiziert die Anwendung 320 in einem Schritt 402 den Befehlstyp durch Extrahieren des Befehlstypfeldes aus der Nachricht. In einem Schritt 403 ruft die Anwendung 320 eine oder mehrere Whitelists 321 basierend auf der aktuellen Sicherheitsstufe 323 und den Whitelist-Konfigurationsinformationen 324 ab, wie nachstehend beschrieben. Wenn in einem Schritt 404 der Befehlstyp der empfangenen Nachricht in der (den) Whitelist(s) 321 vorhanden ist, ermöglicht die Anwendung 320, dass die Nachricht als zulässige Nachricht verarbeitet wird. In einem Schritt 406 kann die Anwendung 320 der Kommunikationsschnittstelle 304 ermöglichen, die Nachricht über eine Kommunikationsschnittstelle 304 an das gewünschte Feldgerät weiterzuleiten oder von einem oder mehreren der Logikmodule 312 innerhalb des Geräts 300 verarbeitet zu werden, wie nachstehend ausführlicher erläutert. Wenn in einem Schritt 404 der Nachrichtentyp nicht in der Whitelist 321 enthalten ist, kann die Anwendung 320 die Nachricht markieren, sodass sie nicht verarbeitet wird, da es sich um eine unzulässige Nachricht handelt. In einem Schritt 405 kann die unzulässige Nachricht verworfen werden (z. B. kann sie nicht zur Weiterleitung an die Kommunikationsschnittstelle zurückgegeben werden), oder sie kann auf irgendeine andere Weise verworfen werden. Der Schritt 405 kann ferner oder alternativ das Benachrichtigen des Anlagenpersonals, z. B. Prozesssteuerungsbediener, Wartungspersonal, Konfigurationsingenieure usw., über die Kommunikationsschnittstelle 304 umfassen, dass die Nachricht verworfen wurde, damit diese Personen oder das Ursprungsgerät geeignete Maßnahmen ergreifen können.
-
Wenn also eine eingehende Nachricht (z. B. eine HART-Nachricht) von der Kommunikationsschnittstelle 304 empfangen wird, dann wird sie zuerst an die Whitelist-Ausführungsanwendung 320 übergeben. Das Whitelist-Ausführungslogikmodul 326 der Whitelist-Ausführungsanwendung 320 enthält eine Kommunikationslogik, die den Befehlstyp aus der Nachricht extrahiert und eine Whitelist 321 unter Verwendung der Whitelist-Konfigurationsinformationen 324 und der Sicherheitsstufe 323 nachschlägt. Das Whitelist-Ausführungslogikmodul 326 kann dann nach dem extrahierten Befehlstyp in der ausgewählten Whitelist suchen, um zu bestimmen, ob die Nachricht zugelassen oder abgelehnt werden soll. Wenn beispielsweise ein Hardwareschlüssel 303 auf dem Gerät 300, auf dem sich die Whitelist-Ausführungsanwendung 320 befindet, auf eine Position eingestellt ist, die eine hohe Sicherheitsstufe anzeigt, können die Whitelist-Konfigurationsinformationen 324 angeben, dass eingehende Befehle über die Kommunikationsschnittstelle 304 gegen eine erste Whitelist geprüft werden. Wenn das Whitelist-Implementierungsgerät 300 jedoch auf eine mittlere Sicherheitsstufe eingestellt ist, kann die Whitelist-Konfigurationsinformation 324 festlegen, dass eingehende Befehle gegen eine zweite Whitelist geprüft werden können. Die zweite Whitelist kann länger sein (d. h. weniger streng). Alternativ oder zusätzlich können die Whitelist-Konfigurationsinformationen 324 festlegen, dass bei (einer) niedrigen Sicherheitsstufe(n) die Whitelist-Ausführungsanwendung 320 eine gesamte Whitelist verwenden (d. h., jeden Befehlstyp einschließen) kann. Alternativ oder zusätzlich kann in den Whitelist-Konfigurationsinformationen 324 angegeben werden, dass bei einer noch höheren Sicherheitsstufe die Whitelist-Ausführungsanwendung 320 eine leere Whitelist (d. h. eine vollständige Blacklist) verwenden darf. Natürlich kann jede Whitelist eine beliebige Anzahl oder Art von Befehlstypen enthalten, die zulässig sind, und diese können in vielen Fällen unterschiedliche, sich nicht überlappende Gruppen sein.
-
Wenn eine Nachricht erlaubt ist, kann die Nachricht im Schritt 406 natürlich zur Standardoperation an die Kommunikationsschnittstelle 304 zurückgegeben werden. Der Standardbetrieb kann die Ausführung eines oder mehrerer Logikmodule 312 umfassen. Der Standardbetrieb kann ferner und/oder alternativ das Weiterleiten der Nachricht oder das Verarbeiten der Nachricht basierend auf Standardprotokollen umfassen, wie beispielsweise unter Verwendung einer MAC-Adresse oder eines IP-Adresszielfelds der Nachricht, alternativ oder zusätzlich unter Verwendung einer Durchgangs-HART-Kommunikation.
-
In einer anderen oder der gleichen Ausführungsform können die Whitelist-Konfigurationsinformationen 324 definieren, welche Whitelists zu verwenden sind, wenn das Whitelist-Implementierungsgerät 300 auf eine bestimmte Sicherheitsstufe eingestellt ist und das eingehende Befehlsziel ein bestimmtes Feldgerät ist, das mit dem Whitelist-Implementierungsgerät 300 verbunden ist. Dem entsprechend kann der Schritt 402 sowohl einen Befehlstyp als auch ein Ziel aus dem Signal extrahieren, um zu bestimmen, welche Whitelist verwendet werden soll und ob die Nachricht basierend auf dieser Whitelist zulässig ist. Wenn beispielsweise ein Hardwareschlüssel 303 auf dem Whitelist-Implementierungsgerät 300 auf eine Position gesetzt ist, die eine hohe Sicherheitsstufe anzeigt, können die Whitelist-Konfigurationsinformationen 324 angeben, dass über die Kommunikationsschnittstelle 304 eingehende Befehle, die für ein erstes Ventil bestimmt sind, gegen eine erste Whitelist geprüft werden sollen. Wenn die eingehenden Befehle jedoch für ein zweites Ventil der gleichen Sicherheitsstufe bestimmt sind, können die Whitelist-Konfigurationsinformation 324 festlegen, dass eingehende Befehle gegen eine zweite Whitelist geprüft werden sollen. Dies ist natürlich nur ein Beispiel, und viele andere Kombinationen von Konfiguration, Prozessstatus oder anderen Daten können verwendet werden, um zu bestimmen, welche Whitelist zur Verarbeitung einer bestimmten Nachricht zu einem bestimmten Zeitpunkt verwendet werden soll.
-
5A veranschaulicht zumindest einen Teil des Geräts 300 aus 3A im Detail, einschließlich einer erweiterten Ansicht der Whitelist-Lernanwendung 330, die auf Prozessor 301 des Geräts 300 läuft. Die erweiterte Ansicht der Whitelist-Lernanwendung 330 enthält eine Sperr-/Lernmodus-Einstellung oder Daten 333, einen Satz von Whitelist-Builder-Logikdaten 332 und ein Whitelist-Lernlogikmodul 331. Das Whitelist-Lernlogikmodul 331 kann maschinenausführbaren Code enthalten, der bei Ausführung die Logik der Whitelist-Lernanwendung 330 ausführt. Der Sperr-/Lernmodus 333 kann Daten anzeigen oder speichern, die anzeigen, dass sich das Gerät 300 in einem „Sperr“-Zustand befindet oder dass sich das Gerät 300 in einem „Lern“-Zustand befindet. Das Gerät 300 kann von einem Sperrmodus in einen Lernmodus und umgekehrt wechseln, entweder gemäß einem Hardwareelement auf dem Gerät, wie beispielsweise einem Schlüssel, oder gemäß Befehlen, die über eine oder mehrere der Workstations 16 von 1 von geeigneten Benutzern wie Konfigurationsingenieuren, Anlagenbetreibern, Wartungspersonal usw. ausgegeben werden. Die vom Whitelist-Lernlogikmodul 331 ergriffenen Maßnahmen können von diesen Zuständen abhängen. Die Builder-Logik oder Daten 332 der Whitelist(s) werden verwendet, um Whitelist-Konfigurationen zu erstellen, wenn sich das Gerät 300 in einem Lernzustand befindet, wie zu verstehen ist. Die Builder-Logik oder Daten der Whitelist(s) 332 können, ähnlich den Whitelist-Konfigurationsinformationen 324 von 3B, eine Tabelle konstituieren, wie beispielsweise eine Hashtabelle. Allgemeinen kann die Whitelist-Lernanwendung 330 Befehle von einer Kommunikationsschnittstelle 304 empfangen, und die Anwendung 330 kann diese Befehle an die Whitelist-Ausführungsanwendung 320 weiterleiten und/oder Nachrichten an die Kommunikationsschnittstelle 304 zurücksenden, um sie auf der Grundlage der Einstellungen und der Bedienung des Logikmoduls 331 an die gewünschten Zielfeldgeräte weiterzuleiten.
-
5B veranschaulicht ein Beispiel des Flussdiagramms 500 des Whitelist-Lernlogikmoduls 331 in größerer Detailgenauigkeit. Wenn die Whitelist-Lernanwendung 330 eine Nachricht von der Kommunikationsschnittstelle 304 empfängt (in einem Schritt 501), kann das Logikmodul 331 zuerst prüfen, ob sich das Gerät 300 in einem „Lern“-Zustand befindet oder ob sich stattdessen das Gerät 300 in einem „Sperr“-Zustand befindet, wie er durch die Daten 333 definiert ist (in einem Schritt 502). Wenn sich das Gerät 300 in einem Sperrzustand befindet, kann die Anwendung 330 die Nachricht einfach an die Whitelist-Ausführungsanwendung 320 senden, um wie oben beschrieben verarbeitet zu werden (in einem Schritt 503). Wenn sich das Gerät 300 jedoch in einem Lernzustand befindet, kann das Logikmodul 331 eingehende Nachrichten als sicher behandeln und verwendet die Whitelist(s)-Builder-Logik 332, um Informationen über die Nachricht, wie beispielsweise den HART-Befehlstyp der Nachricht, die Geräte im Teilnetz, die Nachrichten empfangen, usw., angemessen zu „lernen“. Nachdem die Logik 332 diese Informationen „gelernt“ hat, leitet das Whitelist-Lernlogikmodul 331 den Befehl an die Kommunikationsschnittstelle 304 zurück, um eine Standardoperation auszuführen, wie z. B. das Ausführen von Logikmodulen 312 und das Weiterleiten des Befehls an sein gewünschtes Ziel. Wie in einem Schritt 504 dargestellt, kann das Whitelist-Lernlogikmodul 331 in einem Lernmodus den Befehlstyp (und die Sicherheitsstufe und alle anderen gewünschten Informationen) der eingehenden Nachricht extrahieren. Dann kann das Logikmodul 331 in einem Schritt 505 den Builder den Whitelist(s)-Builder 332 dazu verwenden, eine Whitelist und eine Whitelist-Abbildung zu erstellen, um den Befehlstyp zu speichern. Beispielsweise kann in einer Ausführungsform im Schritt 504 das Whitelist-Lernlogikmodul 331 die Sicherheitsstufe 323 des Geräts 300 überprüfen und ferner die Sicherheitsstufe im Whitelist(s)-Builder nachschlagen, um zu prüfen, ob es für diese Sicherheitsstufe bereits eine bestehende Whitelist gibt. Für den Fall, dass eine Whitelist vorhanden ist, kann das Logikmodul 331 in Schritt 505 den Befehlstyp an diese Whitelist in der Whitelist-Builder-Logik oder den Daten 332 anhängen. Für den Fall, dass keine bestehende Whitelist vorhanden ist, kann das Logikmodul 331 eine neue Whitelist entsprechend dieser Sicherheitsstufe speichern, wobei die Whitelist den Befehlstyp der eingehenden Nachricht enthält. In einer anderen Ausführungsform kann der Whitelist-Builder 332 ferner Abbildungen von einer Kombination aus Sicherheitsstufe(n) und Befehlsziel(en) (und/oder anderen Informationen) zu Whitelist(s) speichern. In einer Ausführungsform kann beispielsweise das Whitelist-Lernlogikmodul 332 die Sicherheitsstufe 323 des Sicherheits-Gateway-Geräts 300 und des Geräteziels (z. B. der Geräteadresse) der eingehenden Nachricht prüfen. Dann kann das Logikmodul 331 in den Whitelist-Builder-Daten 332 einen Wert nachschlagen, der dieser Sicherheitsstufe und diesem Geräteziel entspricht, um festzustellen, ob für diese Kombination eine Whitelist vorhanden ist. Wenn eine Whitelist vorhanden ist, kann das Logikmodul 331 den Befehlstyp an die Whitelist anhängen, und wenn die Whitelist nicht vorhanden ist, kann das Logikmodul 331 eine neue Whitelist erstellen, die diesen Befehlstyp für dieses Zielgerät enthält. Die Whitelist-Lernanwendung 330 kann an verschiedenen Punkten während der Ausführung der Lernanwendung 330 mit der Whitelist-Ausführungsanwendung 320 kommunizieren. Insbesondere kann die Lernanwendung 320 die Whitelist-Konfigurationsinformationen 324 von 3B direkt bearbeiten, wenn sie neue Befehle erhält, anstelle der oder zusätzlich zur Verwendung der Whitelist(s)-Builder-Logik oder der Daten 332. Natürlich kann das Logikmodul 311 beim Erstellen von Whitelists während eines Lernmodus, wie in Schritt 506 dargestellt, die Nachricht oder den Befehl an die Kommunikationsschnittstelle als für die normale Verarbeitung zulässig zurückgeben.
-
Wenn schließlich die Whitelist-Lernanwendung 330 erkennt, dass das Gerät von einem Lernzustand in einen Sperrzustand gewechselt hat oder wechselt, kann die Anwendung 330 (oder das Logikmodul 331 davon) die Whitelist-Ausführungsanwendung 320 gegebenenfalls aktualisieren, einschließlich einer Aktualisierung oder mehr Whitelists, die von der Anwendung 320 verwendet werden. Wenn die Anwendung 330 ihre gelernten Informationen im Whitelist(s)-Builder 332 gespeichert hat, kann die Anwendung 320 den Whitelist(s)-Builder 332 leeren. Sie kann auch die Whitelist-Ausführungsanwendung 320 basierend auf aktualisierten Whitelists konfigurieren, die die Informationen widerspiegeln, die im Whitelist(s)-Builder 332 enthalten sind, bevor er geleert wird. Wenn beispielsweise das Gerät 300 von einem Lernzustand in einen Sperrzustand umgeschaltet wird, kann die Anwendung 323 alle Befehle aus den von ihr erstellten Whitelists (wie in der Builder-Logik oder den Daten 332 wiedergegeben) an die entsprechenden Whitelists in den Whitelist-Konfigurationsinformationen 324 der Whitelist-Ausführungsanwendung 330 anhängen. Alternativ dazu kann die Anwendung 330 die Whitelists, die in der Whitelist-Ausführungsanwendung 320 gespeichert sind und von dieser verwendet werden, durch die Whitelists ersetzen, die in oder durch die Builder-Logik oder die Daten 332 während des Lernmodus erstellt wurden. Es versteht sich, dass die Whitelist-Lernanwendung 330 das automatische Lernen oder Erstellen von Whitelists zur Verwendung durch die Whitelist-Ausführungsanwendung 320 basierend auf einem bekannten normalen Betrieb des Prozesssteuerungs- und Sicherheitssystems ermöglicht.
-
Der Betrieb der Whitelist-Konfigurationsanwendung 80 von 1 wird unter Bezugnahme auf 6-9 ausführlicher beschrieben. Insbesondere veranschaulicht 6 die sichere Whitelist-Konfigurationsanwendung 80, die in einer der Workstations 16 von 1 angeordnet ist, wobei die Whitelist-Konfigurationsanwendung 80 dazu ausgeführt werden kann, Whitelist-Konfigurationsaktionen auszuführen, wie beispielsweise das Erstellen und Einrichten einer oder mehrerer Whitelist(s) zur Verwendung in einem oder mehreren der Sicherheitsgateway-Geräte in der Prozessanlage, etwa in einem oder mehreren der Prozess-Controller 24, 26 oder der Sicherheits-Logic-Solver 50, 52, 54, 56 der 1, das Herunterladen der Whitelists auf die Sicherheitsgateway-Geräte, das Konfigurieren der Sicherheitsgateway-Geräte, sodass sie Whitelist-Funktionen enthalten, das Ändern der Sicherheitseinstellungen von Sicherheitsgateway-Geräten usw. Im Allgemeinen ist die Whitelist-Konfigurationsanwendung 80 so konfiguriert, dass ein Whitelist-Konfigurationslogikmodul auf einer Verarbeitungseinheit 601 ausgeführt wird und kommunikativ mit einem Konfigurationsspeicher 610, der Konfigurationsinformationen enthält, mit einer Kommunikationsschicht 630, die mit anderen Geräten in der Prozessanlage 10 kommuniziert, und mit einer Benutzeranzeigeschnittstelle 620, die mit einer Benutzerschnittstelle interagiert, um Informationen an eine oder mehrere Verwendungen bereitzustellen und zu erhalten, gekoppelt ist.
-
Insbesondere interagiert die sichere Whitelist-Konfigurationsanwendung 80 mit Kommunikationssoftware, wie beispielsweise einer Kommunikationsschicht oder einem Stapel 630, die mit den Prozess-Controllern 24 und 26 über die Ethernet-Verbindung 22 kommuniziert, um Signale an die Controller 24 und 26, die Sicherheitslogikmodule 50-56, die E/A-Geräte 28-36, die Feldgeräte 40, 42, 60 und 62 und/oder andere Workstations 16 zu senden und von diesen zu empfangen. Die Kommunikationsschicht 630 formatiert auch ordnungsgemäß Nachrichten, die an die Controller, E/A-Geräte, Feldgeräte, Sicherheits-Logic-Solver und andere Workstations wie Alarmbestätigungssignale gesendet werden sollen. Die Kommunikationssoftware 630 kann jede bekannte oder gewünschte Kommunikationssoftware sein, die gegenwärtig beispielsweise mit Ethernet-Kommunikation verwendet wird. Natürlich kann der Kommunikationsstapel 630 mit anderer Software gekoppelt sein, die andere Funktionen ausführt, wie Konfigurationsanwendungen, Diagnose- oder andere Prozessanwendungen, Datenbankverwaltungsanwendungen usw., die innerhalb der Workstation 16 ausgeführt werden.
-
Der Konfigurationsspeicher 610 kann Konfigurationsinformationen speichern oder bereitstellen, die die physischen und elektrischen Konfigurationen, Verbindungen und Links innerhalb der Prozessanlage 10 darstellen, und kann die Kommunikationsfähigkeiten zwischen Geräten innerhalb der Prozessanlage 10 definieren. Die Konfigurationsinformationen von 6 können die Konfigurationsinformationsdatenbank 21 von 1 sein oder können Anlagenkonfigurationsinformationen lokal speichern oder die Konfigurationsinformationen von einem anderen Ort abrufen. Die Benutzeranzeigeschnittstelle 620 innerhalb der Workstation 16 kann der Whitelist-Konfigurationsanwendung 80 das Lesen von Benutzereingaben, das Bereitstellen von Informationen an den Benutzer oder das Ausführen anderer Benutzerschnittstellenaktivitäten ermöglichen. Im Allgemeinen kann die Verarbeitungseinheit 601 in Verbindung mit der Benutzeranzeigeschnittstelle 620 arbeiten, um Anforderungen zum Lesen von oder Schreiben in Elemente(n) innerhalb des Prozesssteuerungssystems 12 und des Sicherheitssystems 14 zu erfassen. Zusammen arbeiten der Konfigurationsinformationsspeicher 610, die Benutzeranzeige 620 und die Kommunikationsschicht 630, um die Funktionalität der Whitelist-Konfigurationsanwendung 80 zu ermöglichen.
-
Im Allgemeinen wird die Whitelist-Konfigurationsanwendung 80 auf der Verarbeitungseinheit 601 ausgeführt, um sichere Whitelist-Konfigurationsprozeduren in Bezug auf alle gewünschten Whitelist-Konfigurationen durchzuführen, die für eine oder mehrere Prozess-Controller 24 und/oder 26 des Prozesssteuerungssystems 12 oder (einen) Sicherheits-Logic-Solver(s) 50-56 des Sicherheitssystems 14 oder ein anderes Sicherheits-Gateway-Gerät innerhalb der Anlage 10 bestimmt sind. Die Whitelist-Konfigurationsanwendung 80 ist dazu konfiguriert, Benutzer zu authentifizieren, um eine oder mehrere Whitelists zu erstellen, Anweisungen von Benutzern zu erhalten, eine Whitelist zu bearbeiten oder die Konfiguration einer Whitelist-Ausführungsanwendung 320 über die Lese- und Schreibfunktionalität zu ändern und die gewünschten Sicherheits-Gateway-Geräte und deren entsprechende Whitelist-Ausführungsanwendungen 320 zu konfigurieren. Wie in 6 dargestellt, enthält die Whitelist-Konfigurationsanwendung 80 ein gerätespezifisches Befehlserkennungsmodul 602, ein Whitelist-Konfigurationslogikmodul 603, einen Satz gespeicherter Zugriffsrechte 604, ein Konfigurationsinformationsmodul 605, einen Satz von Verschlüsselungsregeln 606, ein Whitelist-Konfigurationsinformationsmodul 607 und einen sicheren Schreibserver 608. Während die sichere Whitelist-Konfigurationsanwendung 80 als eigenständige Anwendung dargestellt ist, versteht es sich, dass diese Anwendung in jede andere Anwendung integriert werden kann, die in den Bediener-Workstations 16 (oder anderen Computern) von 1 verwendet werden, um sicherzustellen, dass das Lesen aus dem und das Schreiben in das Sicherheitssystem 14 (und, falls gewünscht, das Prozesssteuerungssystem 12) gemäß einer sicheren Whitelist-Konfigurationsanwendung 80 erfolgen.
-
Im Allgemeinen wird das Whitelist-Konfigurationslogikmodul 603 auf der Verarbeitungseinheit 601 ausgeführt, um die mit der Anwendung 80 assoziierte Logik auszuführen, und arbeitet insbesondere dafür, die anderen Module (die Unterprogramme sein können) oder Informationskomponenten 602 und 604-608 in Verbindung mit der Kommunikationsschicht 630, den Konfigurationsinformationen 610 und der Benutzeranzeigeschnittstelle 620 zu verwenden, um die Konfiguration der Whitelist-Ausführungsanwendungen 320 und der Whitelist-Lernanwendungen 330 durchzuführen. Diese Konfigurationsaktivitäten können das Erstellen und Einrichten (Herunterladen) einer oder mehrerer Whitelist-Ausführungsanwendungen 320 und/oder Whitelist-Lernanwendungen 330 in einem oder mehreren Sicherheits-Gateway-Geräten in der Anlage 10 enthalten, wobei die Konfigurationseinstellungen einer oder mehrerer Whitelist-Ausführungsanwendungen 320 und/oder Whitelist-Lernanwendungen 330 in der Anlage 10 aktiviert oder geändert werden, und das Erstellen oder Ändern einer oder mehrerer Whitelists, die von einer oder mehreren Whitelist-Ausführungsanwendungen 320 in der Anlage 10 verwendet werden.
-
Im Allgemeinen führt das Logikmodul 603 eine Benutzerauthentifizierung unter Verwendung des sicheren Schreibservers 608 und des Satzes gespeicherter Zugriffsrechte 604 durch, die definieren, welche authentifizierten Benutzerkonten die Whitelist-Ausführungsanwendungen bestimmter Logic-Solver, Prozess-Controller oder anderer Sicherheits-Gateway-Geräte konfigurieren können. Ferner kann das Logikmodul 603 das gerätespezifische Befehlserkennungsmodul 602 aufrufen, um einen oder mehrere Befehle zu erkennen, die in einer oder mehreren Whitelists platziert werden sollen, um in einer oder mehreren der Whitelist-Ausführungsanwendungen 320 verwendet zu werden. Ebenso kann das Logikmodul 603 das Konfigurationsinformationsmodul 605 verwenden, um allgemeine Konfigurationsinformationen über die Anlage 10 und die Geräte innerhalb der Anlage zu speichern oder zu erhalten, um eine oder mehrere Whitelists zu erstellen, und kann das Whitelist-Konfigurationsinformationsmodul 607 zum Speichern oder Erhalten von Konfigurationsinformationen über eine oder mehrere Whitelists verwenden, die zur Verwendung in der Anlage 10 erstellt wurden. Ebenso kann das Logikmodul 603 die Verschlüsselungsregeln 606 verwenden, um eine Verschlüsselung von Informationen durchzuführen, die an Geräte innerhalb der Anlage 10 gesendet und von diesen empfangen werden sollen.
-
Während des Betriebs kann die Anwendung 80 Informationen von der Benutzeranzeigeschnittstelle 620 empfangen, die sich auf eine angeforderte Lese- oder Schreibaktivität der Whitelist-Konfiguration beziehen. Als Antwort bestimmt das Logikmodul 603 (das auf der Verarbeitungseinheit 601 ausgeführt wird), ob das angeforderte Lesen oder Schreiben der Whitelist-Konfiguration sich auf einen Prozess-Controller oder auf einen Sicherheits-Logic-Solver (oder ein anderes Sicherheits-Gateway-Gerät) bezieht, zu dem der authentifizierte Benutzer die entsprechenden Zugriffsrechte 604 besitzt (d. h. für die der Benutzer Konfigurationslese- und/oder -schreibvorgänge ausgeben kann). Als Teil dieses Prozesses kann das Whitelist-Konfigurationslogikmodul 603 Daten von der Benutzeranzeigeschnittstelle 620 empfangen und einen Benutzer über den sicheren Schreibserver 608 authentifizieren. In einigen Fällen kann das Logikmodul 603 bereits die Identität des Benutzers kennen und im Voraus die Schreib-/Lesefähigkeiten des Benutzers anzeigen, indem Abschnitte des Anzeigebildschirms der Benutzerschnittstelle ausgegraut werden, die sich auf Geräte beziehen, auf denen der Benutzer nicht lesen und/oder schreiben kann. In anderen Fällen kann das Logikmodul 603 den Benutzer alternativ oder zusätzlich auffordern, ein Passwort und eine Benutzeridentifikation bereitzustellen, und das Logikmodul 603 kann diese gegen die gespeicherten Benutzerzugriffsrechte 604 auf ordnungsgemäße Berechtigung prüfen, bevor der angeforderte Lese- und/oder Schreibvorgang ausgeführt wird.
-
Nach dem Empfangen von Befehlen von authentifizierten Benutzern von der Benutzeranzeigeschnittstelle 620 zum Konfigurieren eines bestimmten Sicherheits-Gateway-Geräts innerhalb der Anlage 10 (z. B. zum Herunterladen einer Whitelist-Ausführungsanwendung, zum Ändern einer Einstellung der Whitelist-Ausführungsanwendung oder der Lernanwendung, um das Gerät in einen Lern- oder Sperrmodus zu versetzen, um eine Whitelist hinzuzufügen, zu ändern oder zu löschen usw.) verwendet das Whitelist-Konfigurationslogikmodul 603 das Whitelist-Konfigurationsinformationsmodul 607, das Konfigurationsinformationsmodul 605 und das gerätespezifische Befehlserkennungsmodul 602 zum Vorbereiten von Konfigurationsbefehlen und um diese Befehle an geeignete Prozess-Controller und/oder Sicherheits-Logic-Solver zu senden, um eine oder mehrere Whitelist-Ausführungsanwendungen 320 oder Whitelists in diesen Geräten zu konfigurieren. Diese ausgehenden Befehle können die Whitelist-Ausführungs- und Lernanwendungen 320 und 330 auf die Prozess-Controller und/oder Sicherheits-Logic-Solver herunterladen oder aktualisieren, um die Einstellungen dieser Anwendungen zu ändern, um diese Anwendungen herunterzuladen oder zu installieren, um die von diesen Anwendungen verwendeten Whitelists zu ändern usw. Außerdem kann das Logikmodul 603 das Whitelist-Konfigurationsinformationsmodul 607 verwenden, um Benutzern Informationen zu vorhandenen Whitelist-Konfigurationen in der Prozessanlage 10 bereitzustellen. Das Whitelist-Konfigurationsinformationsmodul 607 kann beispielsweise Darstellungen der Whitelist-Konfigurationen lokal auf dem Gerät 16 von 6 speichern, oder das Modul 607 kann die Kommunikationsschicht 630 dazu verwenden, die Whitelist-Konfigurationsinformationen abzurufen, beispielsweise von den Sicherheitslogikgeräten 50-56 und/oder den Prozess-Controllern 24 oder 26 oder einer Konfigurationsdatenbank (wie der Datenbank 21 in 1). Darüber hinaus kann das Konfigurationsinformationsmodul 605 andere Konfigurationsinformationen abrufen, die von der Konfigurationsanwendung 80 implementiert werden, die teilweise in 2 dargestellt ist, und die in der Konfigurationsdatenbank 21 der 1 über das Netzwerk 22 gespeichert werden, wenn das Logikmodul 603 diese Informationen benötigt.
-
In einer Ausführungsform konfiguriert die Whitelist-Konfigurationsanwendung 80 Whitelists auf den Logic-Solvern 50-56 oder den Prozess-Controllern 24 oder 26, indem Benutzer bestimmte Anweisungen zum Hinzufügen oder Entfernen bestimmter Befehlstypen zu neuen oder vorhandenen Whitelists erteilen können. Die Konfigurationsanwendung 80 ermöglicht es Benutzern auch, vorhandene Whitelists auf die gleiche Weise zu bearbeiten. Die Bearbeitungsfunktionalität kann bereitgestellt werden durch das Abrufen von Informationen aus dem Whitelist-Konfigurationsinformationsmodul 607 und das Bereitstellen dieser Informationen für den Benutzer über die Benutzerschnittstelle und das anschließende Ermöglichen, dass der Benutzer Änderungen an den Whitelists festlegt. Beispielsweise kann die Whitelist-Konfigurationsanwendung 80 Hinweise von Benutzern empfangen, um bestimmte Geräte mit bestimmten Whitelist-Konfigurationen zu konfigurieren. Die Geräte, die geändert werden können, können gemäß den Zugriffsberechtigungen 604 auf eine bestimmte Teilmenge der Geräte innerhalb der Anlage 10 beschränkt sein. Es versteht sich, dass die Whitelist-Konfigurationsanwendung 80 auch Konfigurationsinformationen vom Benutzer erhalten kann, die angeben, welche Whitelist(en) welcher/n Sicherheitsstufe(n) der/s spezifischen Geräte/s entsprechen (oder für diese verwendet werden sollen). Die Anwendung 80 konfiguriert dann die angegebenen Geräte 300 gemäß den neuen Whitelist-Konfigurationsinformationen, indem sie Pakete gemäß Kommunikationsprotokollen wie HART oder einem anderen dem Fachmann bekannten Kommunikationsverfahren an die Geräte sendet, in denen sich die Whitelists befinden oder verwendet werden.
-
In einer anderen Ausführungsform empfängt die Whitelist-Konfigurationsanwendung 80 eine Anzeige eines Sicherheits-Logic-Solvers 50-56, eines Prozess-Controllers 24 oder 26 und/oder eines Feldgeräts und verwendet ein gerätespezifisches Befehlserkennungsmodul 602, um relevante gerätespezifische und Common-Practice-Befehlstypen für ein oder mehrere Feldgerät(e) als Vorschläge für den Benutzer zur Verwendung in den Whitelists für das Gerät abzurufen. Die gerätespezifischen HART-Befehle, die von dem gerätespezifischen Befehlserkennungsmodul 602 erkannt werden, können dem Benutzer der Whitelist-Konfigurationsanwendung 80 über die Benutzerschnittstelle 620 als vorgeschlagene Optionen zum Erstellen neuer Whitelists oder zum Bearbeiten vorhandener Whitelists präsentiert werden. Die vorgeschlagenen Optionen können den vom Benutzer ausgewählten Feldgeräten entsprechen und können zusätzlich oder alternativ den Feldgeräten entsprechen, die mit den vom Benutzer ausgewählten Sicherheits-Logic-Solvern 50-56 oder den Prozess-Controllern 24 oder 26 verbunden sind.
-
In einer weiteren Ausführungsform kann das Prozessanlagenpersonal die Whitelist-Konfigurationsanwendung 80 verwenden, um automatisch eine beliebige Anzahl der oben genannten Schritte auszuführen. Die Betreiber von Prozessanlagen oder Konfigurationsingenieure können die Whitelist-Konfigurationsanwendung 80 so konfigurieren, dass sie den oben genannten Erkennungsprozess automatisch durchführt. Die Whitelist-Konfigurationsanwendung 80 kann ferner automatisch die zuvor genannten Whitelists der gerätespezifischen Befehle unter Verwendung des Erkennungsmoduls 602 erstellen. Die Whitelist-Konfigurationsanwendung 80 kann die zuvor genannten Whitelists zusätzlich oder alternativ nur unter Verwendung der Lesebefehle wie oben beschrieben erstellen. Zusätzlich kann die Whitelist-Konfigurationsanwendung 80 die Whitelist-Ausführungsanwendung von bestimmten Sicherheits-Logic-Solvern 50-56 oder Prozess-Controllern 24 oder 26 automatisch konfigurieren, um die automatisch erzeugten Whitelists zu implementieren. Diese automatisierten Schritte können Teil des oben erwähnten manuellen Prozesses sein oder können in jedem Grad automatisiert werden, den ein Fachmann wünscht. Jeder automatisierte Schritt kann als Reaktion auf einen Befehl eines Benutzers oder als Reaktion auf eine Änderung in der Prozessanlage ausgeführt werden. Beispielsweise kann die Whitelist-Generierung automatisch aktiviert werden, nachdem ein Feldgerät 40, 42, 60 oder 62 in der Prozessanlage installiert wurde, oder es kann angewiesen werden, kürzlich installierte Feldgeräte 40, 42, 60 oder 62 von einem Benutzer zu finden. In einem anderen Beispiel kann der Benutzer ein bestimmtes Gerät 50-56, 24, 26, 40, 42, 60 oder 62 in der Prozessanlage auswählen und dann einen automatischen Whitelist-Generierungs- und Konfigurationsprozess starten.
-
In allen vorstehenden Ausführungsformen können die Konfigurationsinformationen, die über die Kommunikationsschicht 630 gesendet werden, um die Whitelist-Implementierungsgeräte 300 zu konfigurieren, unter Verwendung von Verschlüsselungsregeln 606 verschlüsselt werden, basierend auf Informationen von der Benutzeranzeigeschnittstelle 620.
-
In einer bevorzugten Ausführungsform sind die Whitelists im Allgemeinen aus Lesebefehlen zusammengesetzt, sodass Schreibbefehle, die möglicherweise gefährlicher sind, ausgeschlossen werden. Anstatt Whitelists zu erstellen, die ausschließlich aus Lesebefehlen des universellen HART-Typs bestehen, enthalten Whitelists in einer Ausführungsform ferner Lesebefehle des HART-gerätespezifischen Typs oder des HART-Common-Practice-Typs.
-
7 veranschaulicht ein Flussdiagramm 700 eines Beispiels der Logik des Whitelist-Konfigurationslogikmoduls 603 der Whitelist-Konfigurationsanwendung 80 von 6. In einem Schritt 701 authentifiziert die Logik 603 einen Benutzer über einen Anmeldevorgang. Dann präsentiert die Logik 603 einem Benutzer eine Benutzerschnittstelle über eine Benutzeranzeigeschnittstelle einer der Workstations 16 von 6. In einem Schritt 702 ermöglicht die Logik 603 dem Benutzer, ein Whitelist-Implementierungsgerät 300 zu identifizieren, die konfiguriert werden soll. In einer Ausführungsform kann das Bestimmen des vom Benutzer ausgewählten Whitelist-Implementierungsgeräts 300 zusätzliche Schritte erfordern, wenn die empfangenen Informationen bestimmte Feldgeräte und/oder Feldgerätetypen 40, 42, 60 und/oder 62 festlegen. Die zusätzlichen Schritte können die Verwendung des Konfigurationsinformationsmoduls 605 von 6 konstituieren, um die Identität der Sicherheits-Logic-Solver 50-56 und/oder der Prozess-Controller 24 oder 26 (oder eines anderen Sicherheits-Gateway-Geräts) abzurufen, die mit den angegebenen Feldgeräten und/oder Feldgerätetypen gekoppelt sind oder diesen als Gateways dienen. Als Nächstes führt das Whitelist-Konfigurationslogikmodul 603 in einem Schritt 703 das gerätespezifische Befehlserkennungsmodul 602 aus, wie nachstehend ausführlicher beschrieben, um einen Satz von Gerätebefehlen zu bestimmen oder zu erkennen, die in einer Whitelist für das festgelegte Gerät verwendet werden können. Der Schritt 703 kann auch das Erstellen einer oder mehrerer Whitelists für das Gerät basierend auf den erkannten Befehlsinformationen für das Gerät enthalten, und das Logikmodul 603 kann diese Whitelists automatisch oder basierend auf Benutzereingaben erstellen. Im Allgemeinen kann das Logikmodul 603 dem Benutzer jedoch einen Satz vorgeschlagener Befehle bereitstellen, die in eine oder mehrere Whitelists für das Gerät eingefügt werden können und einem Benutzer das Ändern oder das Bestätigen dieser Vorschläge ermöglichen können. In den Schritten 704 und 705 erstellt das Whitelist-Konfigurationslogikmodul 603 dann Konfigurationsnachrichten (z. B. Nachrichten einschließlich der zu verwendenden Whitelists oder Änderungen an der Einstellung der Whitelist-Ausführungs- und Lernanwendungen 320, 330) und überträgt die Konfigurationsinformationen an ein oder mehrere Whitelist-Implementierungsgeräte 300 (z. B. Sicherheits-Logic-Solver 50-56 und/oder Prozess-Controller 24 oder 26), um die Konfiguration einer oder mehrerer Whitelist-Ausführungsanwendungen 320 oder Lernanwendungen 330 zu beeinflussen. Optional kann die Whitelist-Konfigurationsanwendung 80 den Authentifizierungsschritt 701 erst ausführen, nachdem der Benutzer versucht hat, die Whitelist-Konfigurationsinformationen zu übertragen. Alternativ oder zusätzlich kann die Whitelist-Konfigurationsanwendung 80 Benutzer nur auffordern, sich zu authentifizieren, nachdem überprüft wurde, ob die Zugriffsrechte 604 einen universellen Lese-/Schreibzugriff ermöglichen, um unnötige Authentifizierung zu vermeiden. Alternativ oder zusätzlich kann das Whitelist-Konfigurationslogikmodul 603 Verschlüsselungsregeln 606 aus 6 verwenden, um ausgehende Nachrichten zu verschlüsseln, bevor sie übertragen werden.
-
8 veranschaulicht ein Flussdiagramm 800, das ein Beispiel für den Betrieb des zuvor erwähnten gerätespezifischen Befehlserkennungsmoduls 602 zeigt, das (zum Beispiel in Schritt 703 von 7) zum Sammeln oder Erkennen gerätespezifischer und/oder Common-Practice-Befehlstypen eines bestimmten Feldgeräts verwendet wird, das in einer oder mehreren Whitelists verwendet werden soll. In einem Schritt 801 empfängt das Modul 602 ein Zielgerät beispielsweise von der Verarbeitungseinheit 601 von 6. Dann fragt das Modul 602 in einem Schritt 802 die Konfigurationsdatenbank 21 oder die Konfigurationsinformationen 610 ab oder verwendet ansonsten das Konfigurationsinformationsmodul 605, um die gerätespezifischen Befehlstypen und/oder die Common-Practice-Befehlstypen abzurufen, die mit den ausgewählten Feldgeräten 40, 42, 60 und/oder 62 assoziiert sind. In einem Schritt 802 kann das Modul 602 optional nur eine Abfrage für gerätespezifische und/oder Common-Practice-Lesebefehlstypen ausgeben, die von einem Benutzer oder von einer Konfigurationsdatenbank, in der diese gespeichert werden können, empfangen werden sollen. In einem Schritt 803 überträgt das Modul 602 die Befehlstypen an die Verarbeitungseinheit, um sie auf die oben und unten beschriebene Weise zu verwenden. In einer alternativen Ausführungsform gibt das Modul 602 im Schritt 802 eine Lesemeldung an das Zielgerät oder an eine Konfigurationsdatenbank aus und fordert eine Gerätebeschreibung für das Zielgerät an, beispielsweise über die Kommunikationsschicht 630 von 6. Beim Empfang der Gerätebeschreibung von der Konfigurationsdatenbank, dem Zielgerät oder einer anderen Quelle parst das gerätespezifische Befehlserkennungsmodul 602 die Gerätebeschreibung, um auf die gerätespezifischen Befehlstypen und/oder die von diesem Gerät gemäß Definition in der Gerätebeschreibung implementierten Common-Practice-Befehlstypen zuzugreifen oder diese zu identifizieren. Zusätzlich kann das Modul 602 bestimmen, ob jeder Gerätebefehlstyp ein Lese- oder ein Schreibbefehl ist. In einer anderen Ausführungsform gibt das gerätespezifische Befehlserkennungsmodul 602 im Schritt 803 dann die Befehlstypen an die Verarbeitungseinheit zurück, wo sie in den vorgenannten Prozessen von 7 verwendet werden, um eine oder mehrere Whitelists zu erstellen. Das gerätespezifische Befehlserkennungsmodul 602 kann optional auch nur die Lesebefehlstypen zurückgeben, die es erkennt.
-
Als ein detaillierteres Beispiel gibt das gerätespezifische Befehlserkennungsmodul 602 im Schritt 802 eine Anforderung an die Konfigurationsdatenbank 21 von 1 für die relevanten gerätespezifischen Befehlstypen des relevanten Geräts aus. In dieser Ausführungsform wurden die gerätespezifischen Befehlstypen bereits aus der Gerätebeschreibung heraus geparst und in der Konfigurationsdatenbank gespeichert. Falls gewünscht, kann das gerätespezifische Befehlserkennungsmodul 602 alternativ nur die gerätespezifischen Lesebefehle anfordern, die ebenfalls geparst und in der Konfigurationsdatenbank 21 gespeichert werden. In einer anderen Ausführungsform kann das gerätespezifische Befehlserkennungsmodul 602 eine Gerätebeschreibung für das relevante Gerät anfordern (beispielsweise aus einer Konfigurationsdatenbank oder vom Feldgerät selbst) und diese Informationen direkt verarbeiten. Beispielsweise kann das gerätespezifische Befehlserkennungsmodul 602 eine Gerätebeschreibung von einer Konfigurationsdatenbank anfordern und dann die Gerätebeschreibung parsen und alle vom Gerät unterstützten Befehle extrahieren, einschließlich Universal-, Common-Practice- und gerätespezifischer HART-Befehle. In dieser Ausführungsform kann das gerätespezifische Befehlserkennungsmodul 602 auch die Befehle weiter parsen, um zu ermitteln, welche Gerätebefehle (von irgendeinem Typ) Nur-Lese-Befehle sind.
-
Die Bestimmung des vollständigen Satzes von Gerätebefehlen, einschließlich der Universal-, Common-Practice- und gerätespezifischen Befehle für Anforderungen, können nach Maßgabe des Zielgeräts durch die Verwendung eines Konfigurationsinformationsmoduls 605 ausgeführt werden, das die von der teilweise in 2 dargestellte Konfigurationsanwendung 82 implementierten Konfigurationsinformationen abrufen kann, und über das Netzwerk 22 in der Konfigurationsdatenbank 21 von 1 gespeichert werden. Die Konfigurationsinformationen können alternativ oder zusätzlich lokal in dem Gerät 16 gespeichert werden, die das Konfigurationsinformationsmodul 605 hostet. Beispielsweise kann ein Benutzer der Whitelist-Konfigurationsanwendung 80 beabsichtigen, eine neue Whitelist für einen Prozess-Controller zu erstellen. Das System kann dem Benutzer das Auswählen von CTLR1 aus 2 als Option in der Benutzeranzeigeschnittstelle 620 ermöglichen. Das gerätespezifische Befehlserkennungsmodul 602 kann dann basierend auf dem Konfigurationsinformationsmodul 605 bestimmen, dass CTLR1 beispielsweise C01-C04, C06-C09 steuert. Das Konfigurationsinformationsmodul 605 kann dann in einer Ausführungsform die vorgenannte Anforderung an die Konfigurationsdatenbank 21 von 1 ausgeben, um die gerätespezifischen Befehlstypen jedes mit diesen Karten verbundenen Feldgeräts abzurufen und der Verarbeitungseinheit zu präsentieren. In einer anderen Ausführungsform kann das gerätespezifische Befehlserkennungsmodul 602 einen Lesebefehl ausgeben, um die Gerätebeschreibung von Feldgeräten zu lesen, die direkt mit den E/A-Karten C01-C04 und C06-C09 verbunden sind. Das Modul 602 kann dann diese Gerätebeschreibungen parsen und die Liste der von diesen Geräten unterstützten Befehlstypen zusammenstellen, einschließlich der verschiedenen Universal-, Common-Practice- und gerätespezifischen Befehlstypen jedes dieser Feldgeräte, und diese Befehlstypen der Verarbeitungseinheit präsentieren. Die Anwendung 80 kann dem Benutzer dann diese Befehlstypen als vorgeschlagene Whitelist-Ergänzungen vorschlagen. Die Anwendung 80 kann alternativ nur die vom Gerät unterstützten Lesebefehle anzeigen oder eine oder mehrere Whitelists erstellen oder zu einer solchen hinzufügen. Die Feststellung, dass ein Befehlstyp ein Lesebefehlstyp ist, kann bereits während der Konfiguration des Feldgeräts getroffen werden. Als solches können Lesebefehle abgerufen werden, indem die Konfigurationsdatenbank 21 nur nach Gerätelesebefehlen abgefragt wird. (Es sollte beachtet werden, dass die Ausdrücke Gerätebefehle und Gerätebefehlstypen in dieser Beschreibung austauschbar verwendet werden.) In einer anderen Ausführungsform kann die Anwendung 80 die vollständige Liste von Gerätebefehlen parsen, um zu bestimmen, welche Befehle Lesebefehle sind. Dies kann beispielsweise erfolgen, indem überprüft wird, ob das Tag „OPERATION“ eines Befehls „LESEN“ lautet. Das gerätespezifische Befehlserkennungsmodul 602 kann zusätzlich oder alternativ jedes dem Fachmann bekannte Zwischenspeicherungsverfahren verwenden, um Teile der Konfigurationsdatenbankinformationen lokal zu speichern. Das gerätespezifische Befehlserkennungsmodul 602 kann in Verbindung mit, in Koordination mit oder neben einem Geräteinstallationsdienstprogramm arbeiten.
-
9A veranschaulicht einen einfachen Anzeigebildschirm 900, der eine Benutzerschnittstelle darstellt, die es einem Benutzer ermöglicht, einen Authentifizierungsschritt der Whitelist-Konfigurationsanwendung 80 aus 6 und 7 durchzuführen. In dieser Ausführungsform erfordert das System, dass ein Benutzer einen Benutzernamen 901 und ein Passwort 902 eingibt. Diese Anmeldeinformationen können von anderen authentifizierten Systemen in der Prozessanlage 10 bezogen werden oder können spezifisch für die Whitelist-Konfigurationsanwendung 80 sein. Die Anmeldeinformationen können ferner von Systemadministratoren, Betreibern oder Experten oder von den einzelnen Benutzern über eine andere Anwendung nach Wunsch festgelegt werden.
-
9B stellt einen anderen Anzeigebildschirm 905 dar, der eine beispielhafte Benutzerschnittstelle zeigt, die verwendet werden kann, um einem Benutzer das Erstellen, Bearbeiten und Konfigurieren von Whitelist-Ausführungsanwendungen 320 für Sicherheits-Logic-Solver 50-56 und/oder Prozess-Controller 24 oder 26 in einer Prozessanlage 10 zu ermöglichen. Insbesondere ist die linke Seite des Anzeigebildschirms 920 mit der Anzeige vorhandener Whitelists oder der Erstellung und Konfiguration neuer Whitelists assoziiert und kann zu deren Bearbeitung verwendet werden, während die rechte Seite des Anzeigebildschirms 910 mit der Anzeige vorhandener Whitelist-Konfigurationen 911 und 912 assoziiert ist. Beispielsweise zeigen die Felder oder Abschnitt 911 die aktuelle Konfiguration eines Sicherheits-Gateway-Geräts SLS1 als eine Whitelist A zur Verwendung mit der hohen Sicherheitsstufe des Geräts SLS1 und eine Whitelist C zur Verwendung mit der mittleren Sicherheitseinstellung des Geräts SLS1 enthaltend. Darüber hinaus enthält die Whitelist A vier aktivierte oder zulässige Lesebefehle oder Befehlstypen und legt die Verschlüsselung fest, während die Whitelist C fünf aktivierte oder zulässige Lesebefehle oder Befehlstypen enthält und ebenfalls die Verschlüsselung festlegt. Darüber hinaus veranschaulichen die Felder oder der Abschnitt 912 die Whitelists, die für alle Prozesssteuerungsgeräte (z. B. Prozess-Controller) bei hoher und bei niedriger Sicherheitseinstellung konfiguriert wurden.
-
Im Allgemeinen repräsentiert oder listet ein erster Satz von Feldern 921 auf der linken Seite des Bildschirms 920 Whitelist-Implementierungsgeräte 927 auf, die so konfiguriert sein können, dass sie eine oder mehrere Whitelists oder Whitelist-Ausführungsanwendungen 80 enthalten. Diese Geräte 927 können einen der Sicherheits-Logic-Solver 50-56 und/oder Prozess-Conotroller 24 oder 26 oder ein anderes Sicherheits-Gateway-Gerät oder einen Knoten in der Anlage enthalten. Ein Benutzer kann eine der Geräte 927 auswählen, um die Konfiguration auf diesem Gerät durchzuführen oder eine oder mehrere Whitelists für dieses Gerät zu erstellen. Bereits beschriebene Authentifizierungsverfahren können dazu führen, dass bestimmte Benutzer bestimmte ausgegraute Whitelist-Implementierungsgeräte 927 sehen, was bedeutet, dass die Benutzer nicht über die Zugriffsrechte zum Lesen und/oder Schreiben der Whitelist-Konfigurationen dieser Whitelist-Implementierungsgeräte 927 verfügen.
-
Ein zweiter Satz von Feldern 922 repräsentiert die Sicherheitsstufen des ausgewählten Geräts 927. Der Benutzer kann eine der verschiedenen Sicherheitsstufen in dem Feld 922 auswählen, um verschiedene Whitelists für jede Sicherheitseinstellung eines bestimmten ausgewählten Geräts 927 zu konfigurieren oder zu erstellen. Ein Satz von Befehlen oder Eingaben in einem Feld 923 kann vom Benutzer verwendet werden, um eine oder mehrere Whitelists für das ausgewählte Gerät mit der ausgewählten Sicherheitsstufe zu erstellen. Das Feld 923 kann dem Benutzer das Festlegen einer vorhandenen Whitelist zur Verwendung oder vorhandener Gerätebefehle zur Verwendung zum Erstellen einer neuen Whitelist für das Gerät an einer Eingabe 926 ermöglichen. Zusätzlich oder stattdessen können die Felder 928 eine Gruppe von erkannten Gerätebefehlstypen anzeigen (z. B., allgemeiner gesagt, Common-Practice-Gerätebefehlstypen 928a und gerätespezifische Befehlstypen 928b), die beispielsweise durch den Betrieb des Erkennungsmoduls 602 aus 6 identifiziert wurden. In diesem Fall kann der Benutzer auch oder zusätzlich einzelne der erkannten Befehlstypen auswählen, die in die Whitelist aufgenommen werden sollen, indem er ein Kontrollkästchen neben dem Befehlstyp markiert.
-
Somit kann, wie oben erwähnt, die Konfigurationsanwendung 80 Werte aus vorhandenen Whitelist-Konfigurationen unter Verwendung des Whitelist-Konfigurationsinformationsmoduls 607 von 3B lesen und diese Informationen den Benutzern präsentieren, wenn das System bestätigt, dass ein Benutzer ein bestimmtes Gateway-Gerät 927 ausgewählt hat (das mit verschiedenen spezifischen Feldgeräten, die diese Befehle verwenden, verbunden ist oder mit diesen kommuniziert). Wenn ein Benutzer eine oder mehrere der Prozess-Controller oder Sicherheits-Logic-Solver auf der linken Seite der Anzeige 920 auswählt, werden die Sicherheitsstufen und die entsprechenden Whitelists, die bereits konfiguriert wurden, dem Benutzer zur Bearbeitung zur Verfügung gestellt. In einer Ausführungsform erscheinen die Whitelists als eine Liste von Befehlstypen, neben denen Kontrollkästchen markiert sind (d. h. sie sind vorausgewählt), und das System ermöglicht dem Benutzer das Hinzufügen neuer Befehlstypen zu den vorhandenen Whitelists, indem er neue Befehlstypen auswählt oder eingibt. Das System ermöglicht Benutzern außerdem das Entfernen von Befehlstypen aus der Whitelist, indem die Auswahl der vorgewählten Befehlstypen auf der linken Seite des Anzeigebildschirms aufgehoben wird. In einer anderen Ausführungsform können die vorhandenen Whitelist-Konfigurationen auf der rechten Seite 910 eine Bearbeitungsschaltfläche bereitstellen, um das Bearbeiten unter Verwendung eines Popup-Anzeigebildschirms zu ermöglichen.
-
In ähnlicher Weise kann die Anwendung 80 einem Benutzer das Schreiben von Werten in neue oder vorhandene Whitelist-Konfigurationen unter Verwendung der linken Seite des Anzeigebildschirms 920 ermöglichen. Insbesondere kann das System einem Benutzer das Auswählen des bzw. der gewünschten Whitelist-Implementierungsgerät(e) 927 ermöglichen. Diese Werte können Prozess-Controller oder Sicherheits-Logic-Solver oder andere Sicherheits-Gateway-Geräte angeben. Die Anwendung 80 kann dann einem Benutzer das Auswählen einer Sicherheitsstufe 922 ermöglichen. Sicherheitsstufen können beispielsweise ein niedriges, mittleres und hohes Format haben oder auf andere Weise festgelegt werden. Sicherheitsstufen können auch in einem Binärformat vorliegen, z. B. gesichert, nicht gesichert, oder sie können ein anderes gewünschtes Format haben. Anschließend bestimmt der Benutzer anhand der Felder 923 die Whitelist, die dem/n ausgewählten Gerät(en) mit den angegebenen Sicherheitsstufen zugewiesen werden soll. Abhängig von der Ausführungsform kann dem Benutzer eine Liste 928 relevanter gerätespezifischer und/oder Common-Practice-Befehlstypen zur Auswahl präsentiert werden, oder die Anwendung 80 kann es dem Benutzer das Eingeben von Befehlstypen ermöglichen, ohne dass ihm Vorschläge mit erkannten Befehlstypen präsentiert werden. Die Anwendung 80 kann dem Benutzer auch über ein Feld 924 das Auswählen des Verschlüsselns der Konfigurationsinformationen ermöglichen, sodass diese sicher am beabsichtigten Ziel ankommen. Nach Festlegung des zu konfigurierenden Geräts (Felder 921), der Sicherheitsstufe des zu konfigurierenden Geräts (Feld 922), der für das zu konfigurierende Gerät zu verwendenden Whitelist-Eigenschaften (Feld 923) und des Verschlüsselungsstatus der Whitelist (Feld) 926) kann der Benutzer die Schaltfläche Übermitteln 925 auswählen, um die Anwendung 80 zu veranlassen, die zu erstellende Whitelist zu erzeugen und diese Whitelist auf das beabsichtigte Sicherheits-Gateway-Gerät 927 herunterzuladen, das zur Durchführung erweiterter Sicherheitsoperationen innerhalb der Prozessanlage 10 anhand der Whitelists und der hier beschriebenen Whitelist-Ausführungsanwendungen verwendet werden soll.
-
Während die Bildschirmanzeige 905 dem Benutzer das Konfigurieren einzelner Sicherheitsgateway-Geräte gleichzeitig ermöglicht, kann die mit der Anwendung 80 assoziierte Benutzerschnittstelle stattdessen die Auswahl einzelner Feldgeräte 40, 42, 60 und/oder 62 anstelle der oder neben den Whitelist-Implementierungsgeräte ermöglichen. Die Benutzerschnittstelle der Anwendung 80 kann ferner die Auswahl von Feldgerätetypen anstelle von oder zusätzlich zu einzelnen Feldgeräten und/oder Whitelist-Implementierungsgeräte ermöglichen und kann das Konfigurieren eines Satzes von Sicherheits-Gateway-Geräten (etwa aller Prozess-Controller, aller Sicherheitssystem-Logic-Solver in einem bestimmten Bereich einer Anlage usw.) ermöglichen, die mit denselben Konfigurationsinformationen oder Whitelists konfiguriert werden sollen.
-
Es ist hervorzuheben, dass das oben beschriebene System und Verfahren für Situationen geeignet sein kann, in denen ein Prozess unterschiedliche Feldgeräte enthält. Unter Verwendung des beschriebenen Verfahrens und Systems ist ein grobkörniges Blockieren aller nichtuniversellen Nichtlesebefehle nicht erforderlich, soweit dieses in Kombination mit dem Blockieren von Common-Practice--Nichtlesebefehlen und/oder gerätespezifischen Nichtlesebefehlen verwendet werden kann, um ein viel feinkörnigeres Blockierungsverfahren zu schaffen, die die Weitergabe wichtiger Informationen ermöglicht und gleichzeitig ein angemessenes Maß an Cybersicherheit zwischen Workstations, Prozess-Controllern, Sicherheits-Logic-Solvern, E/A-Geräten und den zugehörigen Feldgeräten bietet.
-
Im Allgemeinen kann jede Verwendung des Begriffs „Sicherheits-Logic-Solver“ hier austauschbar mit dem Prozess-Controller und umgekehrt oder mit jedem anderen gewünschten Prozessanlagengerät verwendet werden. Ferner kann jede Verwendung des Begriffs „Lesebefehl“ oder „Lesenachricht“ hierin austauschbar mit „Schreibbefehl“ oder „Schreibnachricht“ oder jeder anderen geeigneten HART-Befehlskategorisierung und umgekehrt verwendet werden. Darüber hinaus kann jede Verwendung des Begriffs gerätespezifische HART-Befehle austauschbar mit Common-Practice-HART-Befehle und umgekehrt verwendet werden. Schließlich kann jede Erwähnung des HART-Kommunikationsprotokolls hierin austauschbar mit einem anderen gewünschten Kommunikationsprotokoll verwendet werden.
-
Darüber hinaus wird der Begriff „Feldgerät“ hier in einem breiten Sinne verwendet, um eine Anzahl von Geräten oder Kombinationen von Geräten (d. h. Geräte, die mehrere Funktionen bereitstellen, wie beispielsweise einen Transmitter/Aktuator-Hybrid) sowie alle anderen Geräte einzuschließen, die eine Funktion in einem Steuerungssystem ausführen. In jedem Fall können Feldgeräte beispielsweise Eingabegeräte (z. B. Geräte wie Sensoren und Instrumente, die Status-, Mess- oder andere Signale liefern, die Prozesssteuerungsparameter anzeigen, wie beispielsweise Temperatur, Druck, Durchflussrate usw.) sowie Steuerungs-Bedienfunktionen oder -aktuatoren enthalten, die Aktionen als Reaktion auf Befehle ausführen, die von Controllern und/oder anderen Feldgeräten empfangen werden.
-
Nach der Implementierung kann jede der hier beschriebenen Software in jedem computerlesbaren Speicher, z. B. auf einer Magnetplatte, einer Laserplatte oder einem anderen Speichermedium, in einem RAM oder ROM eines Computers oder Prozessors usw. gespeichert werden. Gleichermaßen kann diese Software an einen Benutzer, eine Prozessanlage oder eine Bediener-Workstation unter Verwendung jedes bekannten oder gewünschten Übermittlungsverfahrens geliefert werden, einschließlich z. B. auf einer computerlesbaren Platte oder einem anderen transportablen Computerspeichermechanismus oder über einen Kommunikationskanal wie eine Telefonleitung, das Internet, das World Wide Web, ein anderes lokales Netzwerk oder ein Weitverkehrsnetzwerk usw. (wobei die Übermittlung als gleich oder austauschbar mit der Bereitstellung dieser Software über ein transportables Speichermedium angesehen wird). Darüber hinaus kann diese Software direkt ohne Modulation oder Verschlüsselung bereitgestellt werden, oder sie kann vor der Übertragung über einen Kommunikationskanal mit jeder geeigneten Modulationsträgerwelle und/oder Verschlüsselungstechnik moduliert und/oder verschlüsselt werden.
-
Obwohl die vorliegende Erfindung unter Bezugnahme auf spezifische Beispiele beschrieben wurde, die nur veranschaulichend sein und die Erfindung nicht einschränken sollen, ist es für den Durchschnittsfachmann offensichtlich, dass Änderungen, Hinzufügungen oder Streichungen zu den offenbarten Ausführungsformen möglich sind, ohne vom Geist und Umfang der Erfindung abzuweichen.
-
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 Patentliteratur
-