DE102014204835A1 - Verfahren zur Überwachung einer Recheneinheit - Google Patents

Verfahren zur Überwachung einer Recheneinheit Download PDF

Info

Publication number
DE102014204835A1
DE102014204835A1 DE102014204835.4A DE102014204835A DE102014204835A1 DE 102014204835 A1 DE102014204835 A1 DE 102014204835A1 DE 102014204835 A DE102014204835 A DE 102014204835A DE 102014204835 A1 DE102014204835 A1 DE 102014204835A1
Authority
DE
Germany
Prior art keywords
processor unit
executed
security
processes
unit
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.)
Pending
Application number
DE102014204835.4A
Other languages
English (en)
Inventor
Axel Aue
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014204835.4A priority Critical patent/DE102014204835A1/de
Priority to KR1020150033562A priority patent/KR20150107636A/ko
Priority to US14/658,339 priority patent/US20150261979A1/en
Priority to CN201510113755.7A priority patent/CN104915275B/zh
Publication of DE102014204835A1 publication Critical patent/DE102014204835A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • G06F21/87Secure or tamper-resistant housings by means of encapsulation, e.g. for integrated circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Abstract

Die Erfindung betrifft ein Verfahren zur Überwachung eines Steuergeräts (1) mit einer monolithisch integrierten Prozessoranordnung aufweisend eine Prozessoreinheit (100) und eine Sicherheits-Prozessoreinheit (200), wobei die Prozessoreinheit (100) und die Sicherheits-Prozessoreinheit (200) jeweils einen oder mehrere Prozessorkerne (110, 210) und einen lokalen Speicher (120, 220) umfassen und monolithisch ausgebildet sind, wobei die Prozessoreinheit (100) unterschiedliche Prozesse (312, 313, 322, 323, 331, 332, 333) ausführt, wobei die Sicherheits-Prozessoreinheit (200) überwacht, ob die unterschiedlichen von der Prozessoreinheit (100) ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) nach bestimmten Prozess-Kriterien ausgeführt werden und wobei die Sicherheits-Prozessoreinheit (200) eine Sicherheitsmaßnahme durchführt, wenn einer der ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) nicht nach den bestimmten Prozess-Kriterien ausgeführt wird.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur Überwachung einer Recheneinheit mit einer Prozessoreinheit und einer Sicherheits-Prozessoreinheit.
  • Stand der Technik
  • Moderne Recheneinheiten wie Steuergeräte, beispielsweise von Kraftfahrzeugen, umfassen zumeist eine Prozessoreinheit. In Recheneinheiten werden permanent Prozesse durch die Prozessoreinheit ausgeführt. Eine derartige Prozessoreinheit kann dabei einen zweckmäßigen Prozessor bzw. Prozessorkern (Core) oder einen Multicore-Prozessor umfassen. Multicore-Prozessoren umfassen dabei mehrere (wenigstens zwei) Prozessorkerne. Ein Prozessorkern umfasst dabei eine arithmetisch-logische Einheit (ALU), welche das eigentliche elektronische Rechenwerk zur Ausführung von Tasks, Programmen, Rechenbefehlen, etc. darstellt, und weiterhin einen lokalen Speicher. Ein derartiger lokaler Speicher ist insbesondere als ein Registersatz aus einem oder mehreren Registern ausgebildet.
  • Moderne Prozessoreinheiten können in einem sogenannten Hypervisor-Modus betrieben werden. Dabei werden in der Prozessoreinheit sogenannte virtuelle Systeme bzw. virtuelle Maschinen eingerichtet. In diesen einzelnen virtuellen Systemen bzw. Maschinen können jeweils voneinander getrennte Betriebssysteme oder Anwendungen als Prozesse ausgeführt werden. Auf diese Weise können in einer realen, physischen Prozessoreinheit beispielsweise eine Vielzahl von virtuellen Prozessoreinheiten simuliert werden. Somit kann die Rechenleistung bzw. die Effizienz einer Prozessoreinheit auf kostengünstige Weise erhöht werden, ohne die Prozessoreinheit um zusätzliche physische, reale Ressourcen zu erweitern. Stattdessen können die vorhandenen physischen Ressourcen der Prozessoreinheit auf die virtuellen Maschinen bzw. Systeme aufgeteilt und von diesen gemeinsam genutzt werden.
  • Es kann sich als zweckmäßig erweisen, derartige Prozessoreinheiten mit einem Hypervisor-Modus in Recheneinheiten zu integrieren, beispielsweise in Steuergeräte für Kraftfahrzeuge, wie etwa ein Motorsteuergerät. Dabei muss allerdings gewährleistet werden, dass für den Kraftfahrzeugbereich geltende Sicherheitsanforderungen und Sicherheitsnormen eingehalten werden und dass Angriffe und Manipulation des Steuergeräts verhindert werden. Insbesondere soll ein "Know-How-Schutz" gewährleistet und "Chiptuning" unterbunden werden.
  • Im Zuge der Prozesse, die von einer Prozessoreinheit ausgeführt werden, werden insbesondere bestimmte Daten verarbeitet, beispielsweise spezielle Ansteuerungsbefehle, technische Daten, Steuer- oder Kennwerte. Diese Befehle bzw. Werte wurden von dem Hersteller oft in jahrelangen Entwicklungsprozessen mit hohem Forschungsaufwand durch lang andauernde und aufwendige Testreihen ermittelt und optimiert. Es ist somit im Sinne des Herstellers, dass diese Daten nicht von einer dritten Partei, einem Angreifer, ausgelesen werden können, um einen "Know-How-Schutz" zu garantieren.
  • Im Zuge eines "Chiptunings" versucht ein Angreifer die von der Prozessoreinheit ausgeführten Prozesse zu manipulieren und dabei Steuerparameter des Steuergeräts zu verändern, um Leistungssteigerungen herbeizuführen. Dies kann zu Bauteilschäden und Umweltverschmutzung führen, sogar zu Personenschäden, da die gesamte Fahrzeugauslegung (Antrieb, Bremsanlage) beeinträchtigt werden kann.
  • Es ist daher wünschenswert, eine Möglichkeit bereitzustellen, um eine Prozessoreinheit einer Recheneinheit, insbesondere eines Steuergeräts für ein Kraftfahrzeug, vor Angriffen zu schützen und ein Manipulieren der von der Prozessoreinheit ausgeführten Prozesse zu verhindern.
  • Offenbarung der Erfindung
  • Erfindungsgemäß wird ein Verfahren zur Überwachung einer Recheneinheit mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Die Recheneinheit umfasst dabei eine monolithisch integrierte Prozessoranordnung aufweisend eine Prozessoreinheit und eine Sicherheits-Prozessoreinheit. Die Prozessoreinheit und die Sicherheits-Prozessoreinheit sind als zwei separate, voneinander unabhängige Prozessoreinheiten ausgebildet, jedoch auf demselben Die bzw. (Silizium-)Substrat monolithisch integriert. Die Kommunikation zwischen Prozessoreinheit und Sicherheits-Prozessoreinheit ist somit besonders vor externen Zugriffen geschützt. Sowohl die Prozessoreinheit, als auch die Sicherheits-Prozessoreinheit umfassen jeweils insbesondere einen oder mehrere Prozessorkerne.
  • Weiterhin umfassen die Prozessoreinheit und die Sicherheits-Prozessoreinheit jeweils insbesondere einen lokalen Speicher, beispielsweise einen Flash-, ROM- und/oder RAM-Speicher, weiter insbesondere jeweils Schutzmechanismen gegen Spannungsänderungen, Taktänderungen und Temperaturänderungen.
  • Im Zuge des regulären Betriebs der Recheneinheit führt die Prozessoreinheit unterschiedliche Prozesse aus. Die Sicherheits-Prozessoreinheit überwacht diese von der Prozessoreinheit ausgeführten Prozesse und somit das Recheneinheit.
  • Vorteile der Erfindung
  • Die Überwachung der Recheneinheit bzw. die Überwachung der von der Prozessoreinheit ausgeführten Prozesse wird somit nicht mittels einer Software bzw. Anwendung durchgeführt, welche von der Prozessoreinheit selbst ausgeführt wird. Die Überwachung wird erfindungsgemäß durch eine eigene Hardware-Komponente durchgeführt, welche unabhängig von der zu überwachenden Prozessoreinheit ist. Die Sicherheits-Prozessoreinheit ist somit als ein Hardware Sicherheitsmodul (sog. Hardware Security Module, HSM) ausgebildet.
  • Dadurch, dass die Sicherheits-Prozessoreinheit eigene physische Ressourcen (Prozessorkern(e), lokalen Speicher, usw.) und insbesondere eigene Schutzmechanismen unabhängig von der Prozessoreinheit umfasst, ist die Sicherheits-Prozessoreinheit selbst gegen Manipulation und Angriffe geschützt.
  • Die somit eigens abgesicherte Sicherheits-Prozessoreinheit überwacht, ob die unterschiedlichen von der Prozessoreinheit ausgeführten Prozesse nach bestimmten Prozess-Kriterien ausgeführt werden. Diese Prozess-Kriterien beschreiben insbesondere einen regulären, fehlerfreien Betrieb der Recheneinheit. Wird einer der von der Prozessoreinheit ausgeführten Prozesse nicht nach diesen Prozess-Kriterien ausgeführt, deutet dies daraufhin, dass die Recheneinheit angegriffen bzw. manipuliert wurde. Insbesondere deutet dies daraufhin, dass ein Angreifer diesen Prozess manipuliert hat und beispielsweise Steuerparameter der Recheneinheit verändert hat. Somit erkennt die Sicherheits-Prozessoreinheit frühzeitig einen Angriff bzw. eine Manipulation der Recheneinheit und ergreift eine entsprechende Sicherheitsmaßnahme, um die Recheneinheit zu schützen.
  • Gemäß einer bevorzugten Ausführung der Erfindung wird die Prozessoreinheit in einem Hypervisor-Modus betrieben. Weiter bevorzugt werden in diesem Hypervisor-Modus in der Prozessoreinheit unterschiedliche virtuelle Systeme bzw. virtuelle Maschinen als Prozesse eingerichtet. Die virtuellen Systeme bzw. Maschinen werden dabei insbesondere von einem sogenannten Hypervisor eingerichtet. Dieser Hypervisor ist insbesondere ebenfalls ein von der Prozessoreinheit ausgeführter Prozess. Der Hypervisor kann insbesondere auch eine Hardware-Erweiterung sein, welche in einem privilegierten Betriebsmodus beitrieben wird und ein Umschalten zwischen den virtuelle Systeme bzw. virtuelle Maschinen durchführt. In diesen unterschiedlichen virtuellen Systemen bzw. Maschinen werden von der Prozessoreinheit wiederum jeweils weitere unterschiedliche Prozesse ausgeführt. Einerseits können dabei in den unterschiedlichen virtuellen Systemen bzw. Maschinen jeweils unterschiedliche Betriebssysteme als Prozesse ausgeführt werden und/oder unterschiedliche Anwendungen. Eine derartige Anwendung ist beispielsweise eine ausführbare Software, beispielsweise eine Steuerungssoftware.
  • Wie eingangs erwähnt, weist eine in einem Hypervisor-Modus betriebene Prozessoreinheit erhebliche Vorteile auf. Die vorhandenen physischen Ressourcen der Prozessoreinheit können auf die virtuelle Maschinen bzw. Systeme aufgeteilt und von diesen gemeinsam genutzt werden. Durch einen Hypervisor-Modus können unterschiedliche Prozesse in einer einzigen Prozessoreinheit getrennt und unabhängig voneinander ausgeführt werden.
  • Eine in einem Hypervisor-Modus betriebene Prozessoreinheit bietet jedoch auch Angriffspunkte und ist daher anfällig für Angriffe und Manipulationen. Beispielsweise besteht die Gefahr, dass der lokale Speicher der Prozessoreinheit modifiziert wird, beispielsweise über einen Debug-Zugang oder einen externen Boot-Modus. Somit können herkömmliche Überwachungs- und Schutzmethoden umgangen werden, insbesondere wenn diese als Software ausgebildet sind, welche von der Prozessoreinheit selbst ausgeführt wird.
  • Durch die Erfindung bzw. deren Ausgestaltungen kann die Prozessoreinheit, die in dem Hypervisor-Modus betrieben wird, besonders effizient gegen Angriffe und Manipulation geschützt werden. Dadurch, dass die Sicherheits-Prozessoreinheit und die Prozessoreinheit über eigene, voneinander unabhängige physische Ressourcen verfügen, ist die Sicherheits-Prozessoreinheit selbst gegen Manipulation und Angriffe geschützt. Die Sicherheits-Prozessoreinheit bietet sich daher besonders an, die unterschiedlichen Prozesse, die von der Prozessoreinheit in dem Hypervisor-Modus ausgeführt werden, zu überwachen, insbesondere wenn die Sicherheits-Prozessoreinheit und die Prozessoreinheit monolithisch integriert ausgebildet sind. Die Sicherheits-Prozessoreinheit ist somit insbesondere als Hardware Sicherheitsmodul (HSM) der Prozessoreinheit im Hypervisor-Modus ausgebildet.
  • Weiter bevorzugt wird die Recheneinheit in einem Kraftfahrzeug verwendet, beispielsweise als ein Motorsteuergerät. Die Erfindung eignet sich besonders für ein Steuergerät eines Kraftfahrzeugs, dessen Prozessoreinheit in dem Hypervisor-Modus betrieben wird. Wie eingangs erläutert, kann es sich als zweckmäßig erweisen, die Prozessoreinheiten des Steuergeräts in dem Hypervisor-Modus zu betreiben. In den unterschiedlichen virtuellen Systemen bzw. Maschinen in dem Hypervisor-Modus werden als Prozesse insbesondere Ansteuerbefehle für das Kraftfahrzeug bestimmt und Messwerte erfasst und ausgewertet. Durch die Erfindung kann ein derartiges Steuergerät eines Kraftfahrzeugs besonders effizient gesichert werden und somit ein "Know-How-Schutz" gewährleistet und "Chiptuning" unterbunden werden.
  • Vorteilhafterweise überwacht die Sicherheits-Prozessoreinheit, ob die von der Prozessoreinheit ausgeführten Prozesse autorisiert sind, ausgeführt zu werden. Prozesse, die autorisiert sind, ausgeführt zu werden, sind dabei Prozesse, welche von der Prozessoreinheit im Zuge des regulären Betriebs der Recheneinheit ausgeführt werden dürfen bzw. sollen. Die Prozess-Kriterien beschreiben somit insbesondere, welche Prozesse im regulären Betrieb der Recheneinheit ausgeführt werden sollen. Führt die Prozessoreinheit einen nicht-autorisierten Prozess aus, also einen Prozess, der nicht autorisiert ist, ausgeführt zu werden, führt die Sicherheits-Prozessoreinheit die Sicherheitsmaßnahme durch.
  • Ein derartiger nicht-autorisierter Prozess kann beispielsweise eine schädliche Software eines Angreifers sein. Somit führt die Sicherheits-Prozessoreinheit insbesondere eine erste Sicherung bzw. Überwachung der Recheneinheit durch und überprüft, ob unerwünschte, fremdartige und/oder schädliche Prozesse ausgeführt werden.
  • Bevorzugt überwacht die Sicherheits-Prozessoreinheit, ob die Prozessoreinheit einen bestimmten Prozess nach einem bestimmten Prozess-Kriterium ausführt. Im Zuge des regulären Betriebs der Recheneinheit sollen derartige bestimmte Prozesse nach bestimmten Prozess-Kriterien ausgeführt werden, beispielsweise in einer bestimmten Reihenfolge. Werden derartige bestimmte Prozesse nicht nach diesen bestimmten Prozess-Kriterien ausgeführt, deutet dies daraufhin, dass die Recheneinheit angegriffen bzw. manipuliert wurde.
  • Somit führt die Sicherheits-Prozessoreinheit insbesondere eine zweite Sicherung bzw. Überwachung der Recheneinheit durch und überprüft, ob Prozesse korrekt nach vorgeschrieben Regeln ausgeführt werden.
  • Bevorzugt ist ein derartiges bestimmtes Prozess-Kriterium, dass die Prozessoreinheit den bestimmten Prozess in einem bestimmten Zeit- und/oder Winkelintervall einer rotierenden Referenzwelle (im Kraftfahrzeug insbesondere der Kurbelwelle) ausführt und/oder dass die Prozessoreinheit den bestimmten Prozess in dem bestimmten Zeit- und/oder Winkelintervall eine bestimmte Mindestanzahl an Malen ausführt. Wird der bestimmte Prozess beispielsweise nicht alle 10 ms ausgeführt oder beispielsweise nicht mindestens einmal in einem Zeitintervall von 10 ms, deutet dies auf einen Angriff bzw. eine Manipulation der Recheneinheit hin. Ein Winkelintervall betrifft dabei insbesondere Kurbelwellenwinkel eines Kraftfahrzeugs.
  • Beispielsweise kann ein derartiger bestimmter Prozess das Bestimmen eines Ansteuerungsbefehls oder das Erfassen eines Messwerts sein. Beispielsweise im automotiven Bereich kann ein derartiger bestimmter Prozess das Bestimmen einer Kraftstoffeinspritzmenge oder das Erfassen eines Temperatur- oder Druckmesswerts sein. In einem Kraftfahrzeug müssen derartige Prozesse in einem festen Zeitintervall wiederholt werden oder in einem festen Winkelintervall des Kurbelwellenwinkels. Die Kraftstoffeinspritzmenge muss beispielsweise zu festen Winkelwerten des Kurbelwellenwinkels bestimmt werden, Temperatur- oder Druckmesswerte werden meist in vorgegebenen Zeitintervallen erfasst.
  • Vorzugsweise überwacht die Sicherheits-Prozessoreinheit eine Laufzeit der unterschiedlichen von der Prozessoreinheit ausgeführten Prozesse. Ein Prozess-Kriterium ist dabei insbesondere, dass die Laufzeit der unterschiedlichen Prozesse jeweils eine bestimmte Maximallaufzeit nicht überschreiten und/oder eine bestimmte Minimallaufzeit nicht unterschreiten darf. Über- bzw. unterschreitet die Laufzeit eines Prozesses eine entsprechende Maximal- bzw. Minimallaufzeit, deutet dies auf einen Angriff bzw. eine Manipulation der Recheneinheit hin und die Sicherheits-Prozessoreinheit führt die Sicherheitsmaßnahme durch.
  • Gemäß einer vorteilhaften Ausführungsform der Erfindung hinterlegt die Sicherheits-Prozessoreinheit für die unterschiedlichen von der Prozessoreinheit ausgeführten Prozesse jeweils, wie oft die Prozessoreinheit die unterschiedlichen Prozesse in einem bestimmten Zeit- und/oder Winkelintervall ausführt. Insbesondere hinterlegt die Sicherheits-Prozessoreinheit diese Informationen in einer Tabelle. Jedem Prozess ist insbesondere eine individuelle Identifikationsnummer (ID-Nummer) zugeordnet. Gemäß diesen ID-Nummern werden die entsprechenden Informationen der einzelnen Prozesse in der Tabelle hinterlegt. Insbesondere wird dabei auch die Laufzeit der unterschiedlichen von der Prozessoreinheit ausgeführten Prozesse hinterlegt. Insbesondere überwacht die Sicherheits-Prozessoreinheit anhand dieser hinterlegten Informationen, ob die unterschiedlichen Prozesse nach bestimmten Prozess-Kriterien ausgeführt werden.
  • Bevorzugt vergleicht die Sicherheits-Prozessoreinheit diese hinterlegten Informationen mit vorgegebenen Informationen. Insbesondere vergleicht die Sicherheits-Prozessoreinheit die angelegte Tabelle mit einer vorgegebenen Tabelle. In diesen vorgegebenen Informationen bzw. in dieser vorgegebenen Tabelle ist hinterlegt, welche Prozesse im Zuge des regulären Betriebs der Recheneinheit in welchen Zeit- und/oder Winkelintervallen wie oft ausgeführt werden sollen. Durch diesen Vergleich überwacht die Sicherheits-Prozessoreinheit somit, ob die unterschiedlichen ausgeführten Prozesse nach den bestimmten Prozess-Kriterien ausgeführt werden. Durch diesen Vergleich wird einerseits überwacht, ob bestimmte Prozesse, wie oben erläutert, nach bestimmten Prozess-Kriterien ausgeführt werden (z.B. mindestens einmal in einem Zeitintervall). Andererseits wird dadurch überwacht, ob ausgeführte Prozesse autorisiert sind, ausgeführt zu werden.
  • Vorzugsweise verhindert die Sicherheits-Prozessoreinheit als Sicherheitsmaßnahme eine weitere Ausführung eines entsprechenden Prozesses, welcher nicht nach den bestimmten Prozess-Kriterien ausgeführt wird. Weiter insbesondere wird dieser entsprechende Prozess gesperrt. Ein erneutes Ausführen dieses entsprechenden Prozesses wird somit verhindert. Weiter bevorzugt führt die Sicherheits-Prozessoreinheit als Sicherheitsmaßnahme einen Reset der Prozessoreinheit durch und/oder erstellt einen Fehlereintrag. Ein derartiger Fehlereintrag kann beispielsweise in einem EEPROM-Speicher erstellt werden. Anhand eines derartigen Fehlereintrags kann beispielsweise eine Wartung der Recheneinheit durchgeführt werden.
  • Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs oder ein Mikrocontroller in einem Kraftfahrzeug, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
  • Auch die Implementierung des Verfahrens in Form von Software ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn eine ausführende Recheneinheit noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
  • Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt schematisch eine bevorzugte Ausgestaltung einer Recheneinheit, die dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
  • 2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
  • Ausführungsform(en) der Erfindung
  • In 1 ist eine Recheneinheit stark vereinfacht und schematisch dargestellt und mit 1 bezeichnet. In diesem Beispiel ist die Recheneinheit als ein Motorsteuergerät 1 eines Kraftfahrzeugs ausgebildet, welches dazu eingerichtet ist, eine Motorsteuerung einer Brennkraftmaschine des Kraftfahrzeugs durchzuführen.
  • Das Steuergerät weist eine monolithisch integrierte Prozessoranordnung 10 aufweisend eine Prozessoreinheit 100 und eine Sicherheits-Prozessoreinheit 200 auf. Die Prozessoreinheit 100 und die Sicherheits-Prozessoreinheit 200 sind somit zwei unabhängige individuelle Prozessoreinheiten, die auf einem gemeinsamen Die 101, also auf einem gemeinsamen (Silizium-)Substrat, monolithisch integriert sind.
  • Die Prozessoreinheit 100 weist dabei einen Prozessorkern 110 und einen lokalen Speicher 120, beispielsweise einen RAM oder Flash-Speicher, auf. Analog weist auch die Sicherheits-Prozessoreinheit 200 einen Prozessorkern 210 und einen lokalen Speicher 220, beispielsweise einen RAM oder Flash-Speicher, auf.
  • Die Prozessoreinheit 100 wird in einem Hypervisor-Modus betrieben. Dabei sind in diesem Beispiel drei virtuelle Systeme 310, 320, 330 als Prozesse in der Prozessoreinheit 100 eingerichtet. Die virtuelle Systeme 310, 320, 330 stellen drei unabhängige Systeme dar, welche von der Prozessoreinheit 100 simuliert werden.
  • Die physischen Ressourcen, wie der Flash-Speicher 120, der Prozessoreinheit 100 sind dabei zweckmäßig auf die drei virtuellen Systeme 310, 320, 330 aufgeteilt. Die drei virtuellen Systeme 310, 320, 330 sind in 1 daher als drei Teile des Prozessorkerns 110 der Prozessoreinheit 100 dargestellt. Die Aufteilung des Flash-Speichers 120 ist in 1 dadurch angedeutet, dass ein erster Speicherbereich 121 des Flash-Speichers 120 dem ersten virtuellen System 310 zugeteilt ist, ein zweiter Speicherbereich 122 dem zweiten virtuellen System 320 und ein dritter Speicherbereich 123 dem dritten virtuellen System 330.
  • In dem ersten und zweiten virtuellen System 310 bzw. 320 wird jeweils ein Betriebssystem 311 bzw. 321 als Prozess von der Prozessoreinheit 100 ausgeführt. Weiterhin führen diese Betriebssysteme 311 bzw. 321 jeweils Anwendungen 312 und 313 bzw. 322 und 323 als weitere Prozesse der Prozessoreinheit 100 aus.
  • In dem dritten virtuellen System 330 wird kein Betriebssystem ausgeführt. Die Prozessoreinheit 100 führt in dem dritten virtuellen System 330 direkt Anwendungen 331, 332, 333 als Prozesse aus.
  • Derartige Prozesse 312, 313, 322, 323, 331, 332, 333, die von der ersten Prozessoreinheit 100 ausgeführt werden, sind beispielsweise das Erfassen von Abgaswerten der Brennkraftmaschine (beispielsweise mittels einer Lambda-Sonde), das Erfassen einer Kühlwassertemperatur der Brennkraftmaschine (beispielsweise mittels eines Temperaturfühlers) oder das Bestimmen einer Kraftstoffeinspritzmenge und einer Zusammensetzung eines Kraftstoff-Luft-Gemischs für die Brennkraftmaschine.
  • Das Steuergerät 1 ist weiterhin dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen. Dabei überwacht die Sicherheits-Prozessoreinheit 200 die von der Prozessoreinheit 100 ausgeführten Prozesse 312, 313, 322, 323, 331, 332, 333.
  • Eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens ist in 2 schematisch als ein Blockdiagramm 400 dargestellt und wird im Folgenden unter Bezug auf die 1 und 2 beispielhaft erläutert.
  • Im folgenden speziellen Beispiel wird der Fall betrachtet, dass die Sicherheits-Prozessoreinheit 200 die drei Prozesse 322 und 331 überwacht. Im Zuge des Prozesses 322 wird beispielsweise die Kühlwassertemperatur erfasst. Im Zuge des Prozesses 331 wird beispielsweise die Kraftstoffeinspritzmenge bestimmt.
  • Im Zuge des regulären Betriebs des Steuergeräts 1 wird die Kühlwassertemperatur in festen Zeitabständen von 10 ms erfasst. Die Kraftstoffeinspritzmenge wird zu fest vorgegebenen Winkelwerten des Kurbelwellenwinkels der Brennkraftmaschine bestimmt, beispielsweise bei einem Kurbelwellenwinkel von 90°KW.
  • Ein Prozess-Kriterium für den Prozess 322 ist somit, dass die Prozessoreinheit 100 den Prozess 322 in einem Zeitintervall von 10 ms mindestens einmal ausführt. Ein Prozess-Kriterium für den Prozess 331 ist somit, dass die Prozessoreinheit 100 den Prozess 331 in einem Winkelintervall von 720°KW genau bei einem Kurbelwellenwinkel von 90°KW ausführt. Diese beiden Informationen sind in einer entsprechenden vorgegebenen Soll-Tabelle hinterlegt.
  • In Schritt 401 überwacht die Sicherheits-Prozessoreinheit 200, wie oft die Prozessoreinheit 100 den Prozess 322 ausführt und bei welchen Kurbelwellenwinkeln die Prozessoreinheit 100 den Prozess 331 ausführt. In Schritt 402 hinterlegt die Sicherheits-Prozessoreinheit 200 diese in Schritt 401 ermittelten Informationen in eine Ist-Tabelle.
  • In Schritt 403 vergleicht die Sicherheits-Prozessoreinheit 200 die Ist-Tabelle mit der Soll-Tabelle. Somit überwacht die Sicherheits-Prozessoreinheit 200, ob die Prozesse 322 und 331 von der Prozessoreinheit 100 nach den bestimmten Prozess-Kriterien ausgeführt werden.
  • Ergibt sich aus dem Vergleich, dass der Prozess 322 gemäß dem entsprechenden Prozess-Kriterium zumindest einmal in dem Zeitintervall von 10 ms ausgeführt wurde und dass der Prozess 331 gemäß dem entsprechenden Prozess-Kriterium bei dem Kurbelwellenwinkel von 90°KW ausgeführt wurde, so deutet dies darauf hin, dass das Steuergerät 1 nicht manipuliert wurde. Die Sicherheits-Prozessoreinheit 200 beginnt daraufhin wieder mit Schritt 401, angedeutet durch Bezugszeichen 403a.
  • Ergibt sich aus dem Vergleich jedoch, dass entweder der Prozess 322 nicht zumindest einmal in dem Zeitintervall von 10 ms ausgeführt wurde und/oder dass der Prozess 331 bei einem anderen Kurbelwellenwinkel als 90°KW ausgeführt wurde, so deutet dies darauf hin, dass das Steuergerät 1 manipuliert wurde. In Schritt 404 erstellt die Sicherheits-Prozessoreinheit 200 einen Fehlereintrag und führt einen Reset der Prozessoreinheit 100 durch. Daraufhin beginnt die Sicherheits-Prozessoreinheit 200 wieder mit Schritt 401, angedeutet durch Bezugszeichen 404a.
  • Führt die Prozessoreinheit 100 zusätzlich zu den Prozessen 322 und 331 beispielsweise den Prozess 333 aus, hinterlegt die Sicherheits-Prozessoreinheit 200 diese Information in Schritt 402 ebenfalls in der Ist-Tabelle. Ergibt sich aus dem Vergleich in Schritt 403, dass der Prozess 333 nicht ausgeführt werden soll, so ist der der Prozess 333 ein nicht-autorisierter Prozess. Dies kann beispielsweise darauf hindeuten, dass das Steuergerät 1 manipuliert wurde.
  • In Schritt 404 verhindert die Sicherheits-Prozessoreinheit 200 eine weitere Ausführung des Prozesses 333, erstellt einen Fehlereintrag und führt einen Reset der Prozessoreinheit 100 durch.
  • Es sei angemerkt, dass das Steuergerät 1 auch mehrere Prozessoreinheiten 100 umfassen kann, welche analog zu der Prozessoreinheiten 100 ausgebildet sind. Sämtliche derartiger Prozessoreinheiten 100 werden jeweils auf analoge Weise durch die Sicherheits-Prozessoreinheit 200 überwacht. Die Sicherheits-Prozessoreinheit 200 überwacht somit sämtliche Prozesse, die von den einzelnen Prozessoreinheiten 100 ausgeführt werden.

Claims (13)

  1. Verfahren zur Überwachung einer Recheneinheit (1) mit einer monolithisch integrierten Prozessoranordnung (10) aufweisend eine Prozessoreinheit (100) und eine Sicherheits-Prozessoreinheit (200), – wobei die Prozessoreinheit (100) und die Sicherheits-Prozessoreinheit (200) jeweils einen oder mehrere Prozessorkerne (110, 210) und einen lokalen Speicher (120, 220) umfassen, – wobei die Prozessoreinheit (100) unterschiedliche Prozesse (312, 313, 322, 323, 331, 332, 333) ausführt, – wobei die Sicherheits-Prozessoreinheit (200) überwacht, ob die unterschiedlichen von der Prozessoreinheit (100) ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) nach bestimmten Prozess-Kriterien ausgeführt werden und – wobei die Sicherheits-Prozessoreinheit (200) eine Sicherheitsmaßnahme durchführt, wenn einer der ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) nicht nach den bestimmten Prozess-Kriterien ausgeführt wird.
  2. Verfahren nach Anspruch 1, wobei die Prozessoreinheit (100) in einem Hypervisor-Modus betrieben wird.
  3. Verfahren nach Anspruch 2, wobei in der Prozessoreinheit (100) unterschiedliche virtuelle Systeme (310, 320, 330) als Prozesse eingerichtet werden und wobei die Prozessoreinheit (100) in diesen unterschiedlichen virtuellen Systemen (310, 320, 330) jeweils ein Betriebssystem (311, 312) und/oder Anwendungen (312, 313, 322, 323, 331, 332, 333) als Prozesse ausführt.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei die Sicherheits-Prozessoreinheit (200) als Prozess-Kriterium überwacht, ob die von der Prozessoreinheit (100) ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) autorisiert sind, ausgeführt zu werden.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei die Sicherheits-Prozessoreinheit (200) als Prozess-Kriterium überwacht, ob die Prozessoreinheit (100) den bestimmte Prozess (322, 331) in einem bestimmten Zeit- und/oder Winkelintervall einer rotierenden Referenzwelle ausführt und/oder ob die Prozessoreinheit (100) den bestimmten Prozess (322, 331) in dem bestimmten Zeit- und/oder Winkelintervall der rotierenden Referenzwelle eine bestimmte Mindestanzahl an Malen ausführt.
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei die Sicherheits-Prozessoreinheit (200) als Prozess-Kriterium eine Laufzeit der unterschiedlichen von der Prozessoreinheit ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) überwacht.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei die Sicherheits-Prozessoreinheit (200) für die unterschiedlichen von der Prozessoreinheit (100) ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) jeweils hinterlegt, wie oft die Prozessoreinheit (100) die unterschiedlichen Prozesse (312, 313, 322, 323, 331, 332, 333) in einem bestimmten Zeit- und/oder Winkelintervall der rotierenden Referenzwelle ausführt.
  8. Verfahren nach Anspruch 7, wobei die Sicherheits-Prozessoreinheit (200) diese hinterlegten Informationen mit vorgegebenen Informationen vergleicht und somit überwacht, ob die von der Prozessoreinheit (100) ausgeführten Prozesse (312, 313, 322, 323, 331, 332, 333) autorisiert sind, ausgeführt zu werden.
  9. Verfahren nach einem der vorstehenden Ansprüche, wobei die Sicherheits-Prozessoreinheit (200) als Sicherheitsmaßnahme eine weitere Ausführung des Prozesses, welcher nicht nach den bestimmten Prozess-Kriterien ausgeführt wird, verhindert, und/oder einen Reset der Prozessoreinheit (100) durchführt und/oder einen Fehlereintrag erstellt.
  10. Verfahren nach einem der vorstehenden Ansprüche, wobei die Recheneinheit in einem Kraftfahrzeug verwendet wird.
  11. Recheneinheit (1), die dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.
  12. Computerprogramm, das eine Recheneinheit (1) dazu veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen, wenn es auf der Recheneinheit (1) ausgeführt wird.
  13. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 12.
DE102014204835.4A 2014-03-14 2014-03-14 Verfahren zur Überwachung einer Recheneinheit Pending DE102014204835A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102014204835.4A DE102014204835A1 (de) 2014-03-14 2014-03-14 Verfahren zur Überwachung einer Recheneinheit
KR1020150033562A KR20150107636A (ko) 2014-03-14 2015-03-11 컴퓨터 유닛 모니터링 방법
US14/658,339 US20150261979A1 (en) 2014-03-14 2015-03-16 Method for monitoring an arithmetic unit
CN201510113755.7A CN104915275B (zh) 2014-03-14 2015-03-16 用于监控运算单元的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014204835.4A DE102014204835A1 (de) 2014-03-14 2014-03-14 Verfahren zur Überwachung einer Recheneinheit

Publications (1)

Publication Number Publication Date
DE102014204835A1 true DE102014204835A1 (de) 2015-09-17

Family

ID=54010217

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014204835.4A Pending DE102014204835A1 (de) 2014-03-14 2014-03-14 Verfahren zur Überwachung einer Recheneinheit

Country Status (4)

Country Link
US (1) US20150261979A1 (de)
KR (1) KR20150107636A (de)
CN (1) CN104915275B (de)
DE (1) DE102014204835A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3291094A1 (de) * 2016-08-30 2018-03-07 Airbus Defence and Space GmbH Prozessorsystem und verfahren zur überwachung von prozessoren
CN107358124B (zh) * 2017-06-14 2020-05-22 北京多思安全芯片科技有限公司 一种处理器
CN109840412B (zh) * 2018-12-21 2021-07-06 成都海光集成电路设计有限公司 安全控制方法及安全处理器、计算机系统
EP4012586A1 (de) * 2020-12-10 2022-06-15 Nagravision S.A. System zur aktiven überwachung und sicherung einer rechen- und datenintensiven elektronischen vorrichtung, zugehöriges verfahren und computerprogrammprodukt

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
JP3427572B2 (ja) * 1994-09-26 2003-07-22 株式会社デンソー 車両等の盗難防止装置
JP3587000B2 (ja) * 1996-11-01 2004-11-10 ヤマハ株式会社 不正コピー防止システム、監視ノード及び送受信ノード
US20070266435A1 (en) * 2005-12-28 2007-11-15 Williams Paul D System and method for intrusion detection in a computer system
DE102010007349B4 (de) * 2009-02-09 2018-03-01 Fuji Electric Co., Ltd. Anomalienüberwachungsvorrichtung
US8255578B2 (en) * 2010-06-14 2012-08-28 Microsoft Corporation Preventing access to a device from an external interface
US20120204186A1 (en) * 2011-02-09 2012-08-09 International Business Machines Corporation Processor resource capacity management in an information handling system
DE102011106687A1 (de) * 2011-07-06 2013-01-10 Festo Ag & Co. Kg Signalverarbeitungssystem und Verfahren zur Verarbeitung von Signalen in einem Busknoten
TWI469098B (zh) * 2013-01-25 2015-01-11 Hon Hai Prec Ind Co Ltd 安全監控系統及安全監控方法
DE102014208848A1 (de) * 2014-05-12 2015-11-12 Robert Bosch Gmbh Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls

Also Published As

Publication number Publication date
CN104915275B (zh) 2020-04-14
US20150261979A1 (en) 2015-09-17
CN104915275A (zh) 2015-09-16
KR20150107636A (ko) 2015-09-23

Similar Documents

Publication Publication Date Title
DE202013102179U1 (de) System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode
DE102014204835A1 (de) Verfahren zur Überwachung einer Recheneinheit
WO2009021789A1 (de) Verfahren und vorrichtung zur sicherung eines programms gegen eine kontrollflussmanipulation und gegen einen fehlerhaften programmablauf
DE112013002012B4 (de) Verfahren eines Erkennens von Schadsoftware in einem Betriebssystemkern
DE102014208855A1 (de) Verfahren zum Durchführen einer Kommunikation zwischen Steuergeräten
EP4187417A1 (de) Erkennen einer abweichung eines sicherheitszustandes einer recheneinrichtung von einem sollsicherheitszustand
DE102012207215A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems, vorzugsweise eines Motorsteuersystems eines Kraftfahrzeuges
DE112012004661T5 (de) System zum Schutz von eingebettetem Software-Code
EP3095065B1 (de) Vorrichtung und verfahren zum detektieren einer manipulation an einem programmcode
EP3566398B1 (de) Verfahren und halbleiterschaltkreis zum schützen eines betriebssystems eines sicherheitssystems eines fahrzeugs
DE102013214218A1 (de) Verfahren und system zum überprüfen von software
EP3036676B1 (de) Verfahren zur absicherung einer integrierten schaltung gegen unberechtigte zugriffe
EP3568793B1 (de) Verfahren und computer mit einer sicherung gegen cyberkriminelle bedrohungen
DE102022204716A1 (de) Rechnersystem zur bereitstellung einer mehrzahl von funktionen für eine vorrichtung, insbesondere für ein fahrzeug, mittels separation einer mehrzahl von zonen
EP3074862B1 (de) Verfahren für einen sicheren hochfahrablauf eines elektronischen systems
DE102016200413A1 (de) Mikrocomputer
EP3822775A1 (de) Verfahren zum sicheren starten einer gerätesoftware, insbesondere eines betriebssystems, eines elektronischen gerätes
DE102014222181A1 (de) Verfahren zum Betreiben eines Steuergeräts
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
DE102015203319A1 (de) Schaltungsanordnung und Verfahren für Befehlsstromschutz
DE102015112837A1 (de) Vorrichtung und Verfahren zur Verhinderung des Klonens von Code
DE102021212994B3 (de) Verfahren zur Erkennung von auf eine Manipulation hindeutenden Anomalien während eines sicheren Startvorgangs einer softwaregesteuerten Vorrichtung
DE102008048066A1 (de) Verfahren zum Schutz von Software für eingebettete Anwendungen vor unerlaubtem Zugriff
EP3876123B1 (de) Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung
DE102018210733A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed