DE102015223757A1 - Verfahren zum Betreiben eines Mikrocontrollers - Google Patents

Verfahren zum Betreiben eines Mikrocontrollers Download PDF

Info

Publication number
DE102015223757A1
DE102015223757A1 DE102015223757.5A DE102015223757A DE102015223757A1 DE 102015223757 A1 DE102015223757 A1 DE 102015223757A1 DE 102015223757 A DE102015223757 A DE 102015223757A DE 102015223757 A1 DE102015223757 A1 DE 102015223757A1
Authority
DE
Germany
Prior art keywords
access
memory
protection unit
memory protection
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.)
Withdrawn
Application number
DE102015223757.5A
Other languages
English (en)
Inventor
Simon Hufnagel
Jens Gladigau
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 DE102015223757.5A priority Critical patent/DE102015223757A1/de
Priority to PCT/EP2016/077964 priority patent/WO2017093029A1/de
Publication of DE102015223757A1 publication Critical patent/DE102015223757A1/de
Withdrawn 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Mikrocontrollers (101), wobei in einer Speicherschutzeinheit (120) Zugriffsrechte von in dem Mikrocontroller (101) ausgeführten Prozessen (111, 112, 113, 114) auf unterschiedliche Speicherbereiche (131, 132, 133) hinterlegt sind, wobei, wenn ein erster Prozess (113) auf einen bestimmten Speicherbereich (132) in einer bestimmten Weise zugreifen möchte, von der Speicherschutzeinheit (120) für den Fall, dass eine Zugriffsbedingung erfüllt ist, überprüft wird, ob der erste Prozess (113) auf den bestimmten Speicherbereich (132) zugreifen darf, und nicht, ob der erste Prozess (113) in der bestimmten Weise zugreifen darf, und der Zugriff auf den Speicherbereich (132) nur zugelassen wird, wenn der erste Prozess (113) auf den bestimmten Speicherbereich (132) zugreifen darf.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben eines Mikrocontrollers sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
  • Stand der Technik
  • Mikrocontroller, beispielsweise für eingebettete Systeme, weisen u.a. eine Prozessoreinheit und eine Speichereinheit, wie ROM, RAM, Flash und/oder EEPROM, mit unterschiedlichen Speicherbereichen auf. Die Prozessoreinheit kann einen oder mehrere Prozessorkerne umfassen, in welchen jeweils unterschiedliche Prozesse (Tasks, Programmen, Rechenbefehlen, etc.) ausgeführt werden können. Die ausgeführten Prozesse können auf die unterschiedlichen Speicherbereiche zugreifen.
  • Für den Betrieb von Mikrocontrollern ist ein Zugriffsschutz bzw. Speicherschutz von großer Bedeutung. Mittels eines derartigen Zugriffs- bzw. Speicherschutzes soll verhindert werden, dass ein nicht autorisierter Zugriff auf die Speicherbereiche erfolgt. Ein derartiger Speicherschutz kann beispielsweise durch eine spezielle Hardwarekomponente, die sogenannte Memory Protection Unit (MPU) realisiert werden.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum Betreiben eines Mikrocontrollers sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Der Mikrocontroller weist insbesondere eine Prozessoreinheit mit einem oder mehreren Prozessorkernen und eine Speichereinheit (z.B. ROM, RAM, Flash, EEPROM) mit unterschiedlichen Speicherbereichen auf. Von dem Mikrocontroller bzw. von der Prozessoreinheit werden unterschiedliche Prozesse (Tasks, Programmen, Rechenbefehlen, etc.) ausgeführt. Die Prozesse werden insbesondere mit unterschiedlichen Privilegienniveaus bzw. Hierarchiestufen ausgeführt. Ein Betriebssystem bzw. eine Betriebssoftware (BSW) besitzt insbesondere ein höchstes Privilegienniveau bzw. eine höchste Hierarchiestufe. Weiterhin kann unterschiedliche Anwendungssoftware (ASW) ausgeführt werden, mit jeweils niedrigerem Privilegienniveau als das Betriebssystem.
  • Aus Sicherheitsgründen ist es nicht allen Prozessen erlaubt, in vollem Umfang auf alle Speicherbereiche zuzugreifen. Unterschiedlichen Prozessen sind daher insbesondere unterschiedliche Zugriffsrechte zugewiesen, d.h. unterschiedliche Prozesse dürfen jeweils in unterschiedlichem Umfang ("Wie") auf einzelne Speicherbereiche ("Wo") zugreifen (oder nicht). Zugriffsrechte von Prozessen auf Speicherbereiche können beispielsweise lesend, schreibend und/oder ausführend sein.
  • In einer Speicherschutzeinheit sind Zugriffsrechte (z.B. lesend, schreibend, ausführend) von in dem Mikrocontroller ausgeführten Prozessen auf unterschiedliche Speicherbereiche (insbesondere gekennzeichnet durch eine Start- und eine End-Adresse) hinterlegt, d.h. in der Speicherschutzeinheit ist hinterlegt, in welchem Umfang Prozesse auf unterschiedliche Speicherbereiche zugreifen dürfen. Unterschiedliche Prozesse bzw. unterschiedliche Teile der Anwendungssoftware können z.B. durch eine Thread- oder Kontext-ID unterschieden werden.
  • Die Speicherschutzeinheit kann insbesondere als eine Hardwareeinheit ausgebildet sein, insbesondere als eine Memory Protection Unit (MPU). Es ist auch denkbar, dass die Speicherschutzeinheit als ein Prozess bzw. als eine Software-Anwendung ausgeführt wird, insbesondere mit einem höchsten Privilegienniveau.
  • Durch die Erfindung werden einzelne Prozesse privilegiert behandelt und diesen Prozessen werden auf einfache, unkomplizierte Weise höhere Zugriffsrechte eingeräumt. Wenn ein erster Prozess auf einen bestimmten Speicherbereich in einer bestimmten Weise zugreifen möchte, prüft die Speicherschutzeinheit für den Fall, dass eine Zugriffsbedingung erfüllt ist, nur, ob der erste Prozess auf diesen bestimmten Speicherbereich ("Wo") zugreifen darf, und nicht, ob der erste Prozess in der bestimmten Weise ("Wie") zugreifen darf. Auch wenn der erste Prozess eigentlich nicht in der bestimmten Weise zugreifen darf, wird dieser Zugriff nicht von der Speicherschutzeinheit verhindert, wenn der erste Prozess auf diesen bestimmten Speicherbereich zugreifen darf. Die Zugriffsbedingung ist beispielsweise erfüllt, wenn ein entsprechend privilegierter zweiter Prozess für den ersten Prozess zugreifen will oder wenn die Speicherschutzeinheit in einem entsprechenden Betriebsmodus ohne Zugriffsrechteüberprüfung betrieben wird.
  • Die Zugriffsbedingung kann alternativ umfassen, dass die Speicherschutzeinheit in einem entsprechenden Betriebsmodus mit vorbestimmten Zugriffsrechten auf vorbestimmte Speicherbereiche für vorbestimmte Privilegienniveaus betrieben wird. In diesem Fall ist die Zugriffsbedingung erfüllt, wenn der erste Prozess in einer bestimmten Weise ("Wie") zugreifen will, die gemäß seinem Privilegienniveau für diesen bestimmten Speicherbereich ("Wo") zulässig ist.
  • Vorzugsweise greift ein zweiter Prozess für den ersten Prozess auf den bestimmten Speicherbereich in der bestimmten Weise zu. Der zweite Prozess ist dabei insbesondere ein höher privilegierter Prozess als der erste Prozess. Von der Speicherschutzeinheit wird überprüft, ob der erste Prozess auf den bestimmten Speicherbereich ("Wo") zugreifen darf und ob der zweite Prozess in der bestimmten Weise ("Wie") auf den bestimmten Speicherbereich ("Wo") zugreifen darf. Der Zugriff wird nur zugelassen, wenn der erste Prozess auf den bestimmten Speicherbereich zugreifen darf und wenn der zweite Prozess in der bestimmten Weise auf den bestimmten Speicherbereich zugreifen darf.
  • Gemäß einem weiteren Aspekt der Erfindung kann die Speicherschutzeinheit in einem ersten Betriebsmodus betrieben werden. Wenn der erste Prozess auf den bestimmten Speicherbereich in der bestimmten Weise zugreifen möchte, überprüft die Speicherschutzeinheit nur, ob der erste Prozess auf den bestimmten Speicherbereich zugreifen darf. Basierend auf dieser Überprüfung wird der Zugriff zugelassen oder verweigert. Die Speicherschutzeinheit ignoriert in dem ersten Betriebsmodus also die Zugriffsrechte des ersten Prozesses und lässt den Zugriff zu.
  • Wenn in einem herkömmlichen Mikrocontroller ein (erster) Prozess versucht, in einer Weise auf einen Speicherbreich zuzugreifen, welche ihm nicht erlaubt ist (beispielsweise wenn der Prozess schreibend oder ausführend zugreifen möchte, aber nur lesend zugreifen darf), wird dieser Zugriff durch die Speicherschutzeinheit nach der Überprüfung der Zugriffsrechte unterbunden. Die Speicherschutzeinheit benachrichtigt in diesem Fall beispielsweise mittels eines Traps eine höhere Instanz, beispielweise einen zweiten Prozess mit hohem oder höchstem Privilegienniveau, insbesondere das Betriebssystem. Dieser höher privilegierter Prozess entscheidet in diesem Fall darüber, ob der gewünschte Zugriff des Prozesses erlaubt ist und durchgeführt werden darf oder ob der Zugriff unterlassen werden soll, beispielsweise weil ein Fehler des Prozesses oder gar ein Angriff vorliegt. Entscheidet der höher privilegierte Prozess, dass der Zugriff durchgeführt werden darf, führt dieser höher privilegierte Prozess diesen Zugriff auf den Speicherbereich insbesondere selbst durch, da der andere Prozess nach wie vor keine ausreichenden Zugriffsrechte besitzt. Zu diesem Zweck überprüft der höher privilegierte Prozess zumeist, ob der andere Prozess auf den Speicherbereich zugreifen darf, beispielsweise indem der höher privilegierte Prozess zunächst die Zugriffsrechte aus der Speicherschutzeinheit holt und überprüft oder im Hauptspeicher gespeicherte Tabellen zur Prüfung verwendet.
  • Wenn kein Fehler oder Angriff vorliegt und der Zugriff schließlich durchgeführt wird, kann dies durch die vorangehende Prüfung durch den höher privilegierten Prozess mit einem erhöhten Laufzeit-Overhead verbunden sein. Insbesondere ist es vergleichsweise aufwendig, wenn ein höher privilegierter Prozess hinzugezogen wird und den gewünschten Zugriff selbst durchführt. Durch die Erfindung können ein derartiger Aufwand und Laufzeit-Overhead verringert werden, da die Frage des Wo weiterhin von der Speicherschutzeinheit beantwortet wird.
  • Zweckmäßigerweise ist die Speicherschutzeinheit auch in einem zweiten (herkömmlichen) Betriebsmodus betreibbar, in welchem im Falle eines Zugriffswunsches von der Speicherschutzeinheit überprüft wird, ob der erste Prozess in der bestimmten Weise zugreifen darf, und wobei basierend auf dieser Überprüfung der Zugriff des ersten Prozesses auf den Speicherbereich zugelassen oder verweigert wird. In dem zweiten Betriebsmodus kann die Speicherschutzeinheit insbesondere wie in einem herkömmlichen Mikrocontroller gemäß obiger Beschreibung betrieben werden. Somit kann durch den zweiten Betriebsmodus ein sichererer, zuverlässiger Schutz sämtlicher Speicherbereiche insbesondere vor Prozessfehlern oder gar vor feindlichen Angriffen gewährleistet werden.
  • Insbesondere kann ein ausreichend privilegierter zweiter Prozess zwischen dem ersten und zweiten Betriebsmodus umschalten und somit den Zugriff des ersten Prozesses autorisieren.
  • Wenn der erste Prozess in diesem ersten Betriebsmodus auf den Speicherbereich beispielsweise schreibend oder ausführend zugreifen will, obwohl er nur lesende Zugriffsrechte besitzt, kann der erste Prozess in dem ersten Betriebsmodus privilegiert behandelt werden und der entsprechende schreibende bzw. ausführende Zugriff kann auf einfache Weise zugelassen werden. Insbesondere wird die Speicherschutzeinheit nach diesem Zugriff wieder in den zweiten Betriebsmodus versetzt, um sichereren und zuverlässigen Schutz sämtlicher Speicherbereiche zu gewährleisten.
  • Der Mikrocontroller ist insbesondere in ein Steuergerät eines Kraftfahrzeugs implementiert, beispielsweise in ein Motorsteuergerät. Somit kann eine verbesserte Sicherheit des entsprechenden Steuergeräts gewährleistet werden und Sicherheitsanforderungen, welche im Kraftfahrzeugbereich gestellt werden, können eingehalten werden. Insbesondere können Sicherheitsanforderungen, wie sie in der ISO-Norm 26262 hinterlegt sind, eingehalten werden.
  • Vorteilhafterweise schaltet ein zweiter Prozess mit einem höheren Privilegienniveau als der erste Prozess die Speicherschutzeinheit in den ersten Betriebsmodus (insbesondere aus dem zweiten) um. Somit wird verhindert, dass ein niedrig privilegierter Prozess seine Zugriffsrechte oder die Zugriffsrechte eines höher privilegierten Prozesses ändern bzw. erweitern kann. Insbesondere kann somit verhindert werden, dass ein Angreifer mit niedrigem Privilegienniveau unerlaubt Zugriffsrechte ändert bzw. außer Kraft setzen kann.
  • Der zweite Prozess übermittelt der Speicherschutzeinheit vorzugsweise sein Privilegienniveau. Die Speicherschutzeinheit überprüft insbesondere, ob dieses Privilegienniveau ausreichend hoch ist, um einen Wechsel zwischen den Betriebsmodi zu bewirken. Die Speicherschutzeinheit kann auch überprüfen, ob dieses Privilegienniveau höher als das Privilegienniveau des ersten Prozesses ist, welcher als nächstes einen Zugriff anfordert. Ist dies der Fall, wird der Wechsel zwischen den Betriebsmodi durchgeführt.
  • Bevorzugt schaltet der zweite Prozess die Speicherschutzeinheit in den ersten Betriebsmodus um, bevor der erste Prozess auf den Speicherbereich zugreifen möchte. Somit wird verhindert, dass ein Trap von der Speicherschutzeinheit ausgelöst wird und dass ein höher privilegierter Prozess (z.B. der zweite Prozess selbst oder das Betriebssystem) informiert wird.
  • Vorzugsweise informiert die Speicherschutzeinheit einen vierten Prozess mit einem höheren Privilegienniveau als der erste Prozess, beispielsweise mittels eines Traps, wenn ein dritter Prozess mit einem niedrigeren Privilegienniveau als der erste Prozess die Speicherschutzeinheit in den ersten Betriebsmodus umschalten möchte. Somit wird ein unautorisiertes Umschalten zwischen den Betriebsmodi durch einen niedrig privilegierteren Prozess verhindert. Dieser vierte Prozess kann insbesondere derselbe Prozess wie der oben beschriebene zweite Prozess sein. Vorzugsweise sind der zweite und der vierte Prozess das Betriebssystem. Der vierte Prozess kann auch ein eigenständiger Prozess sein, der beispielsweise explizit für ein derartiges unautorisiertes Umschalten durch niedrig privilegiertere Prozesse zuständig ist.
  • Vorzugsweise ist die Speicherschutzeinheit als Memory Protection Unit (MPU) ausgebildet. Die Speicherschutzeinheit ist bevorzugt als eine Einheit bzw. ein Modul des Mikrocontrollers ausgebildet und ist insbesondere in den Mikrocontroller integriert. Bevorzugt kann die Speicherschutzeinheit alternativ oder zusätzlich auch eine externe Einheit bzw. ein externes Modul ausgebildet sein, welche mit dem Mikrocontroller verbunden ist, beispielsweis über ein Bus- bzw. Feldbus-System.
  • Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
  • Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, 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.
  • Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt schematisch bevorzugte Ausgestaltungen eines Steuergeräts eines Kraftfahrzeugs, die jeweils dazu eingerichtet sind, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
  • 2 bis 6 zeigen jeweils schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
  • Ausführungsform(en) der Erfindung
  • In 1a ist ein Steuergerät 100 eines Kraftfahrzeugs, beispielsweise ein Motorsteuergerät, schematisch dargestellt. Das Steuergerät 100 umfasst einen Mikrocontroller 101 mit einer Prozessoreinheit 110, einer als Memory Protection Unit (MPU) ausgebildeten Speicherschutzeinheit 120 und einer beispielsweise als RAM-Speicher ausgebildeten Speichereinheit 130.
  • In der Prozessoreinheit 110 wird eine Vielzahl von Prozessen ausgeführt. In 1a sind beispielsweise vier ausgeführte Prozesse 111, 112, 113 und 114 dargestellt.
  • Prozess 111 sei in diesem Beispiel ein Betriebssystem, welches ein höchstes Privilegienniveau, z.B. Vier, besitzt. Die Prozesse 112, 113 und 114 sind etwa Tasks, die im Zuge einer Motorsteuerung ausgeführt werden. Prozess 112 besitzt beispielsweise ein Privilegienniveau von Drei, Prozess 113 ein Privilegienniveau von Zwei und Prozess 114 besitzt beispielsweise ein Privilegienniveau von Eins.
  • Der RAM-Speicher 130 umfasst eine Vielzahl unterschiedlicher Speicherbereiche. Beispielsweise sind in 1a drei Speicherbereiche 131, 132 und 133 dargestellt.
  • In der MPU 120 sind Zugriffsrechte der einzelnen Prozesse 111 bis 114 hinterlegt. Als Zugriffsrechte sind dabei für jeden der Prozesse 111 bis 114 hinterlegt, ob der jeweilige Prozess lesend, schreibend und/oder ausführend auf einen speziellen Speicherbereich zugreifen darf.
  • In 1b ist eine weitere Ausgestaltung eines Steuergeräts 100 dargestellt. Gleiche oder baugleiche Elemente sind in den 1a und 1b jeweils mit identischen Bezugszeichen versehen. Der Mikrocontroller 101 gemäß 1b umfasst neben dem Prozessorkern 110 einen zweiten Prozessorkern 140. Im Beispiel von 1b werden die Prozesse 111 und 112 von dem Prozessorkern 110 ausgeführt und die Prozesse 113 und 114 von dem Prozessorkern 140. Für jeden der Prozessorkerne 110 und 140 ist dabei jeweils eine eigene MPU 120 vorgesehen. Der RAM-Speicher 130 ist für beide Prozessorkerne 110 und 140 gemeinsam vorgesehen.
  • Das Steuergerät gemäß den 1a und 1b ist jeweils dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welches in den 2 bis 5 jeweils schematisch als Blockdiagramm dargestellt ist.
  • Im Fall von 2 möchte Prozess 113 in Schritt 201 auf eine Adresse innerhalb des Speicherbereichs 132 lesend zugreifen. Die MPU 120 wird dabei in einem zweiten Betriebsmodus betrieben, welcher eine Zugriffsbedingung nicht erfüllt, und die MPU überprüft in Schritt 202 einerseits, ob der Prozess 113 auf den Speicherbereich 132 zugreifen darf, und andererseits, ob der Prozess 113 lesend zugreifen darf. Beispielsweise besitzt der Prozess 113 ein lesendes Zugriffsrecht auf den Speicherbereich 132. Die MPU 120 lässt daher den Zugriff zu und Prozess 113 greift in Schritt 203 lesend auf die Adresse in dem Speicherbereich 132 zu.
  • Im Fall von 3 möchte Prozess 113 in Schritt 301 schreibend auf eine Adresse in dem Speicherbereich 132 zugreifen. Die MPU 120 wird ebenfalls im zweiten Betriebsmodus betrieben und überprüft in Schritt 302 erneut einerseits, ob der Prozess auf den Speicherbereich 132 zugreifen darf, und andererseits, ob der Prozess 113 schreibend zugreifen darf. Da Prozess 113 nur lesendes Zugriffsrecht auf den Speicherbereich 132 besitzt, lässt die MPU 120 den Zugriff nicht zu und informiert in Schritt 303 mittels eines Traps den Prozess mit dem höchsten Privilegienniveau, in diesem Fall das Betriebssystem 111. Das Betriebssystem 111 prüft daraufhin in Schritt 304, ob der Zugriffsversuch des Prozesses 113 erlaubt ist oder beispielsweise auf einen Angriff oder einen Fehler hindeutet. Wird der Zugriffsversuch als legitim erkannt, führt das Betriebssystem 111 in Schritt 305 den entsprechenden schreibenden Zugriff selbst durch.
  • Im Beispiel von 4 schaltet das Betriebssystem 111 die MPU 120 in Schritt 401 von dem zweiten Betriebsmodus in einen ersten Betriebsmodus um und übermittelt zu diesem Zweck sein Privilegienniveau. Die MPU 120 erkennt das höchste Privilegienniveau von Vier und schaltet in den ersten Betriebsmodus. Somit ist eine Zugriffsbedingung gemäß einer bevorzugten Ausführungsform der Erfindung erfüllt. Prozess 113 möchte in Schritt 402 schreibend auf eine Adresse in dem Speicherbereich 132 zugreifen. Die MPU 120 prüft nun, da die Zugriffsbedingung erfüllt ist, in dem ersten Betriebsmodus in Schritt 403 lediglich, ob der Prozess 113 auf den Speicherbereich 132 zugreifen darf, und nicht die Zugriffsrechte des Prozesses 113. Nachdem festgestellt wurde, dass der Prozess 113 auf den Speicherbereich 132 zugreifen darf, erlaubt die MPU 120 in Schritt 404 den schreibenden Zugriff des Prozesses 113 auf den Speicherbereich 132, obwohl dieser Prozess 113 nur lesende Zugriffsrechte besitzt. Prozess 113 führt daraufhin den Zugriff durch. In Schritt 405 schaltet das Betriebssystem 111 die MPU 120 wieder in den zweiten Betriebsmodus.
  • Gemäß 5 möchte Prozess 113 erneut schreibend auf den Speicherbereich 132 zugreifen. Prozess 114 möchte die MPU 120 in Schritt 501 von dem zweiten Betriebsmodus in den ersten Betriebsmodus umschalten und übermittelt der MPU 120 sein Privilegienniveau von Eins. Die MPU 120 erkennt in Schritt 502, dass dieses Privilegienniveau geringer ist als das Privilegienniveau von Zwei des Prozesses 113. Die MPU 120 schaltet daraufhin nicht in den ersten Betriebsmodus und informiert mittels eines Traps in Schritt 503 das Betriebssystem 111 von dem Umschaltversuch. Das Betriebssystem 111 überprüft daraufhin in Schritt 504, ob der Umschaltversuch aufgrund eines Fehlers des Prozesses 114 oder im Zuge eines Angriffes durchgeführt wurde.
  • Im Beispiel von 6 möchte Prozess 113 in Schritt 601 erneut schreibend auf den Speicherbereich 132 zugreifen. Das Betriebssystem 111 greift in diesem Fall für den Prozess 113 schreibend auf den Speicherbereich 132 zu. Betriebssystem 111 übermittelt zu diesem Zweck der MPU 120 in Schritt 602 sein Privilegienniveau und die Identität von Prozess 113. Die MPU 120 prüft in Schritt 603, ob das Betriebssystem 111 schreibend auf den Speicherbereich 132 zugreifen darf. Da dies der Fall ist, ist eine Zugriffsbedingung gemäß einer bevorzugten Ausführungsform der Erfindung erfüllt. Die MPU 120 prüft nun, da die Zugriffsbedingung erfüllt ist, in Schritt 604, ob Prozess 113 auf den Speicherbereich 132 zugreifen darf. Da dies der Fall ist, lässt die MPU 120 in Schritt 605 den schreibenden Zugriff des Prozesses 113 auf den Speicherbereich 132 zu.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • ISO-Norm 26262 [0018]

Claims (13)

  1. Verfahren zum Betreiben eines Mikrocontrollers (101), wobei in einer Speicherschutzeinheit (120) Zugriffsrechte von in dem Mikrocontroller (101) ausgeführten Prozessen (111, 112, 113, 114) auf unterschiedliche Speicherbereiche (131, 132, 133) hinterlegt sind, wobei, wenn ein erster Prozess (113) auf einen bestimmten Speicherbereich (132) in einer bestimmten Weise zugreifen möchte (402, 601), von der Speicherschutzeinheit (120) für den Fall, dass eine Zugriffsbedingung erfüllt ist, – überprüft wird, ob der erste Prozess (113) auf den bestimmten Speicherbereich (132) zugreifen darf (403, 604), und nicht, ob der erste Prozess (113) in der bestimmten Weise zugreifen darf, und – der Zugriff auf den Speicherbereich (132) nur zugelassen wird (404, 605), wenn der erste Prozess (113) auf den bestimmten Speicherbereich (132) zugreifen darf.
  2. Verfahren nach Anspruch 1, wobei die Zugriffsbedingung erfüllt ist, wenn ein zweiter Prozess (111) für den ersten Prozess (113) auf den bestimmten Speicherbereich (132) in der bestimmten Weise zugreifen möchte (601, 602) und wenn der zweite Prozess (111) in der bestimmten Weise auf den bestimmten Speicherbereich (132) zugreifen darf.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Zugriffsbedingung erfüllt ist, wenn die Speicherschutzeinheit (120) in einem ersten Betriebsmodus betrieben wird, in welchem von der Speicherschutzeinheit (120) nicht überprüft wird, ob der erste Prozess (113) in der bestimmten Weise zugreifen darf.
  4. Verfahren nach Anspruch 3, wobei die Speicherschutzeinheit (120) in einem zweiten Betriebsmodus betreibbar ist, in welchem von der Speicherschutzeinheit (120) überprüft wird, ob der erste Prozess (113) in der bestimmten Weise zugreifen darf, (202, 302), und wobei basierend auf dieser Überprüfung der Zugriff des ersten Prozesses (113) auf den Speicherbereich (132) zugelassen (203) oder verweigert wird (303).
  5. Verfahren nach Anspruch 4, wobei ein zweiter Prozess (111) mit einem höheren Privilegienniveau als der erste Prozess (113) die Speicherschutzeinheit (120) zwischen dem zweiten und dem ersten Betriebsmodus umschaltet (401).
  6. Verfahren nach Anspruch 5, wobei der zweite Prozess (111) der Speicherschutzeinheit (120) sein Privilegienniveau übermittelt (401).
  7. Verfahren nach Anspruch 5 oder 6, wobei der zweite Prozess (111) die Speicherschutzeinheit in den ersten Betriebsmodus umschaltet (401), bevor der erste Prozess auf den Speicherbereich zugreifen möchte.
  8. Verfahren nach einem der Ansprüche 4 bis 7, wobei die Speicherschutzeinheit (120), wenn ein dritter Prozess (114) mit einem niedrigeren Privilegienniveau als der erste Prozess (113) die Speicherschutzeinheit in den ersten Betriebsmodus umschalten möchte (502), einen vierten Prozess (111) mit einem höheren Privilegienniveau als der erste Prozess informiert (503).
  9. Verfahren nach einem der vorstehenden Ansprüche 2 oder 5 bis 8, wobei der zweite Prozess (111) und/oder der vierte Prozess (111) ein Betriebssystem sind.
  10. Verfahren nach einem der vorstehenden Ansprüche, wobei die Speicherschutzeinheit (120) als eine Einheit des Mikrocontrollers (101) ausgebildet ist und/oder wobei die Speicherschutzeinheit als eine externe Einheit ausgebildet ist, welche mit dem Mikrocontroller (101) verbunden ist.
  11. Recheneinheit (100), die dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.
  12. Computerprogramm, das eine Recheneinheit (100) dazu veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen, wenn es auf der Recheneinheit (100) ausgeführt wird.
  13. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 12.
DE102015223757.5A 2015-11-30 2015-11-30 Verfahren zum Betreiben eines Mikrocontrollers Withdrawn DE102015223757A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102015223757.5A DE102015223757A1 (de) 2015-11-30 2015-11-30 Verfahren zum Betreiben eines Mikrocontrollers
PCT/EP2016/077964 WO2017093029A1 (de) 2015-11-30 2016-11-17 Verfahren zum betreiben eines mikrocontrollers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015223757.5A DE102015223757A1 (de) 2015-11-30 2015-11-30 Verfahren zum Betreiben eines Mikrocontrollers

Publications (1)

Publication Number Publication Date
DE102015223757A1 true DE102015223757A1 (de) 2017-06-01

Family

ID=57389405

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015223757.5A Withdrawn DE102015223757A1 (de) 2015-11-30 2015-11-30 Verfahren zum Betreiben eines Mikrocontrollers

Country Status (2)

Country Link
DE (1) DE102015223757A1 (de)
WO (1) WO2017093029A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606771B2 (en) 2018-01-22 2020-03-31 Infineon Technologies Ag Real time stack protection

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101015456B1 (ko) * 2002-11-18 2011-02-22 에이알엠 리미티드 디바이스에 의한 메모리로의 억세스 제어
EP2461251B1 (de) * 2010-12-03 2017-06-21 Robert Bosch GmbH Speicherschutzeinheit und Verfahren zur Steuerung eines Zugangs zu einer Speichervorrichtung
US8572345B2 (en) * 2011-09-16 2013-10-29 Freescale Semiconductor, Inc. Memory management unit (MMU) having region descriptor globalization controls and method of operation
DE102014201682A1 (de) * 2014-01-30 2015-07-30 Robert Bosch Gmbh Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO-Norm 26262

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606771B2 (en) 2018-01-22 2020-03-31 Infineon Technologies Ag Real time stack protection

Also Published As

Publication number Publication date
WO2017093029A1 (de) 2017-06-08

Similar Documents

Publication Publication Date Title
DE102018214999A1 (de) Vorrichtung zur Absicherung von Diagnosebefehlen an ein Steuergerät und entsprechendes Kraftfahrzeug
DE102005021064B4 (de) Verfahren und Vorrichtung zum Schutz gegen Buffer Overrun-Attacken
EP2907072B1 (de) Verfahren zur steuerung eines getrennten ablaufs von verknüpften programmblöcken und steuergerät
DE102010002472A1 (de) Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
DE102015223757A1 (de) Verfahren zum Betreiben eines Mikrocontrollers
DE102017218329A1 (de) Verfahren und System zum Steuern des Zugangs zu einer authentifizierungsbehafteten Funktion
WO2015197544A1 (de) Verfahren und schaltkreis zur vermeidung von speicherschutzverletzungen
EP3417589A1 (de) Reduzieren einer angriffsmöglichkeit auf eine schwachstelle eines gerätes über eine netzwerkzugangsstelle
DE102013016114B3 (de) Bussystem und Verfahren für geschützte Speicherzugriffe
WO2017089101A1 (de) Verfahren zum betreiben eines mikrocontrollers
DE102021208459A1 (de) Verfahren zur authentischen Datenübertragung zwischen Steuergeräten eines Fahrzeugs, Anordnung mit Steuergeräten, Computerprogramm und Fahrzeug
DE102014018110A1 (de) Verfahren und System zur Fernsteuerung eines Fahrzeuges oder einer Fahrzeugfunktion
DE102022204716A1 (de) Rechnersystem zur bereitstellung einer mehrzahl von funktionen für eine vorrichtung, insbesondere für ein fahrzeug, mittels separation einer mehrzahl von zonen
DE102021201236A1 (de) Verfahren zum Authentifizieren einer Nachricht einer Recheneinheit, Recheneinheit, Computerprogramm und Fahrzeug
DE102020207866A1 (de) Verfahren zum Durchführen einer abgesicherten Startsequenz eines Steuergeräts
DE102016224206A1 (de) Fahrzeugsteuervorrichtung
DE102014222181A1 (de) Verfahren zum Betreiben eines Steuergeräts
WO2018177720A1 (de) Verfahren zum kontrollieren eines zugriffs eines elektronischen geräts auf ein system und sicherheitseinrichtung
DE112020007053T5 (de) Steuervorrichtung und Steuerverfahren
DE102022117149A1 (de) Verfahren zum Betrieb eines Steuergeräts eines Kraftfahrzeugs für einen Produktionsvorgang des Kraftfahrzeugs und Steuergerät
DE102021212594A1 (de) Verfahren zum Starten einer Speichereinheit einer Recheneinheit
DE102022203871A1 (de) Steuersystem
DE102022209778A1 (de) Techniken zur mitigation von manipulationen eines bordnetzwerkes
DE102016203852A1 (de) Verfahren zum Betreiben eines Steuergeräts für ein Kraftfahrzeug
DE102022201896A1 (de) Mitigation einer manipulation von software eines fahrzeugs

Legal Events

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