DE102014213503A1 - Verfahren zum Überwachen einer Software in einem Straßenfahrzeug - Google Patents

Verfahren zum Überwachen einer Software in einem Straßenfahrzeug Download PDF

Info

Publication number
DE102014213503A1
DE102014213503A1 DE102014213503.6A DE102014213503A DE102014213503A1 DE 102014213503 A1 DE102014213503 A1 DE 102014213503A1 DE 102014213503 A DE102014213503 A DE 102014213503A DE 102014213503 A1 DE102014213503 A1 DE 102014213503A1
Authority
DE
Germany
Prior art keywords
software
code
section
changing
unexpected event
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
DE102014213503.6A
Other languages
English (en)
Inventor
Mohamed Abo El-Fotouh
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.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke 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 Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE102014213503.6A priority Critical patent/DE102014213503A1/de
Priority to US14/796,123 priority patent/US20160011932A1/en
Priority to CN201510404162.6A priority patent/CN105260254A/zh
Publication of DE102014213503A1 publication Critical patent/DE102014213503A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Überwachen einer Software in einem Straßenfahrzeug (2), wobei die Software eine Mehrzahl von Codeabschnitten aufweist und jeder Codeabschnitt zumindest eine Funktion ausführt, aufweisend die folgenden Schritte: – Erfassen, ob ein unerwartetes Ereignis bei der Ausführung eines der Codeabschnitte aufgetreten ist, wobei das unerwartete Ereignis durch die Ausführung des Codes des Codeabschnittes verursacht wird; und/oder – Prüfen, ob ein Softwareabschnitt manipuliert wurde; – Falls das unerwartete Ereignis erfasst wird und/oder erfasst wird, dass ein Softwareabschnitt manipuliert wurde, Senden einer Nachricht an eine zentrale Einheit (4) außerhalb des Straßenfahrzeuges (2); – Empfangen einer Anweisung von der zentralen Einheit (4), die Funktionsweise der Software in Reaktion auf die Erfassung des unerwarteten Ereignisses und/oder die Manipulation des Softwareabschnittes zu ändern; und – Ändern der Funktionsweise der Software, während die Software ausgeführt wird, in Reaktion auf die Anweisung.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Überwachen einer Software in einem Straßenfahrzeug und ein Verfahren zum sicheren Betrieb des Kraftfahrzeuges trotz einer gestörten Funktionsweise der Software.
  • In Straßenfahrzeugen, beispielsweise Personenkraftwagen, wird zunehmend vernetzte Software eingesetzt. Die zunehmende Komplexität der Software schafft dahingehend Probleme, dass der Test der Software zunehmend komplex wird und aufgrund der hohen Komplexität von Tests Fehler in der Software eines ausgelieferten Fahrzeuges vorhanden sein können.
  • Ferner kann die Software von nicht autorisierten Personen verändert oder manipuliert werden, um beispielsweise nicht frei geschaltete Funktionen zu verwenden.
  • Bei Kraftfahrzeugen des Standes der Technik kann ein Fehler bei der Ausführung der Software bei einem Werkstattbesuch über die Diagnosesteckdose oder, falls das Fahrzeug über ein mobiles Netzwerk kommunizieren kann, über das mobile Netzwerk an eine zentrale Einheit gemeldet werden. Die Software kann nach Korrektur des Fehlers in einer Werkstatt aktualisiert werden.
  • Für den Nutzer des Straßenfahrzeuges ist es nachteilig, dass er eine fehlerhafte Software verwenden muss, bis die Software bei einem Werkstattbesuch des Kraftfahrzeuges aktualisiert wird.
  • Die DE 10 2011 004 634 A1 offenbart ein Verfahren, das Fahrzeugkomponenten-Zustandsdaten auf Unstimmigkeiten durch Vergleich mit historischen Fahrzeugkomponenten-Zustandsdaten prüft. Beim Bestimmen einer Unstimmigkeit kann ein Hinweissignal erzeugt werden, das eine unautorisierte Benutzung anzeigt.
  • Die DE 10 2007 051 440 A1 offenbart ein Verfahren zur Freischaltung von Software, wobei ein Server Überprüfungsmittel umfasst, ob eine angefragte Software in Abhängigkeit einer Ist-Konfiguration der Software in einem Fahrzeug freigeschaltet werden darf, sowie Mittel umfasst, mittels denen ein Freischaltcode berechenbar und übertragbar ist.
  • Die DE 10 2009 025 585 A1 betrifft eine Vorrichtung zur dezentralen Funktionsfreischaltung eines Steuergeräts für ein Fahrzeug mit einem Produktionsserver und einem Kryptoserver zum Übertragen von Freischaltdaten. Es ist ein Freischaltmodul vorhanden, das zwischen einer Zentraleinheit und dem Steuergerät schaltbar ist und mit dem eine begrenzte Anzahl von Freischaltungen unabhängig von der Zentraleinheit durchführbar ist.
  • Die DE 10 2006 044 896 B3 offenbart ein Manipulationsferndiagnosesystem für ein Fahrzeug, das ein Steuersystem aufweist, das Kalibrierungsdaten speichert. Sobald festgestellt wird, dass die Kalibrierungsdaten verändert worden sind, wird ein Manipulations-Indikator erzeugt.
  • Die Erfindung stellt sich zur Aufgabe, ein Verfahren zu schaffen, das einen Weiterbetrieb des Straßenfahrzeuges trotz eines Fehlers der Software oder einer Manipulation der Software ermöglicht.
  • Die Erfindung wird durch ein Verfahren nach Anspruch 1 gelöst. Die abhängigen Ansprüche beanspruchen bevorzugte Ausführungsformen der Erfindung
  • Ein erfindungsgemäßes Verfahren zum Überwachen einer Software in einem Straßenfahrzeug, wobei die Software eine Mehrzahl von Codeabschnitten aufweist und jeder Codeabschnitt zumindest eine Funktion ausführt, umfasst den Schritt des Erfassens, ob ein unerwartetes Ereignis bei der Ausführung eines der Codeabschnitte aufgetreten ist, wobei das unerwartete Ereignis durch die Ausführung des Codes des Codeabschnittes verursacht wird, und/oder den Schritt des Prüfens, ob ein Softwareabschnitt manipuliert wurde. Falls das unerwartete Ereignis erfasst wird und/oder erfasst wird, dass ein Softwareabschnitt manipuliert wurde, wird eine Nachricht an eine zentrale Einheit außerhalb des Straßenfahrzeuges gesendet. Anschließend empfängt das Straßenfahrzeug eine Anweisung von der zentralen Einheit, die Funktionsweise der Software in Reaktion auf die Erfassung des unerwarteten Ereignisses und/oder die Manipulation des Softwareabschnittes zu ändern. Die Funktionsweise der Software kann in Reaktion auf die Anweisung geändert werden, während die Software ausgeführt wird.
  • Die Software kann einen einzelnen Prozess oder mehrere Prozesse umfassen, die auf einem Prozessor ausgeführt werden. Der Ausdruck Software im Sinne dieser Erfindung kann auch eine Mehrzahl von Prozessen umfassen, die von verschiedenen Prozessoren ausgeführt werden, wobei sich die Prozessoren im gleichen Steuergerät und/oder in verschiedenen Steuergeräten befinden können. Die Prozesse können mittels einer Inter-Programm-Kommunikation und/oder über ein Netzwerk miteinander kommunizieren.
  • Das unerwartete Ereignis kann eine unerwartete Beendigung eines Prozesses und/oder eine unerwartete Beendigung eines Threads umfassen. Ein Thread kann ein Teilprozess eines Prozesses sein, der unabhängig von einem anderen Teilprozess des Prozesses von dem gleichen oder einem anderen Prozessor eines Steuergerätes ausgeführt wird. Das unerwartete Ereignis kann umfassen, dass eine Variable einen Wert außerhalb eines zulässigen Wertebereichs aufweist. Ferner kann das unerwartete Ereignis umfassen, das eine Inter-Prozess-Kommunikation und/oder eine Intra-Prozess-Kommunikation fehlgeschlagen ist. Ferner kann das unerwartete Ereignis umfassen, dass der Sprung zu einem Codeabschnitt fehlgeschlagen ist.
  • Das unerwartete Ereignis kann aufgrund einer Manipulation einer Komponente aufgetreten sein und/oder die Ermittlung einer Manipulation einer Komponente umfassen. Der Ausdruck Manipulation einer Komponente umfasst im Sinne dieser Erfindung sowohl eine Manipulation eines Steuergerätes als auch eine Veränderung einer beliebigen Komponente des Fahrzeuges, beispielsweise einer Antriebskomponente, einer Bremse, eines Motors oder dergleichen. Das unerwartete Ereignis kann aufgrund einer Manipulation der Software, beispielsweise zumindest eines Codes eines Codeabschnittes aufgetreten sein. Das unerwartete Ereignis kann auch das Erfassen einer Manipulation der Software, beispielsweise zumindest eines Codes eines Codeabschnittes umfassen.
  • Das Manipulieren des Softwareabschnittes kann das Verändern zumindest eines Codeabschnittes, das Verändern eines zumindest digitalen Inhaltes und/oder das Verändern zumindest eines Konfigurationsdatums umfassen. Ein digitaler Inhalt kann ein Medium sein, beispielsweise ein Audio- und/oder Video-Medium. Die Manipulation kann die Deaktivierung eines Kopierschutzes betreffen. Das Konfigurationsdatum kann in einer Konfigurationsdatei abgespeichert sein.
  • Die Anweisung, die Funktionsweise der Software zu verändern, kann verschlüsselt bzw. codiert übertragen werden.
  • Das Verfahren kann den Schritt des Analysierens des Zustandes der Software durch eine zentrale Einheit aufweisen. Beispielsweise kann die zentrale Einheit einer Datei und/oder einen Speicherinhalt auslesen, in der bzw. in dem die Historie der des Ablaufs eines Prozesses hinterlegt ist. Derartige Dateien oder Speicherbereiche werden im Gebiet der Softwareentwicklung auch als Traces oder Fehler-Aufzeichnungs-Dateien (error log files) bezeichnet. Die historischen Daten über die Ausführung eines Prozesses können von der zentralen Einheit aus dem Straßenfahrzeug zur weiteren Analyse in die zentrale Einheit geladen werden. Die Analyse kann automatisiert erfolgen.
  • Das Ändern der Funktionsweise der Software kann den Schritt des Unterbrechens der Ausführung zumindest eines Codeabschnitts für einen vorbestimmten Zeitraum umfassen. Beispielsweise kann die Software so durch die Anweisung von der zentralen Einheit umkonfiguriert werden, dass der Codeabschnitt, der das unerwartete Ereignis verursacht hat, nicht ausgeführt wird. Diese Ausgestaltung der Erfindung hat den Vorteil, dass das Straßenfahrzeug und die Funktionen des Straßenfahrzeuges weitestgehend vollständig ausgeführt werden und keine unerwarteten Softwareabstürze auftreten. Dadurch wird der Fahrer entlastet und zudem wird die Sicherheit des Straßenfahrzeuges erhöht.
  • Das Ändern der Funktionsweise der Software kann das Beenden zumindest eines Prozessteils der Software und den Neustart zumindest des beendeten Prozessteils umfassen. Diese Vorgehensweise ist nützlich, wenn das unerwartete Ereignis zufällig aufgetreten ist. Diese Vorgehensweise eignet sich insbesondere bei einer nicht sicherheitskritischen Funktion des Straßenfahrzeuges, beispielsweise bei einer Komfortfunktion. Dadurch kann sichergestellt sein, dass möglichst viele Komfortfunktionen des Straßenfahrzeuges verfügbar sind. Der Ausdruck "zumindest eines Prozessteils" kann einen Prozess oder einen Thread, d.h. einen Teilprozess, umfassen.
  • Das Ändern der Funktionsweise der Software kann das Unterbrechen der Kommunikation von zumindest einem ersten Codeabschnitt umfassen. Diese Vorgehensweise ist hilfreich, wenn eine fehlgeschlagene Kommunikation das unerwartete Ereignis verursacht hat. Diese Vorgehensweise kann auch verwendet werden, wenn vermutet wird, dass die Software manipuliert wurde und/oder die Gefahr besteht, dass mittels der Software nicht autorisiert Daten aus dem Straßenfahrzeug versandt werden. Es ist möglich, dass der Schritt des Änderns der Funktionsweise sowohl das Beenden zumindest eines Prozessteils der Software und den Neustart zumindest des beendeten Prozessteils umfasst, wobei die Kommunikation von zumindest einem ersten Codeabschnitt unterbrochen wird.
  • Zumindest ein zweiter Codeabschnitt kann nach dem Unterbrechen der Kommunikation des zumindest einen ersten Codeabschnitts mit einer anderen Einheit des Fahrzeuges kommunizieren. Dadurch wird sichergestellt, dass lediglich derjenige Codeabschnitt, der das unerwartete Ereignis verursacht hat, nicht mit einer anderen Einheit des Straßenfahrzeuges und/oder einer Einheitaußerhalb des Straßenfahrzeuges kommuniziert. Das Ändern der Funktionsweise der Software kann den Schritt des erneuten Ausführens des Codeabschnitts umfassen, der das unerwartete Ereignis verursacht hat. Diese Vorgehensweise kann angewendet werden, wenn das unerwartete Ereignis aufgrund einer besonderen und unerwarteten Konstellation, beispielsweise Umweltbedingungen, Bedingungen im Straßenfahrzeug etc. aufgetreten ist.
  • Der Schritt des Veränderns der Funktionsweise kann den Schritt des Aktualisierens und/oder Austauschens zumindest eines Codeabschnittes und/oder zumindest eines Softwareabschnittes umfassen. Dadurch kann der ursprüngliche Codeabschnitt oder ein neuer (d.h. aktualisierter bzw. überarbeiteter) Codeabschnitt geladen werden. Ferner kann der ursprüngliche Softwareabschnitt oder ein neuer (d.h. aktualisierter bzw. überarbeiteter) Softwareabschnitt geladen werden.
  • Die Erfindung betrifft auch ein Computerprogrammprodukt, das, wenn es in einen Speicher eines Computers mit einem Prozessor geladen ist, die Schritte des zuvor beschriebenen Verfahrens ausführt.
  • Die Erfindung wird nun unter Bezugnahme auf die beigefügte Figur detaillierter beschrieben, die eine beispielhafte und nicht beschränkende Ausführungsform der Erfindung zeigt, wobei gilt:
  • 1 ist eine Skizze einer beispielhaften Ausführungsform der Erfindung.
  • 1 zeigt ein Kraftfahrzeug 2, das über ein Netzwerk 6 mit einer zentralen Einheit 4, beispielsweise einem so genannten Back-End, verbunden ist. Das Kraftfahrzeug 2 umfasst eine zentrale Steuerungseinrichtung 8, die beispielsweise eine zentrale elektronische Steuerungseinrichtung (Electronic Control Unit) sein kann. Ferner umfasst das Kraftfahrzeug einen Motor 10, der mit einer Motorsteuerung 12 verbunden ist, wobei die Motorsteuerung 12 mit der zentralen elektronischen Einrichtung 8 verbunden sein kann. Ferner umfasst das Kraftfahrzeug 2 ein elektronisches Komfortsystem 14, beispielsweise ein Navigationssystem. Ferner kann das Kraftfahrzeug 2 optional eine Speichereinrichtung 16 aufweisen, in der Programmcode und/oder das Kraftfahrzeug 2 betreffende Daten gespeichert sind. Die zentrale Steuerungseinrichtung 8, die Motorsteuerung 12, die elektronische Komforteinrichtung 14 und die Speichereinrichtung 16 können direkt oder indirekt mit einer Sendeeinrichtung und einer Antenne 22 gekoppelt sein, um über das Netzwerk 6 mit der zentralen Einrichtung 4 zu kommunizieren. Es versteht sich, dass die Übertragung über das Netzwerk 6 über einen verschlüsselten Kommunikationskanal erfolgt, um Sicherheitsrisiken zu vermeiden, beispielsweise die Mann-in-der-Mitte-Attacke, bei der versucht werden kann, manipulierten Code in das Kraftfahrzeug 2 zu laden.
  • Auf der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und der elektronischen Komforteinrichtung 14 kann eine Software ablaufen. Die Software kann ein Betriebssystem und zumindest einen Prozess aufweisen. Jeder Prozess kann Teilprozesse (Threads) aufweisen. Jeder Prozess und jeder Teilprozess kann eine Mehrzahl von Codeabschnitten mit Anweisungen (Code) aufweisen, die die Arbeitsweise eines Prozessors bestimmen.
  • Die Prozesse, die in der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und/oder der elektronischen Komforteinrichtung 14 laufen, können miteinander kommunizieren oder unabhängig voneinander ablaufen.
  • Die Prozesse können über einen Bus bzw. ein Fahrzeug-Netzwerk 24 miteinander kommunizieren.
  • Falls ein Prozess, der in der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und/oder der elektronischen Komforteinrichtung 14 läuft, ein unvorhergesehenes Ereignis bei der Ausführung des Codes eines Codeabschnittes erfasst, gibt der Prozess über den Bus bzw. das Fahrzeug-Netzwerk 24 an die Sendeeinrichtung 20 ein Signal aus, das ein ungewöhnliches Ereignis aufgetreten ist. Das Auftreten des ungewöhnlichen Ereignisses wird über eine Antenne 22 und ein Netzwerk 6 an eine zentrale Einrichtung 4 übertragen.
  • Die zentrale Einrichtung 4 kann über das Netzwerk 6 den Zustand der Software der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und/oder der elektronischen Komforteinrichtung 14 analysieren. Dazu können beispielsweise Aufzeichnungen über die Ausführung eines Prozesses, beispielsweise so genannte Traces und der Inhalt von Aufzeichnungsspeicherbereichen (Log-Daten) hochgeladen werden, die sich in der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12, der elektronischen Komforteinrichtung 14 und/oder der Speichereinrichtung 16 befinden können. Die zentrale Einrichtung 4 kann die Prozessausführungsaufzeichnung analysieren, um manuell und/oder automatisiert eine Ursache für das unerwartete Ereignis zu ermitteln. Sobald die Ursache des unerwarteten Ereignisses ermittelt wurde, kann die zentrale Einrichtung 4 über das Netzwerk 6 die zentrale elektronische Einrichtung 8, die Motorsteuerungseinrichtung 12 und/oder die elektronische Komforteinrichtung 14 anweisen, die Funktionsweise der Software, d.h. zumindest eines Teil-Prozesses der Software, zu verändern. Das Verändern der Funktionsweise der Software kann umfassen, dass ein Prozess beendet wird und erneut gestartet wird. Das Ändern der Funktionsweise kann auch umfassen, dass die Kommunikation zwischen Komponenten des Kraftfahrzeuges 2 oder die Kommunikation nach außen unterbrochen wird. Ferner kann die Änderung der Funktionsweise umfassen, dass Teile der Software, d.h. zumindest ein Prozess, zu einem geeigneten Zeitpunkt neu gestartet werden. Der geeignete Zeitpunkt kann das Abstellen des Kraftfahrzeugs sein. Ferner kann die Änderung der Funktionsweise umfassen, dass die Ausführung eines Prozesses bzw. eines Teilprozesses für einen vorbestimmten Zeitraum unterbrochen wird. Ferner kann die Änderung der Funktionsweise umfassen, dass der Codeabschnitt, der das unerwartete Ereignis verursacht hat, mehrmals ausgeführt wird. Es kann ein Zähler vorgesehen werden, der überwacht, wie oft der Code unter Auftreten des unerwarteten Ereignisses erneut ausgeführt wird. Sobald der Codeabschnitt, der das unerwartete Ereignis ausgelöst hat, ohne Auftreten des unerwarteten Ereignisses ausgeführt wird, wird der Codeabschnitt nicht nochmals ausgeführt.
  • Die zentrale Einrichtung 4 kann dazu ausgebildet sein, eine Mehrzahl von Kraftfahrzeugen 2 anzuweisen, die Funktionsweise der Software zu verändern. Dies kann beispielsweise bei Implementierungsfehlern erforderlich sein, die ein Sicherheitsrisiko darstellen oder den Komfort erheblich einschränken.
  • Die zentrale Einrichtung kann die Änderung der Funktionsweise der Software zumindest eines Kraftfahrzeuges 2 innerhalb eines Zeitraums von weniger als 6 h, vorzugsweise weniger als 3 h, höchstvorzugsweise weniger als 1 h, mehr bevorzugt innerhalb von weniger als 30 min, höchst bevorzugt innerhalb von 15 min, ändern.
  • Die zentrale Steuerungseinrichtung 8, die Motorsteuerung 12 und/oder die elektronische Komforteinrichtung 14 können beim Ermitteln einer Manipulation der Software und/oder der Hardware eine Nachricht an die zentrale Einrichtung 4 über das Netzwerk 6 schicken. Die zentrale Einrichtung 4 kann eine Anweisung über das Netzwerk 6 an die Software des Kraftfahrzeuges 2 schicken, in der festgelegt wird, wie die Funktionsweise der Software geändert wird. Die Funktionsweise kann so geändert werden, wie zuvor beschrieben wurde. Ferner kann die Änderung der Funktionsweise umfassen, dass zumindest der Prozess, dessen Programmcode manipuliert ist, zumindest teilweise angehalten wird und ferner kann die Kommunikation von Prozessen unterbrochen werden, die manipulierten Code aufweisen, da Gefahr besteht, dass Daten aus dem Kraftfahrzeug 2 an unbefugte Dritte versandt werden.
  • Beim Ermitteln, dass eine Hardware eines Kraftfahrzeuges manipuliert wurde, falls beispielsweise der Motor 10 manipuliert wurde, kann die Änderung der Funktionsweise umfassen, dass der Motor 10 mit einer reduzierten Leistungsabgabe betrieben wird, um Motorschäden zu vermeiden. Ferner kann der Fahrer mittels eines Signals, beispielsweise eines optischen Signals, informiert werden, dass eine Manipulation vorliegt, beispielsweise an einem sicherheitskritischen System, das ein Antiblockiersystem, ein Stabilitätssystem oder dergleichen umfassen kann.
  • Die zentrale Einrichtung 4 kann dazu ausgebildet sein, die Funktionsweise der Software dadurch zu verändern, dass zumindest ein Codeabschnitt oder der Code für zumindest einen Prozess verändert wird, indem beispielsweise der ursprüngliche Code und/oder ein Code mit einer Fehlerbehebung in die betreffende elektronische Einrichtung geladen wird, beispielsweise in die zentrale Steuerungseinrichtung 8, die Motorsteuerung 12 und/oder die elektronische Komforteinrichtung 14.
  • Die vorliegende Erfindung hat den Vorteil, dass eine dynamische Reaktion auf ein unerwartetes Ereignis und/oder auf eine Manipulation erreicht wird. Falls das Kraftfahrzeug von einem unbefugten Dritten entwendet wird, können einige Funktionen deaktiviert werden. Ferner kann der Fahrer abgehalten werden, eine manipulierte Software zu verwenden, die ein Sicherheitsrisiko darstellen kann. Zusätzlich kann eine Beschädigung am Kraftfahrzeug 2 im Fall von Implementierungsfehlern oder dergleichen vermieden werden. Schließlich können die Garantieansprüche des Halters des Kraftfahrzeuges 2 im Falle einer ermittelten Manipulation beschränkt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 102011004634 A1 [0006]
    • DE 102007051440 A1 [0007]
    • DE 102009025585 A1 [0008]
    • DE 102006044896 B3 [0009]

Claims (10)

  1. Verfahren zum Überwachen einer Software in einem Straßenfahrzeug (2), wobei die Software eine Mehrzahl von Codeabschnitten aufweist und jeder Codeabschnitt zumindest eine Funktion ausführt, aufweisend die folgenden Schritte: – Erfassen, ob ein unerwartetes Ereignis bei der Ausführung eines der Codeabschnitte aufgetreten ist, wobei das unerwartete Ereignis durch die Ausführung des Codes des Codeabschnittes verursacht wird; und/oder – Prüfen, ob ein Softwareabschnitt manipuliert wurde; – Falls das unerwartete Ereignis erfasst wird und/oder erfasst wird, dass ein Softwareabschnitt manipuliert wurde, Senden einer Nachricht an eine zentrale Einheit (4) außerhalb des Straßenfahrzeuges (2); – Empfangen einer Anweisung von der zentralen Einheit (4), die Funktionsweise der Software in Reaktion auf die Erfassung des unerwarteten Ereignisses und/oder die Manipulation des Softwareabschnittes zu ändern; und – Ändern der Funktionsweise der Software, während die Software ausgeführt wird, in Reaktion auf die Anweisung.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das unerwartete Ereignis zumindest eines von Folgendem aufweist: – eine unerwartete Beendigung eines Prozesses; – eine unerwartete Beendigung eines Threads; – eine Variable weist einen Wert außerhalb eines zulässigen Wertebereichs auf; – eine Inter-Prozess-Kommunikation ist fehlgeschlagen; – eine Intra-Prozess-Kommunikation ist fehlgeschlagen; – ein Sprung zu einem Codeabschnitt ist fehlgeschlagen und/oder dadurch gekennzeichnet, dass die Manipulation des Softwareabschnittes zumindest eines von Folgendem umfasst: – Verändern zumindest eines Codeabschnittes; – Verändern zumindest eines digitalen Inhaltes; – Verändern zumindest eines Konfigurationsdatums.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das unerwartete Ereignis – aufgrund einer Manipulation einer Komponente (8, 12, 14) auftritt; – die Erfassung einer Manipulation einer Komponente (8, 12, 14) umfasst; – aufgrund einer Softwaremanipulation auftritt; und/oder – die Erfassung einer Softwaremanipulation umfasst.
  4. Verfahren nach einem der Ansprüche 1 bis 3, gekennzeichnet durch den Schritt des Analysierens des Zustandes der Software durch die zentrale Einheit.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass das Ändern der Funktionsweise der Software den Schritt des Unterbrechens der Ausführung zumindest eines Codeabschnittes für einen vorbestimmten Zeitraum umfasst.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass das Ändern der Funktionsweise der Software das Beenden zumindest eines Prozessteils der Software und den Neustart zumindest des beendeten Prozessteils umfasst.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass das Ändern der Funktionsweise der Software das Unterbrechen der Kommunikation von zumindest einem ersten Codeabschnitt umfasst.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass zumindest ein zweiter Codeabschnitt nach dem Unterbrechen der Kommunikation des zumindest einen ersten Codeabschnittes mit einer anderen Einheit des Straßenfahrzeuges (2) und/oder einer Einheit außerhalb des Straßenfahrzeuges (2) kommuniziert oder kommunizieren kann.
  9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass das Ändern der Funktionsweise der Software den Schritt des erneuten Ausführens des Codeabschnittes umfasst, der das unerwartete Ereignis verursacht hat.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass der Schritt des Veränderns der Funktionsweise den Schritt des Aktualisierens und/oder Austauschens zumindest eines Codeabschnittes und/oder zumindest eines Softwareabschnittes umfasst.
DE102014213503.6A 2014-07-11 2014-07-11 Verfahren zum Überwachen einer Software in einem Straßenfahrzeug Pending DE102014213503A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102014213503.6A DE102014213503A1 (de) 2014-07-11 2014-07-11 Verfahren zum Überwachen einer Software in einem Straßenfahrzeug
US14/796,123 US20160011932A1 (en) 2014-07-11 2015-07-10 Method for Monitoring Software in a Road Vehicle
CN201510404162.6A CN105260254A (zh) 2014-07-11 2015-07-10 用于在道路车辆中监控软件的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014213503.6A DE102014213503A1 (de) 2014-07-11 2014-07-11 Verfahren zum Überwachen einer Software in einem Straßenfahrzeug

Publications (1)

Publication Number Publication Date
DE102014213503A1 true DE102014213503A1 (de) 2016-01-14

Family

ID=54866940

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014213503.6A Pending DE102014213503A1 (de) 2014-07-11 2014-07-11 Verfahren zum Überwachen einer Software in einem Straßenfahrzeug

Country Status (3)

Country Link
US (1) US20160011932A1 (de)
CN (1) CN105260254A (de)
DE (1) DE102014213503A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2551516B (en) * 2016-06-20 2019-03-20 Jaguar Land Rover Ltd Activity monitor
DE102021207473A1 (de) * 2021-07-14 2023-01-19 Robert Bosch Gesellschaft mit beschränkter Haftung Mitigation einer manipulation von software eines fahrzeugs

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157610A (en) * 1989-02-15 1992-10-20 Hitachi, Ltd. System and method of load sharing control for automobile
US5442553A (en) * 1992-11-16 1995-08-15 Motorola Wireless motor vehicle diagnostic and software upgrade system
US5815071A (en) * 1995-03-03 1998-09-29 Qualcomm Incorporated Method and apparatus for monitoring parameters of vehicle electronic control units
US6622264B1 (en) * 1999-10-28 2003-09-16 General Electric Company Process and system for analyzing fault log data from a machine so as to identify faults predictive of machine failures
DE102006044896B3 (de) 2006-09-22 2008-04-10 GM Global Technology Operations, Inc., Detroit Manipulationsferndiagnosesystem für ein Fahrzeug
DE102007051440A1 (de) 2007-10-25 2009-04-30 Volkswagen Ag Verfahren und Vorrichtung zur Freischaltung von Software in einem Kraftfahrzeug
DE102009025585A1 (de) 2009-06-19 2010-12-23 Audi Ag Vorrichtung zur dezentralen Funktionsfreischaltung eines Steuergeräts
DE102011004634A1 (de) 2010-02-25 2011-08-25 Ford Global Technologies, LLC, Mich. Verfahren und Systeme zum Detektieren einer unautorisierten Benutzung eines Fahrzeugs durch einen autorisierten Fahrer

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
SE518104C2 (sv) * 2000-06-13 2002-08-27 Saab Ab System och metod för programvaruunderhåll
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US7000151B2 (en) * 2002-07-18 2006-02-14 Hewlett-Packard Development Company, L.P. System and method for providing run-time type checking
US7017024B2 (en) * 2002-12-12 2006-03-21 International Business Machines Corporation Data processing system having no system memory
EP1538509A1 (de) * 2003-12-04 2005-06-08 Axalto S.A. Methode zum Absichern einer Programmausführung gegen Strahlungsangriffe
US7490268B2 (en) * 2004-06-01 2009-02-10 The Trustees Of Columbia University In The City Of New York Methods and systems for repairing applications
US8266597B2 (en) * 2008-06-16 2012-09-11 International Business Machines Corporation Dynamically patching computer code using breakpoints
US20100042287A1 (en) * 2008-08-12 2010-02-18 Gm Global Technology Operations, Inc. Proactive vehicle system management and maintenance by using diagnostic and prognostic information
US8060936B2 (en) * 2008-10-21 2011-11-15 Lookout, Inc. Security status and information display system
US8190322B2 (en) * 2009-01-13 2012-05-29 GM Global Technology Operations LLC Autonomous vehicle maintenance and repair system
US9268945B2 (en) * 2010-03-19 2016-02-23 Contrast Security, Llc Detection of vulnerabilities in computer systems
CN201854303U (zh) * 2010-07-13 2011-06-01 孙天 基于车辆诊断线的internet诊断维修系统
US9043078B2 (en) * 2010-08-13 2015-05-26 Deere & Company Method and system for performing diagnostics or software maintenance for a vehicle
CN103080719B (zh) * 2010-09-10 2016-04-06 迪尔公司 用于执行车辆的诊断或软件维护的方法和系统
US8543280B2 (en) * 2011-04-29 2013-09-24 Toyota Motor Engineering & Manufacturing North America, Inc. Collaborative multi-agent vehicle fault diagnostic system and associated methodology
US8775046B2 (en) * 2011-09-01 2014-07-08 Robert Bosch Gmbh Unintended acceleration detection and correction
US8732530B2 (en) * 2011-09-30 2014-05-20 Yokogawa Electric Corporation System and method for self-diagnosis and error reporting
CN102663281B (zh) * 2012-03-16 2015-03-18 华为数字技术(成都)有限公司 检测恶意软件的方法和装置
CN103631609A (zh) * 2012-08-21 2014-03-12 广州汽车集团股份有限公司 一种车载ecu应用程序的刷新方法及系统
CN103200268B (zh) * 2013-04-11 2016-01-20 山东大学 一种用于电动汽车的远程监控、升级及标定的系统及方法
US9940762B2 (en) * 2013-09-25 2018-04-10 Ford Global Technologies, Llc Systems and methods for identification of a compromised module
US9282110B2 (en) * 2013-11-27 2016-03-08 Cisco Technology, Inc. Cloud-assisted threat defense for connected vehicles

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157610A (en) * 1989-02-15 1992-10-20 Hitachi, Ltd. System and method of load sharing control for automobile
US5442553A (en) * 1992-11-16 1995-08-15 Motorola Wireless motor vehicle diagnostic and software upgrade system
US5815071A (en) * 1995-03-03 1998-09-29 Qualcomm Incorporated Method and apparatus for monitoring parameters of vehicle electronic control units
US6622264B1 (en) * 1999-10-28 2003-09-16 General Electric Company Process and system for analyzing fault log data from a machine so as to identify faults predictive of machine failures
DE102006044896B3 (de) 2006-09-22 2008-04-10 GM Global Technology Operations, Inc., Detroit Manipulationsferndiagnosesystem für ein Fahrzeug
DE102007051440A1 (de) 2007-10-25 2009-04-30 Volkswagen Ag Verfahren und Vorrichtung zur Freischaltung von Software in einem Kraftfahrzeug
DE102009025585A1 (de) 2009-06-19 2010-12-23 Audi Ag Vorrichtung zur dezentralen Funktionsfreischaltung eines Steuergeräts
DE102011004634A1 (de) 2010-02-25 2011-08-25 Ford Global Technologies, LLC, Mich. Verfahren und Systeme zum Detektieren einer unautorisierten Benutzung eines Fahrzeugs durch einen autorisierten Fahrer

Also Published As

Publication number Publication date
US20160011932A1 (en) 2016-01-14
CN105260254A (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
DE102017113435A1 (de) Fahrzeug-Gateway-Netzwerkschutz
EP3393859B1 (de) Verfahren zur modifikation safety- und/oder security-relevanter steuergeräte in einem kraftfahrzeug, und eine diesbezügliche vorrichtung
DE102014219456A1 (de) Deaktivieren eines autonomen fahrmodus eines fahrzeugs
WO2003003200A1 (de) Verfahren zum übertragen von software-modulen
DE102011084254A1 (de) Kommunikationssystem für ein Kraftfahrzeug
WO2019072840A1 (de) Vorrichtung zur absicherung von diagnosebefehlen an ein steuergerät und entsprechendes kraftfahrzeug
DE102019214471A1 (de) Verfahren zum Fernsteuern eines Kraftfahrzeugs
DE102019214461A1 (de) Verfahren zum Fernsteuern eines Kraftfahrzeugs
DE102017214661A1 (de) Verfahren zum Erkennen einer Manipulation zumindest eines Steuergeräts eines Kraftfahrzeugs sowie Prozessorvorrichtung für ein Kraftfahrzeug und Kraftfahrzeug
DE102018118190A1 (de) Verfahren und Vorrichtung zur Kontrolle eines Fahrverhaltens eines hochautomatisiert fahrenden Fahrzeugs sowie Infrastrukturanlage, Fahrzeug oder Überwachungsfahrzeug mit der Vorrichtung
DE102018207339A1 (de) Verfahren, Vorrichtung und computerlesbares Speichermedium mit Instruktionen zum Überwachen und Validieren von Betriebsdaten in der Aktuatorik eines autonomen Kraftfahrzeugs
DE102019214445A1 (de) Verfahren zum Assistieren eines Kraftfahrzeugs
DE102023110645A1 (de) Sicherheitsverfahren und Sicherheitsvorrichtung
DE102011077472A1 (de) Verfahren und Ladestation zur Überprüfung von Fahrzeugkomponenten eines Elektrofahrzeugs
DE102018216140B4 (de) Verfahren zur Durchführung einer Fahrzeugdiagnose zu einer Testfahrt eines Fahrzeugs, Steuereinrichtung und Fahrzeug
DE112015005253T5 (de) Controller Area Network (CAN)-Kommunikationssystem und Aufzeichnungsvorrichtung für Fehlerinformationen
DE102007006614A1 (de) Anwendung einer verteilten Diagnosearchitektur in AUTOSAR
DE102014213503A1 (de) Verfahren zum Überwachen einer Software in einem Straßenfahrzeug
DE102011117376A1 (de) Verfahren zum Übernehmen von Programmdaten per Telematik in ein Steuergerät eines Kraftfahrzeugs mit automatischem Abnahmetest
DE102020208536A1 (de) Gateway-vorrichtung, abnormitätsüberwachungsverfahren und speichermedium
DE112019007286T5 (de) Fahrzeuginterne steuerungsvorrichtung und fahrzeuginternes steuerungssystem
DE102019214413A1 (de) Verfahren zum zumindest teilautomatisierten Führen eines Kraftfahrzeugs
DE102019004612A1 (de) Verfahren zum Betreiben eines Fahrzeugs mit einem Steuergerät
DE112018004881T5 (de) Überwachungsvorrichtung, Überwachungssystem und Computerprogramm
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed