DE102022102616B4 - Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung - Google Patents

Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung Download PDF

Info

Publication number
DE102022102616B4
DE102022102616B4 DE102022102616.7A DE102022102616A DE102022102616B4 DE 102022102616 B4 DE102022102616 B4 DE 102022102616B4 DE 102022102616 A DE102022102616 A DE 102022102616A DE 102022102616 B4 DE102022102616 B4 DE 102022102616B4
Authority
DE
Germany
Prior art keywords
automation
software
copy
time
automation device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102022102616.7A
Other languages
English (en)
Other versions
DE102022102616A1 (de
Inventor
Peter Hesse
Andreas Röttger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenze SE
Original Assignee
Lenze SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenze SE filed Critical Lenze SE
Priority to DE102022102616.7A priority Critical patent/DE102022102616B4/de
Priority to US18/104,449 priority patent/US20230251957A1/en
Priority to CN202310053875.7A priority patent/CN116541192A/zh
Publication of DE102022102616A1 publication Critical patent/DE102022102616A1/de
Application granted granted Critical
Publication of DE102022102616B4 publication Critical patent/DE102022102616B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Biomedical Technology (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung, insbesondere einer speicherprogrammierbaren Steuerung, einer technischen Einrichtung, insbesondere der Maschine und/oder der Anlage, wobei die Automatisierungseinrichtung mittels einer durch die Automatisierungseinrichtung ausführbaren Automatisierungssoftware zur Ausführung automatisierungstechnischer Aufgaben befähigt wird, wobei die Automatisierungssoftware Programme und Daten, mit denen die Programme wechselwirken umfasst, wobei eine zu einem ersten Zeitpunkt in einem Datenspeicher der Automatisierungseinrichtung gespeicherte erste Version der Automatisierungssoftware mit einer zu einem zweiten Zeitpunkt in dem Datenspeicher der Automatisierungseinrichtung gespeicherten zweiten Version der Automatisierungssoftware durch eine Analysesoftware verglichen wird, dadurch gekennzeichnet, dass durch die Analysesoftware eine erste Kopie der ersten Version der Automatisierungssoftware und/oder eine zweite Kopie der zweiten Version der Automatisierungssoftware in einen hierfür vorgesehenen Speicherbereich gespeichert und die erste Kopie und/oder die zweite Kopie für den Vergleich verwendet wird, wobei das Erstellen der ersten Kopie und/oder der zweiten Kopie, durch die Analysesoftware unter Verwendung eines Writeblockers erfolgt, wobei es sich bei der zum ersten Zeitpunkt und/oder der zum zweiten Zeitpunkt gespeicherten Kopie um ein forensisches Duplikat eines Datenträgers und/oder Arbeitsspeichers der Automatisierungseinrichtung handelt.

Description

  • Die Erfindung betrifft ein Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung nach dem Oberbegriff des Anspruchs 1.
  • Automatisierungseinrichtungen der in Rede stehenden Art dienen dazu, technische Einrichtungen, wie Maschinen und/oder Anlagen, zu automatisieren. Dabei reicht der Grad der Automatisierung von einzelnen Steuerungs- und/oder regelungstechnischen Aufgaben, wie beispielsweise das Sicherstellen einer konstanten Drehzahl eines Antriebs, bis hin zu hochkomplexen Automatisierungsaufgaben, bei denen beispielsweise ganze Fertigungsstrecken mit einer Mehrzahl prozesstechnisch verbundener Maschinen und/oder Anlagen gesteuert wird.
  • Ermöglicht wird das heutige hohe Potenzial der Automatisierungstechnik insbesondere dadurch, dass zeitgemäße Automatisierungseinrichtungen über eine Automatisierungssoftware zur Ausführung automatisierungstechnischer Aufgaben befähigt werden. Dies ist beispielsweise bei Automatisierungseinrichtungen in Gestalt speicherprogrammierbarer Steuerungen, die mittlerweile auch als „Programmable Automation Controller (PAC)“ bezeichnet werden, insbesondere wenn Sie komplexe Automatisierungsaufgaben ausführen können, oder Prozessleitsystemen der Fall.
  • Durch die Verwendung einer durch die Automatisierungseinrichtung ausgeführten Software anstelle der früheren elektronischen Automatisierungseinrichtungen, deren Funktionalität durch eine, in der Regel unveränderliche, Verschaltung elektronischer Komponenten vorgegeben war, lassen sich die auf der Verwendung einer ausführbaren Automatisierungssoftware basierenden Automatisierungseinrichtungen wesentlich besser an unterschiedliche Automatisierungsaufgaben anpassen. Sie ermöglichen in der Praxis dadurch auch die Bewältigung wesentlich komplexerer Automatisierungsaufgaben.
  • Im Zuge dessen ist es nachvollziehbar, dass die steigende Komplexität der Anforderungen und Möglichkeiten im Bereich der Automatisierungstechnik eine immer komplexere Automatisierungssoftware der Automatisierungseinrichtungen bedingt. Dabei enthält die jeweilige Software eine Vielzahl von Bestandteilen, die für einen bestimmten Typ einer Automatisierungseinrichtung bzw. einer technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, oder sogar für eine bestimmte Verwendung einer konkreten Automatisierungseinrichtung bzw. der entsprechenden technischen Einrichtung spezifisch ist.
  • Dieses hohe Maß an Flexibilität und Komplexität erschwert jedoch zunehmend die Fehlersuche, wenn es zu unerwünschten Änderungen an der Automatisierungssoftware kommt. Diese Situation verschärft sich zudem dadurch, dass es Bestandteile der Automatisierungssoftware gibt, die naturgemäß Änderungen im Laufe des Betriebs der Automatisierungseinrichtung unterliegen. Weiterhin besteht durch das zunehmende Maß an Vernetzung derartiger Automatisierungseinrichtungen zunehmend die Gefahr, dass derartige unerwünschte Änderungen der Automatisierungssoftware durch Zugriffe über Datenverbindungen auf die Automatisierungseinrichtungen herbeigeführt werden. Dies kann ungewollt geschehen, beispielsweise durch Fehler, die bei grundsätzlich autorisierten Zugriffen auf die Automatisierungseinrichtung über Datenverbindungen gemacht werden. Es besteht jedoch auch zunehmend die Gefahr gezielter Angriffe, bei denen eine unautorisierte Änderung der Automatisierungssoftware erfolgt. Beide Szenarien können mit erheblichen Schäden für Investitionsgüter und/oder sogar für Gesundheit und Leben von Menschen verbunden sein.
  • Die DE 102 28 142 A1 offenbart ein Verfahren, bei dem eine oder mehrere offline-Kopien der Software eines Automatisierungsgeräts gespeichert werden. Diese sollen dann mit einer „online-Version“, also der gerade im Einsatz befindlichen Software verglichen werden, um Veränderungen dieser Software festzustellen.
  • Die EP 2 980 662 A1 offenbart ein Verfahren zur Feststellung einer Bedrohungslage für eine Automatisierungskomponente. Dabei wird ein zyklisches Verhalten eines Programms im Betrieb der Automatisierungskomponente im Hinblick auf Veränderungen im Programmverhalten durch zyklische Vergleiche überwacht.
  • Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung aufzuzeigen, die eine schnelle Erkennung einer möglichen gewollten und/oder ungewollten Manipulation der Automatisierungssoftware ermöglicht.
  • Bei der in Rede stehenden Automatisierungseinrichtung kann es sich beispielsweise um eine speicherprogrammierbare Steuerung handeln. Grundsätzlich ist das Verfahren zur Analyse der Automatisierungssoftware jeder Automatisierungseinrichtung geeignet, die mittels einer durch die Automatisierungseinrichtung ausführbare Automatisierungssoftware zur Ausführung automatisierungstechnischer Aufgaben befähigt wird. Bei der Automatisierungseinrichtung kann es sich auch um eine Sicherheitssteuerungseinrichtung, einen sogenannten functional safety Controller, einen Sensoren und/oder einen Aktor, der über eine entsprechende integrierte Automatisierungssoftware, wie beispielsweise eine Firmware, verfügt um diese eigenständig auszuführen, um einen für Automatisierungsaufgaben genutzten Computer, ein Netzwerkgerät, wie einen Router oder einen Switch, eine Speicherprogrammierbare Steuerung und/oder ein Prozessleitsystem handeln.
  • Die Aufgabe wird insbesondere dadurch gelöst, dass eine zu einem ersten Zeitpunkt in einem Datenspeicher der Automatisierungseinrichtung gespeicherte erste Version der Automatisierungssoftware mit einer zu einem zweiten Zeitpunkt in dem Datenspeicher der Automatisierungseinrichtung gespeicherten zweiten Version der Automatisierungssoftware durch eine Analysesoftware verglichen wird.
  • Bei dem Datenspeicher kann es sich um einen nicht flüchtige Speicher, wie beispielsweise eine Festplatten und/oder eine Speicherkarte, aber auch um einen flüchtige Speicher, wie beispielsweise einen Arbeitsspeicher, handeln.
  • Es hat sich im Zusammenhang mit der vorliegenden Erfindung gezeigt, dass es möglich ist, durch einen derartigen Vergleich zweier Versionen der Automatisierungssoftware mittels einer Analysesoftware eine weitestgehend automatisierte und damit effiziente Analyse der Automatisierungssoftware durchgeführt werden kann, die geeignet ist, problematische Veränderungen der Automatisierungssoftware zu erkennen.
  • Dem liegt insbesondere die Erkenntnis zugrunde, dass die Veränderungen der Automatisierungssoftware, die sich in der Praxis als problematisch erweisen, häufig in Teilen der Automatisierungssoftware auftreten, die zwischen bestimmten Zeitpunkten im Regelbetrieb der Automatisierungseinrichtung keinen Veränderungen unterliegen. Dies ermöglicht es insbesondere, Veränderungen in diesen Teilen der Automatisierungssoftware mittels einer Analysesoftware zu erkennen.
  • Die Automatisierungssoftware umfasst sowohl Programme als auch Daten, mit denen die Programme wechselwirken. Bei diesen Daten kann es sich insbesondere um Daten handeln, die von den Programmen verarbeitet werden, also insbesondere eingelesen werden, als auch um Daten, die von den Programmen erzeugt werden, also durch die Programme in dem Datenspeicher gespeichert werden.
  • Das Verfahren kann vorsehen, dass die Analysesoftware auf einem separaten Computer ausgeführt wird, der über eine Datenverbindung mit der Automatisierungseinrichtung verbunden wird. Dies kann beispielsweise dann vorteilhaft sein, wenn es bei der Analyse um die Analyse eines möglichen Angriffs geht und die Notwendigkeit von Beweissicherungsmaßnahmen zu erwarten ist. In diesem Zusammenhang kann es sich insbesondere um einen dedizierten forensischen Computer handeln. Unter einem dedizierten forensischen Computer ist im Zweifelsfall ein Computer zu verstehen, der derart eingerichtet ist, dass er die Durchführung des Verfahrens unter Einhaltung forensischer Standards ermöglicht.
  • Alternativ und/oder ergänzend kann es sich bei der Analysesoftware um eine Software handeln, die auf der Automatisierungseinrichtung oder einer über eine Datenverbindung mit der Automatisierungseinrichtung verbundenen anderen Automatisierungseinrichtung, ausgeführt wird. Bei einer derartigen Analysesoftware kann sich beispielsweise um einen Dienst handeln. So kann die Analysesoftware beispielsweise als Dienst auf einer speicherprogrammierbaren Steuerung ausgeführt werden und zur Analyse der Automatisierungssoftware eine mit der Steuerung über eine Datenverbindung verbundenen Automatisierungseinrichtung in Gestalt eines Aktors genutzt werden. Dies hat den Vorteil, dass zur Durchführung des Verfahrens keine zusätzlichen Hardwarekomponenten benötigt werden.
  • Alternativ und/oder ergänzend kann die Analysesoftware durch ein Cloud-Computing-System ausgeführt werden. Dies hat den Vorteil eines hohen Maßes an Ortsunabhängigkeit, insbesondere kann die Analyse „aus der Ferne“ kurzfristig durchgeführt werden.
  • Insbesondere wenn die Analysesoftware auf einem Cloud-Computing-System und/oder einer Automatisierungseinrichtung ausgeführt wird, kann die Analysesoftware in einer virtuellen Umgebung, beispielsweise im Wege der Containervirtualisierung, ausgeführt werden. Dies kann beispielsweise unter Verwendung der Software „Docker“ erfolgen. Alternativ und/oder ergänzend ist die Ausführung der Analysesoftware auf einer virtuellen Maschine möglich.
  • Das Verfahren sieht vor, dass durch die Analysesoftware eine erste Kopie der ersten Version der Automatisierungssoftware und/oder eine zweite Kopie der zweiten Version der Automatisierungssoftware in einem hierfür vorgesehenen Speicherbereich gespeichert wird. Vorteilhafterweise wird die erste Kopie und/oder die zweite Kopie für den Vergleich verwendet. Hierbei ist es besonders vorteilhaft, wenn der Vergleich zwischen der ersten Kopie und der zweiten Kopie erfolgt.
  • Der Vorteil hierbei ist, dass für das Durchführen der eigentlichen Analyse keine weiteren Zugriffe auf die Automatisierungseinrichtung notwendig sind. Die Automatisierungssoftware muss lediglich für jede Version, die für den Vergleich verwendet werden soll, einmal ausgelesen werden. Entsprechend erfolgt das Auslesen der ersten Kopie insbesondere zu dem ersten Zeitpunkt und das Auslesen der zweiten Kopie insbesondere zu dem zweiten Zeitpunkt. Ein weiterer Vorteil dieser Vorgehensweise ist es, dass sich Veränderungen der auf der Automatisierungseinrichtung gespeicherten Automatisierungssoftware nicht weiter auf die Kopien auswirken können, nachdem diese einmal angefertigt worden sind.
  • Das Verfahren sieht vor, dass der Zugriff auf die Automatisierungssoftware durch die Analysesoftware unter Verwendung eines Writeblockers erfolgt. Insbesondere kann das Erstellen der ersten Kopie und/oder der zweiten Kopie unter Verwendung eines Writeblockers erfolgen. Unter einem Writeblocker ist eine Hardware und/oder eine Software zu verstehen, die sicherstellt, dass der Zugriff auf das auszulesende Medium, im vorliegenden Fall insbesondere auf den Datenspeicher der Automatisierungseinrichtung, als reiner Lesezugriff erfolgt. Auf diese Weise wird sichergestellt, dass die auf dem Datenspeicher der Automatisierungseinrichtung gespeicherte Automatisierungssoftware beim Anfertigen der Kopie nicht verändert wird. Dies bietet zum einen den Vorteil, dass so sichergestellt ist, dass keine, möglicherweise schädliche, Änderung der auf dem Datenspeicher der Automatisierungseinrichtung gespeicherten Automatisierungssoftware herbeigeführt wird. Des Weiteren ist die Tatsache, dass eine derartige mögliche Veränderung durch den Writeblocker ausgeschlossen wird, von Vorteil, wenn die Ergebnisse der Analyse als Beweismaterial, beispielsweise in einem gerichtlichen Verfahren, verwendet werden sollen.
  • Das Verfahren kann vorsehen, dass die in dem vorgesehenen Speicherbereich gespeicherte Kopie der Automatisierungssoftware vor Änderungen geschützt wird. Alternativ und/oder ergänzend kann das Verfahren vorsehen, dass die in dem vorgesehenen Speicherbereich gespeicherte Kopie der Automatisierungssoftware vor unerkannten Änderungen geschützt wird. Unter einem Schutz vor unerkannten Änderungen ist insbesondere zu verstehen, dass eine Änderung der Kopie zwar möglich ist, das Vorhandensein einer derartigen Änderung jedoch nachträglich erkannt werden kann. Für den Schutz der Kopie der Automatisierungssoftware vor Änderungen und/oder unerkannten Änderungen kann insbesondere eine Hash-Funktion verwendet werden. Eine derartige Hash-Funktion oder auch Streuwert-Funktion ermöglicht es, zu den in dem vorgesehenen Speicherbereich gespeicherten Kopien Hash-Werte zu errechnen. Dabei ist es nicht möglich oder zumindest praktisch kaum möglich, von den Hash-Werten zurück auf die den Hash-Werten zugrunde liegenden Daten zu schließen. Derartige Hash-Funktionen werden auch als kryptologische Hash-Funktionen oder kryptografische Hash-Funktionen bezeichnet. Eine Veränderung der gespeicherten Kopie kann auf diese Weise leicht erkannt werden, da die Daten, die die Kopie bilden, nicht mehr zu ihren Hash-Werten „passen“, wenn die Kopie verändert wird. Ob die Daten verändert worden sind, kann dann in einfacher Weise überprüft werden, in dem für die Daten der Hash-Wert erneut ausgerechnet und mit dem gespeicherten Hash-Wert verglichen wird.
  • Alternativ und/oder ergänzend kann die in dem vorgesehenen Speicherbereich gespeicherte Kopie der Automatisierungssoftware vor Änderungen und/oder unerkannten Änderungen mittels eines Authentifizierungsmerkmals geschützt werden. Ein derartiges Authentifizierungsmerkmal ermöglicht insbesondere die Erkennung des Verursachers einer Änderung an der Kopie. Insbesondere wird es ermöglicht, die Analysesoftware als Verursacher einer Änderung an der Kopie zu erkennen. Hierdurch kann sichergestellt werden, dass die in der Kopie gespeicherten Daten tatsächlich durch die Analysesoftware gespeichert worden sind.
  • Bei dem Authentifizierungsmerkmal kann es sich beispielsweise um ein Zertifikat nach dem Standard X.509, handeln. Ein derartiges Zertifikat kann beispielsweise als Schlüssel genutzt werden, um die Kopie zu signieren. Eine derartige Signierung ermöglicht es, zu prüfen, ob die Kopie von dem Zertifikatsinhaber erstellt worden ist. Zertifikatsinhaber ist in diesem Fall insbesondere der Nutzer der Analysesoftware.
  • Alternativ und/oder ergänzend kann die Kopie verschlüsselt gespeichert werden. Der Vorteil ist, das verschlüsselte Daten nicht gezielt manipuliert werden können, da sie ohne eine vorherige Entschlüsselung nicht lesbar sind. Als Schlüssel für die Verschlüsselung kann ebenfalls ein Zertifikat, beispielsweise ein Zertifikat nach dem Standard X.509 verwendet werden.
  • Bei der ersten Kopie und/oder der zweiten Kopie handelt es sich um ein forensisches Duplikat eines Datenträgers und/oder Arbeitsspeichers der Automatisierungseinrichtung. Bei einem forensischen Duplikat handelt es sich um eine unveränderte physische Eins-zu-eins Kopie des entsprechenden Datenträgers und/oder Arbeitsspeichers. Eine Kopie, die diese Anforderung erfüllt, ist insbesondere dann vorteilhaft, wenn die Kopie im Rahmen einer Beweisführung, beispielsweise im Rahmen eines gerichtlichen Verfahrens, genutzt werden soll. Dabei kann es sich bei dem forensischen Duplikat insbesondere um das forensische Duplikat einer Festplatte der Automatisierungseinrichtung und/oder einer in der Automatisierungseinrichtung aufgenommenen Speicherkarte handeln. Ein weiterer Vorteil eines derartigen forensischen Duplikates ist es, dass dieses durch das Einspielen in eine virtuelle Umgebung rekonstruiert und analysiert werden kann.
  • Bei der Automatisierungssoftware kann es sich um ein Betriebssystem und/oder einen Bestandteil eines Betriebssystems handeln. Bei dem Bestandteil des Betriebssystems kann es sich insbesondere um einen Kernel oder auch Betriebssystemkern handeln. Alternativ und/oder ergänzen kann es sich bei dem Bestandteil des Betriebssystems um eine Bibliothek handeln. Die vorstehenden Elemente eines Betriebssystems sind aufgrund ihrer zentralen Bedeutung für die Funktion der Automatisierungseinrichtung besonders sensible Bestandteile einer Automatisierungssoftware und damit bevorzugter Gegenstand des beschriebenen Verfahrens zur Analyse der Automatisierungssoftware.
  • Die Automatisierungssoftware kann eine Laufzeitumgebung und/oder einen Bestandteil einer Laufzeitumgebung umfassen. Laufzeitumgebungen dienen insbesondere dazu, die Ausführung von Programmen zu ermöglichen, welche für die jeweilige Laufzeitumgebung geschrieben sind. So kann es sich beispielsweise um eine Laufzeitumgebung für eine Visualisierungssoftware, insbesondere eine webbasierte Visualisierungssoftware, handeln. Laufzeitumgebungen ermöglichen es insbesondere, Software von Drittanbietern in eine Automatisierungssoftware einzubinden. Diese Software muss dann lediglich den Anforderungen der Laufzeitumgebung entsprechen, der Drittanbieter benötigt keine vertiefende Kenntnis über die Automatisierungseinrichtung bzw. die sonstige Automatisierungssoftware der Automatisierungseinrichtung und sondern kann seine Software für die Laufzeitumgebung geeignet gestalten. Derartige Laufzeitumgebungen spielen daher ebenfalls eine zentrale Rolle in einer Automatisierungssoftware der in Rede stehenden Art und sind daher bevorzugter Gegenstand des vorliegenden Verfahrens.
  • Bei dem Bestandteil der Laufzeitumgebung kann es sich insbesondere um eine Laufzeitbibliothek, eine Standardbibliothek, eine Programmierschnittstelle und/oder eine Laufzeitvariable handeln.
  • Alternativ und/oder ergänzend kann das Verfahren vorsehen, dass die Automatisierungssoftware Konfigurationsdaten umfasst. Unter Konfigurationsdaten sind solche Daten zu verstehen, die technische Ausgestaltungsmerkmale der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, betreffen. Mittels derartiger Konfigurationsdaten wird die Automatisierungssoftware der Automatisierungseinrichtung an die jeweilige Automatisierungseinrichtung und/oder die jeweilige technische Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, angepasst. Dabei handelt es sich bei den Ausgestaltungsmerkmalen insbesondere um solche technischen Ausgestaltungsmerkmale, die für sämtliche Automatisierungseinrichtungen und/oder technische Einrichtungen eines bestimmten Typs identisch sind. Bei den technischen Ausgestaltungsmerkmalen kann es sich insbesondere um eine Achskonfiguration eines Antriebssystems, insbesondere die Anzahl der Achsen eines Antriebssystems, und/oder das Vorhandensein eines optionalen Moduls einer technischen Einrichtung, beispielsweise um das Vorhandensein einer Absaugeinrichtung und/oder einer Qualitätskontrolleinrichtung, handeln.
  • Alternativ und/oder ergänzend kann das Verfahren vorsehen, dass die Automatisierungssoftware Parametrierdaten umfasst. Unter Parametrierdaten sind solche Daten zu verstehen, die technische Parameter der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, betreffen. Bei den technischen Parametern handelt es sich um Parameter, die für eine bestimmte Automatisierungseinrichtung und/oder technische Einrichtung individuell festgelegt werden. Beispielsweise kann die individuelle Festlegung der technischen Parameter erfolgen, um Fertigungstoleranzen bei der Herstellung der technischen Einrichtung zu berücksichtigen bzw. zu kompensieren. Bei den technischen Parametern kann es sich daher insbesondere um Parameter handeln, die durch Messungen an der jeweiligen technischen Einrichtung ermittelt worden sind. Die technischen Parameter können insbesondere Abmessungen, wie Referenzpositionen, Anschlagpositionen, Tasterpositionen und/oder Achslängen, insbesondere von Industrierobotern, betreffen. Die Automatisierungssoftware kann Applikationsdaten umfassen. Unter Applikationsdaten sind in diesem Zusammenhang solche Daten zu verstehen, die die konkrete Verwendung der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, betreffen. Dies kann insbesondere bedeuten, dass die Applikationsdaten von der jeweiligen Verwendung einer individuellen technischen Einrichtung abhängen. Die jeweilige Verwendung kann sich bei jeder individuellen technischen Einrichtung von anderen individuellen Einrichtungen gleichen Typs unterscheiden. Hierbei kann es sich insbesondere um Programme für Betriebsabläufe der technischen Einrichtung, Reglerparameter, Grenzwerte, beispielsweise für zulässige Drehzahl, Drehmoment, Beschleunigung, Geschwindigkeit und/oder Ruck, Sollwerte, beispielsweise für Drehzahl, Drehmoment Beschleunigung, Geschwindigkeit und/oder Ruck, Prozessparameter, wie Temperaturen, Drucke, Konzentrationen, Mischungsverhältnisse, Massen- und/oder Volumenströme, handeln.
  • Das Verfahren kann insbesondere vorsehen, dass durch die Analysesoftware ein unveränderlicher Teil der Automatisierungssoftware, der im Regelbetrieb der Automatisierungseinrichtung keinen Veränderungen unterliegt, identifiziert wird. Alternativ und/oder ergänzend kann das Verfahren vorsehen, dass durch die Analysesoftware ein unveränderlicher Teil der Automatisierungssoftware, der im Regelbetrieb der Automatisierungseinrichtung Veränderungen unterliegt, identifiziert wird.
  • Die Identifizierung veränderlicher und/oder unveränderlicher Teile der Automatisierungssoftware ermöglicht es, bei dem von der Automatisierungssoftware durchgeführten Vergleich der ersten Version der Automatisierungssoftware und der zweiten Version der Automatisierungssoftware gezielt Teile der Automatisierungssoftware zu betrachten und/oder auszublenden. Hierdurch kann zum einen die Menge der zu vergleichenden Daten selbst reduziert und der Prozess so beschleunigt werden. Weiterhin kann so die Ergebnismenge von vorneherein um diejenigen Veränderungen der Automatisierungssoftware reduziert werden, bei denen eine Veränderung im regulären Betrieb ohnehin möglich bzw. zu erwarten ist. Dadurch steigt für jede aufgefundene Veränderung die Wahrscheinlichkeit, dass es sich tatsächlich um eine Veränderung handelt, die Teile der Automatisierungssoftware betrifft, die nicht hätten verändert sein dürfen und somit potentielle Ursachen des der Analyse zugrunde liegenden Problems und/oder Gefahren für den weiteren Betrieb der technischen Einrichtung darstellen.
  • Das Verfahren kann insbesondere vorsehen, dass der Vergleich lediglich anhand des unveränderlichen Teils der Automatisierungssoftware, der durch die Analysesoftware identifiziert worden ist, erfolgt. Alternativ und/oder ergänzend kann das Verfahren vorsehen, dass der Vergleich unter Ausblendung des unveränderlichen Teils der Automatisierungssoftware, der durch die Automatisierungssoftware identifiziert worden ist, erfolgt. Eine derartige Teilmengenbetrachtung der Automatisierungssoftware führt entsprechend zu einer hohen Effizienz der Analyse.
  • Das Verfahren kann insbesondere vorsehen, dass bei der Identifizierung des unveränderlichen Teils der Automatisierungssoftware Betriebssysteme, Bestandteile eines Betriebssystems, eine Laufzeitumgebungen, Bestandteile einer Laufzeitumgebung, Konfigurationsdaten, Parametrierdaten, Applikationsdaten, hardwaregebundene Adressen und/oder Aussteller eines Zertifikats dem unveränderlichen Teil der Automatisierungssoftware zugeordnet werden.
  • Es hat sich gezeigt, dass die vorstehend aufgeführten Softwarebestandteile im Regelbetrieb einer Automatisierungseinrichtung der in Rede stehenden Art typischerweise keinen Veränderungen unterliegen. Die Identifizierung des unveränderlichen Teils der Automatisierungssoftware kann daher insbesondere dadurch erfolgen, dass nach solchen Softwarebestandteilen der Automatisierungssoftware der vorstehenden Art durch die Analysesoftware gesucht und diese durch die Analysesoftware dem unveränderlichen Teil der Automatisierungssoftware zugeordnet werden. Zum Zweck der Identifizierung des unveränderlichen Teils der Automatisierungssoftware kann das Verfahren die Hinterlegung von A-Priori-Wissen hinsichtlich der Art der Softwarebestandteile, die dem unveränderlichen Teil der Automatisierungssoftware zugeordnet werden, vorsehen. Unter A-Priori-Wissen ist insbesondere solches Wissen zu verstehen, dass nicht zur Laufzeit der Analysesoftware entsteht, sondern vor dem Ausführen des Verfahrens in der Analysesoftware hinterlegt wird. Alternativ und/oder ergänzend kann das Verfahren die Nutzung von Vergleichswerten, die eine Identifizierung des unveränderlichen Teils der Automatisierungssoftware ermöglichen, vorsehen. Bei den Vergleichswerten kann es sich insbesondere um Hashwerte von Softwarebestandteilen, beispielsweise von Bestandteilen eines Betriebssystems, handeln. Das A-Priori-Wissen und/oder die Hashwerte können insbesondere in der Analysesoftware und/oder einer Ressource, beispielsweise einer Datenbank, die von der Analysesoftware genutzt wird, hinterlegt werden.
  • Das Verfahren kann Alternativ und/oder ergänzend vorsehen, dass bei der Identifizierung des veränderlichen Teils der Automatisierungssoftware die aktuelle Uhrzeit, Schlüssel, Zertifikate, nicht-hardwaregebundene Adressen und/oder Daten, Cache-Dateien dem veränderlichen Teil der Automatisierungssoftware zugeordnet werden.
  • Es hat sich gezeigt, dass die vorstehend aufgeführten Softwarebestandteile im Regelbetrieb einer Automatisierungseinrichtung der in Rede stehenden Art typischerweise Veränderungen unterliegen. Die Identifizierung des veränderlichen Teils der Automatisierungssoftware kann daher insbesondere dadurch erfolgen, dass nach solchen Softwarebestandteilen der Automatisierungssoftware der vorstehenden Art durch die Analysesoftware gesucht und diese durch die Analysesoftware dem veränderlichen Teil der Automatisierungssoftware zugeordnet werden. Zum Zweck der Identifizierung des veränderlichen Teils der Automatisierungssoftware kann das Verfahren die Hinterlegung von A-Priori-Wissen hinsichtlich der Art der Softwarebestandteile, die dem veränderlichen Teil der Automatisierungssoftware zugeordnet werden, vorsehen.
  • Das Verfahren kann Vorsehen, dass der erste Zeitpunkt und/oder der zweite Zeitpunkt in Abhängigkeit des Eintretens eines bestimmten Ereignisses gewählt wird.
  • Bei dem ersten Zeitpunkt kann es sich um einen Zeitpunkt vor dem Erkennen eines sicherheitsrelevanten Ereignisses durch ein informationstechnisches Sicherheitssystem, insbesondere eine Firewall, ein Intrusion Detection System und/oder einen Virenscanner handeln. Bei dem zweiten Zeitpunkt handelt es sich insbesondere um einen Zeitpunkt nach dem Erkennen dieses Ereignisses.
  • Unter einer Firewall ist in diesem Zusammenhang eine Hardware und/oder eine Software zu verstehen, die Datenverbindungen der Automatisierungseinrichtung überprüft und insbesondere reglementiert. Ein Virenscanner überprüft Dateien, die in Datenspeichern der Automatisierungseinrichtung gespeichert sind. Der Virenscanner kann insbesondere Dateien, die durch den Virenscanner als schädlich und/oder potentiell schädlich erkennt werden, in eine Quarantäne überführen und/oder löschen. Ein Intrusion Detection System kann dazu ausgebildet sein, Daten, insbesondere Daten, die über Datenverbindungen übertragen werden, auf deren Inhalt hin zu prüfen. Insbesondere kann geprüft werden, ob als schädlich bekannte Inhalte enthalten sind, oder Inhalte, die aufgrund ihrer Eigenschaften als potentiell schädlich einzustufen sind, wie beispielsweise E-Mails von falschen Absendern. Derartige Überprüfungen werden auch als signaturbasierte Überprüfungen bezeichnet. Alternativ und/oder ergänzend kann das Intrusion Detection System dazu ausgebildet sein, eine Prüfung auf ungewöhnliche Ereignisse vorzunehmen, beispielsweise ob sich ein Nutzer an einer entsprechenden Schnittstelle kurz hintereinander von geographisch weit voneinander entfernten Orten über eine Datenverbindung an der Automatisierungseinrichtung anmeldet, beispielsweise innerhalb weniger Minuten zunächst aus Deutschland und dann aus dem geografisch entfernten Ausland.
  • Das Erkennen eines solchen sicherheitsrelevanten Ereignisses kann ein Hinweis auf eine Gefährdung des Betriebs der technischen Einrichtung bzw. der technischen Einrichtung selbst sein. Das Verfahren zur Analyse der Automatisierungssoftware erlaubt es, auf einfache und schnelle Weise Auswirkungen eines solchen Ereignisses auf die Automatisierungssoftware zu erkennen und zu identifizieren. In Abhängigkeit des Ergebnisses können dann Maßnahmen zeitnah und gezielt eingeleitet werden, was auf der einen Seite eine frühzeitige Reaktion auf einen potentiell gefährlichen Eingriff erst ermöglichen kann, auf der anderen Seite Kosten durch überzogene Maßnahmen, beispielsweise aufgrund voreiliger Betriebsunterbrechungen, wenn sich ein Angriffsversuch im Nachhinein als unbedenklich herausstellt, vermeiden helfen kann.
  • Alternativ und/oder ergänzend kann es sich bei dem ersten Zeitpunkt um einen Zeitpunkt zwischen dem Abschluss einer Inbetriebnahme und der Aufnahme des Regelbetriebs der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, handeln. Es hat sich herausgestellt, dass eine Automatisierungssoftware der in Rede stehenden Art, zumindest zu großen Teilen, während eines Regelbetriebs vergleichsweise wenigen Änderungen unterworfen ist. Von daher eignet sich der Zeitpunkt zwischen dem Abschluss einer Inbetriebnahme und der Aufnahme des Regelbetriebs der Automatisierungseinrichtung besonders gut als erster Zeitpunkt, da die zu diesem Zeitpunkt gespeicherte erste Version der Automatisierungssoftware genau denjenigen Zustand der Automatisierungssoftware wiedergibt, der nach Abschluss der Inbetriebnahme als für den dauerhaften Betrieb geeignet angesehen worden ist. Insbesondere wenn eine Kopie der Automatisierungssoftware zu diesem Zeitpunkt erstellt worden ist, kann diese entsprechend als Referenzversion für zukünftige Vergleiche durch die Analysesoftware herangezogen werden.
  • Bei dem zweiten Zeitpunkt kann es sich insbesondere um einen Zeitpunkt nach dem Einspielen einer Sicherheitskopie der Automatisierungssoftware in die Automatisierungseinrichtung handeln. Das Einspielen einer Sicherheitskopie stellt eine einfache und vergleichsweise robuste Maßnahme dar, um den erwünschten Zustand einer Automatisierungssoftware wiederherzustellen. Dabei besteht jedoch das Risiko, das bei dem Einspielen der Sicherheitskopie der gewünschte Zustand nicht exakt wiederhergestellt wird. Dies kann zum einen technische Ursachen haben, zum anderen spielen dabei jedoch auch menschliche Fehlerquellen eine Rolle, wenn beispielsweise eine falsche Version einer Sicherheitskopie oder gar eine falsche Sicherheitskopie, die zu einer anderen Automatisierungseinrichtung gehört, irrtümlich ausgewählt wird. In diesem Fall ermöglicht das beschriebene Verfahren eine schnelle Erkennung des Fehlers und kann dabei beispielsweise Schäden bei einer Wiederinbetriebnahme der technischen Einrichtung mit der falschen Automatisierungssoftware abwenden.
  • Alternativ und/oder ergänzend kann das Verfahren vorsehen, dass die vorstehend beschriebenen Analysen durch die Analysesoftware zeitgesteuert ausgeführt werden. So kann das Verfahren beispielsweise vorsehen, dass eine Analyse der Automatisierungssoftware in bestimmten Zeitintervallen oder nach bestimmten Nutzungsdauern der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, durchgeführt wird.
  • Das Verfahren kann vorsehen, dass bei dem Vergleich ermittelte Unterschiede zwischen der ersten Version der Automatisierungssoftware und der zweiten Version der Automatisierungssoftware, insbesondere Unterschiede zwischen dem unveränderlichen Teil der ersten Version der Automatisierungssoftware und dem unveränderlichen Teil der zweiten Version der Automatisierungssoftware, über eine Benutzerschnittstelle, insbesondere über eine optische Anzeige wie einen Bildschirm, signalisiert werden. Der Nutzer wird auf diese Weise in die Lage versetzt, zielgerichtet eine Untersuchung und gegebenenfalls Behebung der Veränderungen bzw. der durch diese Veränderungen verursachten Probleme herbeizuführen und insbesondere die Ursachen für die Veränderungen zielgerichtet zu ermitteln. Auf diese Weise können nach dem Stand der Technik oft langwierige und aufwändige Fehlersuchen erheblich vereinfacht und verkürzt werden. Darüber hinaus kann durch eine frühzeitige Erkennung von Fehlern ein zeitnaher Eingriff durch den Nutzer ermöglicht werden, der die Auswirkungen einer bei der Analyse erkannten Veränderung an der Automatisierungssoftware auf den Betrieb der technischen Einrichtung zumindest reduzieren, im besten Fall auch verhindern kann.
  • Bei der Automatisierungseinrichtung kann es sich insbesondere um eine Steuerungseinrichtung eines elektrischen Antriebssystems handeln. Elektrische Antriebssysteme stellen an Steuerungseinrichtungen der in Rede stehenden Art hohe Anforderungen, insbesondere was die Echtzeitfähigkeit angeht. Gleichzeitig müssen die in Rede stehenden Steuerungseinrichtungen neben der reinen Steuerung eines Antriebs und/oder einer Mehrzahl Antriebe eine Reihe zusätzlicher Funktionalitäten bereitstellen, wie beispielsweise das Ermöglichen von Fernwartungszugriffen über Datenverbindungen. Entsprechend komplex sind die zugrunde liegenden Softwarearchitekturen derartiger Automatisierungseinrichtungen, die notwendig sind, um die unterschiedlichen Anforderungen an die jeweiligen Funktionalitäten erfüllen zu können. Die elektrischen Antriebssysteme sind jedoch regelmäßig ein elementarer Bestandteil der technischen Einrichtung, weshalb Eingriffe in die Software der Automatisierungseinrichtung regelmäßig mit weitreichenden Nutzungsausfällen der gesamten technischen Einrichtung verbunden sind. Langwierige Fehlersuchen wirken sich daher insbesondere bei derartigen Automatisierungseinrichtungen besonders negativ aus. Gerade bei derartigen Automatisierungseinrichtungen ist daher ein Verfahren der Rede stehenden Art zur Analyse der Software vorteilhaft einsetzbar.
  • Weitere praktische Ausführungsformen und Vorteile der Erfindung sind nachfolgend im Zusammenhang mit der 1 beschrieben.
  • Das beispielhafte Verfahren kann vorsehen, dass zunächst in einem ersten Verfahrensschritt 10 eine Inbetriebnahme einer technischen Einrichtung erfolgt. Eine Automatisierungseinrichtung, die mittels einer durch die Automatisierungseinrichtung ausführbaren Automatisierungssoftware zur Ausführung automatisierungstechnischer Aufgaben befähigt wird, ist ein Bestandteil der technischen Einrichtung.
  • Zu einem ersten Zeitpunkt, der im gezeigten Beispiel auf die Inbetriebnahme 10 folgt, wird in einem Verfahrensschritt 12 durch eine Analysesoftware eine erste Kopie einer zu diesem ersten Zeitpunkt auf einem Datenspeicher des Automatisierungsgeräts gespeicherten ersten Version der Automatisierungssoftware in einem hierfür vorgesehenen Speicherbereich gespeichert. Nach dem Speichern der ersten Kopie in Verfahrensschritt 12 erfolgt im gezeigten Beispiel die Aufnahme des Regelbetriebs als Verfahrensschritt 14.
  • Das Verfahren kann wie im gezeigten Beispiel vorsehen, dass das Erkennen eines Betriebsereignisses, insbesondere eines sicherheitsrelevanten Ereignisses, in Verfahrensschritt 16 dazu führt, dass in einem weiteren Verfahrensschritt 18 eine zweite Kopie einer zweiten Version der Automatisierungssoftware gespeichert wird, die sich zu dem durch das Eintreten des sicherheitsrelevanten Ereignisses ausgewählten zweiten Zeitpunkt in dem Datenspeicher der Automatisierungseinrichtung gespeichert ist. Das beispielhafte Verfahren sieht mit anderen Worten vor, dass die erste Kopie der zum ersten Zeitpunkt vor dem Erkennen des sicherheitsrelevanten Ereignisses auf dem Datenspeicher der Automatisierungseinrichtung gespeicherten ersten Version der Automatisierungssoftware entspricht, wobei die zweite Kopie der zweiten Version der Automatisierungssoftware entspricht, die zu dem zweiten Zeitpunkt nach dem Erkennen des sicherheitsrelevanten Ereignisses in dem Datenspeicher der Automatisierungseinrichtung gespeichert ist.
  • Das Verfahren sieht in diesem Zusammenhang vorsehen, dass es sich bei den in den Verfahrensschritten 12 und 18 gespeicherten Kopien um forensische Duplikate handelt, die unter dem Einsatz von Writeblockern angefertigt werden.
  • In einem weiteren Verfahrensschritt 20 kann die Identifikation eines unveränderlichen Teils der Automatisierungssoftware erfolgen. Die als unveränderlich identifizierten Teile der beiden Versionen der Automatisierungssoftware, die in den Verfahrensschritten 12 und 18 als Kopien gespeichert worden sind, werden in einem anschließenden Verfahrensschritt 22 durch die Analysesoftware verglichen. Die bei dem Vergleich in Verfahrensschritt 22 identifizierten Veränderungen an dem unveränderlichen Teil der Automatisierungssoftware werden im beispielhaften Verfahren in einem weiteren Schritt 24 beispielhaft über einen Bildschirm als Benutzerschnittstelle einem Benutzer ausgegeben.
  • Die in der vorliegenden Beschreibung, in der Zeichnung sowie in den Ansprüchen offenbarten Merkmale der Erfindung können sowohl einzeln als auch in beliebigen Kombinationen für die Verwirklichung der Erfindung in ihren verschiedenen Ausführungsformen wesentlich sein. Die Erfindung ist nicht auf die beschriebenen Ausführungsformen beschränkt. Sie kann im Rahmen der Ansprüche und unter Berücksichtigung der Kenntnisse des zuständigen Fachmanns variiert werden.
  • Bezugszeichenliste
  • 10
    Inbetriebnahme
    12
    Speichern der ersten Kopie
    14
    Aufnahme des Regelbetriebs
    16
    Erkennen des Betriebsereignisses
    18
    Speichern der zweiten Kopie
    20
    Identifikation des unveränderlichen Teils der Automatisierungssoftware
    22
    Vergleich
    24
    Visualisierung

Claims (13)

  1. Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung, insbesondere einer speicherprogrammierbaren Steuerung, einer technischen Einrichtung, insbesondere der Maschine und/oder der Anlage, wobei die Automatisierungseinrichtung mittels einer durch die Automatisierungseinrichtung ausführbaren Automatisierungssoftware zur Ausführung automatisierungstechnischer Aufgaben befähigt wird, wobei die Automatisierungssoftware Programme und Daten, mit denen die Programme wechselwirken umfasst, wobei eine zu einem ersten Zeitpunkt in einem Datenspeicher der Automatisierungseinrichtung gespeicherte erste Version der Automatisierungssoftware mit einer zu einem zweiten Zeitpunkt in dem Datenspeicher der Automatisierungseinrichtung gespeicherten zweiten Version der Automatisierungssoftware durch eine Analysesoftware verglichen wird, dadurch gekennzeichnet, dass durch die Analysesoftware eine erste Kopie der ersten Version der Automatisierungssoftware und/oder eine zweite Kopie der zweiten Version der Automatisierungssoftware in einen hierfür vorgesehenen Speicherbereich gespeichert und die erste Kopie und/oder die zweite Kopie für den Vergleich verwendet wird, wobei das Erstellen der ersten Kopie und/oder der zweiten Kopie, durch die Analysesoftware unter Verwendung eines Writeblockers erfolgt, wobei es sich bei der zum ersten Zeitpunkt und/oder der zum zweiten Zeitpunkt gespeicherten Kopie um ein forensisches Duplikat eines Datenträgers und/oder Arbeitsspeichers der Automatisierungseinrichtung handelt.
  2. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass die in dem vorgesehenen Speicherbereich gespeicherte Kopie der Software vor Änderungen und/oder unerkannten Änderungen geschützt wird, insbesondere unter Verwendung einer Hashfunktion und/oder mittels eines Authentifizierungsmerkmals, das die Erkennung des Verursachers und insbesondere der Analysesoftware als Verursacher einer Änderung an der Kopie ermöglich.
  3. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass es sich bei der zum ersten Zeitpunkt und/oder der zum zweiten Zeitpunkt gespeicherten Kopie um ein forensisches Duplikat einer Festplatte der Automatisierungseinrichtung und/oder einer in der Automatisierungseinrichtung aufgenommenen Speicherkarte handelt.
  4. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass die Automatisierungssoftware ein Betriebssystem und/oder einen Bestandteil eines Betriebssystems, insbesondere einen Kernel und/oder eine Bibliothek, umfasst.
  5. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass die Automatisierungssoftware eine Laufzeitumgebung und/oder einen Bestandteil einer Laufzeitumgebung, insbesondere eine Laufzeitbibliothek, eine Standardbibliothek, eine Programmierschnittstellen und/oder eine Laufzeitvariable umfasst.
  6. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass die Automatisierungssoftware Konfigurationsdaten umfasst, die technische Ausgestaltungsmerkmale der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, betreffen, insbesondere wobei es sich bei den technischen Ausgestaltungsmerkmalen um Ausgestaltungsmerkmale handelt, die für sämtliche Automatisierungseinrichtungen und/oder die technische Einrichtungen eines bestimmten Typs identisch sind.
  7. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass die Automatisierungssoftware Parametrierdaten umfasst, die technische Parameter der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, betreffen, insbesondere wobei es sich bei den technischen Parametern um Parameter handelt, die für eine bestimmte Automatisierungseinrichtung und/oder technische Einrichtung individuell festgelegt werden.
  8. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass die Automatisierungssoftware Applikationsdaten umfasst, die die konkrete Verwendung der individuellen Automatisierungseinrichtung und/oder der individuellen technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, betreffen, insbesondere wobei die Applikationsdaten von der jeweiligen Verwendung der individuellen technischen Einrichtung abhängen.
  9. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass durch die Analysesoftware ein unveränderlicher Teil der Automatisierungssoftware, der im Regelbetrieb der Automatisierungseinrichtung keinen Veränderungen unterliegt, und/oder ein veränderlicher Teil der Automatisierungssoftware, der im Regelbetrieb der Automatisierungseinrichtung Veränderungen unterliegt, identifiziert wird, insbesondere wobei der Vergleich lediglich anhand des unveränderlichen Teils und/oder unter Ausblendung des unveränderlichen Teils erfolgt.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass bei der Identifizierung des unveränderlichen Teils der Automatisierungssoftware Betriebssysteme, Bestandteile eines Betriebssystems, eine Laufzeitumgebungen, Bestandteile einer Laufzeitumgebung, Konfigurationsdaten, Parametrierdaten, Applikationsdaten, hardwaregebundene Adressen und/oder Aussteller eines Zertifikats dem unveränderlichen Teil der Automatisierungssoftware zugeordnet werden und/oder dass bei der Identifizierung des veränderlichen Teils der Automatisierungssoftware die aktuelle Uhrzeit, Schlüssel, Zertifikate, nicht-hardwaregebundene Adressen und/oder Daten, Cache-Dateien dem veränderlichen Teil der Automatisierungssoftware zugeordnet werden.
  11. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass es sich bei dem ersten Zeitpunkt um einen Zeitpunkt vor dem Erkennen eines sicherheitsrelevanten Ereignisses durch ein informationstechnisches Sicherheitssystem, insbesondere eine Firewall, ein Intrusion Detection System und/oder einen Virenscanner, und/oder dem Einspielen einer Sicherheitskopie der Automatisierungssoftware in die Automatisierungseinrichtung, und bei dem zweiten Zeitpunkt um einen Zeitpunkt nach dem Erkennen dieses Ereignisses handelt.
  12. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass es sich bei dem ersten Zeitpunkt um einen Zeitpunkt zwischen dem Abschluss einer Inbetriebnahme und der Aufnahme des Regelbetriebs der Automatisierungseinrichtung und/oder der technischen Einrichtung, deren Bestandteil die Automatisierungseinrichtung ist, handelt.
  13. Verfahren nach einem der vorigen Ansprüche, dadurch gekennzeichnet, dass es sich bei der Automatisierungseinrichtung um eine Steuerungseinrichtung eines elektrischen Antriebssystems handelt.
DE102022102616.7A 2022-02-03 2022-02-03 Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung Active DE102022102616B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102022102616.7A DE102022102616B4 (de) 2022-02-03 2022-02-03 Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung
US18/104,449 US20230251957A1 (en) 2022-02-03 2023-02-01 Method for analyzing an automation software of an automation device
CN202310053875.7A CN116541192A (zh) 2022-02-03 2023-02-03 自动化装置的自动化软件的分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022102616.7A DE102022102616B4 (de) 2022-02-03 2022-02-03 Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung

Publications (2)

Publication Number Publication Date
DE102022102616A1 DE102022102616A1 (de) 2023-08-03
DE102022102616B4 true DE102022102616B4 (de) 2024-07-18

Family

ID=87160590

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022102616.7A Active DE102022102616B4 (de) 2022-02-03 2022-02-03 Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung

Country Status (3)

Country Link
US (1) US20230251957A1 (de)
CN (1) CN116541192A (de)
DE (1) DE102022102616B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10228142A1 (de) 2001-08-01 2003-02-20 Siemens Ag System und Verfahren zur Verwaltung von Softwarekomponenten und/oder Computerprogrammen
EP2980662A1 (de) 2014-07-30 2016-02-03 Siemens Aktiengesellschaft Schutz einer automatisierungskomponente vor programmmanipulationen durch signaturabgleich

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10228142A1 (de) 2001-08-01 2003-02-20 Siemens Ag System und Verfahren zur Verwaltung von Softwarekomponenten und/oder Computerprogrammen
EP2980662A1 (de) 2014-07-30 2016-02-03 Siemens Aktiengesellschaft Schutz einer automatisierungskomponente vor programmmanipulationen durch signaturabgleich

Also Published As

Publication number Publication date
DE102022102616A1 (de) 2023-08-03
US20230251957A1 (en) 2023-08-10
CN116541192A (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE102014211504A1 (de) Verfahren und System zur Gewinnung und Analyse von forensischen Daten in einer verteilten Rechnerinfrastruktur
EP2908195A1 (de) Verfahren zur Überwachung der Sicherheit in einem Automatisierungsnetzwerk sowie Automatisierungsnetzwerk
EP3079028A1 (de) Planungs- und engineering-verfahren, -software-tool und simulationswerkzeug für eine automatisierungslösung
EP3430558B1 (de) Erkennen einer abweichung eines sicherheitszustandes einer recheneinrichtung von einem sollsicherheitszustand
EP2913772A1 (de) Verfahren und Computersystem zum Schutz eines Computerprogramms gegen Beeinflussung
EP3379351B1 (de) Verfahren zum betreiben einer automatisierungseinrichtung sowie automatisierungseinrichtung
DE102017111928A1 (de) Verfahren zur autorisierten Aktualisierung eines Feldgeräts der Automatisierungstechnik
WO2016081970A1 (de) Automatisierungssystem und verfahren zu dessen betrieb
DE102022102616B4 (de) Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung
EP2954534B1 (de) Vorrichtung und verfahren zur erkennung von unbefugten manipulationen des systemzustandes einer steuer- und regeleinheit einer kerntechnischen anlage
EP3568793B1 (de) Verfahren und computer mit einer sicherung gegen cyberkriminelle bedrohungen
EP4154139B1 (de) Erweiterte integritätsüberwachung eines containerabbildes
DE102022129772A1 (de) Verfahren zum Ausführen eines Debugging-Vorgangs eines Steuerprogramms eines Automatisierungssystems
DE102015005071A1 (de) System und Verfahren zur Überwachung der Integrität einer von einem Serversystem an ein Clientsystem ausgelieferten Komponente
DE102022102619A1 (de) Verfahren zur Analyse von Betriebsereignissen im Betrieb einer technischen Einrichtung
EP3767505B1 (de) Verfahren und system zur bereitstellung von sicherheitsinformationen über einen anwendungscontainer für ein industrielles edge-gerät
EP2990941B1 (de) Computerimplementiertes verfahren zur erzeugung eines steuergeräteprogrammcodes und diesbezügliche meldungsverwaltungsumgebung
DE102013200798B3 (de) Maschinensteuerung, Maschinensteuerungswartungssystem und Maschinensteuerungswartungsverfahren
EP3486825A1 (de) Verfahren und vorrichtung zum rechnergestützten bestimmen eines schweregrads einer festgestellten verletzung der integrität
EP4333364A1 (de) Verfahren zur überwachung eines computerimplementierten komponenteninventars
EP4254096A1 (de) Verfahren zur implementierung einer automatisierungsfunktionalität auf einer automatisierungskomponente mit programmierbarer automatisierungsfunktionalität und system
EP4181000A1 (de) Verfahren und rechenumgebung zum erstellen und anwenden eines prüfalgorithmus für rechenvorgänge
WO2022084452A1 (de) Verfahren zum betreiben eines automatisierungssystems einer maschine oder einer anlage
EP3200419A1 (de) Automatisierungsnetzwerk mit einer sicherheitsüberwachung sowie datenverarbeitungsgerät und überwachungsverfahren für ein automatisierungsnetzwerk

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division