(19)
(11)EP 3 684 015 A1

(12)EUROPÄISCHE PATENTANMELDUNG

(43)Veröffentlichungstag:
22.07.2020  Patentblatt  2020/30

(21)Anmeldenummer: 20150689.6

(22)Anmeldetag:  08.01.2020
(51)Internationale Patentklassifikation (IPC): 
H04L 12/40(2006.01)
(84)Benannte Vertragsstaaten:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Benannte Erstreckungsstaaten:
BA ME
Benannte Validierungsstaaten:
KH MA MD TN

(30)Priorität: 17.01.2019 DE 102019200565

(71)Anmelder: Robert Bosch GmbH
70442 Stuttgart (DE)

(72)Erfinder:
  • Junginger, Andrej
    70197 Stuttgart (DE)
  • Dormann, Katharina
    69121 Heidelberg (DE)
  • Hanselmann, Markus
    70563 Stuttgart (DE)
  • Strauss, Thilo
    71636 Ludwigsburg (DE)
  • Boblest, Sebastian
    73105 Duernau (DE)
  • Ulmer, Holger
    89077 Ulm (DE)
  • Buchner, Jens Stefan
    74321 Bietigheim-Bissingen (DE)

  


(54)VORRICHTUNG UND VERFAHREN ZUR KLASSIFIZIERUNG VON DATEN INSBESONDERE FÜR EIN CONTROLLER AREA NETZWERK ODER EIN AUTOMOTIVE ETHERNET NETZWERK


(57) Vorrichtung und Computerimplementiertes Verfahren zur Klassifizierung von Daten insbesondere für ein Controller Area Netzwerk oder ein automotive Ethernet Netzwerk, wobei eine Vielzahl Nachrichten aus einem Kommunikationsnetzwerk empfangen wird (502), wobei eine Nachricht, die einen vorgegebenen Nachrichtentyp aufweist, für eine Eingangsgröße für ein Eingabemodell einer Vielzahl Eingabemodelle eines künstlichen neuronalen Netzes ausgewählt wird (504), das dem vorgegebenen Nachrichtentyp zugeordnet ist, wobei die Eingangsgröße abhängig von der Nachricht bestimmt wird (506), wobei in einem Ausgabebereich des künstlichen neuronalen Netzes eine Vorhersage ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von der Eingangsgröße verwendbar ist, oder eine Rekonstruktion einer Eingangsgröße ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße verwendbar ist (510).




Beschreibung

Stand der Technik



[0001] In Fahrzeugen werden Daten zwischen Steuergeräten über ein Controller Area Netzwerk oder ein Ethernet Netzwerk ausgetauscht.

[0002] Wünschenswert ist es, Anomalien in den über ein derartiges Netzwerk ausgetauschte Daten zuverlässig zu erkennen.

Offenbarung der Erfindung



[0003] In vielen Fahrzeugen ist ein Controller Area Network insbesondere gemäß der Standardfamilie ISO 11898 verbaut. Dieses Netzwerk wird im Folgenden als CAN bezeichnet. CAN ist ein serielles Feldbussystem, das die Kommunikation von Mikrocontrollern, insbesondere Steuergeräten über einen CAN-Bus im Fahrzeug erlaubt. Der Datenverkehr auf dem CAN-Bus kann dabei grundsätzlich in zwei Gruppen unterteilt werden:

Normalverhalten:



[0004] Das Normalverhalten beschreibt die Art der Daten wie sie im normalen Betrieb - d.h. ohne Fehler, Ausfälle, äußere Manipulationen o. Ä. - anfallen. In einem korrekt arbeitenden System treten nur fehlerfreie Daten auf und die einzelnen Daten hängen im Allgemeinen durch spezifische - sowohl stationäre als auch zeitliche - Korrelationen voneinander ab.

Anomalien:



[0005] Aus verschiedenen Gründen können im realen Betrieb in den Daten des CAN Abweichungen vom Normalverhalten auftreten, die im Folgenden als Anomalie bezeichnet werden. Ursachen dafür können beispielsweise folgender Natur sein:
  1. (i) Defekte oder ganz ausgefallene Teilsysteme des CAN oder des Fahrzeugs liefern falsche oder gar keine Daten,
  2. (ii) Bauteile des CAN oder des Fahrzeugs sind beschädigt,
  3. (iii) das System wurde durch eine externe Quelle z. B. ein Hackerangriff manipuliert, dies wird im Folgenden als Intrusion bezeichnet.


[0006] Für automotive Ethernet Netzwerke insbesondere gemäße einem der Standards aus der IEEE 802.3 Standardfamilie, die zusätzlich oder statt CAN eingesetzt werden, wird im Folgenden dieselbe Unterteilung vorgenommen.

[0007] Für den sicheren Betrieb insbesondere von Fahrzeugen ist es von hoher Bedeutung, solche Anomalien in derartigen Daten zu erkennen. Die Daten werden in Nachrichten über das Netzwerk gesendet. Diese Nachrichten sind in Nachrichtentypen des verwendeten Kommunikationstyps unterteilt. Beispielsweise ist bei CAN jeder CAN ID ein Nachrichtentyp zugeordnet.

[0008] Netzwerkverkehr mit Machine Learning Methoden, insbesondere künstlichen neuronale Netzen beispielsweise mittels Deep Learning zu überwachen, stellt eine große Herausforderung dar, da eine große Variabilität in den Daten vorherrscht. So ist es bei CAN beispielsweise nicht vordefiniert, welche Nachrichten mit welchen CAN IDs aufeinander folgen. Die Reihenfolge, in der Nachrichten mit den CAN IDs gesendet werden hängt nicht ausschließlich von deren Zykluszeit ab, sondern von vielen weiteren Faktoren, wie beispielsweise den Zeitpunkt zu dem das zugehörige Steuergerät im Startvorgang des Fahrzeugs sendebereit wird, ob aktuell Nachrichten mit CAN IDs mit einer höheren Priorität gesendet werden oder auch der Übertragungsrate des CAN-Busses. Dies führt zu einem hochgradig dynamischen und komplexen zeitlichen Verlauf des Datenstroms. Neben dieser zeitlichen Variabilität ist auch eine hohe Variabilität in den Daten, die die Nachrichten enthalten, selbst gegeben. So umfassen Nachrichten mit unterschiedlichen CAN IDs unterschiedlich viele Signale.

[0009] Noch signifikanter wird die Datenvariabilität, wenn man insbesondere automotive Ethernet betrachtet, bei dem mit unterschiedlichen Protokolltypen umgegangen werden muss, die ihrerseits stark in der Datenstruktur abweichen können.

[0010] Für den Einsatz von künstlichen neuronalen Netzen für Netzwerkdaten ergeben sich damit grundlegend zwei Probleme: Zum einen macht die zeitliche Variabilität den Einsatz von rekurrenten künstlichen neuronalen Netzen, die speziell für den Einsatz mit insbesondere zeitlich geordneten Daten geeignet sind, problematisch, da es für derartige Netze ein sehr schwieriges Problem ist, den zeitlichen Ablauf von Nachrichten mit unterschiedlichen CAN IDs zu erlernen, da dieser in verschiedenen Situationen zwar jeweils valide, aber sehr unterschiedlich strukturiert sein kann. Zum anderen erwarten künstliche neuronale Netze bei jeder Eingabe von Daten dieselbe Datenstruktur.

[0011] In einem Aspekt ist ein computerimplementiertes Verfahren zur Klassifizierung von Daten insbesondere für ein Controller Area Netzwerk oder ein automotive Ethernet Netzwerk vorgesehen, wobei eine Vielzahl Nachrichten aus einem Kommunikationsnetzwerk empfangen wird, wobei eine Nachricht, die einen vorgegebenen Nachrichtentyp aufweist, für eine Eingangsgröße für ein Eingabemodell einer Vielzahl Eingabemodelle eines künstlichen neuronalen Netzes ausgewählt wird, das dem vorgegebenen Nachrichtentyp zugeordnet ist, wobei die Eingangsgröße abhängig von der Nachricht bestimmt wird, wobei in einem Ausgabebereich des künstlichen neuronalen Netzes eine Vorhersage ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von der Eingangsgröße verwendbar ist, oder eine Rekonstruktion einer Eingangsgröße ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße verwendbar ist. Durch diese Architektur des künstlichen neuronalen Netzes, die speziell auf Netzwerkverkehr im überwachten Kommunikationsnetzwerk zugeschnitten ist, wird sowohl das Problem der zeitlichen als auch der datenspezifischen Variabilität gelöst. Anstelle sich darauf zu beschränken, nur einige wenige der empfangenen Nachtrichten auszuwählen, für die das künstliche neuronale Netzwerk insgesamt trainiert ist, wird so eine Nachricht abhängig von ihrem Nachrichtentyp einem für diesen Nachrichtentyp spezifizierten Eingabemodell zugeordnet. Das künstliche neuronale Netz insbesondere für das Eingabemodell kann hierdurch vergleichsweise klein gehalten werden. Dies ist insbesondere für den Einsatz auf Embedded Devices interessant. Mit Hilfe der neuronalen Netzwerkarchitektur kann ein verbessertes Intrusion Detection System, aufgebaut und/oder konfiguriert werden. Ein Intrusion Detection System wird im Folgenden mit IDS bezeichnet. Das vorgestellte Verfahren kann hierbei unüberwacht trainiert werden, das heißt, dass für das Training nur hinreichend viele Normaldaten vorliegen müssen, aber keine Anomalien oder Intrusions. Dennoch ist das trainierte System dann in der Lage, neue und zuvor nicht bekannte Anomalien zu detektieren. Im Vergleich zu einem regelbasierten IDS ergibt sich der Vorteil, dass das System automatisch an Hand der Trainingsdaten möglicherweise latente Zusammenhänge des Netzwerkverkehrs erlernen kann. Dadurch wird es einem Angreifer deutlich erschwert oder unmöglich gemacht, das System erfolgreich anzugreifen, da der Angreifer - um das IDS zu täuschen - auch die funktionalen Zusammenhänge des Systems im Angriff abbilden müsste. Beispielsweise wird immer dann, wenn ein relevanter Nachrichtentyp im Netzwerk gesendet wird, dieser durch das künstliche neuronale Netz propagiert. Dies ermöglicht es, zu jedem Zeitschritt eine Prädiktion zu berechnen und somit Anomalien zeitnah zu erkennen.

[0012] Vorteilhafterweise ist vorgesehen, dass das künstliche neuronale Netz trainiert ist, abhängig von zumindest einem Teil eines Netzwerkverkehrs im Kommunikationsnetzwerk zu ermöglichen, zu entscheiden, in welchen Zustand von einer Vielzahl von möglichen Zuständen sich das Kommunikationsnetzwerk mit gegenüber den anderen möglichen Zuständen höherer Wahrscheinlichkeit befindet. Dies ermöglicht eine effiziente Klassifizierung in einen von vielen möglichen Zuständen. Beispielsweise wird im Verfahren ein neuronales Netz verwendet, das ausgehend von Netzwerkverkehr ermöglicht, zu entscheiden, in welchem der Zustände sich das Netzwerk befindet. Ein solches Klassifikationsproblem wird in dieser neuronalen Netzwerkarchitektur leicht gelernt indem der Ausgabebereich an das Klassifikationsproblem adaptiert wird und im Training eine geeignete Verlustfunktion angesetzt wird. Das Verfahren mit dieser neuronalen Netzwerkarchitektur ist nicht nur für ein IDS geeignet, sondern auch für viele weitere Anwendungen, die beim Umgang mit Netzwerkverkehr angesetzt werden können. Beispielsweise ist Preemptive Maintenance ein mögliches Anwendungsgebiet für das Verfahren mit dieser Netzwerkarchitektur.

[0013] Vorteilhafterweise ist vorgesehen, dass eine Vielzahl Nachrichten abhängig von einer Vielzahl vorgegebener Netzwerktypen als Eingangsgröße für eine Vielzahl Eingabemodelle ausgewählt werden, wobei ein Nachrichtentyp eindeutig eines der Vielzahl Eingabemodelle zugeordnet ist, wobei Ausgaben der Vielzahl Eingabemodelle als eine Eingabe für den Ausgabebereich aggregiert werden. Dies ermöglicht ein selektives Daten-Preprocessing abhängig vom Nachrichtentyp.

[0014] Vorteilhafterweise ist vorgesehen, dass Zustände der Vielzahl Eingabemodelle aggregiert werden, insbesondere durch Konkatenation der Zustände auf einen Vektor. Diese Aggregation ist besonders effizient.

[0015] Vorteilhafterweise ist vorgesehen, dass eine erste Eingangsgröße für einen ersten Zeitschritt ausgewählt wird, wobei abhängig von der ersten Eingangsgröße eine Vorhersage für eine zweite Eingangsgröße bestimmt wird, wobei abhängig von einem Ergebnis eines Vergleichs von der zweiten Eingangsgröße und der Vorhersage eine Anomalie erkannt wird, wenn das Ergebnis ein Kriterium erfüllt, das eine Anomalie definiert. Es kann insbesondere vorgesehen sein, dass neben der ersten und der zweiten Eingangsgröße weitere Größen in die Berechnung, ob eine Anomalie vorliegt, mit eingehen, wie beispielsweise vorangegangene Vergleiche von Vorhersage und der jeweilig zweiten Eingangsgröße. Damit sind Anomalien unabhängig von einem regelbasierten IDS zuverlässig erkennbar.

[0016] Vorteilhafterweise ist vorgesehen, dass das Ergebnis abhängig von einem Maß für eine Abweichung der Vorhersage von der zweiten Eingangsgröße definiert ist, wobei das Kriterium durch einen Schwellwert für die Abweichung definiert ist, wobei eine Anomalie erkannt wird, wenn das Maß für die Abweichung den Schwellwert überschreitet. Dies erhöht die Robustheit der Anomalieerkennung.

[0017] Eine entsprechende Vorrichtung zur Klassifizierung von Daten in einem Kommunikationsnetzwerk, insbesondere für ein Controller Area Netzwerk oder ein automotive Ethernet Netzwerk, umfasst ein künstliches neuronales Netz, wobei das künstliche neuronale Netz ein Eingabemodell für eine Eingangsgröße und einen Ausgabebereich umfasst, wobei die Vorrichtung eine Auswahleinrichtung umfasst, die ausgebildet ist, eine Nachricht aus dem Kommunikationsnetzwerk, die einen vorgegebenen Nachrichtentyp aufweist, für die Eingangsgröße auszuwählen, und wobei der Ausgabebereich ausgebildet ist, eine Vorhersage auszugeben, die für eine Klassifizierung der Nachricht abhängig von der Eingangsgröße verwendbar ist, oder eine Rekonstruktion einer Eingangsgröße auszugeben, die für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße verwendbar ist. Diese Vorrichtung ist speziell auf Netzwerkverkehr im Kommunikationsnetzwerk zugeschnitten. Das künstliche neuronale Netz kann hierdurch vergleichsweise klein gehalten werden. Die Vorrichtung ist insbesondere für den Einsatz auf einem Embedded Device ausgestaltet.

[0018] Vorteilhafterweise ist vorgesehen, dass das künstliche neuronale Netzwerk der Vorrichtung trainiert ist, abhängig von zumindest einem Teil eines Netzwerkverkehrs im Kommunikationsnetzwerk zu ermöglichen, zu entscheiden, in welchen Zustand von einer Vielzahl von möglichen Zuständen sich das Kommunikationsnetzwerk mit gegenüber den anderen möglichen Zuständen höherer Wahrscheinlichkeit befindet. Dies ermöglicht einen vielfältigen Einsatz der Vorrichtung.

[0019] Vorzugsweise ist vorgesehen, dass die Vorrichtung eine Vielzahl Eingabemodelle umfasst, wobei zwischen der Vielzahl Eingabemodelle und dem Ausgabebereich ein insbesondere als künstliches neuronales Netz ausgebildeter Aggregationsteil angeordnet ist, der ausgebildet ist, Ausgaben der Vielzahl Eingabemodelle als eine Eingabe für den Ausgabebereich zu aggregieren. Die Vorrichtung bietet damit eine vielseitige Schnittstelle für Daten-Preprocessing einer Vielzahl von Nachrichtentypen in unterschiedlichen Eingabemodellen, deren Ausgang für die Klassifikation gemeinsam verwendet wird.

[0020] Vorzugsweise ist vorgesehen, dass der Aggregationsteil ausgebildet ist, Zustände der Vielzahl Eingabemodelle zu aggregieren, insbesondere durch Konkatenation der Zustände auf einen Vektor. Dies stellt eine besonders effektive Zusammenfassung der Information der Eingangsmodelle insbesondere in einem Embedded Device mit beschränkten Rechenressourcen dar.

[0021] Vorzugsweise ist vorgesehen, dass die Auswahleinrichtung ausgebildet ist, eine erste Eingangsgröße für einen ersten Zeitschritt auszuwählen, wobei der Ausgabebereich ausgebildet ist, abhängig von der ersten Eingangsgröße eine Vorhersage für eine zweite Eingangsgröße zu bestimmen, wobei eine Vergleichseinrichtung ausgebildet ist, abhängig von einem Ergebnis eines Vergleichs von der zweiten Eingangsgröße und der Vorhersage eine Anomalie zu erkennen, wenn das Ergebnis ein Kriterium erfüllt, das eine Anomalie definiert. Damit erkennt die Vorrichtung Anomalien besonders effizient.

[0022] Vorzugsweise ist vorgesehen, dass das Ergebnis abhängig von einem Maß für eine Abweichung der Vorhersage von der zweiten Eingangsgröße definiert ist, wobei das Kriterium durch einen Schwellwert für die Abweichung definiert ist, wobei die Vorrichtung ausgebildet ist, eine Anomalie zu erkennen, wenn das Maß für die Abweichung den Schwellwert überschreitet. Das Maß kann auch von weiteren Größen abhängen. Damit wird die Anomalieerkennung durch die Vorrichtung besonders robust.

[0023] Das Trainingsverfahren für ein künstliches neuronales Netz zur Klassifizierung von Daten insbesondere für ein Controller Area Netzwerk oder ein automotive Ethernet Netzwerk mit Trainingsdaten, die eine Vielzahl von Nachrichten unterschiedlicher Nachrichtentypen umfassen, sieht vor, dass eine Nachricht, die einen vorgegebenen Nachrichtentyp aufweist, für eine erste Eingangsgröße für eine Eingabemodell einer Vielzahl Eingabemodelle des künstlichen neuronalen Netz ausgewählt wird, das dem vorgegebenen Nachrichtentyp zugeordnet ist, wobei die erste Eingangsgröße abhängig von der Nachricht bestimmt wird, wobei in einem Ausgabebereich des künstlichen neuronalen Netzes eine Vorhersage ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von der ersten Eingangsgröße verwendbar ist, , wobei eine zweite Eingangsgröße aus den Trainingsdaten bestimmt wird, wobei ein Fehlermaß abhängig von der zweiten Eingangsgröße und der Vorhersage bestimmt wird, und wobei ein Backpropagation Schritt durchgeführt wird, wobei Parameter des künstlichen neuronalen Netzes entsprechend der Optimierungsstrategie abhängig vom Fehlermaß bestimmt werden, oder eine Rekonstruktion einer Eingangsgröße ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße verwendbar ist, wobei ein Fehlermaß abhängig von der ersten Eingangsgröße und der Rekonstruktion bestimmt wird, und wobei ein Backpropagation Schritt durchgeführt wird, wobei Parameter des künstlichen neuronalen Netzes entsprechend der Optimierungsstrategie abhängig vom Fehlermaß bestimmt werden. Dieser Machine-Learning Ansatz arbeitet auf einer großen Menge Nachrichten, beispielsweise CAN-Signale. Es ist insbesondere nicht erforderlich sich darauf zu beschränken, einige wenige Nachrichten, beispielsweise CAN-Signale aus dem Trace vorzuselektieren.

[0024] Vorzugsweise ist vorgesehen, dass eine Vielzahl Nachrichten abhängig von einer Vielzahl vorgegebener Nachrichtentypen als Eingangsgröße für eine Vielzahl Eingabemodelle ausgewählt werden, wobei ein Nachrichtentyp eindeutig eines der Vielzahl Eingabemodelle zugeordnet ist, wobei Ausgaben der Vielzahl Eingabemodelle als eine Eingabe für den Ausgabebereich aggregiert werden. Dieser Machine-Learning Ansatz arbeitet mit Eingangsmodellen, die einem bestimmten Nachrichtentyp eindeutig zugeordnet sind.

[0025] Vorzugsweise ist vorgesehen, dass Zustände der Vielzahl Eingabemodelle aggregiert werden, insbesondere durch Konkatenation der Zustände auf einen Vektor oder Tensor. Dies ermöglicht ein besonders effizientes Berechnen der Vorhersagen im Training.

[0026] Vorzugsweise ist vorgesehen, dass die erste Eingangsgröße für einen ersten Zeitschritt ausgewählt wird, wobei abhängig von der ersten Eingangsgröße die Vorhersage für die zweite Eingangsgröße für einen zweiten Zeitschritt bestimmt wird, wobei das Fehlermaß abhängig von der zweiten Eingangsgröße und der Vorhersage für den zweiten Zeitschritt bestimmt wird. Damit wird das künstliche neuronale Netzwerk besonders effektiv hinsichtlich Abweichungen der Nachrichten von der Vorhersage trainiert.

[0027] Alternativ kann vorgesehen sein, dass eine Vielzahl Eingabemodelle über mehrere Zeitschritte Daten aggregieren, und insbesondere vorverarbeiten bevor im Ausgabebereich ein Auswertungsschritt stattfindet, wobei die Vorhersage bestimmt wird. Die Alternative kann z.B. dann interessant sein, wenn nur begrenzte Ressourcen zur Verfügung stehen und der, vergleichsweise teure, d.h. rechenzeit- oder rechenressourcenaufwändige Schritt der Aggregation und des Ausgabeteils nur selten durchgeführt werden soll.

[0028] Vorzugsweise ist vorgesehen, dass die erste Eingangsgröße für einen ersten Zeitschritt ausgewählt wird, wobei abhängig von der ersten Eingangsgröße die Rekonstruktion für die erste Eingangsgröße für den ersten Zeitschritt bestimmt wird. Damit wird das künstliche neuronale Netzwerk besonders effektiv hinsichtlich Abweichungen der Nachrichten von der Rekonstruktion trainiert.

[0029] Alternative kann vorgesehen sein, dass eine Vielzahl Eingabemodelle über mehrere Zeitschritte Daten aggregieren, und insbesondere vorverarbeiten bevor im Ausgabebereich ein Auswertungsschritt stattfindet, wobei die Rekonstruktion bestimmt wird. Die Alternative kann z.B. dann interessant sein, wenn nur begrenzte Ressourcen zur Verfügung stehen.

[0030] Vorzugsweise ist vorgesehen, dass das Training unüberwacht, insbesondere nur mittels Daten erfolgt, die ein Normalverhalten des Kommunikationsnetzwerks definieren. Ein aus diesem Training resultierendes Intrusion Detection System ist nur durch Daten konfiguriert, die das Normalverhalten beschreiben. Abweichungen von diesem Normalverhalten werden als von diesem Intrusion Detection System als Angriff klassifiziert, wodurch das System in der Lage ist, auch unbekannte Attacken zu detektieren.

[0031] Weitere vorteilhafte Ausgestaltungen ergeben sich aus der folgenden Beschreibung und der Zeichnung. In der Zeichnung zeigt:

Fig. 1 eine schematische Darstellung von Teilen einer Vorrichtung zur Klassifizierung von Daten,

Fig. 2 eine schematische Darstellung von Teilen eines Kommunikationsnetzwerks,

Fig. 3 eine schematische Darstellung eines Ablaufdiagramms und einer neuronalen Netzarchitektur,

Fig. 4 eine schematische Darstellung eines CAN Traces,

Fig. 5 eine schematische Darstellung eines Verfahrens zur Klassifizierung von Daten,

Fig. 6 eine schematische Darstellung eines Trainingsverfahrens.



[0032] In Figur 1 ist eine Vorrichtung 100 zur Klassifizierung von Daten schematisch dargestellt.

[0033] Die Vorrichtung 100 ist im Beispiel ein Embedded Device. Die Vorrichtung 100 umfasst einen Prozessor 102, einen Arbeitsspeicher 104, eine Schnittstelle 106 für ein Kommunikationsnetzwerk 108 und einen nicht-flüchtigen Speicher 110. Diese sind ausgebildet, über einen Bus 112 oder eine andere Datenleitung zu kommunizieren.

[0034] Figur 2 stellt Teile des Kommunikationsnetzwerks 108 schematisch dar, in dem die Vorrichtung 100 und mehrere Steuergeräte 202 an einer Datenleitung 204 angeordnet sind. Die Datenleitung 204 ist im Beispiel ein CAN-Bus kann aber auch zusätzlich eine automotive Ethernet Verbindung umfassen oder alternativ ein automotive Ethernet Verbindung sein.

[0035] In Figur 3 ist eine schematische Darstellung eines Ablaufdiagramms und einer neuronalen Netzarchitektur wiedergegeben. Diese geht von einem CAN aus, ist jedoch auch für automotive Ethernet entsprechend anwendbar. Die Vorrichtung 100 ist zur Klassifizierung von Daten im Kommunikationsnetzwerk 108, insbesondere für CAN oder ein automotive Ethernet Netzwerk ausgebildet.

[0036] Die Vorrichtung 100 umfasste einen Eingang 302 für eine Nachricht oder mehrere Nachrichten aus dem Kommunikationsnetzwerk 108. Im Beispiel wird am Eingang ein CAN Trace bereitgestellt.

[0037] Ein CAN Trace beinhaltet eine Vielzahl Nachrichten unterschiedlicher Nachrichtentypen, die anhand ihrer CAN ID unterscheidbar sind. Ein beispielhaftes CAN Trace ist in Figur 4 dargestellt.

[0038] In Figur 4 ist schematisch eine Aufzeichnung eines CAN-Traces dargestellt. Die in Figur 4 dargestellte Aufzeichnung enthält wichtige jedoch nicht alle möglichen Inhalte eines CAN-Traces. Die Daten, die eine Nachricht umfasst, sind in Figur 4 in einer Zeile angeordnet. Insbesondere wird zu jedem in Figur 4 mit Timestamp bezeichneten Zeitpunkt, zu dem eine Nachricht, d.h. ein CAN-Frame, empfangen wird, eine in Figur 4 mit ID bezeichnete Kennung dieser Nachricht, die CAN ID, übermittelt. Des Weiteren wird ein sogenannter Payload gesendet, der in diesem Beispiel aus acht Bytes besteht, die hexadezimal codiert sind. Der Data Length Code, in Figur 4 mit DLC bezeichnet, gibt an, wie lange die Nachricht ist.

[0039] In Figur 4 sind die an ihrer CAN ID zu erkennenden Nachrichtentypen A, B, C vorgesehen.

[0040] Die Vorrichtung 100 umfasst eine Auswahleinrichtung 304, die ausgebildet ist eine Nachricht anhand ihres Nachrichtentyps zu erkennen und einem im Folgenden beschrieben Daten-Preprocessing zuzuordnen. Die Auswahleinrichtung 304 ist ausgebildet, eine Nachricht aus dem Kommunikationsnetzwerk 108, die einen vorgegebenen Nachrichtentyp X aufweist, für eine erste Eingangsgröße vx auszuwählen.

[0041] Pro CAN ID können im Beispiel in den acht Bytes des Payloads unterschiedlich viele Signale codiert sein. Aus einer data base CAN Datei, bekannt als DBC-File, ist extrahierbar, welche Bits in welcher Weise zu diesen Signalen zusammengefasst werden. Beim Daten-Preprocessing wird beispielsweise eine Teilmenge der Signale oder alle aus dem Payload extrahiert, ggf. normalisiert oder anderweitig weiterverarbeitet. Neben den Signalen können auch weitere Informationen aus dem CAN-Frame extrahiert werden. Z.B. ist der Timestamp geeignet als Eingangsgröße für das neuronale Netz transformiert zu werden oder eine Kennung des Busses, auf dem die Nachricht gesendet wird. Ebenso ist es möglich, die Bytes direkt als Eingangsgrößen zu verwenden.

[0042] Bei anderen Netzwerktypen, bei denen es kategorische Daten, wie beispielsweise eine Media Access Controll Adresse, bekannt als MAC-Adresse, gibt, können diese beispielsweise per "1-Hot-Encoding" oder einer geeigneten anderen Codierung vorverarbeitet werden.

[0043] Für jede CAN ID oder allgemein für jeden übertragenen Nachrichtentyp des Kommunikationsnetzwerkes 108 wird damit ein Daten-Preprocessing Schritt definiert, so dass für einen Nachrichtentyp X zu jedem Zeitschritt t, an dem der Nachrichtentyp X beobachtet wird, ein Inputvektor vx(t) aufgebaut wird, der aus numerischen Werten besteht und dessen Dimensionalität zu jedem Zeitschritt, zu dem X auftritt, dieselbe ist.

[0044] Ein neuer Zeitschritt t + 1 folgt beispielsweise auf den Zeitschritt t wann immer eine neue Nachricht auf dem Kommunikationsnetzwerk 108 empfangen wird. Wenn ein CAN-Trace bereits vorliegt, in dem mehrere Nachrichten enthalten sind, gibt der Timestamp die Reihenfolge an, in der die Nachrichten auf dem Kommunikationsnetzwerk 108 empfangen wurden.

[0045] Für jeden Nachrichtentyp X wird ein separates Eingangsmodell verwendet. Dieser Ansatz löst das Problem der hohen Datenvariabilität. Optional kann nur eine Teilmenge aller auftretenden Nachrichtentypen X betrachtet werden.

[0046] Im Folgenden bezeichnet N die Menge aller relevanten Nachrichtentypen X und n die Anzahl ihrer Elemente.

[0047] Die Vorrichtung 100 umfasst ein künstliches neuronales Netz 306. Das künstliche neuronale Netz 306 umfasst einen Eingangsbereich I, eine optionale Aggregationsteil A und einen Ausgabebereich O.

[0048] Im Folgenden wird ein Überblick über die Netzarchitektur eines beispielshaften Modells beschrieben.

[0049] Im Beispiel wird für alle X ∈ N ein Eingabemodell lX verwendet. Nur wenn im Netzwerkverkehr zum Zeitschritt t der Nachrichtentyp X beobachtet wird, wird vx(t) in das Eingabemodell lX als Input eingespeist. Dieser Ansatz löst das Problem der hohen zeitlichen Variabilität von Netzwerkdaten.

[0050] Ist Ix beispielsweise über eine rekurrente neuronale Netzwerkstruktur realisiert, wird hierdurch ermöglicht, dass der interne Status des Netzes immer nur dann ein Update erfährt, wenn die jeweilige ID auch wirklich auftritt.

[0051] Zur Anomalieerkennung ist vorgesehen, dass das Gesamtnetzwerk M zu jedem Zeitschritt t in der Lage ist, für alle X ∈ N eine Vorhersage vX'(t + 1) für vX(t + 1) treffen zu können.

[0052] Alternativ kann es von Vorteil sein, nur für eine Teilmenge der Werte eine Vorhersage zu treffen. Die Netzwerkarchitektur ist damit problemspezifisch anpassbar.

[0053] Für die Vorhersage ist das künstliche neuronale Netzwerk so ausgestaltet, dass es möglich ist, die Ausgänge von allen Eingabenetzen lX zu verwenden. Dies hat den Vorteil, dass für die Prädiktion alle internen States verwendet werden können, wodurch auch funktionale Abhängigkeiten in die Prädiktion einfließen.

[0054] Zum Zeitschritt t + 1 wird überprüft, welcher Nachrichtentyp X tatsächlich gesendet wurde.

[0055] Ist dies X ∈ N, wird die Vorhersage vX' (t + 1) mit dem tatsächlichen Wert vX (t + 1) verglichen.

[0056] Eine Abweichung zwischen Vorhersage vX' (t + 1) und tatsächlichem Wert vX (t + 1) geht in ein Fehlermaß ein. Das Fehlermaß wird im Beispiel dazu verwendet, einen Anomaliescore zu berechnen.

[0057] Das künstliche neuronale Netz 306 umfasst im der Eingangsbereich l wenigstens ein Eingabemodell lX. Das Eingabemodell lX ist der ersten Eingangsgröße vX zugeordnet. Die erste Eingangsgröße vX stellt im Beispiel eine Nachricht im Kommunikationsnetzwerk 108 dar, die zu klassifizierende Daten enthält. Die erste Eingangsgröße vx codiert die Daten der Nachricht im Beispiel als Vektor.

[0058] Im Beispiel sind eine Vielzahl Nachrichtentypen, eine Vielzahl Eingangsgrößen vX1, ..., vXn und eine Vielzahl Eingabemodelle lX1, ... lXn vorgesehen. Diese werden im Beispiel von der Auswahleinrichtung 304 abhängig von ihrem Nachrichtentyp unterschiedlichen Eingangsgrößen eindeutig zugeordnet.

[0059] Ein aktueller Zustand sX des Eingabemodells lX wird im Beispiel als Eingang sX dem optionalen Aggregationsteil A übergeben. Genauer wird die Vielzahl der aktuellen Zustände sX1, ... sXn der Vielzahl der Eingabemodelle lX1, ..., lXn an die Aggregationsteil A übergeben. Aus der Vielzahl der Zustände sX1, ... sXn wird durch die Aggregationsteil A ein Ausgang a als Eingang des Ausgabebereichs O erzeugt. Der Ausgang a ist im Beispiel ein Vektor, der durch Konkatenation der Vielzahl der aktuellen Zustände sX1, ... sXn erzeugt wird.

[0060] Es kann auch vorgesehen sein, dass die Aggregationsteil A die Vielzahl der aktuellen Zustände sX1, ... sXn bei Bedarf, ggf. über eine neuronale Netzstruktur weiterverarbeitet.

[0061] Anstelle der Aggregation kann auch vorgesehen sein, die Vielzahl der aktuellen Zustände sX1, ... sXn direkt als Eingang für den Ausgabebereich O zu verwenden.

[0062] Das künstliche neuronale Netz 306 umfasst im Ausgabebereich O wenigstens ein Ausgangsmodell OY. Aufgabe des Ausgangsmodells OY ist es, zu jedem Zeitpunkt t eine Vorhersage vY' (t+1) für vY(t + 1) zu bestimmen, um diese mit vY(t + 1) zu vergleichen, wenn zum Zeitpunkt t+1 ein Nachrichtentyp Y auftritt. Im Beispiel gibt es zu der Vielzahl von Eingangsgrößen vX1, ..., vXn jeweils ein Ausgangsmodell OX1, ... OXn. Der ersten Eingangsgröße vX ist im Beispiel das Ausgangsmodell Ox eindeutig zugeordnet. Genauer sind der Vielzahl Eingangsgrößen vX1, ..., vXn die Vielzahl Ausgangsmodelle OX1, ... OXn eindeutig zugeordnet.

[0063] Der Ausgabebereich O ist ausgebildet, eine Vorhersage vX' für eine Klassifizierung der Nachricht abhängig von der ersten Eingangsgröße vX auszugeben. Der Ausgabebereich O liefert anhand der Daten, die der Aggregationsteil A liefert, eine Prädiktion für den Folgezeitschritt.

[0064] Das Ausgangsmodell OY stellt zum Zeitpunkt t eine Vorhersage vY'(t+1) für eine auf die Eingangsgröße vX(t) folgende zweite Eingangsgröße vX(t+1) dar.

[0065] Bei der Auswertung eines Zeitschritts t ist sowohl in einer Auswertungs- als auch in einer Trainingsphase in eine Vorwärtspropagation eines Inputs vorgesehen.

[0066] In einer einfachsten Ausführungsform sind die Vielzahl Eingabemodelle lX1, ... lXn des Eingangsbereichs I als rekurrente neuronale Netze realisiert, beispielsweise über Long short-term memoris, LSTMs, Gated recurrent units, GRUs, Vanillarecurrent neural networks, RNNs oder auch Time Continuous RNNs.

[0067] Prinzipiell sind hier jegliche Freiheiten hinsichtlich der Ausgestaltung der Netzwerkarchitektur gegeben. Beispielsweise können tiefe künstliche neuronale Netze verwendet werden und für verschiedene Nachrichtentypen bei Bedarf auch unterschiedliche Architekturen jeglicher Art verwenden. Hier kann auf die breite Vielfalt von Netzwerkarchitekturen zurückgegriffen werden. Als Eingang erhält das Eingangsmodell Ix die Eingangsgröße vX in einer Form, die entsprechend der Spezifikation des Eingangsmodells lX verarbeitbar ist, um den Ausgang sX zu erzeugen.

[0068] Die Dimensionalität des Ausgang sX ist für jedes Eingabemodell lX frei vorgebbar. In einem Zeitschritt t wird der Ausgang sX des Eingabemodells lX gespeichert. Im Falle, dass man für das Eingabemodell lX einfache LSTMs verwendet, ist dies der sogenannte "Hidden State" der in der Literatur meist mit ht bezeichnet wird.

[0069] Im Beispiel wird mit sX auch der aktuelle Zustand des Eingabemodells lX bezeichnet. Nachdem zu einem Zeitschritt t und dem Auftreten einer Nachricht X das Eingangsmodell lX den Zustand sX = sX (vX (t)) aktualisiert hat, aggregiert der Aggregationsteil A von allen X ∈ N die aktuellen Zustände sX.

[0070] Optional kann eine Weiterverarbeitung erfolgen, indem beispielsweise die so aggregierten Daten einem künstlichen neuronalen Netz zugeführt werden. Die Ausgabe a des Aggregationsteil A ist beispielsweise ein Vektor oder Tensor, der im Beispiel zu jedem Zeitpunkt dieselbe Dimensionalität hat. Unabhängig davon welcher Nachrichtentyp zum aktuellen Zeitschritt t auftritt und wann die anderen Nachrichtentypen das letzte Mal auftraten, beinhaltet die Ausgabe a, d.h. der Vektor oder Tensor somit Informationen über alle aktuellen States der einzelnen Nachrichtentypen.

[0071] Aufgabe des Ausgabebereichs O ist es zum Zeitschritt t für jedes X ∈ N die Prädiktion vX'(t+1) insbesondere für alle zuvor festgelegten relevanten Größen zu erstellen, die angibt, was das Modell erwartet, sollte zum Zeitschritt t + 1 Nachrichtentyp X auftreten.

[0072] Um dies zu erreichen, können wiederum viele verschiedene Netzwerkarchitekturen angesetzt werden. Um eine möglichst schlanke künstliche neuronale Netzwerkarchitektur zu erlangen, wird beispielsweise für jedes X ∈ N ein eigenes Ausgangsmodell OX verwendet. Im einfachsten Fall kann dies als Fully Connected insbesondere tiefes künstliches neuronales Netzwerk realisiert sein. Die neuronale Netzwerkarchitektur kann auch hier nach Bedarf und ggf. pro Nachrichtentyp separat ausgebildet werden.

[0073] Als Eingang erhält das Ausgangsmodell OX die Ausgabe a des Aggregationsteils A. Als Ausgabe generiert das Ausgangsmodell OX im Beispiel einen Vektor oX = vX'(t+1), der dieselbe Struktur wie vX(t) aufweist.

[0074] Die Unterteilung in eine Vielzahl Ausgangsmodelle OX1, ... OXn ist nur eine von vielen möglichen Realisierungen des Ausgabebereichs O. Diese hat den Vorteil, dass sie zum einen mit möglichst wenigen Parametern auskommt und andererseits damit auch eine schnelle Auswertung ermöglicht. Genauso ist es beispielsweise denkbar, die Ausgabe a in ein einziges neuronales Netzwerk einzuspeisen und den gewünschten Ausgang des Ausgabebereichs O zu generieren.

[0075] Die Vorrichtung 100 umfasst in einem Aspekt eine Vergleichseinrichtung 308. Die Vergleichseinrichtung 308 ist ausgebildet, abhängig von einem Ergebnis eines Vergleichs von der zweiten Eingangsgröße vX(t+1) und der Vorhersage vX'(t+1) eine Anomalie zu erkennen, wenn das Ergebnis ein Kriterium erfüllt, das eine Anomalie definiert. In die Berechnung des Kriteriums können weitere Parameter einfließen, insbesondere auch vorangegangene Abweichungen.

[0076] Im Beispiel ist die Auswahleinrichtung 304 ausgebildet, die erste Eingangsgröße vx für einen ersten Zeitschritt t auszuwählen. Der Ausgabebereich O ist in diesem Beispiel ausgebildet, abhängig von der ersten Eingangsgröße vX die Vorhersage vY'(t+1) für die zweite Eingangsgröße vY(t+1) zu bestimmen. Wenn auf eine Nachricht mit den Nachrichtentypen X eine Nachricht mit dem Nachrichtentyp Y folgt, wird im Beispiel mit Hilfe der ersten Eingangsgröße vX eine Vorhersage für die Nachricht mit Nachrichtentyp Y, d.h. die Prädiktion vY' für die zweite Eingangsgröße vY(t+1) bestimmt. Die Vergleichseinrichtung 308 ist in diesem Beispiel ausgebildet, abhängig von einem Ergebnis eines Vergleichs von der zweiten Eingangsgröße vY(t+1) und der Vorhersage vY'(t+1) eine Anomalie zu erkennen, wenn das Ergebnis ein Kriterium erfüllt, das eine Anomalie definiert. Das Ergebnis ist beispielsweise abhängig von einem Maß für eine Abweichung der Vorhersage vY'(t+1) von der zweiten Eingangsgröße vY(t+1) definiert. Das Kriterium ist beispielsweise durch einen Schwellwert für die Abweichung definiert. Eine Anomalie wird in diesem Beispiel erkannt, wenn das Maß für die Abweichung den Schwellwert überschreitet.

[0077] Das künstliche neuronale Netzwerk 306 kann in einem anderen Aspekt trainiert sein, abhängig von zumindest einem Teil eines Netzwerkverkehrs im Kommunikationsnetzwerk 108 zu entscheiden, in welchen Zustand von einer Vielzahl von möglichen Zuständen sich das Kommunikationsnetzwerk 108 mit gegenüber den anderen möglichen Zuständen höherer Wahrscheinlichkeit befindet. In diesem Fall betrifft die Vorhersage des Ausgangs-Bereichs diese Zustände.

[0078] Auf dem nicht-flüchtigen Speicher 110 sind Instruktionen gespeichert, bei deren Ausführung durch den Prozessor 102 ein im Folgenden anhand der Figur 5 beschriebenes Verfahren zur Klassifizierung von Daten abläuft und/oder das anhand der Figur 6 beschriebene Verfahren zum Trainieren des künstlichen neuronalen Netzes 306 abläuft.

[0079] Im Folgenden wird ein Verfahren zur Evaluierung beschrieben. Liegt ein trainiertes Modell vor, kann dieses als IDS verwendet werden. Der Ablauf der Evaluierung zu jedem Zeitschritt kann wie folgt skizziert werden:
  • Empfange die Nachricht des Nachrichtentyps X zum aktuellen Zeitschritt t.
  • Generiere die Eingangsgröße vX(t).
  • Berechne den Zustand sX = lX(vX(t)).
  • Führe die Aggregation aus, dies führt im Beispiel der einfachen Konkatenation auf den Vektor a = (sX1, ..., sXn) (falls N = {X1, ..., Xn}).
  • Berechne alle Prädiktionen oXi = OXi(a) = vXi'(t + 1) für i ∈ {1, ... n}.
  • Empfange Nachricht zum Zeitschritt t + 1 - im Beispiel sei dies Y - und berechne vY (t + 1).
  • Bestimme einen Anomaliescore f = f (f(t); oY; vY (t + 1); θ(t)), wobei θ(t) weitere Parameter sein können, die in den Anomaliescore mit eingehen.


[0080] Je nach Anwendungsfall für das IDS kann es um Ressourcen zu sparen sinnvoll sein, nicht alle Prädiktionen oXi = OXi(a) = vXi'(t + 1) für i ∈ {1, ... n} zu berechnen.

[0081] Anstatt dessen kann beim Zeitschritt t gewartet werden, bis Zeitschritt t+1 auftritt und somit der Nachrichtentyp zu diesem Zeitpunkt, so dass nur eine Auswertung einer Zielgröße nötig ist.

[0082] Dieses Modell ist verwendbar, um mit Hilfe des Ausgangs oX zu jedem Zeitschritt einen Anomaliescore f zu berechnen. Beispielhaft werden im Folgenden zwei Ansätze dargestellt. Der Anomaliescore ist problemspezifisch ansetzbar.

[0083] Eine erste Methode sieht vor, nur den aktuellen Prädiktionsfehler eX(t+1) = || vX(t+1) - oX∥ in einer geeigneten Norm zu betrachten. Das bedeutet, der wahre Wert aus dem Netzwerkverkehr, d.h. die Eingangsgröße vx(t+1) wird mit der Prädiktion oX verglichen.

[0084] Eine zweite demgegenüber besser geeignete Methode sieht vor, für jedes Xi ∈ N einen Fehlerspeicher E mit Startwert 0 zu instantiieren. Jedes Mal, wenn im Netzwerkverkehr eine Nachricht von Nachrichtentyp Xi auftritt, wird der zugehörige Fehlerspeicher E(i) mit dem aktuellen Fehlerwert eXi überschrieben.

[0085] Als Anomaliescore f dient eine optional gewichtete Summe der Fehlerwerte E(i).

[0086] Wenn verschiedene Datenkanäle unterschiedlich gut modelliert werden können, können zusätzlich statistische Ansätze in die Berechnung des Anomaliescores f mit einzubeziehen werden. So ist es beispielsweise möglich, basierend auf den Normaldaten die Verteilungen der Einzelfehler zu erlernen bzw. die Parameter der zugehörigen Verteilung zu schätzen. Bei der Berechnung des Anomaliescores f kann beispielsweise eingehen, wie wahrscheinlich bzgl. der berechneten Fehlerverteilung der aktuell beobachtete Fehler ist.

[0087] In Figur 5 sind Schritte eines computerimplementierten Verfahrens zur Klassifizierung von Daten insbesondere für das Controller Area Netzwerk oder das automotive Ethernet Netzwerk dargestellt. Dieses Verfahren ist einerseits im Verfahren zur Evaluierung einsetzbar. Andererseits könne auch andere Klassifizierungen damit durchgeführt werden.

[0088] In einem Schritt 502 wird eine Vielzahl Nachrichten aus dem Kommunikationsnetzwerk 108 empfangen. Beispielsweise sind die Nachrichten wie im CAN Trace dargestellt aufgebaut. Die Nachrichten müssen nicht vor dem Einspeisen in das Netz gesammelt werden - das künstliche neuronale Netz wird beispielsweise immer dann mit einer neuen Eingangsgröße versehen, wenn ein relevanter Nachrichtentyp im Nachrichtenverlauf auftritt.

[0089] In einem Schritt 504 wird eine Nachricht der Vielzahl Nachrichten, die einen vorgegebenen Nachrichtentyp X, beispielsweise die CAN ID A aufweist, für die Eingangsgröße vX für das Eingabemodell lX des künstliches neuronales Netzes 306 ausgewählt, das dem vorgegebenen Nachrichtentyp X zugeordnet ist. Genauer wird eine erste Eingangsgröße vx für einen ersten Zeitschritt t ausgewählt. Im Beispiel wird das der CAN ID A zugeordnete Eingangsmodell lX gewählt.

[0090] In einem Schritt 506 wird die Eingangsgröße vX abhängig von der Nachricht bestimmt. Beispielsweise wird der Vektor aus zumindest einem Teil der Daten der Nachricht mit CAN ID A erzeugt.

[0091] Die Schritte 504 bis 506 werden im Beispiel für die Vielzahl Nachrichten der Nachrichtentypen Xi ausgeführt. Eine Vielzahl Nachrichten aus dem CAN-Trace wird abhängig von der Vielzahl vorgegebener Netzwerktypen Xi als Eingangsgröße für die Vielzahl Eingabemodelle lX1, ..., lXn ausgewählt, wobei die Nachrichten eines bestimmten Nachrichtentyps für ein diesem Nachrichtentyp eindeutig zugeordnetes Eingangsmodell als Eingangsgröße ausgewählt werden.

[0092] In einem optionalen Schritt 508 werden Ausgaben, z.B. die Zustände sX1, ... sXn der Vielzahl Eingabemodelle lX1, ..., lXn als eine Eingabe sX1, ... sXn für den Ausgabebereich O aggregiert. Im Beispiel werden die Zustände sX1, ... sXn als Ausgaben der Vielzahl Eingabemodelle lX1, ..., lXn zur Ausgabe a aggregiert. Die Aggregation erfolgt insbesondere durch Konkatenation der Zustände sX auf den Vektor oder Tensor, der im Beispiel die Ausgabe a darstellt. Die zuvor beschriebene Aggregation insbesondere auch die Weiterverarbeitung kann zusätzlich oder alternative dazu vorgesehen sein.

[0093] In einem Schritt 510 wird im Ausgabebereich O des künstlichen neuronalen Netzes die Vorhersage vY'(t+1) für eine Klassifizierung der Nachricht abhängig von der Eingangsgröße vX(t) ausgegeben. Genauer wird abhängig von der ersten Eingangsgröße vX eine Vorhersage vY'(t+1) für eine zweite Eingangsgröße vY(t+1) bestimmt. Im Beispiel werden die für die Vielzahl Nachrichtentypen Xi Vorhersagen aus der Vielzahl Ausgangsmodelle OX1, ... OXn erzeugt.

[0094] Alternativ oder zusätzlich ist das künstliche neuronale Netzwerk trainiert, abhängig von zumindest einem Teil eines Netzwerkverkehrs im Kommunikationsnetzwerk zu entscheiden, in welchen Zustand von einer Vielzahl von möglichen Zuständen sich das Kommunikationsnetzwerk 108 mit gegenüber den anderen möglichen Zuständen höherer Wahrscheinlichkeit befindet. In diesem Fall wird in Schritt 510 im Ausgabebereich O ein Zustand des Kommunikationsnetzwerks 108 bestimmt.

[0095] In einem Schritt 512 wird abhängig von einem Ergebnis eines Vergleichs von der zweiten Eingangsgröße vY(t+1) und der Vorhersage vY'(t+1) eine Anomalie erkannt, wenn das Ergebnis ein Kriterium erfüllt, das eine Anomalie definiert.

[0096] Beispielsweise ist das Ergebnis abhängig vom Maß für die Abweichung der Vorhersage vY'(t+1) von der zweiten Eingangsgröße vY(t+1) definiert, wobei das Kriterium durch den Schwellwert für die Abweichung definiert ist. In diesem Fall wird eine Anomalie erkannt, wenn das Maß für die Abweichung den Schwellwert überschreitet.

[0097] Im Folgenden wird ein Trainingsverfahren für ein solches künstliches neuronales Netzwerk beschrieben. Der Einfachheit halber wird davon ausgegangen, dass die Vielzahl Eingabemodelle lX1, ..., lXn durch einfache LSTMs realisiert sind, dass der Aggregationsbereich A die einzelnen Zustände sX1, ... sXn einfach konkateniert und dass jedes der Vielzahl Ausgangsmodelle OX1, ... OXn durch ein einfaches Fully-Connected künstliches neurales Netz realisiert ist.

[0098] Der im Folgenden beschriebene Trainingsprozess kann sehr leicht auf mögliche Variationen übertragen werden. Schematisch kann das Training wie in Figur 6 dargestellt folgenden Ablauf aufweisen:
  • Setze in eine Schritt 602 einen aktuellen Loss L auf L = 0.
  • Iteriere in einem Schritt 604 über eine vorgegebene Anzahl an Epochen oder bis ein insbesondere auf Validierungsdaten basierendes vorgegebenes Fehlermaß erreicht ist.


[0099] Selektiere in einem Schritt 606 den nächsten Trainingsdatenabschnitt T von k Zeitschritten.

[0100] Optional werden alle Hidden States aller der Vielzahl Eingabemodelle lX1, ..., lXn zurück gesetzt.

[0101] In einem Schritt 608 wird geprüft, ob alle Trainingsdaten aus dem Trainingsdatenabschnitt T verwendet wurden. Falls noch Trainingsdaten aus dem Trainingsdatenabschnitt T vorhanden sind, wird ein Schritt 610 ausgeführt. Anderenfalls wird der Schritt 604 ausgeführt.

[0102] Im Schritt 610 wird überprüft, ob im aktuellen Zeitschritt t von T eine Nachricht mit Nachrichtentyp X auftritt. Wenn dies der Fall ist, wird eine erste Eingangsgröße vX(t) aus den Trainingsdaten bestimmt.

[0103] In einem Schritt 612 wird sX = lX(vX(t)) berechnet.

[0104] In einem Schritt 614 wird die Aggregation ausgeführt. Dies führt im Beispiel der einfachen Konkatenation auf den Vektor a = (sX1, ...; sXn)t, falls N = {X1; ...;Xn}.

[0105] In einem Schritt 616 wird überprüft, ob Y der Nachrichtentyp zum Zeitschritt t + 1 ist. Dies ist im Training leicht anhand des CAN-Traces überprüfbar. Falls der Nachrichtentyp Y ist, wird oY = OY (a) = vY' (t + 1) berechnet.

[0106] In einem Schritt 618 wird eine zweite Eingangsgröße vY (t + 1) aus den Trainingsdaten bestimmt.

[0107] In einem Schritt 620 wird ein Fehlermaß F = F(vY (t + 1); oY) bestimmt. Für das Fehlermaß F kann beispielsweise der Mean Squared Error gewählt werden, das Fehlermaß kann aber pro Nachrichtentyp separat und problemspezifisch angesetzt werden. Der berechnete Fehlerwert wird auf den aktuelle Loss L aufaddiert.
In einem Schritt 622 wird geprüft, ob eine vorgegebene Anzahl an Schritten erreicht wird. Falls dies der Fall ist, wird ein Backpropagation Schritt durchgeführt, werden die Parameter der künstlichen neuronalen Netze entsprechend der Optimierungsstrategie aktualisiert und der aktuelle Loss L = 0 gesetzt.

[0108] Anschließend wird der Schritt 608 ausgeführt.

[0109] Eine Variation des Trainingsprozesses sieht vor, dass die Vielzahl Eingabemodelle lX1, ..., lXn über mehrere Zeitschritte Daten aggregieren, und optional vorverarbeiten bevor ein Auswertungsschritt stattfindet.

[0110] In einer Variation werden durch die Vielzahl Ausgangsmodelle OX1, ... OXn mehrere Zeitschritte vorhergesagt.

[0111] In einer Variation des Trainingsprozesses kann auch eine Batchoptimierung erfolgen. Insbesondere können hierfür die Gradienten, die zur Berechnung der Adaption der Modelparameter berechnet werden, über mehrere Trainingsdatenschritte gemittelt werden, bevor ein Backpropagation-Schritt erfolgt

[0112] Je nach betrachtetem Problem kann es vorgesehen sein, einige der Nachrichtentypen nur im Eingangsbereich I, nicht aber im Ausgabebereich O zu verwenden oder umgekehrt.

[0113] Optional können die vorgestellte Netzwerkarchitektur sowie die vorgestellten Schemata für Training und Evaluierung leicht in der Form adaptiert werden, dass anstelle des Prädiktionsfehlers ein Rekonstruktionsfehler berechnet wird. Hierbei wird zu jedem Zeitschritt t anstelle der Vorhersagen vY'(t+1) versucht, alle möglichen Eingaben vX(t) zu rekonstruieren. Die Rekonstruktion einer Eingangsgröße ist für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße verwendbar. Diese Rekonstruktion ist im Folgenden mit wX(t) bezeichnet. Die Abweichung zwischen wahrer Eingabe vX(t) und Rekonstruktion wX(t) dient im Beispiel dazu, das neuronale Netzwerk zu trainieren, und in der Evaluierungsphase eine Anomalie zu erkennen.

[0114] Die Rekonstruktion wX(t) der Eingangsgröße vX(t), die ausgegeben wird, ist für die Klassifizierung der Nachricht abhängig von dieser Eingangsgröße vx(t) analog zum Schritt 616 verwendbar. Ein Fehlermaß F = F(vX (t); wx(t) wird dazu abhängig von der ersten Eingangsgröße vX(t) und der Rekonstruktion wx(t) analog zum Schritt 620 bestimmt. Ein Backpropagation Schritt wird analog zu Schritt 618 durchgeführt, wobei Parameter des künstlichen neuronalen Netzes entsprechend der Optimierungsstrategie abhängig vom Fehlermaß F bestimmt werden. Die übrigen Schritte 602 bis 614 und 622 erfolgen beispielsweise wie für die Vorhersage beschrieben.

[0115] Die hier vorgestellten Schemata für Evaluierung und Training werden dazu entsprechend adaptieren. Insbesondere wird die Netzwerkarchitektur gemäß eines Autoencoder-Ansatzes adaptiert, indem nur ein einziges Ausgabemodel erzeugt wird, dass alle Rekonstruktionen als Vektor konkateniert ausgibt. Insbesondere wird hierzu im Ausgabemodel ein Layer verwendet, dessen Dimension kleiner ist als die der Ausgabe O.

[0116] Vorzugsweise ist vorgesehen, dass das Training unüberwacht, insbesondere nur mittels Daten erfolgt, die ein Normalverhalten des Kommunikationsnetzwerks 108 definieren. Das Intrusion Detection System wird nur durch Daten konfiguriert, die das Normalverhalten beschreiben.

[0117] Im Verfahren zur Klassifikation werden Abweichungen von diesem Normalverhalten als Angriff klassifiziert. Dadurch ist das System in der Lage, auch unbekannte Attacken zu detektieren.


Ansprüche

1. Computerimplementiertes Verfahren zur Klassifizierung von Daten insbesondere für ein Controller Area Netzwerk oder ein automotive Ethernet Netzwerk, dadurch gekennzeichnet, dass eine Vielzahl Nachrichten aus einem Kommunikationsnetzwerk empfangen wird (502), wobei eine Nachricht, die einen vorgegebenen Nachrichtentyp (X) aufweist, für eine Eingangsgröße (vX) für ein Eingabemodell (lX) einer Vielzahl Eingabemodelle (lX1, ..., lXn) eines künstlichen neuronalen Netzes ausgewählt wird (504), das dem vorgegebenen Nachrichtentyp (X) zugeordnet ist, wobei die Eingangsgröße (vX) abhängig von der Nachricht bestimmt wird (506), wobei in einem Ausgabebereich (O) des künstlichen neuronalen Netzes eine Vorhersage (vX'(t+1)) ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von der Eingangsgröße (vX(t)) verwendbar ist, oder eine Rekonstruktion einer Eingangsgröße (vX(t)) ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße (vX(t)) verwendbar ist (510).
 
2. Computerimplementiertes Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das künstliche neuronale Netzwerk trainiert ist, abhängig von zumindest einem Teil eines Netzwerkverkehrs im Kommunikationsnetzwerk zu ermöglichen, zu entscheiden, in welchen Zustand von einer Vielzahl von möglichen Zuständen sich das Kommunikationsnetzwerk mit gegenüber den anderen möglichen Zuständen höherer Wahrscheinlichkeit befindet.
 
3. Computerimplementiertes Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine Vielzahl Nachrichten abhängig von einer Vielzahl vorgegebener Netzwerktypen (X) als Eingangsgröße für eine Vielzahl Eingabemodelle (lx) ausgewählt werden (504), wobei ein Nachrichtentyp (X) eindeutig eines der Vielzahl Eingabemodelle (lX) zugeordnet ist, wobei Ausgaben der Vielzahl Eingabemodelle (lx) als eine Eingabe für den Ausgabebereich (O) aggregiert werden (508).
 
4. Computerimplementiertes Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die Vielzahl Eingabemodelle (lx) als rekurrente künstliche neuronale Netze realisiert sind.
 
5. Computerimplementiertes Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass Zustände (sX) der Vielzahl Eingabemodelle (lx) aggregiert werden, insbesondere durch Konkatenation der Zustände (sX) auf einen Vektor oder Tensor (a).
 
6. Computerimplementiertes Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine erste Eingangsgröße (vX) für einen ersten Zeitschritt (t) ausgewählt wird (504), wobei abhängig von der ersten Eingangsgröße (vX) eine Vorhersage (vY'(t+1)) für eine zweite Eingangsgröße (vY(t+1)) bestimmt wird (510), wobei abhängig von einem Ergebnis eines Vergleichs (512) von der zweiten Eingangsgröße (vY(t+1)) und der Vorhersage (vY'(t+1)) eine Anomalie erkannt wird (512), wenn das Ergebnis ein Kriterium erfüllt, das eine Anomalie definiert.
 
7. Computerimplementiertes Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass das Ergebnis abhängig von einem Maß für eine Abweichung der Vorhersage (vY'(t+1)) von der zweiten Eingangsgröße (vY(t+1)) definiert ist, wobei das Kriterium durch einen Schwellwert für die Abweichung definiert ist, wobei eine Anomalie erkannt wird (512), wenn das Maß für die Abweichung den Schwellwert überschreitet.
 
8. Vorrichtung zur Klassifizierung von Daten in einem Kommunikationsnetzwerk, insbesondere für ein Controller Area Netzwerk oder ein automotive Ethernet Netzwerk, dadurch gekennzeichnet, dass die Vorrichtung ein künstliches neuronales Netz umfasst, wobei das künstliche neuronale Netz ein Eingabemodell (lX) für eine Eingangsgröße (vX) und einen Ausgabebereich (O) umfasst, wobei die Vorrichtung eine Auswahleinrichtung (304) umfasst, die ausgebildet ist, eine Nachricht aus dem Kommunikationsnetzwerk, die einen vorgegebenen Nachrichtentyp (X) aufweist, für die Eingangsgröße (vX) auszuwählen, und wobei der Ausgabebereich (O) ausgebildet ist, eine Vorhersage (vX'(t+1)) auszugeben, die für eine Klassifizierung der Nachricht abhängig von der Eingangsgröße (vX(t)) verwendbar ist, oder eine Rekonstruktion einer Eingangsgröße (vX(t)) auszugeben, die für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße (vX(t)) verwendbar ist.
 
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass das künstliche neuronale Netzwerk trainiert ist, abhängig von zumindest einem Teil eines Netzwerkverkehrs im Kommunikationsnetzwerk zu ermöglichen, zu entscheiden, in welchen Zustand von einer Vielzahl von möglichen Zuständen sich das Kommunikationsnetzwerk mit gegenüber den anderen möglichen Zuständen höherer Wahrscheinlichkeit befindet.
 
10. Vorrichtung nach einem Ansprüche 8 oder 9, dadurch gekennzeichnet, dass die Vorrichtung eine Vielzahl Eingabemodelle (lx) umfasst, wobei zwischen der Vielzahl Eingabemodelle (lx) und dem Ausgabebereich (O) ein insbesondere als künstliches neuronales Netz ausgebildeter Aggregationsteil (A) angeordnet ist, der ausgebildet ist, Ausgaben der Vielzahl Eingabemodelle (Ix) als eine Eingabe für den Ausgabebereich (O) zu aggregieren.
 
11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Vielzahl Eingabemodelle (lx) als rekurrente künstliche neuronale Netze realisiert sind.
 
12. Vorrichtung nach Anspruch 10 oder 11, dadurch gekennzeichnet, dass der Aggregationsteil (A) ausgebildet ist, Zustände (sX) der Vielzahl Eingabemodelle (lx) zu aggregieren, insbesondere durch Konkatenation der Zustände (sX) auf einen Vektor (a).
 
13. Vorrichtung nach einem der Ansprüche 8 bis 12, dadurch gekennzeichnet, dass die Auswahleinrichtung (304) ausgebildet ist, eine erste Eingangsgröße (vx) für einen ersten Zeitschritt (t) auszuwählen, wobei der Ausgabebereich (O) ausgebildet ist, abhängig von der ersten Eingangsgröße (vX) eine Vorhersage (vY'(t+1)) für eine zweite Eingangsgröße (vY(t+1)) zu bestimmen, wobei eine Vergleichseinrichtung (308) ausgebildet ist, abhängig von einem Ergebnis eines Vergleichs von der zweiten Eingangsgröße (vY(t+1)) und der Vorhersage (vY'(t+1)) eine Anomalie zu erkennen, wenn das Ergebnis ein Kriterium erfüllt, das eine Anomalie definiert.
 
14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass das Ergebnis abhängig von einem Maß für eine Abweichung der Vorhersage (vY'(t+1)) von der zweiten Eingangsgröße (vY(t+1)) definiert ist, wobei das Kriterium durch einen Schwellwert für die Abweichung definiert ist, wobei die Vorrichtung ausgebildet ist, eine Anomalie zu erkennen, wenn das Maß für die Abweichung den Schwellwert überschreitet.
 
15. Trainingsverfahren für ein künstliches neuronales Netz zur Klassifizierung von Daten insbesondere für ein Controller Area Netzwerk oder ein automotive Ethernet Netzwerk mit Trainingsdaten, die eine Vielzahl von Nachrichten unterschiedlicher Nachrichtentypen umfassen, dadurch gekennzeichnet, dass eine Nachricht, die einen vorgegebenen Nachrichtentyp (X) aufweist, für eine erste Eingangsgröße (vX) für eine Eingabemodell (lX) einer Vielzahl Eingabemodelle (lX1, ..., lXn) des künstlichen neuronalen Netz ausgewählt wird (610), das dem vorgegebenen Nachrichtentyp (X) zugeordnet ist, wobei die erste Eingangsgröße (vX) abhängig von der Nachricht bestimmt wird (610), wobei in einem Ausgabebereich (O) des künstlichen neuronalen Netzes eine Vorhersage (vY'(t+1)) ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von der ersten Eingangsgröße (vX(t)) verwendbar ist, (616), wobei eine zweite Eingangsgröße (vX (t + 1)) aus den Trainingsdaten bestimmt wird (618), wobei ein Fehlermaß (F = F(vX (t + 1); vX'(t+1)) abhängig von der zweiten Eingangsgröße (vX (t + 1)) und der Vorhersage (vX'(t+1)) bestimmt wird (620), und wobei ein Backpropagation Schritt durchgeführt wird (618), wobei Parameter des künstlichen neuronalen Netzes entsprechend der Optimierungsstrategie abhängig vom Fehlermaß bestimmt werden, oder eine Rekonstruktion (wX(t)) einer Eingangsgröße (vX(t)) ausgegeben wird, die für eine Klassifizierung der Nachricht abhängig von dieser Eingangsgröße (vX(t)) verwendbar ist (616), wobei ein Fehlermaß (F = F(vX (t); wx(t)) abhängig von der ersten Eingangsgröße (vX(t)) und der Rekonstruktion (wx(t)) bestimmt wird (620), und wobei ein Backpropagation Schritt durchgeführt wird (618), wobei Parameter des künstlichen neuronalen Netzes entsprechend der Optimierungsstrategie abhängig vom Fehlermaß bestimmt werden.
 
16. Trainingsverfahren nach Anspruch 15, dadurch gekennzeichnet, dass eine Vielzahl Nachrichten abhängig von einer Vielzahl vorgegebener Netzwerktypen (X) als Eingangsgröße für eine Vielzahl Eingabemodelle (lx) ausgewählt werden, wobei ein Nachrichtentyp (X) eindeutig eines der Vielzahl Eingabemodelle (lX) zugeordnet ist, wobei Ausgaben der Vielzahl Eingabemodelle (lX) als eine Eingabe für den Ausgabebereich (O) aggregiert werden (614).
 
17. Trainingsverfahren nach Anspruch 16, dadurch gekennzeichnet, dass die Vielzahl Eingabemodelle (lx) als rekurrente künstliche neuronale Netze realisiert sind.
 
18. Trainingsverfahren nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass Zustände (sX) der Vielzahl Eingabemodelle (lX) aggregiert werden, insbesondere durch Konkatenation der Zustände (sX) auf einen Vektor oder Tensor (a).
 
19. Trainingsverfahren nach einem der Ansprüche 15 bis 18, dadurch gekennzeichnet, dass die erste Eingangsgröße (vX) für einen ersten Zeitschritt (t) ausgewählt wird, wobei abhängig von der ersten Eingangsgröße (vX) die Vorhersage (vY'(t+1)) für die zweite Eingangsgröße (vY(t+1)) für einen zweiten Zeitschritt (t+1) bestimmt wird, wobei das Fehlermaß (F = F(vY (t + 1); vY'(t+1)) abhängig von der zweiten Eingangsgröße (vY(t+1)) und der Vorhersage (vY'(t+1)) für den zweiten Zeitschritt (t+1) bestimmt wird.
 
20. Trainingsverfahren nach einem der Ansprüche 15 bis 19, dadurch gekennzeichnet, dass eine Vielzahl Eingabemodelle (lX1, ..., lXn) über mehrere Zeitschritte Daten aggregieren, und insbesondere vorverarbeiten bevor im Ausgabebereich (O) ein Auswertungsschritt stattfindet, wobei die Vorhersage (vY'(t+1)) bestimmt wird.
 
21. Trainingsverfahren nach einem der Ansprüche 15 bis 18, dadurch gekennzeichnet, dass die erste Eingangsgröße (vX) für einen ersten Zeitschritt (t) ausgewählt wird, wobei abhängig von der ersten Eingangsgröße (vX) die Rekonstruktion (wX(t)) für die erste Eingangsgröße (vX(t)) für den ersten Zeitschritt (t) bestimmt wird.
 
22. Trainingsverfahren nach einem der Ansprüche 15 bis 19, dadurch gekennzeichnet, dass eine Vielzahl Eingabemodelle (lX1, ..., lXn) über mehrere Zeitschritte Daten aggregieren, und insbesondere vorverarbeiten bevor im Ausgabebereich (O) ein Auswertungsschritt stattfindet, wobei die Rekonstruktion (wX(t)) bestimmt wird.
 
23. Trainingsverfahren nach einem der Ansprüche 15 bis 22, dadurch gekennzeichnet, dass das Training unüberwacht, insbesondere nur mittels Daten erfolgt, die ein Normalverhalten des Kommunikationsnetzwerks (108) definieren.
 
24. Computerprogramm, gekennzeichnet durch computerlesbare Instruktionen, bei deren Ausführung durch einen Computer das Verfahren nach einem der Ansprüche 1 bis 7 und/oder 15 bis 23 abläuft.
 
25. Computerprogrammprodukt, gekennzeichnet durch einen computerlesbaren Speicher, auf dem eine Computerprogramm nach Anspruch 24 gespeichert ist.
 




Zeichnung
















Recherchenbericht









Recherchenbericht