DE102014208774A1 - Computing device with a manipulation detection and a method for detecting a manipulation of a computing device - Google Patents

Computing device with a manipulation detection and a method for detecting a manipulation of a computing device Download PDF

Info

Publication number
DE102014208774A1
DE102014208774A1 DE102014208774.0A DE102014208774A DE102014208774A1 DE 102014208774 A1 DE102014208774 A1 DE 102014208774A1 DE 102014208774 A DE102014208774 A DE 102014208774A DE 102014208774 A1 DE102014208774 A1 DE 102014208774A1
Authority
DE
Germany
Prior art keywords
program code
spectrum
runtime
determined
computing 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.)
Withdrawn
Application number
DE102014208774.0A
Other languages
German (de)
Inventor
Jens-Uwe Busser
Jorge Cuellar
Michael Munzert
Heiko Patzlaff
Jan Stijohann
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE102014208774.0A priority Critical patent/DE102014208774A1/en
Publication of DE102014208774A1 publication Critical patent/DE102014208774A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • 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
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Rechenvorrichtung (10) mit einer Manipulations-Erkennung stellt Dienste mit Echtzeitanforderungen mittels eines Programmcodes (15) bereit und umfasst mindestens eine Prozessoreinheit (11) und eine Überwachungseinheit (12). Die Prozessoreinheit (11) ist derart ausgebildet, den Programmcode (15) auszuführen. Die Überwachungseinheit (12) ist derart ausgebildet, in einer Aufnahmephase ein Referenz-Laufzeitspektrum (16) für den Programmcode (15) zu ermitteln und zu speichern, indem eine Vielzahl möglicher Ausführungsvarianten des Programmcodes (15) ausgeführt werden und eine Laufzeit für jede Ausführungsvariante ermittelt oder gespeichert wird. Nachfolgend wird in einer Überwachungsphase fortlaufend die Laufzeit der Ausführung des Programmcodes (15) ermittelt, die ermittelte Laufzeit mit dem Referenz-Laufzeitspektrum (16) verglichen und eine Warnmeldung generiert, wenn die ermittelte Laufzeit mit keiner im Referenz-Laufzeitspektrum enthaltenen Laufzeit übereinstimmt. Das erfindungsgemäße Verfahren umfasst entsprechende Verfahrensschritte.The manipulation device (10) with a manipulation recognition provides services with real-time requirements by means of a program code (15) and comprises at least one processor unit (11) and a monitoring unit (12). The processor unit (11) is designed to execute the program code (15). The monitoring unit (12) is designed to determine and store a reference runtime spectrum (16) for the program code (15) in a recording phase by executing a multiplicity of possible variants of the program code (15) and determining a runtime for each variant or saved. Subsequently, in a monitoring phase, the running time of the execution of the program code (15) is continuously determined, the determined runtime compared with the reference runtime spectrum (16) and generates a warning if the determined runtime does not coincide with any runtime included in the reference runtime spectrum. The method according to the invention comprises corresponding method steps.

Description

Die Erfindung betrifft eine Rechenvorrichtung mit einer Manipulations-Erkennung, die Dienste mit Echtzeitanforderungen mittels eines Programmcodes bereitstellt sowie ein Verfahren zur Erkennung einer Manipulation einer Rechenvorrichtung. The invention relates to a computing device with a manipulation detection, which provides services with real-time requirements by means of a program code and a method for detecting a manipulation of a computing device.

Heutige Büro- und Heimrechenvorrichtungen, wie Personal Computer oder mobile Geräte, wie beispielsweise Laptops, Smartphones oder Tablets, mit modernen Standard-Betriebssystemen, wie beispielsweise Windows oder Linux, enthalten bereits oft umfangreiche Sicherheitsfunktionen, wie Viren-Scanner, lokale Firewalls und automatische Software-Aktualisierungsprogramme. Solche Sicherheitsfunktionen sollen eine Manipulation des Rechners oder das Ausspähen von Programmen oder abgespeicherten Daten verhindern. Host-basierte Eindringerkennungssysteme, auch Intrusion Detection Systems genannt, sind bekannt und können, installiert auf einer Rechenvorrichtung, Sicherheitsereignisse dem Anwender anzeigen, in einer Datei protokollieren oder an eine zentrale Stelle melden. Today's office and home computing devices, such as personal computers or mobile devices, such as laptops, smartphones or tablets, with modern standard operating systems, such as Windows or Linux, often already contain extensive security functions, such as virus scanners, local firewalls and automatic software. updaters. Such security functions are intended to prevent manipulation of the computer or the spying of programs or stored data. Host-based intrusion detection systems, known as intrusion detection systems, are known and, when installed on a computing device, can display security events to the user, log them to a file, or report them to a central location.

Bei echtzeitfähigen Rechenvorrichtungen, wie beispielsweise speicherprogrammierbaren Steuerungen im Industrieumfeld, ist der Einsatz solcher Lösungen oft problematisch. Schadsoftware-Scanner können die Performanz reduzieren und damit Echtzeitanforderungen verletzen. Eine Firewall kann wichtige Schaltbefehle blockieren. Das Einspielen von Software-Updates kann Sicherheitsanforderungen verletzen und zu unerwünschten Neustarts der Rechenvorrichtung im laufenden Betrieb führen. Rechenvorrichtungen in sicherheitskritischen Infrastrukturen, wie beispielsweise einem Automatisierungsnetz für eine Automatisierungsanlage, wurden traditionell physikalisch strikt getrennt von öffentlichen Netzen wie dem Internet betrieben. In real-time computing devices, such as programmable logic controllers in the industrial environment, the use of such solutions is often problematic. Malware scanners can reduce performance and violate real-time requirements. A firewall can block important switching commands. The import of software updates can violate security requirements and lead to unwanted restarts of the computing device during operation. Computing devices in security-critical infrastructures, such as an automation network for an automation system, have traditionally been operated physically strictly separate from public networks such as the Internet.

Neuerdings müssen aber oft Kommunikationskanäle für beispielsweise Fernwartung oder Abgleich zwischen Verwaltung und Produktion bereitgestellt werden. Recently, however, communication channels for, for example, remote maintenance or alignment between management and production often have to be provided.

Es ist somit die Aufgabe der vorliegenden Erfindung, Rechenvorrichtungen zur Ausführung von Echtzeitdiensten in sicherheitsrelevanten Bereichen so zu erweitern, dass eine Manipulation der Rechenvorrichtung einfach und frühzeitig erkannt wird, ohne die Funktionsweise der Rechenvorrichtung an sich und insbesondere bezüglich der Echtzeitanforderungen einzuschränken. It is thus the object of the present invention to expand computing devices for real-time services in security-relevant areas so that manipulation of the computing device is detected simply and early without restricting the operation of the computing device per se and in particular with respect to real-time requirements.

Die Aufgabe wird durch die in den unabhängigen Ansprüchen beschriebenen Maßnahmen gelöst. In den Unteransprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt. The object is achieved by the measures described in the independent claims. In the dependent claims advantageous developments of the invention are shown.

Die erfindungsgemäße Rechenvorrichtung mit einer Manipulations-Erkennung stellt Dienste mit Echtzeitanforderungen mittels eines Programmcodes bereit und umfasst mindestens eine Prozessoreinheit und eine Überwachungseinheit. Die Prozessoreinheit ist derart ausgebildet, den Programmcode auszuführen. Die Überwachungseinheit ist derart ausgebildet, in einer Aufnahmephase ein Referenz-Laufzeitspektrum für den Programmcode zu ermitteln und zu speichern, indem eine Vielzahl möglicher Ausführungsvarianten des Programmcodes ausgeführt werden und eine Laufzeit für jede Ausführungsvariante ermittelt oder gespeichert wird. Nachfolgend wird in einer Überwachungsphase fortlaufend die Laufzeit der Ausführung des Programmcodes ermittelt, die ermittelte Laufzeit mit dem Referenz-Laufzeitspektrum verglichen und eine Warnmeldung generiert, wenn die ermittelte Laufzeit mit keiner im Referenz-Laufzeitspektrum enthaltenen Laufzeit übereinstimmt. The computing device according to the invention with a manipulation detection provides services with real-time requirements by means of a program code and comprises at least one processor unit and a monitoring unit. The processor unit is designed to execute the program code. The monitoring unit is designed to determine and store a reference propagation time spectrum for the program code in a recording phase by executing a multiplicity of possible variants of the program code and determining or storing a runtime for each embodiment variant. Subsequently, in a monitoring phase, the running time of the execution of the program code is continuously determined, the determined runtime is compared with the reference runtime spectrum and a warning message is generated if the determined runtime does not coincide with any runtime included in the reference runtime spectrum.

Da zur Erfüllung von Echtzeitanforderungen isochrone Zykluszeiten, d.h. feste bzw. nach oben beschränkte Laufzeiten des Programmcodes erforderlich sind, sind auch die Laufzeiten der verschiedenen Ausführungsvarianten des Programmcodes in einem engen Zeitbereich festgelegt, so dass eine Änderung des Programmcodes zu signifikanten Abweichungen der Laufzeit des Programms führt. Des Weiteren kann die Laufzeit der Ausführung des Programmcodes einfach, beispielsweise durch einen Zeitstempel am Anfang sowie am Ende der Ausführung eines Programmcodes, erfasst werden und benötigt lediglich eine geringe Rechenleistung der Rechenvorrichtung. Somit kann insbesondere bei Rechenvorrichtungen mit Echtzeitanforderungen durch die Überwachung der Laufzeit des Programmcodes und Vergleich gegenüber einem Referenz-Laufzeitspektrum in einfacher und wenig aufwändiger Art und Weise eine Manipulation der Rechenvorrichtung detektiert werden. Since isochronous cycle times, i. fixed or upwardly limited terms of the program code are required, the terms of the various variants of the program code are set in a narrow time range, so that a change of the program code leads to significant deviations of the duration of the program. Furthermore, the running time of the execution of the program code can be easily detected, for example by a time stamp at the beginning and at the end of the execution of a program code, and only requires a low computing power of the computing device. Thus, a manipulation of the computing device can be detected in particular in computing devices with real-time requirements by monitoring the running time of the program code and comparison with a reference time-of-flight spectrum in a simple and inexpensive manner.

In einer vorteilhaften Ausführungsform ist die Überwachungseinheit derart ausgebildet, jeder Laufzeit eines Referenz-Laufzeitspektrums eine Häufigkeit des Auftretens dieser Laufzeit zuzuordnen. In an advantageous embodiment, the monitoring unit is designed to assign a frequency of occurrence of this runtime to each runtime of a reference runtime spectrum.

Diese Zuordnung kann beispielsweise bei der Ermittlung des Referenz-Laufzeitspektrums durch eine Anzahl von wiederholten Ausführungen des Programmcodes unter unterschiedlichen Randbedingungen und Ausführung unterschiedlicher Funktionen gemäß dem vorbestimmten Einsatz der Rechenvorrichtung ermittelt werden. Alternativ kann jeder Laufzeit des Referenz-Laufzeitspektrums eine Soll-Häufigkeit vorgegeben werden, die auf andere Art und Weise ermittelt wurde, beispielsweise durch Simulation. Dadurch kann auch dann, wenn eine Laufzeit viel häufiger oder weniger häufig als erwartet vorkommt, eine Meldung generiert werden und die Rechenvorrichtung auf Manipulation überprüft werden. This assignment can be determined, for example, in the determination of the reference time-of-flight spectrum by a number of repeated executions of the program code under different boundary conditions and execution of different functions according to the predetermined use of the computing device. Alternatively, each runtime of the reference runtime spectrum can be given a desired frequency which has been determined in another way, for example by simulation. This can be even if a runtime is more frequent or less frequent than expected occurs, a message is generated and the computing device is checked for tampering.

In einer vorteilhaften Ausführungsform führt die Prozessoreinheit einen Programmcode aus, der eine Mehrzahl von Teil-Programmcodes umfasst. Die Überwachungseinheit ist dann derart ausgebildet, für jeden Teil-Programmcode jeweils ein eigenes Referenz-Laufzeitspektrum für die Ausführungsvarianten des Teil-Programmcodes zu ermitteln und zu speichern. Nachfolgend überwacht die Überwachungseinheit fortlaufend die Laufzeit eines jeden Teil-Programmcodes einzeln und generiert bei mangelnder Übereinstimmung mindestens einer ermittelten Laufzeit eines Teil-Programmcodes mit dem Referenz-Laufzeitspektrum des entsprechenden Teil-Programmcodes eine Warnmeldung. In an advantageous embodiment, the processor unit executes a program code comprising a plurality of partial program codes. The monitoring unit is then designed to determine and store for each sub-program code a respective reference time-of-flight spectrum for the variants of the sub-program code. Subsequently, the monitoring unit continuously monitors the runtime of each partial program code individually and generates a warning message if there is a mismatch of at least one determined running time of a partial program code with the reference time-of-flight spectrum of the corresponding partial program code.

Bei sehr umfangreichen Programmcodes, die aus gut separierbaren Komponenten, hier Teil-Programmcodes genannt, aufgebaut sind, kann durch die getrennte Behandlung jedes einzelnen Teil-Programmcodes ein Laufzeitspektrum einfach gehalten werden und somit Abweichungen in den Laufzeiten besser erkannt werden. Des Weiteren kann dadurch einfacher der manipulierte Teil-Programmcode identifiziert werden bzw. eine Änderung des Ablaufs des Programms lokalisiert werden. With very extensive program codes, which are composed of well separable components, here called part program codes, a runtime spectrum can be kept simple by the separate treatment of each individual part program code and thus deviations in the transit times can be better recognized. Furthermore, this makes it easier to identify the manipulated partial program code or localize a change in the sequence of the program.

In einer vorteilhaften Ausführungsform ist die Überwachungseinheit derart ausgebildet, eine Warnmeldung erst dann zu generieren, wenn das Auftreten einer nicht den Laufzeiten des Referenz-Laufzeitspektrums entsprechenden, ermittelten Laufzeit eine vorgegebene Häufigkeit übersteigt. In an advantageous embodiment, the monitoring unit is configured to generate a warning message only when the occurrence of a determined runtime that does not correspond to the transit times of the reference runtime spectrum exceeds a predetermined frequency.

Dadurch wird das Auftreten von fehlerhaften Warnmeldungen durch eine lediglich sporadische, nicht auf eine Manipulation zurückzuführende Laufzeitänderung reduziert. This reduces the occurrence of erroneous warnings by a sporadic, not attributable to a manipulation runtime change.

In einer weiteren vorteilhaften Variante ist die Überwachungseinheit derart ausgebildet, die ermittelten Laufzeiten fortlaufend in einem Ist-Laufzeitspektrum aufzuzeichnen bzw. zu speichern. In a further advantageous variant, the monitoring unit is designed such that the determined transit times are continuously recorded or stored in an actual runtime spectrum.

Damit kann beim späteren Auswerten eines solchen Ist-Laufzeitspektrums die Arbeitsweise der Rechenvorrichtung nachvollzogen und überprüft werden. In this way, during the later evaluation of such an actual time-of-flight spectrum, the operation of the computing device can be reconstructed and checked.

In einer vorteilhaften Ausführungsform ist die Überwachungseinheit derart ausgebildet, das Ist-Laufzeitspektrum an eine Meldestelle zu übermitteln. In an advantageous embodiment, the monitoring unit is designed to transmit the actual time-of-flight spectrum to a reporting office.

Dies ermöglicht eine Auswertung des Ist-Laufzeitspektrums außerhalb der Rechenvorrichtung und entlastet somit die Rechenvorrichtung. This allows an evaluation of the actual runtime spectrum outside the computing device and thus relieves the computing device.

In einer vorteilhaften Ausführungsform ist die Rechenvorrichtung eine speicherprogrammierbare Steuerungseinrichtung. In an advantageous embodiment, the computing device is a programmable logic controller.

Solche speicherprogrammierbaren Steuerungseinrichtungen werden insbesondere zur Anlagensteuerung in Automatisierungsanlagen verwendet. Such programmable logic controllers are used in particular for system control in automation systems.

In einer weiteren vorteilhaften Ausführungsform ist die Überwachungseinheit als ein spezieller Teil-Programmcode ausgebildet, der in der Prozessoreinheit der Rechenvorrichtung ausgeführt wird. In a further advantageous embodiment, the monitoring unit is designed as a special partial program code that is executed in the processor unit of the computing device.

Somit kann bei einer Änderung der Programmierung einfach auch die Überwachungseinheit angepasst werden. Allerdings wird dann auch beim Austausch oder einer Manipulation des Programmcodes durch einen Angreifer möglicherweise die Alarmierung außer Kraft gesetzt. Thus, when changing the programming, the monitoring unit can be easily adapted. However, even if an attacker exchanges or tampering with the program code, the alert may be overridden.

In einer Ausführungsvariante ist die Überwachungseinheit in einem Betriebssystem und/oder in einer Firmware der Rechenvorrichtung ausgebildet. In one embodiment, the monitoring unit is embodied in an operating system and / or in a firmware of the computing device.

Dies hat den Vorteil, dass bei einem Austausch oder einer Manipulation des Programmcodes die Laufzeitüberwachung aktiv bleibt, da diese in einer vom Programmcode getrennten Einheit integriert ist. This has the advantage that when exchanging or manipulating the program code, the runtime monitoring remains active since it is integrated in a separate unit from the program code.

Das erfindungsgemäße Verfahren zur Erkennung einer Manipulation einer Rechenvorrichtung, die Dienste mit Echtzeitanforderungen mittels eines Programmcodes bereitstellt, umfasst die Schritte:

  • – Ermitteln und Speichern eines Referenz-Laufzeitspektrums für den Programmcode, in dem eine Vielzahl möglicher Ausführungsvarianten des Programmcodes ausgeführt werden und eine Laufzeit für jede Ausführungsvariante ermittelt und gespeichert wird, und nachfolgend in einer Überwachungsphase fortlaufend
  • – Ausführen des Programmcodes,
  • – Ermitteln der Laufzeit der Ausführung des Programmcodes und Vergleichen der ermittelten Laufzeit mit den Laufzeiten des Referenz-Laufzeitspektrums, und
  • – Generieren einer Warnmeldung, wenn die ermittelte Laufzeit mit keiner im Referenz-Laufzeitspektrum enthaltenen Laufzeit übereinstimmt.
The inventive method for detecting a manipulation of a computing device, which provides services with real-time requirements by means of a program code, comprises the steps:
  • Determining and storing a reference runtime spectrum for the program code in which a plurality of possible execution variants of the program code are executed and a runtime is determined and stored for each variant, and subsequently in a monitoring phase continuously
  • - executing the program code,
  • Determining the duration of execution of the program code and comparing the determined transit time with the transit times of the reference transit time spectrum, and
  • - Generate a warning message if the determined runtime does not match any runtime in the reference runtime spectrum.

Die Laufzeiten eines Programmcodes hängen sehr stark von der Programmierung der Rechenvorrichtung ab. Auch Messwerte von Sensoren und Eingabeparameter spielen dabei eine Rolle. Dennoch ist für jeden Programmcode ein bestimmtes Spektrum an Laufzeiten zu erwarten, die durch Varianten des Programmcodes, wie beispielsweise Reaktion auf bestimmte Eingabeparameter oder auch Verzweigung des Programms als Reaktion auf einen anderen Eingabeparameter, verursacht werden. Ändert sich dieses Spektrum, so kann daraus abgeleitet werden, dass der Programmcode verändert wurde. Das Verfahren bietet somit eine Möglichkeit, mit geringem Rechenaufwand in der Rechenvorrichtung selbst, eine Manipulation des Programmcodes und auch eine dadurch verursachte Manipulation im Ablauf von Steuerungsfunktionen einer Anlage frühzeitig zu erkennen. The runtimes of a program code depend very much on the programming of the computing device. Measurements of sensors and input parameters also play a role. Nevertheless, for each program code, a certain range of runtimes is to be expected, which is due to variants of the program code, such as reaction to certain input parameters or even branching of the program in response to a other input parameters. If this spectrum changes, it can be deduced that the program code has been changed. The method thus offers a possibility, with little computational effort in the computing device itself, to early detect a manipulation of the program code and also a manipulation caused thereby in the course of control functions of a system.

In einer Variante des erfindungsgemäßen Verfahrens umfasst der Programmcode eine Mehrzahl von Teil-Programmcodes, wobei für jeden Teil-Programmcode jeweils ein Referenz-Laufzeitspektrum für die Ausführungsvarianten des entsprechenden Teil-Programmcodes ermittelt und gespeichert wird, und nachfolgend fortlaufend die Laufzeit eines jeden Teil-Programmcodes einzeln überwacht wird und bei mangelnder Übereinstimmung mindestens einer ermittelten Laufzeit eines Teil-Programmcodes mit dem Referenz-Laufzeitspektrum des Teil-Programmcodes eine Warnmeldung generiert wird. In a variant of the method according to the invention, the program code comprises a plurality of sub-program codes, wherein for each sub-program code in each case a reference runtime spectrum for the variants of the corresponding sub-program code is determined and stored, and subsequently continuously the term of each sub-program code is individually monitored and in the case of a mismatch of at least one determined duration of a partial program code with the reference time-of-flight spectrum of the partial program code, a warning message is generated.

In einem vorteilhaften Ausführungsbeispiel wird die Warnmeldung an eine Meldestelle übermittelt. Dies ermöglicht eine zentrale Auswertung der Warnmeldungen, beispielsweise in einem Betriebszentrum und eine schnelle Reaktion zur Überprüfung der Rechenvorrichtung. In an advantageous embodiment, the warning message is transmitted to a hotline. This allows a central evaluation of the warning messages, for example in an operations center and a quick response to check the computing device.

In einer vorteilhaften Ausführungsform des Verfahrens wird erst dann eine Warnmeldung generiert, wenn die Häufigkeit der nicht den Laufzeiten des Referenz-Laufzeitspektrums entsprechenden, ermittelten Laufzeiten eine vorgegebene Häufigkeit übersteigt. In an advantageous embodiment of the method, a warning message is generated only when the frequency of the determined transit times not corresponding to the transit times of the reference runtime spectrum exceeds a predetermined frequency.

In einer vorteilhaften Ausführungsform des Verfahrens werden die ermittelten Laufzeiten fortlaufend in einem Ist-Laufzeitspektrum aufgezeichnet bzw. gespeichert und/oder das Ist-Laufzeitspektrum an eine Meldestelle übermittelt. In an advantageous embodiment of the method, the determined running times are continuously recorded or stored in an actual runtime spectrum and / or the actual runtime spectrum is transmitted to a reporting office.

Des Weiteren wird ein Computerprogrammprodukt mit Programmbefehlen zur Durchführung des Verfahrens beansprucht. Furthermore, a computer program product with program instructions for carrying out the method is claimed.

Ausführungsbeispiele der erfindungsgemäßen Vorrichtung und des erfindungsgemäßen Verfahrens sind in den Zeichnungen beispielhaft dargestellt und werden anhand der nachfolgenden Beschreibung näher erläutert. Es zeigen: Embodiments of the device according to the invention and of the method according to the invention are shown by way of example in the drawings and will be explained in more detail with reference to the following description. Show it:

1 ein Ausführungsbeispiel einer erfindungsgemäßen Rechenvorrichtung in schematischer Darstellung; 1 an embodiment of a computing device according to the invention in a schematic representation;

2 ein beispielhaftes Referenz-Laufzeitspektrum einer erfindungsgemäßen Rechenvorrichtung; 2 an exemplary reference transit time spectrum of a computing device according to the invention;

3 das Referenz-Laufzeitspektrum aus 2 mit ermittelten Laufzeiten rt2 und rty, die zur Generierung einer Warnmeldung führen; und 3 the reference runtime spectrum 2 with determined transit times rt 2 and rt y , which lead to the generation of a warning message; and

4 ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens als Ablaufdiagramm. 4 an embodiment of the method according to the invention as a flowchart.

Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen. Corresponding parts are provided in all figures with the same reference numerals.

1 zeigt eine Rechenvorrichtung 10, die beispielsweise als speicherprogrammierbare Steuerungseinrichtung innerhalb einer Automatisierungsanlage arbeitet. Dazu ist sie über ein Kommunikationsnetz 13 zum einen mit anderen gleichen oder ähnlichen Rechenvorrichtungen verbunden und/oder auch mit einer Meldestelle 14 verbunden. 1 shows a computing device 10 which works, for example, as a programmable logic controller within an automation system. It is also via a communications network 13 on the one hand with other identical or similar computing devices connected and / or with a hotline 14 connected.

Die Rechenvorrichtung 10 umfasst eine Prozessoreinheit 11, auf der ein Programmcode 15, der hier schematisch als Kasten dargestellt ist, abläuft. Die Rechenvorrichtung 10 umfasst des Weiteren eine Überwachungseinheit 12, die mit der Prozessoreinheit 11 verbunden ist. Die Rechenvorrichtung 10 kann ebenfalls mehrere Prozessoreinrichtungen umfassen, auf denen wiederum ein oder mehrere Programmcodes ablaufen. Dabei arbeitet mindestens eine der genannten Prozessoreinheiten 11 mit einer Überwachungseinheit 12 zusammen. Der Programmcode 15 bzw. der durch den Programmcode ausgeführte Dienst hat insbesondere Echtzeitanforderungen, d.h. dass auf eine Anweisung muss innerhalb einer kurzen, vorgegebenen Zeit reagiert werden. Der Programmcode 15 umfasst dabei üblicherweise unterschiedliche Ausführungsvarianten, d.h. Verzweigungen im Programmcode abhängig von Messwerten und Eingabeparametern oder Anweisungen, die die Rechenvorrichtung empfängt und abhängig vom Prozess, der gesteuert wird. Führt eine Rechenvorrichtung 10 viele unterschiedliche Funktionen aus, so ist der Programmcode 15 aus mehr als einem Teil-Programmcode, beispielsweise den dargestellten Teil-Programmcodes 151, 152, 153 aufgebaut, die beispielsweise klar separierbare Teilfunktionen ausführen. The computing device 10 includes a processor unit 11 on which a program code 15 Shown here schematically as a box expires. The computing device 10 further comprises a monitoring unit 12 connected to the processor unit 11 connected is. The computing device 10 may also include multiple processor devices, which in turn run one or more program codes. At least one of said processor units operates 11 with a monitoring unit 12 together. The program code 15 In particular, the service executed by the program code has real-time requirements, that is, an instruction must respond within a short, predetermined time. The program code 15 In this case, it usually comprises different execution variants, ie branches in the program code depending on measured values and input parameters or instructions which the computing device receives and depending on the process being controlled. Performs a computing device 10 many different functions, that's the program code 15 from more than one partial program code, for example the partial program codes shown 151 . 152 . 153 constructed, for example, perform clearly separable sub-functions.

Um eine solche Rechenvorrichtung 10, die echtzeitrelevante Dienste ausführt, gegenüber Veränderungen oder Manipulation zu überwachen, ist die Überwachungseinheit 12 derart ausgebildet, in einer Aufnahmephase ein Referenz-Laufzeitspektrum 16 für den Programmcode 15 zu ermitteln und zu speichern. Dazu wird der Programmcode 15 in einer möglichst großen Anzahl verschiedener Ausführungsvarianten ausgeführt und für jede Ausführungsvariante eine Laufzeit ermittelt und in einem Referenz-Laufzeitspektrum 16 gespeichert. Um auch eventuelle Fluktuationen in der Laufzeit der verschiedenen Ausführungsvarianten zu erfassen, sollte der Programmcode 15 mehrfach ausgeführt werden. Die Ausführungsvarianten des Programmcodes 15 sollten entsprechend den Funktionen, die die Rechenvorrichtung 10 beispielsweise innerhalb der Automatisierungsanlage wahrnimmt, in ihrer Häufigkeit durchgeführt werden. To such a computing device 10 that performs real-time services to monitor against changes or manipulation is the monitoring unit 12 designed in a recording phase, a reference propagation time spectrum 16 for the program code 15 to determine and store. This is the program code 15 executed in the largest possible number of different variants and determines a runtime for each embodiment and in a reference runtime spectrum 16 saved. In order to detect any fluctuations in the term of the various embodiments, the program code should 15 be executed several times. The Variants of the program code 15 should be according to the functions that the computing device 10 For example, within the automation system perceives performed in their frequency.

Neben den einzelnen Laufzeiten der Ausführungsvarianten wird vorteilhafterweise auch die Häufigkeit einer gemessenen Laufzeit im Referenz-Laufzeitspektrum festgehalten. In addition to the individual terms of the embodiments, the frequency of a measured transit time is advantageously also recorded in the reference transit time spectrum.

2 zeigt beispielhaft ein Referenz-Laufzeitspektrum 16 eines Programmcodes 15 mit sechs unterschiedlichen Ausführungsvarianten. Jede dieser Ausführungsvarianten weist eine unterschiedliche Laufzeit, nämlich rt1, rt2, ..., rt6, auf und markiert die Position der Ausführungsvariante gemäß ihrer Laufzeit. Zu jeder einzelnen Laufzeit rt1, rt2, ..., rt6 ist des Weiteren eine Häufigkeit des Auftretens der jeweiligen Laufzeit mit P1/2, P3, ..., P6 markiert. Damit sind die Laufzeiten rt1, rt2, ..., rt6 des Programmcodes 15 der Rechenvorrichtung 10 bei der Ausführung einer bestimmten Tätigkeit ersichtlich. 2 shows by way of example a reference transit time spectrum 16 a program code 15 with six different design variants. Each of these variants has a different duration, namely rt 1 , rt 2 , ..., rt 6, and marks the position of the embodiment according to their running time. For each individual runtime rt 1 , rt 2 ,..., Rt 6 , a frequency of the occurrence of the respective runtime is also marked with P 1/2 , P 3 ,..., P 6 . Thus, the runtimes rt 1 , rt 2 , ..., rt 6 of the program code 15 the computing device 10 in the execution of a particular activity.

Nach der Ermittlung und Speicherung des Referenz-Laufzeitspektrums 16, d.h. in einem nachfolgenden Betrieb der Rechenvorrichtung 10, ermittelt die Überwachungsvorrichtung 12 fortlaufend die Laufzeit der Ausführung des Programmcodes 15 und vergleicht die ermittelte Laufzeit mit dem Referenz-Laufzeitspektrum 16. Dabei werden die ermittelten Laufzeiten vorteilhafterweise kontinuierlich in einem Ist-Laufzeitspektrum 16´, siehe 3, aufgezeichnet bzw. gespeichert. After identifying and storing the reference runtime spectrum 16 ie in a subsequent operation of the computing device 10 determines the monitoring device 12 consecutively the duration of execution of the program code 15 and compares the determined runtime with the reference runtime spectrum 16 , The determined transit times are advantageously continuously in an actual runtime spectrum 16' , please refer 3 , recorded or saved.

Die Überwachungseinheit 12 generiert eine Warnmeldung, wenn die ermittelte Laufzeit, beispielsweise rty in 3, mit keiner im Referenz-Laufzeitspektrum 16 enthaltenen Laufzeit rt1, rt2, ..., rt6 übereinstimmt. Um eine Häufung von Fehl-Warnmeldungen zu vermeiden, wird erst bei einem Auftreten einer abweichenden Laufzeit rty, die mit einer vorbestimmten Häufigkeit P0 auftritt, eine Warnmeldung generiert. Ebenfalls kann eine ermittelten Laufzeit, die um eine vorgegebene Schwankung Δt um eine im Referenzspektrum liegende Laufzeit liegt, toleriert, d.h. als übereinstimmend angesehen werden, siehe 3. The monitoring unit 12 generates a warning message if the determined runtime, for example rt y in 3 , with none in the reference maturity spectrum 16 runtime rt 1 , rt 2 , ..., rt 6 matches. In order to avoid an accumulation of false warning messages, a warning message is generated only when a different transit time rt y occurs , which occurs at a predetermined frequency P 0 . Likewise, a determined transit time, which lies around a predetermined fluctuation Δt by a transit time lying in the reference spectrum, can be tolerated, ie regarded as coincidental, see 3 ,

Ebenso wird eine Warnmeldung generiert, wenn eine ermittelte Laufzeit, hier beispielsweise rt2, mit einer signifikant anderen Häufigkeit PX, auftritt, als die entsprechend dem Referenz-Laufzeitspektrum 16 erwartete Häufigkeit P2. Signifikant höher ist die Häufigkeit Px des Auftretens einer ermittelten Laufzeit rt2 beispielsweise dann, wenn die Häufigkeit Px mindestens um die vorgegebene Häufigkeit P0 von der erwarteten Häufigkeit P2 der Laufzeit rt2 im Referenz-Laufzeitspektrum 16 abweicht, siehe 3. Likewise, a warning message is generated when a determined transit time, in this case, for example, rt 2 , occurs with a significantly different frequency P X than that corresponding to the reference transit time spectrum 16 expected frequency P 2 . Significantly higher is the frequency P x of the occurrence of a determined transit time rt 2, for example, when the frequency P x at least by the predetermined frequency P 0 of the expected frequency P 2 of the term rt 2 in the reference time-of-flight spectrum 16 deviates, see 3 ,

Die Warnmeldung kann beispielsweise durch ein Lichtsignal an der Rechenvorrichtung 10 selbst ausgegeben werden oder aber als Nachricht über beispielsweise das Kommunikationsnetz 13 an eine Meldestelle 14 übermittelt werden, die eine weitere Auswertung durchführen bzw. Maßnahmen ergreifen kann. The warning message, for example, by a light signal to the computing device 10 itself or as a message over, for example, the communications network 13 to a hotline 14 be transmitted, which can perform a further evaluation or take action.

Besteht, wie in 1 dargestellt, der Programmcode 15 aus einer Mehrzahl von Teil-Programmcodes 151, 152, 153, so kann für jeden dieser Teil-Programmcodes 151, 152, 153 ein eigenes Referenz-Laufzeitspektrum 161, 162, 163 ermittelt und gespeichert werden. Nachfolgend wird die Laufzeit jedes einzelnen Teil-Programmcodes 151, 152, 153 überwacht. Dabei wird beispielsweise dann eine Warnmeldung generiert, wenn mindestens bei einem der Teil-Programmcodes 151, 152, 153 eine Abweichung der Laufzeit vom entsprechenden Referenz-Laufzeitspektrum 161, 162, 163 des Teil-Programmcodes 151, 152, 153 ermittelt wird. Consists of how in 1 shown, the program code 15 from a plurality of partial program codes 151 . 152 . 153 so for each of these sub-program codes 151 . 152 . 153 a separate reference runtime spectrum 161 . 162 . 163 be determined and stored. The following is the runtime of each subprogram code 151 . 152 . 153 supervised. In this case, for example, a warning message is generated if at least one of the sub-program codes 151 . 152 . 153 a deviation of the transit time from the corresponding reference transit time spectrum 161 . 162 . 163 of the partial program code 151 . 152 . 153 is determined.

Die Überwachungseinheit 12 ist ebenso dafür eingerichtet, die ermittelten Laufzeiten fortlaufend in einem Ist-Laufzeitspektrum 16´, siehe 3, aufzuzeichnen bzw. zu speichern. Auf Anforderung oder in vorgegebenen Zeitabständen kann das Ist-Laufzeitspektrum 16´ ausgelesen bzw. von der Rechenvorrichtung 10 an eine Meldestelle 14 zur Auswertung übermittelt werden und auf besondere Vorkommnisse überprüft werden. Dabei kann auch aus der Lage von nicht erwarteten Laufzeiten auf manipulierte Funktion bzw. den manipulierten Teil des Programmcodes 15 oder des Verfahrensablaufes geschlossen werden. Dies ist insbesondere auch gut möglich, wenn mehrere Ist-Laufzeitspektren für verschiedene Teilprogramme gespeichert und übertragen werden. The monitoring unit 12 is also set up to determine the run times determined continuously in an actual runtime spectrum 16' , please refer 3 to record or save. On request or at specified intervals, the actual runtime spectrum can be 16' read or from the computing device 10 to a hotline 14 be sent for evaluation and checked for specific incidents. It can also be the location of unexpected runtimes on manipulated function or the manipulated part of the program code 15 or the procedure closed. This is particularly well possible if several actual time-of-flight spectra are stored and transmitted for different program units.

Die Überwachungseinheit 12 kann entweder als ein spezieller Teil-Programmcode ausgebildet sein, der in der Prozessoreinheit der Rechenvorrichtung ausgeführt wird, oder als Funktion im Betriebssystem und/oder in einer Firmware der Rechenvorrichtung 10 ausgebildet sein. Letztere Variante hat den Vorteil, dass bei einer Manipulation des Programmcodes 15 oder aber bei einem Überschreiben des Programmcodes 15 die Überwachungseinheit 12 nicht ebenfalls geändert oder ganz außer Kraft gesetzt wird. The monitoring unit 12 may be embodied either as a special sub-program code executed in the processor unit of the computing device or as a function in the operating system and / or in a firmware of the computing device 10 be educated. The latter variant has the advantage that when manipulating the program code 15 or overwriting the program code 15 the monitoring unit 12 not also changed or completely overridden.

In 4 ist das Verfahren zur Erkennung einer Manipulation in der Rechenvorrichtung 10 in Form eines Ablaufdiagramms dargestellt. Das Verfahren beginnt im Schritt 20 damit, dass beispielsweise ein neuer Programmcode 15 oder ein geänderter Programmcode in die Rechenvorrichtung eingespielt wird. In einem ersten Verfahrensschritt 21, der als Aufnahmephase bezeichnet werden kann, wird ein Referenz-Laufzeitspektrum 16 für den Programmcode 15 ermittelt, in dem eine Vielzahl möglicher Ausführungsvarianten des Programmcodes ausgeführt werden und eine Laufzeit für jede Ausführungsvariante ermittelt und gespeichert wird. Dabei ist, wie bereits erwähnt, eine mehrfache Ausführung des Programmcodes 15 bzw. der möglichen Ausführungsvarianten vorteilhaft, insbesondere sollten die verschiedenen Ausführungsvarianten in relativen Häufigkeit zueinander ausgeführt werden, wie deren Auftreten im gewünschten Betrieb der Rechenvorrichtung, beispielsweise in einer Automatisierungsanlage, erwartet werden. Das Referenz-Laufzeitspektrum 16 erfasst neben den diskreten Laufzeiten der verschiedenen Ausführungsvarianten auch deren relative Häufigkeit zueinander. In 4 is the method of detecting a manipulation in the computing device 10 represented in the form of a flowchart. The procedure begins in step 20 with that, for example, a new program code 15 or a modified program code is loaded into the computing device. In a first process step 21 , which can be called the acquisition phase, becomes a reference runtime spectrum 16 for the program code 15 determined in which a variety of possible variants of the program code are executed and a running time is determined and stored for each variant embodiment. It is, as already mentioned, a multiple execution of the program code 15 or the possible embodiment variants advantageous, in particular, the various embodiments should be performed in relative frequency to each other, as their occurrence in the desired operation of the computing device, for example in an automation system, are expected. The reference maturity spectrum 16 In addition to the discrete transit times of the various design variants, their relative frequencies to one another are also recorded.

Eine mehrfache Ausführung des Programmcodes 15 in der Aufnahmephase hat ebenfalls den Vorteil, dass System- bzw. Vorrichtungsbedingte Schwankungen Δt der Laufzeiten für die Ausführungsvarianten ermittelt werden und somit abhängig von der Messgenauigkeit, aber auch der gemessenen Schwankung diese beim Vergleich einer ermittelten Laufzeit berücksichtigt werden kann. A multiple execution of the program code 15 in the recording phase also has the advantage that system or device-related fluctuations .DELTA.t the maturities are determined for the variants and thus depending on the measurement accuracy, but also the measured fluctuation, these can be taken into account when comparing a determined running time.

Im nachfolgenden Betrieb der Rechenvorrichtung 10, die auch als Überwachungsphase bezeichnet wird, wird der Programmcode 15 im Schritt 22 ausgeführt. Im Schritt 23 wird die Laufzeit der Ausführung des Programmcodes 15 ermittelt und mit den Laufzeiten des Referenz-Laufzeitspektrums 16 im Schritt 24 verglichen. Wird festgestellt, dass die ermittelte Laufzeit mit keiner im Referenz-Laufzeitspektrum 16 enthaltenen Laufzeit übereinstimmt, wird eine Warnmeldung im Verfahrensschritt 26 erzeugt und beispielsweise an eine Meldestelle 14 weitergeleitet. Stimmt die ermittelte Laufzeit mit einer Laufzeit des Referenz-Laufzeitspektrums überein, so wird im Schritt 25 die Häufigkeit des Auftretens der Laufzeit registriert und mit der zu erwartenden relativen Häufigkeit im Referenz-Laufzeitspektrum 16 verglichen. Wird die erwartete Häufigkeit signifikant über- oder unterschritten, wird im Schritt 27 ebenfalls eine Warnmeldung generiert. Abhängig von der Reaktion auf die Warnmeldung kann beispielsweise der Programmcode im Schritt 28 abgebrochen und beendet und auf ein redundantes Gerät umgeschaltet werden. In the subsequent operation of the computing device 10 , also referred to as the monitoring phase, becomes the program code 15 in step 22 executed. In step 23 The runtime is the execution of the program code 15 determined and with the maturities of the reference maturity spectrum 16 in step 24 compared. It is found that the determined runtime with none in the reference runtime spectrum 16 is included, a warning message appears in the process step 26 generated and, for example, to a hotline 14 forwarded. If the determined transit time coincides with a transit time of the reference transit time spectrum, then in step 25 the frequency of occurrence of the term is registered and with the expected relative frequency in the reference maturity spectrum 16 compared. If the expected frequency is significantly exceeded or undershot, in step 27 also generates a warning message. Depending on the response to the warning message, for example, the program code in step 28 aborted and terminated and switched to a redundant device.

Wird im Schritt 25 festgestellt, dass die aufgetretene Laufzeit im Rahmen der erwarteten Häufigkeit ist, wird die Ausführung des Programmcodes entsprechend einer vorgegebenen Funktion der Rechenvorrichtung erneut durchgeführt. Will in step 25 it has been determined that the runtime has occurred is within the expected frequency, execution of the program code is performed again in accordance with a predetermined function of the computing device.

Alle beschriebenen und/oder gezeichneten Merkmale können im Rahmen der Erfindung vorteilhaft miteinander kombiniert werden. Die Erfindung ist nicht auf die beschriebenen Ausführungsbeispiele beschränkt. All described and / or drawn features can be advantageously combined with each other within the scope of the invention. The invention is not limited to the described embodiments.

Claims (17)

Rechenvorrichtung mit einer Manipulations-Erkennung, die Dienste mit Echtzeitanforderungen mittels eines Programmcodes (15) bereitstellt und mindestens eine Prozessoreinheit(11) und eine Überwachungseinheit (12) umfasst, wobei die Prozessoreinheit (11) derart ausgebildet ist, den Programmcode (15) auszuführen, die Überwachungseinheit (12) derart ausgebildet ist, in einer Aufnahmephase ein Referenz-Laufzeitspektrum (16) für den Programmcode (15) zu ermitteln und zu speichern, indem eine Vielzahl möglicher Ausführungsvarianten des Programmcodes (15) ausgeführt werden und eine Laufzeit für jede Ausführungsvariante ermittelt und gespeichert wird, und nachfolgend fortlaufend in einer Überwachungsphase die Laufzeit der Ausführung des Programmcodes (15) zu ermitteln, die ermittelte Laufzeit mit dem Referenz-Laufzeitspektrum (16) zu vergleichen und eine Warnmeldung zu generieren, wenn die ermittelte Laufzeit mit keiner im Referenz-Laufzeitspektrum (16) enthaltenen Laufzeit übereinstimmt. Computation device with a manipulation detection, the services with real-time requirements by means of a program code ( 15 ) and at least one processor unit ( 11 ) and a monitoring unit ( 12 ), wherein the processor unit ( 11 ) is designed such that the program code ( 15 ), the monitoring unit ( 12 ) is designed in such a way, in a recording phase, a reference propagation time spectrum ( 16 ) for the program code ( 15 ) and to store, by a variety of possible variants of the program code ( 15 ) and a runtime is determined and stored for each variant embodiment, and subsequently continuously in a monitoring phase, the duration of execution of the program code ( 15 ) determine the determined transit time with the reference transit time spectrum ( 16 ) and generate a warning message if the determined transit time does not match any in the reference runtime spectrum ( 16 ) matches. Rechenvorrichtung nach Anspruch 1, wobei die Überwachungseinheit derart ausgebildet ist, dass jeder Laufzeit eines Referenz-Laufzeitspektrums (16) eine Häufigkeit des Auftretens dieser Laufzeit zugeordnet ist. A calculating device according to claim 1, wherein the monitoring unit is designed such that each transit time of a reference transit time spectrum ( 16 ) is assigned a frequency of occurrence of this term. Rechenvorrichtung nach Anspruch 1 oder 2, wobei die Prozessoreinheit (11) einen Programmcode (15), der eine Mehrzahl von Teil-Programmcodes (151, 152, 153) umfasst, ausführt und die Überwachungseinheit (12) derart ausgebildet ist, für jeden Teil-Programmcode (151, 152, 153) jeweils ein Referenz-Laufzeitspektrum (161, 162, 163) für die Ausführungsvarianten des Teil-Programmcodes (151, 152, 153) zu ermitteln und zu speichern, und nachfolgend fortlaufend die Laufzeit eines jeden Teil-Programmcodes (151, 152, 153) einzeln zu überwachen und bei mangelnder Übereinstimmung mindestens einer ermittelten Laufzeit eines Teil-Programmcodes (151, 152, 153) mit dem Referenz-Laufzeitspektrum (161, 162, 163) des Teil-Programmcodes (151, 152, 153) eine Warnmeldung zu generieren. A computing device according to claim 1 or 2, wherein the processor unit ( 11 ) a program code ( 15 ) containing a plurality of partial program codes ( 151 . 152 . 153 ) and executes the monitoring unit ( 12 ) is designed for each sub-program code ( 151 . 152 . 153 ) each have a reference time-of-flight spectrum ( 161 . 162 . 163 ) for the variants of the partial program code ( 151 . 152 . 153 ) and, consecutively, the duration of each partial program code ( 151 . 152 . 153 ) and if there is a mismatch of at least one determined duration of a partial program code ( 151 . 152 . 153 ) with the reference time-of-flight spectrum ( 161 . 162 . 163 ) of the partial program code ( 151 . 152 . 153 ) generate a warning message. Rechenvorrichtung nach einem der Ansprüche 1 bis 3, wobei die Überwachungseinheit (12) derart ausgebildet ist, eine Warnmeldung erst dann zu generieren, wenn das Auftreten einer nicht den Laufzeiten des Referenz-Laufzeitspektrums (15, 151, 152, 153) entsprechenden, ermittelten Laufzeit eine vorgegebenen Häufigkeit übersteigt. A calculating device according to one of claims 1 to 3, wherein the monitoring unit ( 12 ) is configured to generate a warning message only when the occurrence of a non-transit time of the reference runtime spectrum ( 15 . 151 . 152 . 153 ) corresponding predetermined duration exceeds a predetermined frequency. Rechenvorrichtung nach einem der Ansprüche 1 bis 4, wobei die Überwachungseinheit (12) derart ausgebildet ist, die ermittelten Laufzeiten fortlaufend in einem Ist-Laufzeitspektrum aufzuzeichnen bzw. zu speichern. Calculating device according to one of claims 1 to 4, wherein the monitoring unit ( 12 ) is designed in such a way, the determined transit times continuously record or store in an actual runtime spectrum. Rechenvorrichtung nach Anspruch 5, wobei die Überwachungseinheit (12) derart ausgebildet ist, das Ist-Laufzeitspektrum (16´) an eine Meldestelle (14) zu übermitteln. A calculating device according to claim 5, wherein the monitoring unit ( 12 ) is designed such that the actual transit time spectrum ( 16' ) to a hotline ( 14 ). Rechenvorrichtung nach einem der Ansprüche 1 bis 6, wobei die Rechenvorrichtung (10) eine speicherprogrammierbare Steuerungseinrichtung ist. A computing device according to any one of claims 1 to 6, wherein the computing device ( 10 ) is a programmable logic controller. Rechenvorrichtung nach einem der Ansprüche 1 bis 7, wobei die Überwachungseinheit (12) als ein spezieller Teil-Programmcode ausgebildet ist, der in der Prozessoreinheit (11) der Rechenvorrichtung (10) ausgeführt wird. Computing device according to one of claims 1 to 7, wherein the monitoring unit ( 12 ) is designed as a special partial program code which is stored in the processor unit ( 11 ) of the computing device ( 10 ) is performed. Rechenvorrichtung nach einem der Ansprüche 1 bis 7, wobei die Überwachungseinheit (12) in einem Betriebssystem und/oder in einer Firmware der Rechenvorrichtung (10) ausgebildet ist. Computing device according to one of claims 1 to 7, wherein the monitoring unit ( 12 ) in an operating system and / or in a firmware of the computing device ( 10 ) is trained. Verfahren zur Erkennung einer Manipulation einer Rechenvorrichtung(10), die Dienste mit Echtzeitanforderungen mittels eines Programmcodes (15) bereitstellt, umfassend die Schritte: – Ermitteln und Speichern (21) eines Referenz-Laufzeitspektrums (161, 162, 163) für den Programmcode (15), indem eine Vielzahl möglicher Ausführungsvarianten des Programmcodes (15) ausgeführt werden und eine Laufzeit für jede Ausführungsvariante ermittelt und gespeichert wird, nachfolgend in einer Überwachungsphase fortlaufend – Ausführen (22) des Programmcodes (15), – Ermitteln (23) der Laufzeit der Ausführung des Programmcodes (15) und Vergleichen (24) der ermittelten Laufzeit mit den Laufzeiten des Referenz-Laufzeitspektrums (161, 162, 163), und – Generieren (26) einer Warnmeldung, wenn die ermittelte Laufzeit mit keiner im Referenz-Laufzeitspektrum (161, 162, 163) enthaltenen Laufzeit übereinstimmt. Method for detecting a manipulation of a computing device ( 10 ), the services with real-time requirements by means of a program code ( 15 ), comprising the steps: - determining and storing ( 21 ) of a reference runtime spectrum ( 161 . 162 . 163 ) for the program code ( 15 ) by using a large number of possible variants of the program code ( 15 ) and a runtime for each variant is determined and stored, subsequently in a monitoring phase continuously - Execute ( 22 ) of the program code ( 15 ), - Determine ( 23 ) the duration of the execution of the program code ( 15 ) and comparing ( 24 ) of the determined duration with the maturities of the reference maturity spectrum ( 161 . 162 . 163 ), and - Generate ( 26 ) a warning message if the determined transit time does not match any in the reference runtime spectrum ( 161 . 162 . 163 ) matches. Verfahren nach Anspruch 10, wobei jeder Laufzeit eines Referenz-Laufzeitspektrums (161, 162, 163) eine Soll-Häufigkeit des Auftretens dieser Laufzeit zugeordnet wird und ein Warnsignal generiert wird, wenn die Laufzeit mit einer von der Soll-Häufigkeit signifikant abweichenden Häufigkeit auftritt. The method of claim 10, wherein each runtime of a reference runtime spectrum ( 161 . 162 . 163 ) is assigned a desired frequency of occurrence of this term and a warning signal is generated when the term occurs at a significantly different from the target frequency frequency. Verfahren nach Anspruch 10 oder 11, wobei der Programmcode (15) eine Mehrzahl von Teil-Programmcodes (151, 152, 153) umfasst und für jeden Teil-Programmcode (151, 152, 153) jeweils ein Referenz-Laufzeitspektrum (161, 162, 163) für die Ausführungsvarianten des Teil-Programmcodes (151, 152, 153) ermittelt und gespeichert wird, und nachfolgend fortlaufend die Laufzeit (161, 162, 163) eines jeden Teil-Programmcodes (151, 152, 153) einzeln überwacht wird und bei mangelnder Übereinstimmung mindestens einer ermittelten Laufzeit eines Teil-Programmcodes mit dem Referenz-Laufzeitspektrum des Teil-Programmcodes (151, 152, 153) eine Warnmeldung generiert wird. Method according to claim 10 or 11, wherein the program code ( 15 ) a plurality of partial program codes ( 151 . 152 . 153 ) and for each sub-program code ( 151 . 152 . 153 ) each have a reference time-of-flight spectrum ( 161 . 162 . 163 ) for the variants of the partial program code ( 151 . 152 . 153 ) is determined and stored, and subsequently the runtime ( 161 . 162 . 163 ) of each partial program code ( 151 . 152 . 153 ) is monitored individually and if there is a mismatch of at least one determined runtime of a partial program code with the reference runtime spectrum of the partial program code ( 151 . 152 . 153 ) a warning message is generated. Verfahren nach Anspruch 10 oder 12, wobei die Warnmeldung an eine Meldestelle (14) übermittelt wird. Method according to claim 10 or 12, wherein the warning message is sent to a reporting office ( 14 ) is transmitted. Verfahren nach einem der Ansprüche 10 bis 13, wobei eine Warnmeldung erst dann generiert wird, wenn die Häufigkeit der nicht den Laufzeiten des Referenz-Laufzeitspektrums (16) entsprechenden, ermittelten Laufzeiten eine vorgegebene Häufigkeit übersteigt. Method according to one of claims 10 to 13, wherein a warning message is generated only when the frequency of the non-transit times of the reference time-of-flight spectrum ( 16 ), determined transit times exceeds a predetermined frequency. Verfahren nach einem der Ansprüche 10 bis 13, wobei die ermittelten Laufzeiten fortlaufend in einem Ist-Laufzeitspektrum (16´) aufgezeichnet bzw. gespeichert werden. Method according to one of claims 10 to 13, wherein the determined transit times continuously in an actual runtime spectrum ( 16' ) are recorded or stored. Verfahren nach Anspruch 15, wobei das Ist-Laufzeitspektrum (16´) an eine Meldestelle (14) übermittelt wird. The method of claim 15, wherein the actual runtime spectrum ( 16' ) to a hotline ( 14 ) is transmitted. Computerprogrammprodukt mit Programmbefehlen zur Durchführung des Verfahrens nach Anspruch 10 bis 16. Computer program product with program instructions for carrying out the method according to claims 10 to 16.
DE102014208774.0A 2014-05-09 2014-05-09 Computing device with a manipulation detection and a method for detecting a manipulation of a computing device Withdrawn DE102014208774A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014208774.0A DE102014208774A1 (en) 2014-05-09 2014-05-09 Computing device with a manipulation detection and a method for detecting a manipulation of a computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014208774.0A DE102014208774A1 (en) 2014-05-09 2014-05-09 Computing device with a manipulation detection and a method for detecting a manipulation of a computing device

Publications (1)

Publication Number Publication Date
DE102014208774A1 true DE102014208774A1 (en) 2015-11-12

Family

ID=54336575

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014208774.0A Withdrawn DE102014208774A1 (en) 2014-05-09 2014-05-09 Computing device with a manipulation detection and a method for detecting a manipulation of a computing device

Country Status (1)

Country Link
DE (1) DE102014208774A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009019089A1 (en) * 2009-04-20 2010-11-04 Pilz Gmbh & Co. Kg Method and device for creating a user program for a safety control

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009019089A1 (en) * 2009-04-20 2010-11-04 Pilz Gmbh & Co. Kg Method and device for creating a user program for a safety control

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Ermedahl, A.; Engblom, J.: Execution Time Analysis for Embedded Real-Time Systems. In: Handbook of Real-Time Embedded Systems. Chapman & Hall/CRC, Januar 2007. ISBN: 1-58488-678-1. URL: http://www.es.mdh.se/publications/2840-
Ermedahl, A.; Engblom, J.: Execution Time Analysis for Embedded Real-Time Systems. In: Handbook of Real-Time Embedded Systems. Chapman & Hall/CRC, Januar 2007. ISBN: 1-58488-678-1. URL: http://www.es.mdh.se/publications/2840- *
Li, Y.A. et al.: Determining the Execution Time Distribution for a Data Parallel Program in a Heterogeneous Computing Environment. JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING 44, 35-52 (1997). URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.8588 *
Li, Y.A. et al.: Determining the Execution Time Distribution for a Data Parallel Program in a Heterogeneous Computing Environment. JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING 44, 35–52 (1997). URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.8588

Similar Documents

Publication Publication Date Title
EP3428756B1 (en) Integrity monitoring in automation systems
EP3097506B1 (en) Method and system for obtaining and analysing forensic data in a distributed computer infrastructure
EP2908195B1 (en) Method for monitoring security in an automation network, and automation network
EP2980662B1 (en) Protection for an automation component against program manipulation by means of signature matching
DE102015201443A1 (en) Method and device for controlling a watchdog
DE112008001528T5 (en) Multiprocessor system and control method therefor
DE102005048037A1 (en) Method for controlling / regulating at least one task
EP3430558A1 (en) Detecting a deviation of a security state of a computing device from a desired security state
WO2013164224A2 (en) Method and device for monitoring functions of a computer system, preferably of an engine control system of a motor vehicle
WO2015010831A1 (en) Monitoring redundant components
EP2954534B1 (en) Device and method for detecting unauthorised manipulations of the system state of an open-loop and closed-loop control unit of a nuclear plant
EP3752911A1 (en) Method for installing a program code packet onto a device, device, and motor vehicle
CN111289036A (en) Equipment fault early warning method, device, equipment and system
DE102014208774A1 (en) Computing device with a manipulation detection and a method for detecting a manipulation of a computing device
DE102009047724A1 (en) Program sequence monitoring method for operating field device utilized for e.g. measuring physical parameter at defined areas in process plant, involves comparing test value with another test value to monitor program sequence
EP3454154A1 (en) Automated detection of statistical dependencies between process messages
EP3486825A1 (en) Method and apparatus for the computer-aided determination of a severity of a breach in integrity
WO2006136189A1 (en) Method and apparatus for monitoring unauthorized access to the memory of an arithmetic unit, especially in a motor vehicle
EP3726309A1 (en) Method and system for monitoring the current integrity of a distributed automation system
DE102017200280B4 (en) Method and apparatus for qualifying a fault of a sensor by means of status information
WO2023031131A1 (en) Method for operating an automation system with at least one monitoring module, and attestation device
EP4142321A1 (en) Method for operating an automation system with at least one monitoring module and locking device
DE102009000874A1 (en) Method for improving analyzability of software error in microcontroller of motor vehicle, involves providing access to conditional information, and providing conditional information for analyzing software error
WO2017186596A1 (en) Control of a robot system
DE102016010069A1 (en) To detect a factor at the time of an abnormal state of a PC function capable controller

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee