-
QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNGEN
-
Die vorliegende Offenbarung bezieht sich auf die
U.S. Anmeldung Nr. 15/700,605 , eingereicht am 11. September 2017. Die gesamten Offenbarungen der vorstehend erwähnten Anmeldungen werden hierin durch Bezugnahme aufgenommen.
-
EINLEITUNG
-
Diese Einführung dient der allgemeinen Darstellung des Kontextes der Offenbarung. Die Arbeit der gegenwärtig genannten Erfinder im Umfang der Beschreibung in diesem Einführungsabschnitt sowie andere Aspekte der Beschreibung, gelten gegenüber der vorliegenden Offenbarung weder ausdrücklich noch konkludent als Stand der Technik.
-
Die vorliegende Offenbarung bezieht sich auf Systeme und Verfahren zum Überwachen von Netzwerken auf potenzielle bösartige Aktivitäten und insbesondere auf Systeme und Verfahren zur Erkennung und Reaktion auf potenzielle Eingriffe innerhalb eines Fahrzeug-Netzwerks.
-
Ein Eindringungserkennungssystem (IDS) ist eine Vorrichtung oder Anwendungssoftware zum Überwachen des Netzwerkverkehrs auf anormale oder bösartige Aktivitäten, die auf Richtlinienverletzungen basieren. Das System kann jede erkannte Aktivität an einen Administrator melden, der entscheiden kann, ob er basierend auf dem Bericht Maßnahmen ergreifen möchte.
-
KURZDARSTELLUNG
-
Bei einem Merkmal ist ein System vorgesehen. Das System kann ein Anomalieerkennungsmodul, ein residentes Protokollerzeugungsmodul und ein übertragenes Protokollerzeugungsmodul beinhalten. Das Anomalieerkennungsmodul kann zum Erhalten einer oder mehrerer Netzwerkmeldungen von einem oder mehrerer Kommunikationsbusse eines Fahrzeugs konfiguriert werden. Die eine oder mehrere Netzwerkmeldungen können ein oder mehrere Ereignisse im Zusammenhang mit dem Fahrzeug beschreiben. Das Anomalieerkennungsmodul ist weiterhin konfiguriert, um zu erkennen, ob zumindest einige der einen oder mehreren Ereignisse eine Anomalie basierend auf den vordefinierten Regeln darstellen, um erkannte Anomalie-Ereignisdaten bereitzustellen. Das residente Protokollerzeugungsmodul kann zum Erhalten der erkannten Anomalie-Ereignisdaten konfiguriert werden und ein oder mehrere residente Ereignisprotokolle basierend auf den erkannten Anomalie-Ereignisdaten erzeugen. Das eine oder die mehreren residenten Ereignisprotokolle können Metadaten beinhalten, die mit einem oder mehreren erkannten anomalen Ereignissen verknüpft sind. Das übertragende Protokollerzeugungsmodul kann konfiguriert werden, um das eine oder die mehreren residenten Protokolle zu erhalten und ein oder mehrere übertragene Ereignisprotokolle basierend auf dem einen oder den mehreren residenten Ereignisprotokollen zu erzeugen. Jedes der einen oder der mehreren übertragenden Ereignisprotokolle kann einem residenten Ereignisprotokoll entsprechen. Darüber hinaus kann das übertragende Protokollerzeugungsmodul konfiguriert werden, um ein oder mehrere übertragene Ereignisprotokolle an ein vom Fahrzeug entferntes Computersystem zu übertragen.
-
In einem Merkmal kann das System auch ein elektronisches Steuergerät (ECU) beinhalten. Das ECU kann einen Speicher beinhalten. Der Speicher kann mindestens eines oder mehrere der residenten Ereignisprotokolle beinhalten. In einem Beispiel des vorhergehenden Merkmals kann das ECU weiterhin konfiguriert werden, um einen Protokollsteuerungsbefehl von dem vom Fahrzeug entfernten Computersystem zu erhalten. Das ECU kann als Reaktion auf das Erhalten des Protokollsteuerungsbefehls mindestens eine der folgenden Maßnahmen durchführen: (i) Löschen von mindestens einem residenten Ereignisprotokoll des einen oder der mehreren residenten Ereignisprotokolle; und/oder (ii) Einstellen einer Speicherzuordnung für mindestens eines der einen oder mehreren residenten Ereignisprotokolle.
-
In einem Merkmal ist das übertragende Protokollerzeugungsmodul des Systems weiterhin konfiguriert, um einen Protokollsteuerungsbefehl von dem vom Fahrzeug entfernten Computersystem zu erhalten. Das übertragende Protokollerzeugungsmodul kann als Reaktion auf das Erhalten des Protokollsteuerungsbefehls mindestens eine der folgenden Maßnahmen durchführen: (i) Übertragen von mindestens einem des einen oder mehreren residenten Ereignisprotokolle an das vom Fahrzeug entfernte Computersystem; (ii) Anpassen von Inhalt von mindestens einem der einen oder mehreren residenten Ereignisprotokolle vor der Übertragung an (iii) Einstellen einer Protokollübertragungsrate, die dem übertragenden Protokollerzeugungsmodul zugeordnet ist, wobei die Protokollübertragungsrate eine Frequenz beschreibt, mit der übertragene Ereignisprotokolle von dem übertragenden Protokollerzeugungsmodul an das vom Fahrzeug entfernte Computersystem übertragen werden; und/oder (iv) Einschränken einer Datengröße von einem oder mehreren der übertragenen Ereignisprotokolle.
-
In einem weiteren Merkmal kann das System ein Abhilfemaßnahmenmodul beinhalten. Das Abhilfemaßnahmenmodul kann konfiguriert werden, um einen Eindringungsreaktionsbefehl von dem vom Fahrzeug entfernten Computersystem zu erhalten. Als Reaktion auf den Eindringungsreaktionsbefehl kann das Abhilfemaßnahmenmodul mindestens eine der folgenden Maßnahmen durchführen: (i) Einschränken der Kommunikationen von mindestens einem der einen oder mehreren Kommunikationsbusse; und/oder (ii) Beleuchten einer Störungsanzeigeleuchte (MIL) des Fahrzeugs.
-
In einem Merkmal kann jedes Ereignisprotokoll des einen oder der mehreren Ereignisprotokolle ein Manifest und einen oder mehrere Ereignisprotokolleinträge beinhalten. Jeder Ereignisprotokolleintrag des einen oder der mehreren Ereignisprotokolleinträge kann einem Verstoß gegen eine oder mehrere der vordefinierten Regeln entsprechen. In einem Beispiel des vorhergehenden Merkmals kann das Manifest (i) eine Softpart-Referenznummer beinhalten, die einen Regelsatz der vordefinierten Regeln identifiziert, denen ein bestimmtes residentes Ereignisprotokoll entspricht; und (ii) eine Zusammenfassung aller Regelverstöße, die eine Gesamtzahl der protokollierten Ereignisse für alle Regelverstöße innerhalb eines bestimmten Regelsatzes beschreibt, der durch die Softpart-Referenznummer definiert ist. In einem weiteren Beispiel des vorhergehenden Merkmals kann jeder der einen oder mehreren Ereignisprotokolleinträge einen oder mehrere der folgenden beinhalten: (i) die vordefinierte Regel, die verletzt wurde; (ii) eine Anzahl von Malen, in denen gegen die vordefinierte Regel verstoßen wurde; (iii) einen Zeitraum, in dem gegen die vordefinierte Regel verstoßen wurde; (iv) die Netzwerkmeldung, die gegen die Regel verstoßen hat; und/oder (v) historische Daten über das Ereignis, wobei die historischen Daten einen oder mehrere Zeitstempel beinhalten können, die einen bestimmten Zeitpunkt, zu dem gegen die Regel verstoßen wurde, und einen Zustand des Fahrzeugs zum Zeitpunkt, zu dem gegen die Regel verstoßen wurde, beschreiben.
-
In einem weiteren Merkmal können eine oder mehrere Netzwerkmeldungen eine oder mehrere der folgenden beinhalten: (i) Controller Area Network-(CAN)-Nachrichten von einem oder mehrerer CAN-Busse des Fahrzeugs und/oder (ii) Ethernet-Nachrichten von einem oder mehrerer Ethernet-Busse des Fahrzeugs.
-
In einem Merkmal können sich die vorgegebenen Regeln zumindest teilweise an den Betriebszustandsparametern des Fahrzeugs orientieren. In einem der vorstehenden Beispiele können die Betriebszustandsparameter des Fahrzeugs mindestens einige der folgenden Parameter beinhalten: (i) Geschwindigkeit des Fahrzeugs; (ii) Betriebsmodus des Fahrzeugs; (iii) Leistungsmodus des Fahrzeugs; (iv) Zustand eines Gangwahlschalters des Fahrzeugs; und/oder (v) Vorhandensein eines Testwerkzeugs in Verbindung mit dem Fahrzeug.
-
In einem weiteren Merkmal kann das System das vom Fahrzeug entfernte Computersystem beinhalten. In einem Beispiel des vorhergehenden Merkmals kann das vom Fahrzeug entfernte Computersystem konfiguriert werden, um ein Bestätigungssignal als Reaktion auf das Empfangen eines gesendeten Ereignisprotokolls vom übertragenden Protokollerzeugungsmodul zu erzeugen und das Bestätigungssignal über einen drahtlosen Kommunikationskanal an das Fahrzeug zu übermitteln.
-
In einem Merkmal kann das Anomalieerkennungsmodul konfiguriert werden, um zu erkennen, ob zumindest einige der einen oder mehreren Ereignisse eine Anomalie basierend auf den vordefinierten Regeln darstellen, indem bestimmt wird, ob eine bestimmte Netzwerkmeldung, die einem bestimmten Ereignis zugeordnet ist, in einem Netzwerk des Fahrzeugs sichtbar ist. In einem Beispiel des vorhergehenden Merkmals kann das Anomalieerkennungsmodul konfiguriert werden, um eine Anomalie zu erkennen, wenn bestimmt wird, dass die Nachricht im Netzwerk des Fahrzeugs sichtbar ist. In einem Beispiel des vorhergehenden Merkmals kann das Anomalieerkennungsmodul konfiguriert werden, um das Fehlen einer Anomalie zu erkennen, wenn bestimmt wird, dass die Nachricht im Netzwerk des Fahrzeugs nicht sichtbar ist.
-
In einem weiteren Merkmal ist jede der einen oder mehreren Netzwerkmeldungen mit entsprechenden Nachrichten-IDs verknüpft. In diesem Merkmal kann das Anomalieerkennungsmodul konfiguriert werden, um zu erkennen, ob zumindest einige der einen oder mehreren Ereignisse eine Anomalie basierend auf den vordefinierten Regeln darstellen, indem bestimmt wird, ob eine der vordefinierten Regeln einer bestimmten Nachrichten-ID entspricht, und als Reaktion darauf, dass eine vordefinierte Regel der bestimmten Nachrichten-ID entspricht, der Vergleich eines zulässigen Zustands, der mit der vordefinierten Regel verknüpft ist, mit einem aktuellen Zustand des Fahrzeugs. In einem Beispiel des vorhergehenden Merkmals kann das Anomalieerkennungsmodul konfiguriert werden, um eine Anomalie zu erkennen, wenn der aktuelle Zustand des Fahrzeugs nicht dem zulässigen Zustand der vordefinierten Regel entspricht. In einem weiteren Beispiel des vorhergehenden Merkmals kann das Anomalieerkennungsmodul konfiguriert werden, um das Fehlen einer Anomalie zu erkennen, wenn der aktuelle Zustand des Fahrzeugs dem zulässigen Zustand der vordefinierten Regel entspricht.
-
In einem Merkmal kann jedes der übertragenen Ereignisprotokolle weniger Metadaten beinhalten als sein entsprechendes residentes Ereignisprotokoll.
-
Weitere Anwendungsbereiche der vorliegenden Offenbarung ergeben sich aus der ausführlichen Beschreibung, den Ansprüchen und den Zeichnungen. Die ausführliche Beschreibung und die spezifischen Beispiele dienen lediglich der Veranschaulichung und schränken den Umfang der Offenbarung nicht ein.
-
Figurenliste
-
Die vorliegende Offenbarung wird verständlicher unter Zuhilfenahme der ausführlichen Beschreibung und der zugehörigen Zeichnungen, worin gilt:
- 1 ist ein Funktionsblockdiagramm, das ein Beispiel für ein Eindringungserkennungssystem (IDS) darstellt;
- 2 ist ein Diagramm, das eine exemplarische Datenstruktur für ein residentes Ereignisprotokoll und/oder ein übertragenes Ereignisprotokoll veranschaulicht;
- 3 ist ein Diagramm, das eine exemplarische Datenstruktur für ein Manifest eines residenten Ereignisprotokolls veranschaulicht;
- 4 ist ein Diagramm, das eine exemplarische Datenstruktur für ein Manifest eines übertragenen Ereignisprotokolls veranschaulicht;
- 5 ist ein Flussdiagramm, das ein exemplarisches Verfahren zum Erzeugen eines übertragenen Ereignisprotokolls veranschaulicht;
- 6 ist ein Flussdiagramm, das ein exemplarisches Verfahren zum Steuern der Verwaltung von Ereignisprotokollen veranschaulicht;
- 7 ist ein Flussdiagramm, das ein exemplarisches Verfahren zur Beseitigung eines Eindringens in ein Fahrzeugnetzwerk veranschaulicht;
- 8 ist ein Funktionsblockdiagramm, das ein System und ein entsprechendes Kommunikationsprotokoll zum Durchführen einer Eindringungserkennung im Fahrzeug veranschaulicht;
- 9 ist ein Flussdiagramm, das ein exemplarisches Verfahren zur Kommunikation zwischen einem Fahrzeug und einem entfernten Computersystem zur Eindringungserkennung im Fahrzeug veranschaulicht;
- 10 ist eine exemplarische Datenstruktur für einen Speicher zum Speichern von Betriebszustandsparametern eines Fahrzeugs;
- 11 ist ein Flussdiagramm, das ein Verfahren zur Durchführung einer Anomalieerkennung veranschaulicht;
- 12 ist ein Flussdiagramm, das ein Verfahren zur Durchführung einer Anomalieerkennung unter Einbeziehung von Betriebszustandsparametern des Fahrzeugs veranschaulicht;
- 13 ist ein Flussdiagramm, das ein Verfahren zur Durchführung einer Anomalieerkennung basierend auf vordefinierten Regeln bezüglich einer Paketweiterleitungsrichtlinie für ein Controller Area Network (CAN) veranschaulicht;
- 14 ist ein Flussdiagramm, das ein Verfahren zur Durchführung einer Anomalieerkennung basierend auf vordefinierten Regeln bezüglich einer zulässigen Fahrzeugzustandsrichtlinie darstellt; und
- 15 ist ein Funktionsblockdiagramm, das ein weiteres Beispiel für ein Eindringungserkennungssystem veranschaulicht.
-
In den Zeichnungen werden dieselben Bezugszeichen für ähnliche und/oder identische Elemente verwendet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Netzwerkrichtlinien können unter Verwendung von Mustern definiert werden, die mit „schlechtem“ Verhalten und potenziellen Bedrohungen verbunden sind, oder indem statistisch begrenztes „gutes“ Verhalten definiert oder erlernt wird. Im Rahmen von Transportsystemen kann ein Eindringungserkennungssystem (IDS) entwickelt werden, um anormale Netzwerkaktivitäten im Fahrzeug zu identifizieren, die auf ein „Abstimmen“ der Leistung oder die Existenz eines Cyber-Angriffs hinweisen können.
-
Unter Bezugnahme nun auf 1 ist ein IDS 100 dargestellt. Das IDS 100 beinhaltet ein Fahrzeug 102 und ein entferntes Computersystem 104. Obwohl das Fahrzeug 102 jeder geeignete Fahrzeugtyp sein kann, stellt das Fahrzeug 102 im Beispiel von 1 ein Automobil dar. Das Fahrzeug 102 kann drahtlos mit dem entfernten Computersystem 104 über jedes geeignete, in der Technik bekannte drahtlose Netzwerk verbunden werden. In einem Beispiel kann das entfernte Computersystem 104 von einem oder mehreren Servercomputern oder dergleichen implementiert werden.
-
In dem in 1 dargestellten Beispiel beinhaltet das Fahrzeug 102 ein Anomalieerkennungsmodul 108, ein residentes Protokollierungsmodul 110, eine elektronische Steuereinheit 112, ein übertragenes Protokollierungsmodul 114, einen oder mehrere Controller Area Network-(CAN)-Busse 106, einen oder mehrere Ethernet-Busse 142, ein Sanierungsmodul 104 und eine Störungsanzeigeleuchte (MIL) 150. Das entfernte Computersystem 104 beinhaltet ein Eindringungserkennungsmodul 116, ein Eindringungsreaktionsmodul 118 und ein Protokollsteuerungsmodul 120.
-
Im Betrieb kann das System 100 zum Erkennen von Eindringversuchen innerhalb eines Netzwerks des Fahrzeugs 102 wie folgt funktionieren. Das Anomalieerkennungsmodul 108 des Fahrzeugs 102 ist konfiguriert, um eine oder mehrere Netzwerknachrichten 148 von einem oder mehreren Kommunikationsbussen des Fahrzeugs, wie dem/den CAN-Bus(en) 106 und/oder dem/den Ethernet-Bus(en) 142, zu erhalten (d. h. abzuholen oder zu empfangen). Die Netzwerkmeldung(en) 148 können CAN-Nachrichten 128 und/oder Ethernet-Nachrichten 144 beinhalten. Die Netzwerkmeldung(en) 148 können ein oder mehrere Ereignisse im Zusammenhang mit dem Fahrzeug beschreiben. Wie hierin verwendet, kann ein Ereignis jede Aktivität beinhalten, die innerhalb der mechanischen, elektrischen oder Softwaresysteme des Fahrzeugs stattfindet. Als Beispiel und nicht als Einschränkung kann ein Ereignis eine mechanische Fehlfunktion, eine elektrische Fehlfunktion, das Erzeugen einer Meldung oder jede andere Aktivität beinhalten, die möglicherweise auf ein Eindringen in das Netzwerk des Fahrzeugs 102 hindeuten könnte. In einem Beispiel könnte eine mechanische Fehlfunktion eine fehlerhafte Verkabelung in einem Fahrzeug beinhalten.
-
Darüber hinaus ist das Anomalieerkennungsmodul 108 konfiguriert, um zu erkennen, ob mindestens ein Teil des einen oder der mehreren Ereignisse eine Anomalie basierend auf den vordefinierten Regeln 122 darstellt. Ein Ereignis kann als Anomalie erkannt werden, wenn es eine anormale, einzigartige und/oder unerwartete Aktivität im Fahrzeug signalisiert. Das Anomalieerkennungsmodul 108 kann erkennen, ob ein bestimmtes Ereignis eine Anomalie darstellt, indem es Informationen, die das Ereignis beschreiben, mit den vordefinierten Regeln 122 vergleicht, welche die Begrenzungen für anomales und nicht-anomales Verhalten festlegen.
-
Gemäß einigen Beispielen können sich die vorgegebenen Regeln 122 zumindest teilweise basierend auf den Betriebszustandsparametern des Fahrzeugs 102 beziehen. Die Betriebszustandsparameter können beispielsweise (i) die Geschwindigkeit des Fahrzeugs 102, (ii) die Betriebsart des Fahrzeugs 102 (z. B. Teenie-Fahrermodus usw.), (iii) die Leistungsart des Fahrzeugs 102, (iv) den Zustand eines Gangwahlschalters (z. B. „PRNDL“) des Fahrzeugs 102 und/oder (v) das Vorhandensein eines Testwerkzeugs (z. B. eines Diagnosewerkzeugs) in Verbindung mit dem Fahrzeug 102 beinhalten.
-
Gemäß weiteren Beispielen können die vordefinierten Regeln 122 zusätzlich oder alternativ basierend auf einem oder mehreren dem Fahrzeug zugeordneten Netzwerkdesign-Parametern verwendet werden. Die Netzwerkdesign-Parameter können Netzwerk-ID, Nachrichtenübertragungsrate, zugeordnete(s) Netzwerk(e) und/oder Länge der Meldung beinhalten.
-
In einigen Implementierungen ist das Anomalieerkennungsmodul 108 zum Erkennen konfiguriert, ob ein bestimmtes Ereignis eine Anomalie basierend auf den vordefinierten Regeln 122 darstellt, indem bestimmt wird, ob eine bestimmte Netzwerkmeldung, die einem bestimmten Ereignis zugeordnet ist, in einem Netzwerk des Fahrzeugs 102 sichtbar ist. Wenn sich herausstellt, dass die Netzwerkmeldung tatsächlich im Netzwerk des Fahrzeugs sichtbar ist, kann das Anomalieerkennungsmodul 108 gemäß einiger Beispiele eine Anomalie erkennen. Wenn sich herausstellt, dass die Netzwerkmeldung nicht im Netzwerk des Fahrzeugs sichtbar ist, kann das Anomalieerkennungsmodul 108 gemäß einiger Beispiele das Fehlen einer Anomalie erkennen.
-
In einigen Beispielen ist jede der einen oder mehreren Netzwerkmeldungen 148 einer Nachrichten-ID zugeordnet und das Anomalieerkennungsmodul 108 ist zum Erkennen, ob ein bestimmtes Ereignis eine Anomalie basierend auf den vordefinierten Regeln 122 darstellt, indem bestimmt wird, ob eine der vordefinierten Regeln 122 mit einer bestimmten Nachrichten-ID übereinstimmt. Wenn eine vordefinierte Regel einer bestimmten Nachrichten-ID entspricht, ist das Anomalieerkennungsmodul 108 zum Vergleichen eines der vordefinierten Regel zugeordneten zulässigen Zustands mit einem aktuellen Zustand des Fahrzeugs 102 konfiguriert. Wenn der aktuelle Zustand des Fahrzeugs 102 nicht dem zulässigen Zustand der vordefinierten Regel entspricht, kann das Anomalieerkennungsmodul 108 eine Anomalie erkennen. Wenn der aktuelle Zustand des Fahrzeugs 102 jedoch dem zulässigen Zustand der vordefinierten Regel entspricht, kann das Anomalieerkennungsmodul 108 das Fehlen einer Anomalie erkennen.
-
Nachdem bestimmt wurde, dass einige der einen oder mehreren Ereignisse eine Anomalie darstellen, kann das Anomalieerkennungsmodul 108 Anomalie-Ereignisdaten 130 erzeugen, welche die anomalen Ereignisse beschreiben. Das residente Protokollerzeugungsmodul 110 kann die Anomalie-Ereignisdaten 130 zur weiteren Verarbeitung erhalten. Genauer gesagt, kann das residente Protokollerzeugungsmodul 110 zum Erzeugen eines oder mehrerer residenter Ereignisprotokolle 126 basierend auf den erkannten Anomalie-Ereignisdaten 130 konfiguriert werden. Das/die residenten Ereignisprotokoll(e) 126 können Metadaten beinhalten, die mit einem oder mehreren erkannten anomalen Ereignissen verknüpft sind. Die spezifischen Arten der Metadaten, die als Teil eines bestimmten residenten Ereignisprotokolls eingebunden sind, werden in den 2-3 veranschaulicht und im Folgenden näher erläutert.
-
Gemäß einigen Implementierungen kann das Fahrzeug 102 auch ein elektronisches Steuergerät (ECU) 112 beinhalten. Das ECU kann die residenten Ereignisprotokolle 126 vom residenten Protokollerzeugungsmodul 110 beziehen und die residenten Ereignisprotokolle 126 im Speicher 124 ablegen. Obwohl als separates Element des Anomalieerkennungsmoduls 108, des residenten Protokollerzeugungsmoduls 110, des übertragenen Protokollerzeugungsmoduls 1154 und des Fehlerbehebungsmoduls 140 dargestellt, können gemäß einigen Implementierungen eines oder mehrere der vorgenannten Module 108, 110, 114 und 140 als Teil des ECU 112 implementiert werden. So kann beispielsweise das ECU 112 gemäß einigen Implementierungen einen oder mehrere Mikrocontroller beinhalten, die zum Ausführen von ausführbaren Anweisungen im Speicher 124 konfiguriert sind, um einige oder alle Funktionen auszuführen, die den Modulen 108, 110, 114 und 140 zugeordnet sind.
-
Das übertragene Protokollerzeugungsmodul 114 ist konfiguriert, um die residenten Ereignisprotokolle 126 vom ECU 112 zu erhalten und ein oder mehrere übertragene Ereignisprotokolle 132 basierend auf den residenten Ereignisprotokollen zu erzeugen. Jedes einzelne übertragene Ereignisprotokoll kann einem residenten Ereignisprotokoll entsprechen. Ein gegebenes übertragenes Ereignisprotokoll kann einem gegebenen Ereignisprotokoll entsprechen, da das übertragene Ereignisprotokoll einige oder alle Metadaten beinhaltet, die als Teil des Ereignisprotokolls enthalten sind. In einigen Implementierungen kann ein bestimmtes übertragenes Ereignisprotokoll weniger Metadaten beinhalten als das entsprechende residente Ereignisprotokoll. Auf diese Weise können die Datenübertragungskosten, die mit der Übertragung der übertragenen Ereignisprotokolle vom Fahrzeug 102 zum entfernten Computersystem 104 verbunden sind, minimiert werden. Gemäß einigen Implementierungen kann die Menge der gemeinsamen Daten, die ein übertragenes Ereignisprotokoll mit dem entsprechenden residenten Ereignisprotokoll teilt, basierend beispielsweise auf den Befehlen des entfernten Computersystems 104 variieren, wie im Folgenden näher erläutert wird. In einigen Beispielen kann ein bestimmtes übertragenes Ereignisprotokoll alle Metadaten beinhalten, die in dem entsprechenden residenten Ereignisprotokoll enthalten sind.
-
Das Modul zum Erzeugen des übertragenen Ereignisprotokolls ist weiterhin so konfiguriert, dass es das/die übertragene(n) Ereignisprotokoll(e) 132 zur weiteren Verarbeitung an das entfernte Computersystem 104 überträgt.
-
Das Eindringungserkennungsmodul 116 des entfernten Computersystems 104 ist konfiguriert, um die übertragenen Ereignisprotokolle 132 von dem übertragenen Ereignisprotokoll-Erzeugungsmodul 114 des Fahrzeugs 102 zu erhalten. Nachdem die übertragenen Ereignisprotokolle 132 erhalten wurden, wird das Eindringungserkennungsmodul 116 zum Bestimmen, ob ein Eindringen in das Fahrzeugnetzwerk stattgefunden hat, basierend auf den übertragenen Ereignisprotokollen 132 konfiguriert. Gemäß einigen Beispielen kann das Eindringungserkennungsmodul 116 einen regelbasierten Ansatz zum Ausführen der Eindringungserkennung verwenden, wobei die übertragenen Ereignisprotokolle 132 gemäß den vorgegebenen Regeln und/oder Richtlinien analysiert werden, um ein Eindringen zu erkennen. Gemäß weiteren Beispielen kann das Eindringungserkennungsmodul 116 überwachte oder unbeaufsichtigte maschinelle Lerntechniken verwenden, um ein Eindringen basierend auf dem (den) übertragenen Ereignisprotokoll(en) 132 zu erkennen.
-
Das Eindringungserkennungsmodul 116 ist konfiguriert, um beim Erkennen eines Eindringens Eindringungsdaten 134 zu erzeugen. Die Eindringungserkennungsdaten 134 beinhalten Daten, welche die Art des Eindringens beschreiben. Das Eindringungserkennungsmodul 116 ist weiterhin konfiguriert, um die Eindringungserkennungsdaten 134 zur weiteren Verarbeitung an das Eindringungsreaktionsmodul 118 und das Protokollsteuerungsmodul 120 zu übertragen.
-
Das Eindringungserkennungsmodul 118 ist konfiguriert, um die Eindringungserkennungsdaten 134 zu erhalten und als Reaktion darauf einen Eindringungsbefehl 118 zu erzeugen. Der Eindringungsreaktionsbefehl 136 ist konfiguriert, um das Fahrzeug anzuweisen, einige positive Maßnahmen zu ergreifen, um die Auswirkungen des erkannten Eindringens zu beheben oder zu mildern.
-
Das Abhilfemaßnahmenmodul 140 des Fahrzeugs ist konfiguriert, um den Eindringungsreaktionsbefehl 136 zu erhalten und daraufhin einige Abhilfemaßnahmen durchzuführen. Konkret kann das Abhilfemaßnahmenmodul 140 beispielsweise die Kommunikation von einem oder mehreren Kommunikationsbussen (z. B. einem oder mehreren CAN-Bussen oder einem oder mehreren Ethernet-Bussen) einschränken oder die Beleuchtung einer Störungsanzeige (MIL) 150 verursachen.
-
Das Protokollsteuerungsmodul 120 ist konfiguriert, um die Eindringungserkennungsdaten 134 zu erhalten und daraufhin einen Protokollsteuerbefehl 138 zu erzeugen. Der Protokollsteuerbefehl 138 ist konfiguriert, um das Fahrzeug anzuweisen, die Art und Weise zu definieren und/oder zu ändern, in der die residenten Ereignisprotokolle 126 und/oder die übertragenen Ereignisprotokolle 132 gespeichert, erzeugt, übertragen usw. werden.
-
Gemäß einigen Implementierungen ist das ECU 112 zum Erhalten des Protokollsteuerbefehls 138 und zum Ausführen einer oder mehrerer der folgenden Maßnahmen konfiguriert: (i) Löschen von mindestens einem residenten Ereignisprotokoll des einen oder der mehreren residenten Ereignisprotokolle 126 aus dem Speicher 124 und/oder (ii) Anpassen einer Speicherzuordnung im Speicher 124 für mindestens eines der einen oder mehreren residenten Ereignisprotokolle 126.
-
Gemäß einigen Beispielen ist das übertragene Protokollerzeugungsmodul 114 konfiguriert, um den Protokollsteuerbefehl 138 zu erhalten und eine oder mehrere der folgenden Maßnahmen zu ergreifen: (i) Übertragen von mindestens einem des einen oder mehreren residenten Ereignisprotokolle 126 an das entfernte Computersystem 104; (ii) Einstellen des Inhalts von mindestens einem der einen oder mehreren residenten Ereignisprotokolle 126 vor der Übertragung an das entfernte Computersystem 104; (iii) Einstellen einer Protokollübertragungsrate, die dem übertragenen Protokollerzeugungsmodul 114 zugeordnet ist, wobei die Protokollübertragungsrate eine Frequenz beschreibt, mit der übertragene Ereignisprotokolle 132 von dem übertragenen Protokollerzeugungsmodul 114 an das entfernte Computersystem 104 übertragen werden; und/oder (iv) Einschränken einer Datengröße von einem oder mehreren der übertragenen Ereignisprotokolle 132.
-
Unter Bezugnahme auf 2 wird nun eine exemplarische Datenstruktur 200 für ein residentes Ereignisprotokoll und/oder ein übertragenes Ereignisprotokoll dargestellt. Gemäß einigen Beispielen können residente Ereignisprotokolle und übertragene Ereignisprotokolle im Allgemeinen die gleiche Datenstruktur aufweisen. In vielen Fällen beinhalten die übertragenen Ereignisprotokolle jedoch weniger Daten als die entsprechenden residenten Ereignisprotokolle, um unter anderem die Kosten für die Übertragung von Informationen über ein oder mehrere drahtlose Netzwerke an ein entferntes Computersystem zu verringern. Die Datenstruktur 200 beinhaltet ein Manifest 202 mit einer zyklischen Redundanzprüfung (CRC) 204 und ein Ereignisprotokoll 206 mit einem oder mehreren Ereignisprotokolleinträgen. Das Manifest 202 kann Angaben zur Datenstruktur 200 sowie Angaben darüber beinhalten, ob ein neues Ereignis eingetreten ist. Der CRC 204 kann einen Prüfwert basierend auf dem Rest einer Polynomteilung deren Inhalts beinhalten, wodurch die Datenstruktur 200 teilweise oder vollständig wiederhergestellt werden kann, wenn bei der Übertragung der Datenstruktur 200 Fehler auftreten. Jeder Ereignisprotokolleintrag kann Details über einen Verstoß gegen eine oder mehrere vordefinierte Regeln beinhalten (z. B. die vordefinierten Regeln 122 von 1).
-
Jeder Ereignisprotokolleintrag kann eine nicht eingehaltene Regel-ID 208, einen Gesamtverstoßzähler 210, einen aufgetretenen Zeitrahmenverstoß 212, eine Netzwerkmeldung, welche gegen die Regel 214 verstoßen hat, und historische Daten 216 beinhalten. Der Abschnitt der nicht eingehaltenen Regel-ID 208 eines bestimmten Ereignisprotokolleintrags kann eine Identifizierung einer bestimmten Regel beinhalten, gegen die aus einer Vielzahl von Regeln verstoßen wurde, die zusammen eine Regelrichtlinie bilden. Der Teil des Gesamtverstoßzählers 210 eines bestimmten Ereignisprotokolleintrags kann einen Zähler beinhalten, der die Anzahl der Verstöße gegen die betreffende Regel wiedergibt. Der aufgetretene Zeitrahmenverstoß 212 kann sowohl (i) einen ersten Zeitstempel (z. B. im koordinierten Universalzeitformat (UTC)) beinhalten, der ein erstes Mal anzeigt, dass der Regelverstoß aufgetreten ist, als auch (ii) einen zweiten Zeitstempel (z. B. im koordinierten Universalzeitformat (UTC)), der ein letztes Mal anzeigt, dass der Regelverstoß aufgetreten ist. Die Netzwerkmeldung, die gegen den Teil der Regel 214 eines bestimmten Ereignisprotokolleintrags verstoßen hat, kann eine Identifikation (z. B. eine Nachrichten-ID) beinhalten, die auf eine bestimmte Netzwerkmeldung hinweist, die gegen die betreffende Regel verstoßen hat. Abschließend kann der Abschnitt mit den historischen Daten 216 eines gegebenen Ereignisprotokolleintrags Informationen beinhalten, die eine historische Zeitleiste für die fragliche Regelverletzung bereitstellen, einschließlich, aber nicht beschränkt auf, (1) einen Zeitstempel für eine Netzwerkmeldung, der einen Hinweis auf eine Zeit bereitstellt, zu der die fragliche Regel verletzt wurde, (2) eine Nachrichten-ID, welche die Netzwerk-ID identifiziert, wobei die fragliche Nachricht im Netzwerk des Fahrzeugs zu sehen war, und (3) Fahrzeugzustandsinformationen einschließlich Fahrzeugstatusparameter zum Zeitpunkt, zu dem die fragliche Regel verletzt wurde.
-
3 veranschaulicht ein Beispiel einer Datenstruktur für ein residentes Ereignisprotokoll-Manifest 300. Das residente Ereignisprotokoll-Manifest 300 beinhaltet einen Regelsatz 302 und neu protokollierte Ereignis-Highlights 306. Der Regelsatz 302 beinhaltet eine Soft-Part-Referenznummer 304. Die Softpart-Referenznummer 304 kennzeichnet einen Regelsatz, dem das residente Ereignisprotokoll entspricht. In einem Beispiel, in dem der Regelsatz einen kalibrierungsbasierten Regelsatz darstellt, kann die Softpart-Referenznummer 304 eine zugehörige Kalibrierdateinummer beinhalten. In einem Beispiel, in dem der Regelsatz eine Datenmenge darstellt, die in einem anwendungscodebasierten Regelsatz enthalten ist, kann die Softpart-Referenznummer 304 einen Verweis auf die entsprechende Anwendungscode-Teilenummer beinhalten. Die neu protokollierten Ereignis-Highlights 306 beinhalten eine Gesamtanzahl von Regelverstößen 308. Die Gesamtanzahl der Regelverstöße 308 beinhaltet eine Zusammenfassung der Gesamtanzahl der protokollierten Vorfälle für alle Regelverstöße innerhalb eines durch die Softpart-Referenznummer 304 definierten Regelsatzes.
-
4 veranschaulicht ein Beispiel einer Datenstruktur für ein übertragenes Ereignisprotokoll-Manifest 400. Das übertragene Ereignisprotokoll-Manifest 400 beinhaltet eine Protokolltypkennung 402, einen Regel satz 410, ein Zeitfenster 412, eine Fahrzeugkennung 422 und einen CRC 424.
-
Die Protokolltypkennung 402 beinhaltet die Nachrichtentypinformation 404 und die Protokollformatinformation 406. Die Nachrichtentypinformation 404 beinhaltet die Identifikation einer Funktion einer bestimmten Nachricht. Gemäß einigen Beispielen kann der Nachrichtentyp 404 die fragliche Meldung als (i) reserviert kennzeichnen, (ii) ein Ereignisprotokoll von einem bestimmten Kern eines bestimmten Mikrocontrollers widerspiegeln, (iii) ein Nicht-Ereignisprotokoll (z. B. eine Meldung) von einem bestimmten Kern eines bestimmten Mikrocontrollers oder, weiter gefasst, als einfach von einem bestimmten Mikrocontroller stammend, (iv) ein Nicht-Ereignisprotokoll (z. B. eine Meldung) von einem vom Fahrzeug entfernten Computersystem widerspiegeln, und (v) ein Zustandsprotokoll wiedergeben. Die Protokollformatinformation 406 definiert ein Format für die in der Nachricht eingebundenen Daten.
-
Der Regelsatz 410 beinhaltet eine Softpart-Teilenummer 408. Die Softpart-Teilenummer 408 identifiziert einen Regelsatz, dem das übertragene Ereignisprotokoll entspricht. In einem Beispiel, in dem der Regelsatz einen kalibrierungsbasierten Regelsatz darstellt, kann die Softpart-Teilenummer 408 eine zugehörige Kalibrierdateinummer beinhalten. In einem Beispiel, in dem der Regelsatz eine Datenmenge darstellt, die in einem anwendungscodebasierten Regelsatz enthalten ist, kann die Softpart-Teilenummer 408 einen Verweis auf die entsprechende Anwendungscode-Teilenummer beinhalten.
-
Das Zeitfenster 412 beinhaltet eine StartRecord-Zeit 414 und eine nächste StartRecord-Zeit 416. Die StartRecord-Zeit 414 kann einen Zeitstempel (z. B. im UTC-Format) beinhalten, der den Startpunkt für das übertragene Ereignisprotokoll angibt. Die nächste StartRecord-Zeit 416 kann einen Zeitstempel (z. B. im UTC-Format) beinhalten, der den Startpunkt für das nächste übertragene Ereignisprotokoll angibt, das zum Übertragen an das entfernte Computersystem vorgesehen ist.
-
Die Fahrzeugkennung 422 beinhaltet eine VIN-Nummer 418 und eine eindeutige ID-Nummer 420. Die VIN-Nummer 418 identifiziert das Fahrzeug, welches das übertragene Ereignisprotokoll, auf das sich das Manifest 400 bezieht, übertragen hat. Die eindeutige ID-Nummer 420 identifiziert ein ECU des Fahrzeugs, welches das übertragene Ereignisprotokoll, auf das sich das Manifest 400 bezieht, übertragen hat.
-
Abschließend kann der CRC 424 einen Prüfwert basierend auf dem Rest einer Polynomteilung deren Inhalts beinhalten, wodurch ein Teil oder das gesamte übertragene Ereignisprotokoll-Manifest 400 wiederhergestellt werden kann, wenn bei der Übertragung des Manifests 400 Fehler auftreten.
-
Unter Bezugnahme auf 5 wird nun ein Flussdiagramm bereitgestellt, das ein Verfahren 500 zum Erzeugen eines übertragenen Ereignisprotokolls gemäß den hierin aufgeführten Beispielen veranschaulicht. Das Verfahren 500 beginnt bei 502, wobei eine oder mehrere Meldungen von einem oder mehreren Kommunikationsbussen eines Fahrzeugs empfangen werden. Die eine oder mehrere Meldungen können ein oder mehrere Ereignisse im Zusammenhang mit dem Fahrzeug beschreiben. Bei 504 beinhaltet das Verfahren 500 das Erkennen, ob zumindest einige der Ereignisse basierend auf vordefinierten Regeln eine Anomalie darstellen, um erkannte Anomalieereignisdaten bereitzustellen. Bei 506 werden ein oder mehrere residente Ereignisprotokolle basierend auf den ermittelten Anomalieereignisdaten erzeugt. Das eine oder die mehreren residenten Protokolle können Metadaten beinhalten, die sich auf erkannte anomale Ereignisse beziehen. Abschließend werden bei 508 ein oder mehrere übertragene Ereignisprotokolle basierend auf den residenten Ereignisprotokollen erzeugt. Jedes der übertragenen Ereignisprotokolle kann einem residenten Ereignisprotokoll entsprechen. Darüber hinaus kann gemäß einigen Implementierungen jedes der übertragenen Ereignisprotokolle weniger Metadaten beinhalten als das jeweilige residente Ereignisprotokoll. Im Anschluss an 508 wird das Verfahren beendet.
-
Unter Bezugnahme auf 6 wird nun ein Flussdiagramm bereitgestellt, das ein Verfahren 600 zum Steuern der Verwaltung von Ereignisprotokollen veranschaulicht. Das Verfahren 600 beginnt bei 502. Die Schritte 502 bis 508 werden im Wesentlichen auf die gleiche Weise durchgeführt, wie in 5 beschrieben. Folglich beinhaltet das Verfahren 600 bei Schritt 602 das Ermitteln, ob ein Protokollsteuerungsbefehl erhalten wurde. Gemäß einem Beispiel kann der Protokollsteuerungsbefehl vom entfernten Computersystem zum Fahrzeug übertragen werden, um die Verwaltung der Ereignisprotokolle zu steuern. Wenn kein Protokollsteuerungsbefehl erhalten wurde, kehrt das Verfahren 600 zu 502 zurück und die Schritte 502 bis 508 können wiederholt werden. Wenn jedoch ein Protokollsteuerungsbefehl erhalten wurde, kann das Verfahren 600 mit einem oder mehreren von 604, 606, 608, 610, 612 und 614 zur weiteren Verarbeitung fortfahren.
-
Im Anschluss an 602 können eine oder mehrere der unter 604, 606, 608, 610, 612 und 614 aufgeführten Maßnahmen durchgeführt werden. Darüber hinaus können eine oder mehrere Maßnahmen nacheinander oder parallel durchgeführt werden. Die unter 604, 606, 608, 610, 612 und 614 beschriebenen Maßnahmen können beispielsweise verschiedene Optionen darstellen, die einem Fahrzeug zur Verfügung stehen, wenn es einen Steuerbefehl vom entfernten Computersystem erhält. Bei 604 können ein oder mehrere residente Ereignisprotokolle aus dem Speicher gelöscht werden (z. B. einem flüchtiger oder nichtflüchtiger Speicher des Fahrzeugs). Bei 606 kann eine Speicherzuordnung für das eine oder die mehreren residenten Ereignisprotokolle angepasst werden. Gemäß einem Beispiel kann das Anpassen einer Speicherzuordnung auch das Ändern der Speicherung eines oder mehrerer residenter Ereignisprotokolle im physischen oder virtuellen Speicher beinhalten. Bei 608 können ein oder mehrere residente Ereignisprotokolle oder übertragene Ereignisprotokolle vom Fahrzeug zum entfernten Computersystem übertragen werden. Bei 610 kann der Inhalt eines oder mehrerer residenter Ereignisprotokolle oder übertragener Ereignisprotokolle vor dem Übertragen vom Fahrzeug zum entfernten Computersystem angepasst werden. Bei 612 kann eine Protokollübertragungsrate eingestellt werden. Die Protokollübertragungsrate kann eine Frequenz beschreiben, mit der übertragene Ereignisprotokolle vom Fahrzeug zum entfernten Computersystem übertragen werden. Abschließend kann bei 614 eine Datengröße von einem oder mehreren übertragenen Ereignisprotokollen eingeschränkt werden. Im Anschluss an die Durchführung von 604, 606, 608, 610, 612 und 614 wird das Verfahren 600 beendet.
-
Unter Bezugnahme auf 7 ist ein Flussdiagramm bereitgestellt, das ein Verfahren 700 zum Ergreifen von Abhilfemaßnahmen als Reaktion auf das Erkennen eines Eindringens in ein Fahrzeugnetzwerk darstellt. Das Verfahren 700 beginnt bei 502. Die Schritte 502 bis 508 werden im Wesentlichen auf die gleiche Weise durchgeführt, wie in 5 beschrieben. Somit beinhaltet das Verfahren 700, beginnend bei Schritt 702, das Ermitteln, ob ein Eindringreaktionsbefehl zum Beispiel über das Fahrzeug vom entfernten Computersystem erhalten wurde. Wenn kein Eindringreaktionsbefehl erhalten wurde, kehrt das Verfahren 700 zu 502 zurück und die Schritte 502 bis 508 können wiederholt werden. Wenn jedoch ein Eindringreaktionsbefehl erhalten wurde, kann das Verfahren 700 zur weiteren Verarbeitung zu 704 und/oder 706 übergehen.
-
Im Anschluss an 702 können eine oder mehrere der unter 704 und 706 beschriebenen Maßnahmen nacheinander oder parallel durchgeführt werden. Die unter 704 und 706 beschriebenen Maßnahmen können beispielsweise verschiedene Optionen darstellen, die einem Fahrzeug zur Verfügung stehen, wenn es einen Eindringreaktionsbefehl vom entfernten Computersystem erhält. Bei 704 kann die Kommunikation von einem oder mehreren der Kommunikationsbusse (z. B. CAN-Bus(e) und/oder Ethernet-Bus(e)) des Fahrzeugs eingeschränkt werden. Bei 706 kann eine Störungsmeldeleuchte (MIL) aufleuchten. Die leuchtende MIL-Leuchte kann beispielsweise einem Fahrzeuginsassen signalisieren, dass ein Problem mit dem Fahrzeug (z. B. ein Netzwerkeindringling) vorliegt, das seine Aufmerksamkeit erfordert. Im Anschluss an 704 und/oder 706 wird das Verfahren 700 beendet.
-
Nun zu 8, ist ein System 800 und das dazugehörige Kommunikationsprotokoll zur Kommunikation zwischen dem Fahrzeug 102 und dem entfernten Computersystem 104 dargestellt. Das Fahrzeug 102 und das entfernte Computersystem 104 können dem abgebildeten und beschriebenen Fahrzeug 102 und dem entfernten Computersystem 104 in Bezug auf 1 im Wesentlichen ähnlich sein. Das exemplarische Fahrzeug 102 von 8 unterscheidet sich vom exemplarischen Fahrzeug von 1 dadurch, dass das Fahrzeug 102 von 8 mit einem zentralen Gateway-Modul (CGM) 802 und einem drahtlosen Sender 804 dargestellt ist. Das CGM 802 kann einen ersten Mikrocontroller 806 und einen zweiten Mikrocontroller 808 beinhalten. Darüber hinaus kann der erste Mikrocontroller 806 des CGM 802 einen zweiten Kern 810 und einen ersten Kern 812 beinhalten. Gemäß einigen exemplarischen Implementierungen können der zweite Kern 810 und der erste Kern 812 auf einen gemeinsamen, gesicherten Speicher (nicht dargestellt) zugreifen, der unter anderem zum Erzeugen, Speichern und Übertragen von residenten Ereignisprotokollen und/oder übertragenen Ereignisprotokollen verwendet wird.
-
Der zweite Mikrocontroller 808 kann über einen oder mehrere geeignete drahtgebundene oder drahtlose Kommunikationskanäle mit dem drahtlosen Sender 804 verbunden werden. Ähnlich kann der zweite Mikrocontroller 808 über einen oder mehrere geeignete drahtgebundene oder drahtlose Kommunikationskanäle kommunikativ mit dem ersten Mikrocontroller 806 verbunden werden. Der drahtlose Sender 804 ist zur Kommunikation mit dem entfernten Computersystem 104 über ein oder mehrere drahtlose Kommunikationsnetze unter Verwendung eines oder mehrerer geeigneter Kommunikationsprotokolle (z. B. VCP/TCP, usw.) konfiguriert.
-
Gemäß einigen exemplarischen Implementierungen können die Komponenten des Systems 800 wie folgt zusammenarbeiten. Bei 814 kann der zweite Kern 810 des ersten Mikrocontrollers 806 ein übertragenes Ereignisprotokoll erzeugen und an den ersten Kern 812 des ersten Mikrocontrollers 806 übertragen. Der erste Kern 812 des ersten Mikrocontrollers 806 kann anschließend das übertragene Ereignisprotokoll 814 an den zweiten Mikrocontroller 808 weiterleiten. Nach dem Empfangen des übertragenen Ereignisprotokolls 814 kann der zweite Mikrocontroller 808 (i) eine Bestätigung 816 erzeugen, die den erfolgreichen Empfang des übertragenen Ereignisberichts 814 bestätigt; (ii) die Bestätigung 816 an den ersten Kern 812 des ersten Mikrocontrollers 806 übertragen; und (iii) den übertragenen Ereignisbericht 814 an den drahtlosen Sender 804 weiterleiten. Nach dem Empfangen der Bestätigung 816 kann der erste Kern 812 die Bestätigung 816 an den zweiten Kern 810 des ersten Mikrocontrollers 806 weiterleiten.
-
Der drahtlose Sender 804 kann das gesendete Ereignisprotokoll 814 vom zweiten Mikrocontroller 808 empfangen und denselben 814 über ein oder mehrere drahtlose Netzwerke an das entfernte Computersystem 104 weiterleiten. Nach dem Empfangen des gesendeten Ereignisprotokolls 814 vom drahtlosen Sender 804 des Fahrzeugs 102 kann das entfernte Computersystem 104 (i) eine Bestätigung 818 erzeugen, die den erfolgreichen Empfang des gesendeten Ereignisberichts 814 bestätigt; (ii) die Bestätigung 818 an den drahtlosen Sender 804 des Fahrzeugs 102 übertragen; (iii) einen Befehl 820 erzeugen; und den Befehl 820 an den drahtlosen Sender 804 des Fahrzeugs 102 übertragen. Der Befehl 820 kann mindestens einen Protokollsteuerungsbefehl und einen Eindringreaktionsbefehl beinhalten. Sowohl die Bestätigung 818 als auch der Befehl 820 können von dem entfernten Computersystem 104 über Zwischenstationen einschließlich des drahtlosen Senders 804, des zweiten Mikrocontrollers 808 und des ersten Kerns 812 des ersten Mikrocontrollers 806 an den zweiten Kern 810 weitergeleitet werden.
-
Nach dem Empfangen des Befehls 820 kann der zweite Kern 810 des ersten Mikrocontrollers (i) eine Bestätigung 822 erzeugen, die den erfolgreichen Empfang des Befehls 820 bestätigt, und (ii) die Bestätigung 822 an den ersten Kern 812 übertragen. Der erste Kern 812 kann anschließend die Bestätigung 822 über Zwischenstationen einschließlich des zweiten Mikrocontrollers 808 und des drahtlosen Senders 804 an das entfernte Computersystem 104 weiterleiten.
-
Das vorstehend in Bezug auf 8 behandelte System 800 und das Kommunikationsprotokoll bringt mehrere Vorteile im Zusammenhang mit der Eindringungserkennung im Fahrzeug. Zunächst ermöglicht die Architektur des Systems 800 die Isolierung bestimmter Eindringungserkennungsfunktionen (z. B. Anomalieerkennung) von der Netzwerkverbindung, um die Wahrscheinlichkeit eines direkten, Fernangriffs zu verringern. Gemäß einer Implementierung kann beispielsweise die Anomalieerkennung und das Erzeugen eines residenten Ereignisprotokolls/eines übertragenen Ereignisprotokolls vom zweiten Kern 810 durchgeführt werden, der über Zwischenkomponenten, wie beispielsweise den zweiten Mikrocontroller 808 und den drahtlosen Sender 804, kommunikativ von der direkten Kommunikation außerhalb des Fahrzeugs isoliert werden kann. Darüber hinaus ist der erste Mikrocontroller 806 gemäß einigen exemplarischen Implementierungen nicht mit einem Netzwerkstapel ausgestattet, der in der Lage ist, Ereignisprotokolle (z. B. übertragene Ereignisprotokolle) direkt an das entfernte Computersystem 104 zu übertragen. Dies kann die Komplexität und den Aufwand des ersten Mikrocontrollers 806 reduzieren. Vielmehr kann der zweite Mikrocontroller 804 der einzige Mikrocontroller sein, der Teil des CGM 802 ist und einen Netzwerkstapel beinhaltet, der in der Lage ist, Ereignisprotokolle an das entfernte Computersystem 104 zu übertragen (z. B. über den drahtlosen Sender 804). Wenn der erste Mikrocontroller 806 nicht isoliert wird, könnten sowohl die Gate- als auch die Anomalie-Erkennungsfunktionalitäten für direkte Fernangriffe zugänglich gemacht werden. Die Verwendung von Bestätigungen (z. B. die Bestätigungen 818, 818, 822, usw.) verbessert die Zuverlässigkeit des Systems durch die Gewährleistung, dass die Kommunikation (z. B. übermittelte Ereignisprotokolle) ihren Bestimmungsort erreicht. Somit kann die in Bezug auf 8 offenbarte Architektur und das Kommunikationsprotokoll ein End-to-End-Kommunikationssystem 800 bereitstellen, das gemäß einigen Beispielen gewährleistet, dass ein spezifischer Kommunikationsweg bei der Schicht 4 des Open Systems Interconnection (OSI)-Modells verwendet wird, während andere Systeme nur gewährleisten können, dass ein zuverlässiger Weg aus einer Vielzahl von Optionen verwendet wird (der normalerweise bei Schicht 2 des OSI-Modells behandelt wird).
-
Unter Bezugnahme auf 9 veranschaulicht nun ein Flussdiagramm ein Verfahren 900 zur Kommunikation zwischen einem Fahrzeug und einem entfernten Computersystem zum Zwecke der Bereitstellung von Eindringversuchen in das Fahrzeugnetzwerk. Das Verfahren 900 beginnt bei 902, wobei ein übertragenes Ereignis in einem ersten Mikrocontroller erzeugt wird. Bei 904 wird das übertragene Ereignisprotokoll vom ersten Mikrocontroller zum zweiten Mikrocontroller übertragen. Bei 906 wartet der erste Mikrocontroller auf eine Bestätigung des zweiten Mikrocontrollers bezüglich des Empfangs des übertragenen Ereignisprotokolls. Bei 908 wird ermittelt, ob die Bestätigung vom ersten Mikrocontroller durch den zweiten Mikrocontroller empfangen wurde.
-
Wenn keine Bestätigung empfangen wurde, fährt das Verfahren 900 mit 910 fort und es wird ermittelt, ob eine Zeitüberschreitung aufgetreten ist (d. h. ob nach der Übertragung des übertragenen Ereignisprotokolls vom ersten Mikrocontroller zum zweiten Mikrocontroller eine vorbestimmte Zeitspanne verstrichen ist). Wenn eine Zeitüberschreitung aufgetreten ist, kehrt das Verfahren 900 zu 904 zurück und das übertragene Ereignisprotokoll wird erneut vom ersten Mikrocontroller zum zweiten Mikrocontroller übertragen. Wenn keine Zeitüberschreitung aufgetreten ist, kehrt das Verfahren 900 zu 906 zurück und der erste Mikrocontroller wartet auf eine Bestätigung vom zweiten Mikrocontroller.
-
Wenn bei 908 eine Bestätigung durch den ersten Mikrocontroller vom zweiten Mikrocontroller empfangen wurde, fährt das Verfahren 900 mit 912 fort. Bei 912 wartet der zweite Mikrocontroller auf eine Bestätigung vom entfernten Computersystem (z. B. eine Bestätigung, dass das entfernte Computersystem das gesendete Ereignisprotokoll empfangen hat, wie es vom zweiten Mikrocontroller an den ersten Mikrocontroller übermittelt wurde (Schritt nicht in 9 dargestellt)). Bei 914 wird ermittelt, ob die Bestätigung vom entfernten Computersystem durch den zweiten Mikrocontroller empfangen wurde.
-
Wenn keine Bestätigung empfangen wurde, fährt das Verfahren 900 mit 916 fort und es wird ermittelt, ob eine Zeitüberschreitung aufgetreten ist (d. h. ob nach der Übertragung des übertragenen Ereignisprotokolls vom zweiten Mikrocontroller zum entfernten Computersystem eine vorbestimmte Zeitspanne verstrichen ist). Wenn eine Zeitüberschreitung aufgetreten ist, kehrt das Verfahren 900 zu 904 zurück und das übertragene Ereignisprotokoll wird erneut vom ersten Mikrocontroller zum zweiten Mikrocontroller übertragen. Wenn keine Zeitüberschreitung aufgetreten ist, kehrt das Verfahren 900 zu 912 zurück und der zweite Mikrocontroller wartet auf eine Bestätigung vom entfernten Computersystem. Im Anschluss an 914 wird das Verfahren 900 beendet.
-
10 veranschaulicht eine exemplarische Datenstruktur 1000 für einen Speicher zum Speichern von Betriebszustandsparametern eines Fahrzeugs. Gemäß einigen Beispielen kann die Datenstruktur 1000 in einem oder mehreren Registern gespeichert werden, auf welche die Komponente(n) des Eindringungserkennungssystems zugreifen, die eine Anomalieerkennung durchführen (z. B. das Anomalieerkennungsmodul 108 von 1, der erste Mikrocontroller 806 von 8, usw.). Auf diese Weise können die Parameter des Fahrzeugbetriebszustands zur Bestimmung berücksichtigt werden, ob gegen eine der vordefinierten Regeln, die als Teil der Anomalieerkennung betrachtet werden, verstoßen wurde. Wie dargestellt, kann die Datenstruktur 1000 Bits und/oder Bytes von Daten reservieren, um die folgenden Informationsarten über den Zustand eines Fahrzeugs auszudrücken: (i) ob eine Präsentationsfähigkeit aktiv ist; (ii) ob der Fahrermodus A oder der Fahrermodus B aktiv ist; (iii) ob der Teenager-Fahrermodus aktiv ist; (iv) ob ein Testwerkzeug aktuell mit dem Fahrzeug verbunden ist; (v) ein CGM-Sicherheitszugriffsstatus; (vi) Fahrzeuggeschwindigkeit; (vii) Fahrzeugleistungsmodus; und (viii) Zustand eines Gangwahlschalters (z. B. der „PRNDL“-Zustand).
-
Die Berücksichtigung der vorgenannten Parameter des Fahrzeugbetriebszustands kann beim Erkennen von Anomalien hilfreich sein, indem sie den Kontext um mögliche Regelverletzungen herum darstellt und eine verbesserte Klassifizierung von Netzwerkereignissen ermöglicht. Gemäß einigen Implementierungen kann die Anomalieerkennung boolesche Operationen (z. B. UND/ODER Operationen) integrieren, um flexible logische Ausdrücke zu definieren, die in der Lage sind, Netzwerknachrichten mit Leistungsdesign-Parametern, Nachrichtennutzlast, Fahrzeugbetriebszuständen, Häufigkeit des Auftretens und einer Netzwerkreaktion mit Elementen, die bei der Definition eines Ausdrucks nicht gewünscht werden, durch eine geeignete Schreibweise innerhalb des gesamten logischen Ausdrucks ignoriert werden.
-
Neben anderen Vorteilen kann die Einbeziehung von Betriebszustandsparametern eines Fahrzeugs bei der Durchführung einer Anomalieerkennung (i) die Fähigkeit beinhalten, die Anzahl der Fehlalarme zu reduzieren, die erzeugt werden könnten (d. h. eine Erkennung eines anomalen Ereignisses, wenn das Ereignis nicht tatsächlich anomal war oder nicht tatsächlich ein Eindringen signalisiert hat) und (ii) das Erzeugen von Netzwerk-Eindringungsregeln, die normales Verhalten im Kontext einer anormalen Nutzung zur Unterstützung von Initiativen gegen Fahrzeugdiebstahl und Betrug ermöglichen.
-
Die 11-12 stellen ein Beispiel dafür dar, wie die Berücksichtigung von FahrzeugBetriebszustandsparametern die Anomalie- und Eindringungserkennung verbessern kann. Insbesondere ist 11 ein Flussdiagramm, das ein Verfahren zur Durchführung einer Anomalieerkennung ohne den Vorteil von Fahrzeugbetriebszustandsparametern veranschaulicht, während 12 ein Verfahren zur Durchführung einer Anomalieerkennung unter Verwendung von Fahrzeugbetriebszustandsparametern ist.
-
Im Hinblick auf das Flussdiagramm von 11 beginnt das Verfahren 1100 bei 1102, wobei der Modus 0x28 funktionell vom CAN-Bus 6 gesendet wird. Der Modus 0x28 bezieht sich auf einen vereinheitlichten Diagnosedienst-(UDS-Unified Diagnostic Services)-Zustand, der die Kommunikation auf einem oder mehreren Netzwerkbussen eines Fahrzeugs einschränkt. Bei 1104 übergibt das CGM des Fahrzeugs die CAN-Kommunikation an das Anomalieerkennungsmodul. Bei 1106 erkennt das Anomalieerkennungsmodul, ob die CAN-Kommunikation beispielsweise auf vordefinierten Regeln basiert. Bei 1008 wird im Rahmen der Anomalieerkennung ermittelt, ob der Modus 0x28 von einem Diagnosebus, wie beispielsweise dem CAN-Bus 6 oder dem CAN-Bus 7, ausgeht. Wenn der Modus 0x28 von einem Diagnosebus stammt, fährt das Verfahren 1100 mit 1110 fort, wobei bestimmt wird, dass der Modus 0x28 eine Service-Routine reflektieren könnte und dass kein anomales Verhalten erkannt wird. Im Anschluss an 1110 wird das Verfahren 1100 beendet. Wenn jedoch der Modus 0x28 nicht von einem Diagnosebus stammt, geht das Verfahren 1100 zu 1112 über, wobei bestimmt wird, dass der Modus 0x28 vom CAN 1 stammt und ein anomales Verhalten erkannt wird. Im Anschluss an 1112 wird das Verfahren 1100 beendet.
-
Nun zu 12, ist ein weiteres Verfahren 1200 vorgesehen. Die Schritte 1102 bis 1112 verfahren im Wesentlichen gemäß den Beschreibungen dieser Schritte wie oben in Bezug auf 11. Das Verfahren 1200 beinhaltet jedoch die Verwendung von Fahrzeugbetriebszustandsparametern bei 1202, um die Genauigkeit der Anomalieerkennung zu verbessern. Insbesondere nach der Bestimmung, dass der Modus 0x28 auf einem Diagnosebus bei 1108 entstanden ist, fährt das Verfahren 1200 mit 1202 fort, wobei bestimmt wird, dass der Modus 0x28 eine Service-Routine reflektieren könnte und dass kein anomales Verhalten erkannt wird.
-
Anstatt jedoch nach diesem Schritt zu schließen (wie im Fall des Verfahrens 1100 von 11), fährt das Verfahren 1200 mit 1204 fort, wobei bestimmt wird, ob 0x28 aufgetreten ist, während das Fahrzeuggetriebe im Fahrbetrieb war. Falls dies der Fall ist, fährt das Verfahren 1200 mit 1206 fort, wobei bestimmt wird, dass 0x28 nur dann auftreten soll, wenn sich das Fahrzeuggetriebe im Parkbetrieb befindet, und ein anomales Verhalten erkannt und protokolliert wird. Wenn ermittelt wird, dass 0x28 aufgetreten ist, während das Fahrzeuggetriebe nicht im Fahrbetrieb war, fährt das Verfahren 1200 mit 1208 fort, wobei bestimmt wird, ob 0x28 aufgetreten ist, während die Geschwindigkeit des Fahrzeugs 3 Kilometer pro Stunde (km/h) überschritten hat. (Obwohl 3 km/h der in diesem Beispiel verwendete Schwellenwert ist, werden Personen mit gewöhnlichen Fähigkeiten in diesem Bereich zu schätzen wissen, dass jeder geeignete Geschwindigkeitsschwellenwert als Teil dieses Schrittes einbezogen werden kann, ohne von den hierin dargelegten Lehren abzuweichen).
-
Wenn 0x28 aufgetreten ist, während die Geschwindigkeit des Fahrzeugs 3 km/h überschritten hat, fährt das Verfahren 1200 mit 1210 fort, wobei bestimmt wird, dass 0x28 nur auftreten soll, wenn das Fahrzeug stillsteht, und ein anomales Verhalten erkannt und protokolliert wird. Wenn bestimmt wird, dass 0x28 aufgetreten ist, während die Geschwindigkeit des Fahrzeugs 3 km/h nicht überschritten hat, fährt das Verfahren 1200 mit 1212 fort, wobei bestimmt wird, dass kein anomales Verhalten erkannt wurde. Im Anschluss an 1210 oder 1212 wird das Verfahren 1200 beendet.
-
Unter Bezugnahme auf 13 wird ein Flussdiagramm bereitgestellt, das ein Verfahren 1300 zur Durchführung einer Anomalieerkennung basierend auf vordefinierten Regeln bezüglich einer Richtlinie zur Weiterleitung von CAN-Paketen veranschaulicht. Obwohl das in 13 dargestellte Beispiel auf eine Richtlinie zur Weiterleitung von CAN-Paketen zutrifft, werden Personen mit normalen Fähigkeiten erkennen, dass das Verfahren 1300 auch auf andere Arten von Netzwerknachrichten, wie Ethernet-Nachrichten oder dergleichen, angewendet werden kann. Des Weiteren nimmt das Verfahren 1300 an, dass die Komponente des Systems, die eine Anomalieerkennung durchführt, alle Netzwerknachrichten sowie alle Nachrichten empfängt, die das CGM entweder besitzt oder weiterleiten wird. Die in 13 reflektierte Richtlinie zur Weiterleitung von CAN-Paketen kann beispielsweise gewährleisten, dass jede Nachricht, die innerhalb des Fahrzeugnetzwerks ohne Verwendung des CGM geroutet wurde, als anormal erkannt wird.
-
Das Verfahren 1300 beginnt bei 1302, wobei eine CAN-Nachricht erhalten wird. Bei 1304 wird bestimmt, ob die CAN-Nachricht erfolgreich übertragen wurde. Ist dies der Fall, fährt das Verfahren 1300 mit 1306 fort, wobei keine Verletzung vordefinierter Regeln erkannt wird und das System auf die nächste CAN-Nachricht wartet. Wenn jedoch bei 1304 bestimmt wird, dass die CAN-Nachricht nicht erfolgreich übertragen wurde, fährt das Verfahren 1300 mit 1308 fort. Um 1308 wird bestimmt, ob die CAN-Nachricht im Fahrzeugnetzwerk gesehen wurde. Wenn nicht, kehrt das Verfahren 1300 zu 1304 zurück. Wenn die CAN-Nachricht jedoch im Fahrzeugnetzwerk gesehen wurde, fährt das Verfahren 1300 mit 1310 fort, wobei bestimmt wird, dass eine vordefinierte Regel verletzt wurde (was zu einer Erkennung einer Anomalie führen kann). Im Anschluss an 1310 wird das Verfahren beendet.
-
Unter Bezugnahme nun auf 14 veranschaulicht ein Flussdiagramm ein Verfahren 1400 zur Durchführung einer Anomalieerkennung basierend auf vordefinierten Regeln für eine zulässige Fahrzeugzustandsrichtlinie. Obwohl das in 14 dargestellte Beispiel auf eine CAN-Nachricht zutrifft, werden Personen mit normalen Fähigkeiten erkennen, dass das Verfahren 1400 auch auf andere Arten von Netzwerknachrichten, wie Ethernet-Nachrichten oder dergleichen, angewendet werden kann.
-
Das Verfahren 1400 beginnt bei 1402, wobei eine CAN-Nachricht mit einer CAN_ID erhalten wird. Bei 1404 wird bestimmt, ob die CAN-ID einer vordefinierten Regel zugeordnet ist. Wenn nicht, fährt das Verfahren 1400 mit 1406 fort, wobei keine Verletzung erkannt wird und das System auf die nächste CAN-Nachricht wartet. Wird jedoch festgestellt, dass die CAN_ID einer Regel zugeordnet ist, fährt das Verfahren 1400 mit 1408 fort, wobei bestimmt wird, ob der zulässige Zustand der zugehörigen Regel einem aktuellen Zustand des Fahrzeugs entspricht. Falls ja, fährt das Verfahren 1400 mit 1410 fort, wobei keine Verletzung erkannt wird und das System auf die nächste CAN-Nachricht wartet. Wenn jedoch bestimmt wird, dass der zulässige Zustand der zugehörigen Regel nicht dem aktuellen Zustand des Fahrzeugs entspricht, fährt das Verfahren 1400 mit 1412 fort, wobei eine Regelverletzung erkannt wird. Im Anschluss an 1406, 1410 und 1412 wird das Verfahren 1400 beendet.
-
Unter Bezugnahme auf 15 wird ein weiteres Beispiel für ein System 1500 zur Durchführung einer Eindringungserkennung in einem Fahrzeugnetzwerk dargestellt. Das System 1500 beinhaltet das Fahrzeug 102, das über ein drahtloses Netzwerk 1510 mit dem entfernten Computersystem 104 verbunden ist. Das System 1500 von 15 entspricht dem System 100 von 1 und dem System 800 von 8. Das System 1500 von 15 veranschaulicht jedoch zusätzliche Details, die unter anderem das CGM 802 betreffen. Insbesondere veranschaulicht 15 eine Architektur für das CGM 802, die es ermöglicht, dass ein Knoten in einem herausgeforderten Netzwerk (d. h. der zweite Kern 810 des ersten Mikrocontrollers 806) das Netzwerk überwacht, von dem er funktional isoliert ist. Darüber hinaus veranschaulicht 15 die Art und Weise, wie der gemeinsame Speicher 1502 - geteilt zwischen dem zweiten Kern 810 und dem ersten Kern 812 des ersten Mikrocontrollers 806 - genutzt werden kann, um Netzwerknachrichten sicher für einen vom Netzwerk isolierten Knoten sichtbar zu machen. Weitere Vorteile ergeben sich unter Bezugnahme auf 15 und die anschließende Abhandlung.
-
Wie vorstehend erwähnt, kann das Fahrzeug 102 ein CGM 802 und einen mit dem CGM 802 verbundenen drahtlosen Sender 804 beinhalten. Der drahtlose Sender 804 kann zum Übertragen (und Empfangen) von Nachrichten, Signalen, Befehlen usw. zum (und vom) entfernten Computersystem 104 über das drahtlose Netzwerk 1510 konfiguriert werden.
-
Das CGM 802 kann einen ersten Mikrocontroller 806 und einen zweiten Mikrocontroller 808 beinhalten. Gemäß einigen exemplarischen Implementierungen kann jeder Mikrocontroller 806, 808 einen 32-Bit-Mikrocontroller darstellen. Im Rahmen dieser Offenbarung können jedoch auch andere geeignete Mikrocontroller-Architekturen eingesetzt werden, ohne von den hierin dargelegten Lehren abzuweichen. Gemäß einigen Beispielen kann das CGM 802 als ein oder mehrere ECUs oder dergleichen implementiert werden.
-
Der erste Mikrocontroller 806 kann einen ersten Kern 812, einen zweiten Kern 810 und einen Speicher 1502 beinhalten, der mit den ersten und zweiten Kernen 812, 810 verbunden ist. Der erste Kern 812 kann mit einem oder mehreren CAN-Bussen 106 und/oder einem oder mehreren Ethernet-Bussen 142 verbunden werden, um daraus Netzwerknachrichten 148 zu erhalten. Gemäß einigen Beispielen kann der erste Kern 812 konfiguriert werden, um die Netzwerknachricht(en) 148 in den Speicher 1502 (z. B. den gemeinsamen Speicher 1506) zu schreiben, sodass der zweite Kern 810 auf die Nachrichten zugreifen und sie analysieren kann, um eine Anomalieerkennung gemäß den Lehren der vorliegenden Offenbarung durchzuführen. Gemäß einigen Beispielen kann der gemeinsame Speicher 1506 nur durch den ersten Kern 812 und den zweiten Kern 810 des ersten Mikrocontrollers 806 direkt zugänglich sein, um das Eindringungserkennungssystem 1500 selbst vor einer Beeinträchtigung durch einen Cyber-Angriff oder dergleichen zu schützen.
-
Der Speicher 1502 kann einen gesicherten Direktzugriffsspeicher (RAM) 1504 und einen gesicherten nichtflüchtigen Speicher (NVM) 1512 beinhalten. Der gesicherte RAM 1504 kann als jeder geeignete RAM-Typ implementiert werden, einschließlich, jedoch nicht beschränkt auf SRAM, DRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, RDRAM, CMOS RAM, usw. Der gesicherte RAM 1504 kann einen gemeinsamen Speicher 1506 beinhalten, der zwischen dem ersten Kern 812 und dem zweiten Kern 810 des ersten Mikrocontrollers 806 geteilt wird. Der gesicherte RAM 1504 kann auch ein oder mehrere residente Ereignisprotokolle 126 und/oder ein oder mehrere übertragene Ereignisprotokolle 132 speichern. Die residenten Ereignisprotokolle 126 und/oder die übertragenen Ereignisprotokolle 132 können vom zweiten Kern 810 in den gesicherten RAM 1504 geschrieben werden, beispielsweise als Teil einer Ereignisprotokollerstellung nach einer Anomalieerkennung.
-
Der gesicherte NVM 1512 kann als jeder geeignete NVM-Typ implementiert werden, einschließlich, jedoch nicht beschränkt auf Flash, ROM, ferroelektrischer RAM, magnetische Speichervorrichtungen, optische Laufwerke, usw. Der gesicherte NVM 1512 kann ein oder mehrere residente Ereignisprotokolle 126 und/oder ein oder mehrere übertragene Ereignisprotokolle 132 beinhalten. Gemäß einigen Implementierungen können die residenten Ereignisprotokolle 126 und/oder die übertragenen Ereignisprotokolle 132 vom gesicherten RAM 1504 zum gesicherten NVM 1512 übertragen oder gesichert werden. So kann beispielsweise der zweite Kern 810 konfiguriert werden, um die residenten Ereignisprotokolle 126 und/oder die übertragenen Ereignisprotokolle 132 in den gesicherten NVM 1512 zu schreiben, bevor der Speicher 1502 an Leistung verliert (z. B. als Reaktion auf das Abschalten einer Fahrzeugzündung oder dergleichen). Obwohl das vorstehende Beispiel den zweiten Kern 810 in Betracht zieht, der die residenten Ereignisprotokolle 126 und/oder die übertragenen Ereignisprotokolle 132 in den gesicherten NVM 1512 schreibt, bevor der Speicher 1502 an Leistung verliert, betrachtet die vorliegende Offenbarung auch andere, nicht leistungsreduzierte Szenarien, wohingegen der zweite Kern 810 die residenten Ereignisprotokolle 126 und/oder die übertragenen Ereignisprotokolle 132 in den gesicherten NVM 1512 schreibt.
-
Der zweite Mikrocontroller 808 kann über einen beliebigen Kommunikationskanal mit dem ersten Mikrocontroller 806 verbunden und konfiguriert werden, um die Kommunikation zwischen dem ersten Mikrocontroller 806 und dem entfernten Computersystem 104 zu erleichtern. Insbesondere, während der erste Mikrocontroller 806 gemäß einigen Beispielen keinen Netzwerkstapel beinhaltet (und somit nicht außerhalb des Fahrzeugnetzwerks kommunizieren kann), beinhaltet der zweite Mikrocontroller 808 einen Netzwerkstapel 1508. Der Netzwerkstapel 1508 ermöglicht dem zweiten Mikrocontroller 808 die Kommunikation über externe Netzwerke des Fahrzeugs 102 (z. B. das drahtlose Netzwerk 1510) über den drahtlosen Sender 804. Auf diese Weise kann der zweite Mikrocontroller 808 als Schnittstelle oder Gateway zwischen dem ersten Mikrocontroller 806 und Netzwerken außerhalb des Fahrzeugs 102 dienen.
-
Im Betrieb kann das System 1500 zum Erkennen von Eindringversuchen innerhalb eines Netzwerks des Fahrzeugs 102 wie folgt funktionieren. Der erste Kern 812 des ersten Mikrocontrollers 806 kann von einem oder mehreren Kommunikationsbussen des Fahrzeugs (z. B. CAN-Bus(e) 106 und/oder Ethernet-Bus(e) 142) Netzwerknachrichten 148 empfangen. Die Netzwerkmeldung(en) 148, die von dem/den Kommunikationsbus(e) erhalten wurde(n), kann/können von anderen Komponenten im Fahrzeug ausgehen (nicht dargestellt), einschließlich, jedoch nicht beschränkt auf, einen Datenverbindungsstecker (DLC), wie beispielsweise ein OBD-II, eine Mittelkonsole usw. Die Netzwerkmeldung(en) 148 können ein oder mehrere Ereignisse im Zusammenhang mit einem Fahrzeug beschreiben, wie vorstehend in Bezug auf 1 ausführlich erörtert wurde.
-
Der erste Kern 812 kann eine oder mehrere Meldungen 148 in den Speicher 1502 schreiben. Insbesondere kann gemäß einigen Beispielen der erste Kern 812 die Netzwerkmeldung(en) in den gemeinsamen Speicher 1506 schreiben, sodass die Meldungen 148 durch den zweiten Kern 810 zugänglich sind (d. h. gelesen werden können). Neben dem Schreiben der Netzwerkmeldungen 148 in den Speicher kann der erste Kern 812 auch weitere Informationen in den Speicher schreiben (z. B. den gemeinsamen Speicher 1506), sodass die zusätzlichen Informationen für den zweiten Kern 810 zugänglich sind, um beispielsweise eine Anomalieerkennung und Ereignisprotokollierung durchzuführen. So kann beispielsweise der erste Kern 812 die folgenden zusätzlichen Informationen in den Speicher 1502 schreiben: (i) geroutete Netzwerkmeldungen; (ii) Diagnosemeldungen; und/oder (iii) Betriebszustandsparameter des Fahrzeugs. Gemäß einigen Beispielen können die Betriebszustandsparameter des Fahrzeugs gemäß der in 10 dargestellten und zuvor erörterten Datenstruktur im Speicher 1502 gespeichert werden.
-
Der zweite Kern 810 kann eine oder mehrere im Speicher 1502 gespeicherte Netzwerkmeldungen 148 lesen (z. B. den gemeinsamen Speicher 1506 des gesicherten RAM 1504) und darauf aufbauend eine Anomalieerkennung und Protokollerzeugung durchführen. Insbesondere kann der zweite Kern 810 erkennen, ob zumindest einige der in der/den Netzwerkmeldung(en) 148 beschriebenen Ereignisse eine auf vordefinierten Regeln basierende Anomalie darstellen (z. B. vordefinierte Regeln 122). Darüber hinaus kann der zweite Kern 810 ein oder mehrere residente Ereignisprotokolle 126 basierend auf den erkannten Anomaliedaten erzeugen (z. B. die in 1 dargestellten erkannten Anomaliedaten 130).
-
Wie vorstehend erwähnt, kann das eine oder die mehreren residenten Ereignisprotokolle 126 Metadaten beinhalten, die einem oder mehreren erkannten anomalen Ereignissen zugeordnet sind. Des Weiteren kann der zweite Kern 810 ein oder mehrere übertragene Ereignisprotokolle 132 basierend auf dem einen oder den mehreren residenten Ereignisprotokollen 126 erzeugen. Wie bereits erwähnt, kann das/die übertragene(n) Ereignisprotokoll(e) 132 dem/den jeweiligen residenten Ereignisprotokoll(en) 126 entsprechen. Gemäß einigen Beispielen kann das eine oder die mehreren übertragenen Ereignisprotokolle 132 weniger Metadaten beinhalten als ihre jeweiligen, entsprechenden ein oder mehrere residenten Ereignisprotokolle 126, um unter anderem die Datenübertragungskosten zu reduzieren, wenn die übertragenen Ereignisprotokolle 132 und/oder residenten Ereignisprotokolle 126 vom Fahrzeug 102 über das drahtlose Netzwerk 1510 an das entfernte Computersystem 104 übertragen werden.
-
Der zweite Kern 810 kann alle erzeugten residenten Ereignisprotokolle 126 und/oder übertragenen Ereignisprotokolle 132 in den Speicher 1502 schreiben, sodass die Protokolle 126, 132 (i) vom ersten Kern 812 gelesen werden können; (ii) über den ersten Kern 812 des ersten Mikrocontrollers 806 zum zweiten Mikrocontroller 808 übertragen werden; und (iii) vom zweiten Mikrocontroller 808 zum entfernten Computersystem 104 über das drahtlose Netzwerk 1510 über den drahtlosen Sender 804 übertragen werden. Insbesondere kann der zweite Kern 810 alle erzeugten residenten Ereignisprotokolle 126 und/oder übertragene Ereignisprotokolle 132 in den gesicherten RAM 1504 und/oder den gesicherten NVM 1512 schreiben. Der erste Kern 812 kann alle erzeugten residenten Ereignisprotokolle 126 und/oder übertragenen Ereignisprotokolle 132 lesen, die vom zweiten Kern 810 über den gesicherten RAM 1504 (einschließlich des gemeinsamen Speichers 1506) und/oder den gesicherten NVM 1512 in den Speicher 1502 geschrieben werden.
-
Die Architektur des CGM 802 ermöglicht es unter anderem, die Funktionen der Anomalieerkennung und Ereignisprotokollerzeugung des Eindringungserkennungssystems 1500 innerhalb des zweiten Kerns 810 des ersten Mikrocontrollers 806 zu isolieren, der keinen direkten Zugriff auf einen Netzwerkstapel (z. B. den Netzwerkstapel 1508) gemäß den hierin beschriebenen Implementierungen besitzt. Auf diese Weise können die Anomalieerkennungs- und Protokollerzeugungsfunktionen des Eindringungserkennungssystems 1500 vor direkten Netzwerkangriffen aus der Ferne geschützt werden.
-
Gemäß bestimmten Implementierungen ist das System 1500 von 15 weiterhin konfiguriert, um Bestätigungssignale im Wesentlichen gemäß dem hierin beschriebenen und in Bezug auf 8 veranschaulichten Protokoll zu erzeugen und zu übertragen. So kann beispielsweise der zweite Mikrocontroller 808 nach erfolgreichem Empfangen eines oder mehrerer gesendeter Ereignisprotokolle 132 und/oder residenter Ereignisprotokolle 126 vom ersten Mikrocontroller 806 ein Bestätigungssignal (Bestätigung des erfolgreichen Empfangs des betreffenden Ereignisprotokolls) erzeugen und dieses Bestätigungssignal an den ersten Mikrocontroller 806 zurücksenden. Gemäß einigen Beispielen kann der erste Kern 810 des ersten Mikrocontrollers 806 anschließend das Bestätigungssignal in den Speicher 1502 schreiben, sodass beispielsweise der zweite Kern 810 die Bestätigung lesen kann, dass ein bestimmtes Ereignisprotokoll erfolgreich entlang mindestens eines „Sprungs“ des Systems 1500 übertragen wurde.
-
Ebenso kann das entfernte Computersystem 104 nach erfolgreichem Empfangen des einen oder der mehreren übertragenen Ereignisprotokolle 132 und/oder residenten Ereignisprotokolle 126 vom zweiten Mikrocontroller 808 (über den drahtlosen Sender 804 und das drahtlose Netzwerk 1510) ein Bestätigungssignal erzeugen und dieses an den zweiten Mikrocontroller 808 zurücksenden, der wiederum das Bestätigungssignal an den ersten Kern 812 des ersten Mikrocontrollers 806 weiterleiten kann, von wo es in den Speicher 1502 oder dergleichen geschrieben werden kann (und schließlich vom zweiten Kern 810, falls gewünscht, ausgelesen werden kann).
-
Abschließend kann das entfernte Computersystem 104 gemäß einigen Beispielen verschiedene Befehle zum Zwecke der Verwaltung des Ereignisprotokolls und/oder der Abhilfemaßnahmen im Falle eines Eindringens in das Netzwerk erzeugen und an das Fahrzeug übermitteln.
-
So kann beispielsweise, wie im Zusammenhang mit 1 zuvor erläutert, das entfernte Computersystem 104 einen Protokollsteuerungsbefehl erzeugen und übertragen. Der Protokollsteuerungsbefehl kann vom entfernten Computersystem 104 an den zweiten Mikrocontroller 808 übertragen werden, der wiederum den Protokollsteuerungsbefehl an den ersten Mikrocontroller 806 weitergeben kann. Der erste Mikrocontroller 806 kann nach dem Erhalten des Protokollsteuerungsbefehls eine oder mehrere der folgenden Verwaltungsmaßnahmen in Bezug auf die Ereignisprotokolle durchführen: Löschen mindestens eines residenten Ereignisprotokolls des einen oder der mehreren residenten Ereignisprotokolle 126; Anpassen einer Speicherzuordnung für mindestens eines der einen oder mehreren residenten Ereignisprotokolle 126; Übertragen mindestens eines der einen oder mehreren residenten Ereignisprotokolle 126 an das entfernte Computersystem 104; Einstellen des Inhalts von mindestens einem der einen oder mehreren residenten Ereignisprotokolle 126 vor der Übertragung; Einstellen einer zugehörigen Protokollübertragungsrate, wobei die Protokollübertragungsrate eine Frequenz beschreibt, mit der übertragene Ereignisprotokolle 132 vom ersten Mikrocontroller 806 zum entfernten Computersystem 104 übertragen werden; und/oder Einschränken einer Datengröße des einen oder der mehreren übertragenen Ereignisprotokolle 132.
-
Darüber hinaus kann das entfernte Computersystem 104 einen Eindringungsreaktionsbefehl erzeugen und übertragen. Der Eindringungsreaktionsbefehl kann vom entfernten Computersystem 104 an den zweiten Mikrocontroller 808 übertragen werden, der wiederum den Eindringungsreaktionsbefehl an den ersten Mikrocontroller 806 weitergeben kann. Nach dem Erhalten des Eindringungsreaktionsbefehls kann der erste Mikrocontroller 806 eine oder mehrere der folgenden Abhilfemaßnahmen ergreifen: die Kommunikation von mindestens einem der einen oder mehreren Kommunikationsbusse (z. B. CAN-Bus(e) 106 und/oder Ethernet-Bus(e) 142) einschränken und/oder eine MIL des Fahrzeugs 102 beleuchten.
-
Die vorhergehende Beschreibung ist rein illustrativ und soll die vorliegende Offenbarung sowie ihre Ausführungen oder Verwendungen keineswegs einschränken. Die umfassenden Lehren der Offenlegung können in zahlreichen Formen umgesetzt werden. Obwohl die vorliegende Offenbarung also bestimmte Beispiele beinhaltet, ist der eigentliche Umfang der Offenbarung hierdurch in keiner Weise eingeschränkt und weitere Modifikationen gehen aus dem Studium der Zeichnungen, der Beschreibung und den folgenden Patentansprüchen hervor. Es sei daraufhingewiesen, dass einer oder mehrere Schritte innerhalb eines Verfahrens in anderer Reihenfolge (oder gleichzeitig) ausgeführt werden können, ohne die Prinzipien der vorliegenden Offenbarung zu verändern. Ferner, obwohl jede der Ausführungsformen oben dahingehend beschrieben ist, dass sie bestimmte Merkmale aufweist, kann/können eines oder mehrere dieser Funktionen, die in Bezug auf jede Ausführungsform der Offenbarung beschrieben sind, in jeder der anderen Ausführungsformen implementiert und/oder kombiniert werden, selbst wenn diese Kombination nicht explizit beschrieben wird. Mit anderen Worten ausgedrückt, schließen sich die beschriebenen Ausführungsformen nicht gegenseitig aus, und Permutationen von einer oder mehreren Ausführungsformen gegeneinander bleiben innerhalb des Schutzumfangs dieser Offenbarung.
-
Räumliche und funktionale Beziehungen zwischen Elementen (z. B. zwischen Modulen, Schaltkreiselementen, Halbleiterschichten usw.) werden unter Verwendung von verschiedenen Begriffen beschrieben, einschließlich „verbunden“, „eingerastet“, „gekoppelt“, „benachbart“, „neben“, „oben auf“, „über“, „unter“ und „angeordnet“. Sofern nicht ausdrücklich als „direkt“ beschrieben, kann eine Beziehung eine direkte Beziehung sein, wenn eine Beziehung zwischen einem ersten und zweiten Element in der oben genannten Offenbarung beschrieben wird, wenn keine anderen intervenierenden Elemente zwischen dem ersten und zweiten Element vorhanden sind, kann jedoch auch eine indirekte Beziehung sein, wenn ein oder mehrere intervenierende(s) Element(e) (entweder räumlich oder funktional) zwischen dem ersten und zweiten Element vorhanden ist/sind. Wie hierin verwendet, sollte der Satz „zumindest eines von A, B und C“ so zu verstehen sein, dass damit eine Logik gemeint ist (A ODER B ODER C), unter Verwendung eines nicht ausschließlichen logischen ODER, und sollte nicht dahingehend zu verstehen sein, dass gemeint ist „zumindest eines von A, zumindest eines von B und zumindest eines von C.“
-
In den Figuren bezeichnen die Pfeilrichtungen, wie angezeigt, durch die Pfeilspitze im Allgemeinen den Fluss von Informationen (wie Daten oder Befehlen), die im Kontext der Darstellung relevant sind. Wenn beispielsweise Element A und Element B eine Vielzahl von Informationen austauschen, aber die Informationen, die von Element A nach Element B übertragen werden, für die Darstellung relevant sind, kann der Pfeil von Element A nach Element B zeigen. Diese unidirektionalen Pfeile implizieren nicht, dass keine anderen Informationen von Element B nach Element A übertragen werden. Zudem kann Element B im Zusammenhang mit Informationen, die von Element A nach Element B gesendet werden, Anforderungen oder Bestätigungen dieser Informationen zu Element A senden.
-
In dieser Anwendung kann einschließlich der folgenden Definitionen der Begriff „Modul“ oder der Begriff „Steuerung“ ggf. durch den Begriff „Schaltung“ ersetzt werden. Der Begriff „Modul“ kann auf Folgendes verweisen bzw. Teil von Folgendem sein oder Folgendes beinhalten: einen anwendungsspezifischen integrierten Schaltkreis (ASIC); eine digitale, analoge oder gemischt analog/digitale diskrete Schaltung; eine digitale, analoge oder gemischt analog/digitale integrierte Schaltung; eine kombinatorische Logikschaltung; ein feldprogrammierbares Gate-Array (FPGA); eine Prozessorschaltung (gemeinsam genutzt, dediziert oder Gruppe), die Code ausführt; eine Memory-Schaltung (gemeinsam genutzt, dediziert oder Gruppe), die einen von der Prozessorschaltung ausgeführten Code speichert; andere geeignete Hardware-Komponenten, die die beschriebene Funktionalität bereitstellen; oder eine Kombination von einigen oder allen der oben genannten, wie zum Beispiel in einem System-on-Chip.
-
Das Modul kann eine oder mehrere Schnittstellenschaltungen beinhalten. In einigen Beispielen können die Schnittstellenschaltungen kabelgebundene oder -lose Schnittstellen beinhalten, die mit einem lokalen Netzwerk (LAN), dem Internet, einem Weitverkehrsnetz (WAN) oder Kombinationen hier aus verbunden sind. Die Funktionalität der in vorliegender Offenbarung genannten Module kann auf mehrere Module verteilt werden, die über Schnittstellenschaltungen verbunden sind. So können zum Beispiel mehrere Module einen Lastenausgleich zulassen. In einem anderen Beispiel können von einem Servermodul (z. B. Remote-Server oder Cloud) ermittelte Funktionen eines Client-Moduls übernommen werden.
-
Der Begriff Code, wie oben verwendet, kann Software, Firmware und/oder Mikrocode beinhalten und auf Programme, Routinen, Funktionen, Klassen, Datenstrukturen und/oder Objekte verweisen. Der Begriff „gemeinsame Prozessorschaltung“ bezieht sich auf eine einzelne Prozessorschaltung, die ermittelten oder vollständigen Code von mehreren Modulen ausführt. Der Begriff „gruppierte Prozessorschaltung“ bezieht sich auf eine Prozessorschaltung, die in Kombination mit zusätzlichen Prozessorschaltungen ermittelten oder vollständigen Code von ggf. mehreren Modulen ausführt. Verweise auf mehrere Prozessorschaltungen umfassen mehrere Prozessorschaltungen auf diskreten Matrizen, mehrere Prozessorschaltungen auf einer einzelnen Scheibe, mehrere Kerne auf einer einzelnen Prozessorschaltung, mehrere Threads einer einzelnen Prozessorschaltung oder eine Kombination der oben genannten. Der Begriff „gemeinsame Memory-Schaltung“ bezieht sich auf eine einzelne Memory-Schaltung, die ermittelten oder vollständigen Code von mehreren Modulen speichert. Der Ausdruck „gruppierte Memory-Schaltung“ bezieht sich auf eine Memory-Schaltung, die in Kombination mit zusätzlichem Speicher ermittelte oder vollständige Codes von ggf. mehreren Modulen speichert.
-
Der Begriff Memory-Schaltung ist dem Begriff computerlesbares Medium untergeordnet. Der Begriff „computerlesbares Medium“, wie er hier verwendet wird, bezieht sich nicht auf flüchtige elektrische oder elektromagnetische Signale, die sich in einem Medium ausbreiten (z. B. im Falle einer Trägerwelle); der Ausdruck „computerlesbares Medium“ ist daher als konkret und nichtflüchtig zu verstehen. Nicht einschränkende Beispiele eines nichtflüchtigen konkreten computerlesbaren Mediums sind nichtflüchtige Memory-Schaltungen (z. B. Flash-Memory-Schaltungen, löschbare programmierbare ROM-Schaltungen oder Masken-ROM-Schaltungen), flüchtige Memory-Schaltungen (z. B. statische oder dynamische RAM-Schaltungen), magnetische Speichermedien (z. B. analoge oder digitale Magnetbänder oder ein Festplattenlaufwerk) und optische Speichermedien (z. B. CD, DVD oder Blu-ray).
-
Die im Rahmen dieser Anmeldung beschriebenen Vorrichtungen und Verfahren können teilweise oder vollständig mit einem speziellen Computer, der für die Ausführung ermittelter Computerprogrammfunktionen konfiguriert ist, implementiert werden. Die Funktionsblöcke, Flussdiagramm-Komponenten und weiter oben beschriebenen Elemente dienen als Softwarespezifikationen, die von entsprechend geschulten Technikern oder Programmierern in Computerprogramme umgesetzt werden können.
-
Die Computerprogramme beinhalten prozessorausführbare Anweisungen, die auf mindestens einem nicht-transitorischen greifbaren computerlesbaren Medium gespeichert sind. Die Computerprogramme können ebenfalls gespeicherte Daten enthalten oder auf gespeicherten Daten basieren. Die Computerprogramme können ein Basic-Input-Output-System (BIOS) umfassen, das mit der Hardware des speziellen Computers zusammenwirkt, Vorrichtungstreiber, die mit ermittelten Vorrichtungen des speziellen Computers, einem oder mehreren Betriebssystemen, Benutzeranwendungen, Hintergrunddiensten, im Hintergrund laufenden Anwendungen usw. zusammenwirken.
-
Die Computerprogramme können Folgendes beinhalten: (i) beschreibenden Text, der gegliedert wird, wie z. B. HTML (Hypertext Markup Language), XML (Extensible Markup Language) oder JSON (JavaScript Object Notation), (ii) Assembler Code, (iii) Objektcode, der von einem Quellcode durch einen Compiler erzeugt wurde, (iv) Quellcode zur Ausführung durch einen Interpreter, (v) Quellcode zur Kompilierung und zur Ausführung durch einen Justin-Time-Compiler usw. Nur exemplarisch kann der Quellcode mittels der Syntax der Sprachen, einschließlich C, C++, C#, Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5 (Hypertext Markup Language 5. Version), Ada, ASP (Active Server Pages), PHP (PHP: Hypertext Preprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, AMTLAB, SIMULINK und Python®, geschrieben werden.
-
Keines der in den Ansprüchen genannten Elemente ist als Mittel für eine Funktion (sog. „means plus function“) nach 35 U.S.C. §112(f) zu verstehen, es sei denn, ein Element wird ausdrücklich unter Verwendung des Begriffes „means for“ (Mittel für) beschrieben oder falls in einem Verfahrensanspruch die Begriffe „Vorgang für“ oder „Schritt für“ verwendet 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
-