DE102014212419A1 - Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell undComputerlesbares Speichermedium - Google Patents

Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell undComputerlesbares Speichermedium Download PDF

Info

Publication number
DE102014212419A1
DE102014212419A1 DE102014212419.0A DE102014212419A DE102014212419A1 DE 102014212419 A1 DE102014212419 A1 DE 102014212419A1 DE 102014212419 A DE102014212419 A DE 102014212419A DE 102014212419 A1 DE102014212419 A1 DE 102014212419A1
Authority
DE
Germany
Prior art keywords
nodes
node
destination
entry
system model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102014212419.0A
Other languages
English (en)
Inventor
Martin Salfer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE102014212419.0A priority Critical patent/DE102014212419A1/de
Publication of DE102014212419A1 publication Critical patent/DE102014212419A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es wird ein Verfahren zur Ermittlung eines Angriffswegs (40) in einem Systemmodell (1) eines Hardware- und/oder Softwaresystems aufgezeigt, wobei das Systemmodell (1) mehrere Knoten (10), die jeweils eine Komponente des Hardware- und/oder Softwaresystems darstellen, und mehrere Kanten (30), die jeweils zwei Knoten (10) oder mehr als zwei Knoten (10) miteinander verbinden und jeweils eine Kommunikationsverbindung zwischen den Komponenten repräsentieren, umfasst, wobei das Verfahren folgende Schritte aufweist: Speichern einer Datenstruktur, die geeignet ist, das Systemmodell darzustellen, Initialisieren des Systemmodells, Durchlaufen aller Knoten (10) in einer Breitensuche ausgehend von vorbestimmten Knoten (Zielknoten) (20) der Knoten (10), Ermitteln und Speichern der Distanz von dem jeweiligen Knoten (10) zu jedem Zielknoten (20) für jeden Knoten (10), und Berechnen der kürzesten Distanz von einem für einen Angreifer zugänglichen Knoten (Einstiegsknoten) (15) der Knoten (10) zu einem der Zielknoten (20), insbesondere mittels eines A*-Algorithmus.

Description

  • Die Erfindung betrifft ein Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell eines Hardware- und/oder Softwaresystems gemäß Patentanspruchs 1 und ein computerlesbares Speichermedium gemäß Patentanspruch 10.
  • Sicherheit bei computertechnischen Systemen wird immer wichtiger. Angriffe auf IT-Netzwerke können in mehreren (elementaren, kleinen) Stufen bzw. Schritten erfolgen. Scheinbar harmlose Lücken können in Kombination miteinander zu einem praktischen und sinnvollen Angriff führen. Die Kombinationsmöglichkeiten der elementaren bzw. kleinen Schritte sind wegen deren Menge und Vielfalt kaum überschaubar. Insbesondere Bordnetze von Fahrzeugen werden immer komplexer und ein Ziel für Angreifer, bei dennoch steigenden Sicherheitsansprüchen. Ein Angriffsgraph zeigt, über welche elementaren Angriffsschritte zu einem Ziel gelangt werden kann, beispielsweise um Administrator- bzw. Root-Rechte auf einem Computer bzw. Server bzw. Steuergerät zu erlangen oder um gewisse Daten lesen oder ausnutzen zu können. Mittels des Angriffsgraphs kann ein Angriffsweg bestimmt bzw. ermittelt werden, der zu einem bestimmten Ziel führt.
  • Es gibt bei jedem IT-Netzwerk bzw. Kommunikationsnetzwerk mehrere Möglichkeiten zum Aufbau / zur Konfiguration bzw. der internen Steuergerätevernetzung oder der Vernetzung der Softwarekomponenten. Allgemein gesprochen gibt es mehrere Möglichkeiten zur Vernetzung und Konfiguration von Teilnehmern eines IT-Netzwerks bzw. Kommunikationsnetzwerks selbst bzw. bei dem internen Aufbau jener Teilnehmer. Unterschiedliche Architekturmöglichkeiten bieten unterschiedliche Vor- und Nachteile. Ein Systemmodell gibt ein Modell des Hardware- und/oder Softwaresystems wieder.
  • Die Bestimmung des (kürzesten/günstigsten) Angriffswegs und die Speicherung des Angriffsgraphs werden mittels computertechnischer Systeme bzw. mittels Computer/Rechnern durchgeführt.
  • Nachteilig an bisher bekannten Verfahren zum Ermitteln eines Angriffswegs ist, dass diese eine sehr lange Laufzeit aufweisen. Für große Angriffsgraphen benötigt die Berechnung eines Angriffswegs sehr lange. So brauchen vorbekannte Verfahren bei zwei Steuergeräten ca. 5 min, bei vier Steuergeräten bereits 30 Minuten und bei ca. 100 Steuergeräten ist die Berechnungszeit nicht mehr realistisch, d.h. liegt beispielsweise oberhalb von 1020 Jahren (ausgehend von einer Hochrechnung mit der Rechenleistung üblicher Computersysteme im Jahr 2014). Zudem verbrauchen diese Verfahren sehr viele Ressourcen und sind somit sehr teuer.
  • Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell eines Hardware- und/oder Softwaresystems aufzuzeigen, dessen Laufzeit auf einem Computer bzw. einem Prozessor verringert ist und das technisch einfach ausführbar ist.
  • Diese Aufgabe wird durch das Verfahren gemäß Patentanspruch 1 gelöst.
  • Insbesondere wird die Aufgabe durch ein Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell eines Hardware- und/oder Softwaresystems gelöst, wobei das Systemmodell mehrere Knoten, die jeweils eine Komponente des Hardware- und/oder Softwaresystems darstellen, und mehrere Kanten, die jeweils zwei Knoten oder mehr als zwei Knoten miteinander verbinden und jeweils eine Kommunikationsverbindung zwischen den Komponenten repräsentieren, umfasst, wobei das Verfahren folgende Schritte aufweist: Speichern einer Datenstruktur, die geeignet ist, das Systemmodell darzustellen, Initialisieren des Systemmodells, Durchlaufen aller Knoten in einer Breitensuche ausgehend von vorbestimmten Knoten (Zielknoten) der Knoten, Ermitteln und Speichern der Distanz von dem jeweiligen Knoten zu jedem Zielknoten für jeden Knoten, und Berechnen der kürzesten Distanz von einem für einen Angreifer zugänglichen Knoten (Einstiegsknoten) der Knoten zu einem der Zielknoten, insbesondere mittels eines A*-Algorithmus.
  • Ein wesentlicher Aspekt der Erfindung ist, dass das Verfahren ein Systemmodell bzw. Graphen verwendet, in dem die Knoten jeweils einzelne Software-Bausteine bzw. Systemmodell-Bausteine darstellen, während die übrigen Systeminfos ausgeblendet werden. Kanten in dem Systemmodell bzw. Angriffsgraphen stellen lediglich eine Änderung eines Bausteins dar. Die Kanten im Systemmodell (die Kommunikationsknoten) stellen einen Verbindungsweg dar, über die Angreifer laufen können bzw. den Angreifer beschreiten können. Im Angriffsbaum bzw. Angriffsgraph stellt ein Kantenübergang eine Änderung eines einzelnen Bausteins dar, im Unterschied zu Model-Check-Verfahren, bei denen beim Kantenübergang der komplette Systemzustand gleichzeitig wechseln kann. Ein Vorteil dieses Verfahrens ist, dass die Laufzeit auf einem Computer verringert ist. Die Laufzeit verhält sich gemäß O (n·log(n)). Ein weiterer Vorteil ist, dass das Verfahren technisch einfach in Software implementiert bzw. programmiert werden kann. Ein weiterer Vorteil ist, da jeder Knoten einen einzelnen Baustein des Systems darstellt und somit restliche System-Variablen ausgeblendet werden können, dass das Verfahren in sehr kurzer Zeit/Laufzeit ausgeführt werden kann. Darüber hinaus benötigt das Verfahren keine Analyse des Systemmodells durch Experten, was viel Arbeitszeit spart und auch Kosten spart. Auch bei großen Systemmodellen ist das Verfahren in praktisch beherrschbaren Zeiten durchführbar. Ein weiterer Vorteil ist, dass Systemmodelle, bei denen ein sehr günstiger Weg bzw. eine sehr kurze Distanz, beispielsweise unterhalb eines gewissen Schwellenwerts, als kürzeste Distanz (günstigster Angriffsweg) berechnet wurde, erkannt und vor einer Implementierung bzw. Nutzung gemäß entsprechender Sicherheitsvorgaben überarbeitet werden können. Somit kann bereits beim Entwurf eines Systems festgestellt werden, wie sicher das System gegen Angriffe ist. Somit kann sichergestellt werden, dass nur Systemmodelle in der Praxis umgesetzt werden, die gewisse Mindestsicherheitsanforderungen erfüllen. Das Speichern der Datenstruktur kann in einem RAM, einem ROM, einem Festplattenspeicher, einem SSD-Speicher etc. durchgeführt werden. Das Berechnen kann mittels eines Prozessors oder mehrerer Prozessoren stattfinden. Die Prozessoren können Teile eines Computers, eines eingebetteten Steuergerätes oder eines Server-Computers sein. Unter kürzester Distanz ist der günstigste Gesamtaufwand und -weg bezüglich Zeit, Geld und Spezialressourcen und dergleichen vom Einstiegsknoten zu dem Zielknoten zu verstehen.
  • In einer Ausführungsform des Verfahrens wird die jeweils kürzeste Distanz von jedem Einstiegsknoten zu jedem Zielknoten berechnet. Ein Vorteil hiervon ist, dass alle möglichen Angriffe bzw. Angriffswege berücksichtigt werden. Hierdurch kann die Sicherheitsanfälligkeit des Systemmodells noch besser bzw. präziser bestimmt werden.
  • Das Berechnen der kürzesten Distanz kann von einem der Einstiegsknoten oder von jeweils einem der Einstiegsknoten aus starten. Hierdurch wird die Laufzeit noch weiter verringert.
  • In einer weiteren Ausführungsform wird das Berechnen der kürzesten Distanz terminiert bzw. beendet, sobald alle Zielknoten erreicht wurden oder alle über die Kanten (von Einstiegsknoten aus) erreichbaren Knoten durchlaufen wurden. Ein Vorteil hiervon ist, dass eine technisch einfache Abbruchbedingung angegeben ist. Die Laufzeit des Verfahrens kann noch weiter verringert werden.
  • Die Komponenten bzw. Bausteine können Teile eines Bordnetzes eines Kraftfahrzeugs, Flugzeugs, Zugs oder Schiffs sein. Ein Vorteil hiervon ist, dass entsprechende Bordnetze technisch einfach auf ihr Sicherheitsniveau bzw. vorgegebene Mindestsicherheitsanforderungen hinsichtlich möglicher Angriffe bzw. Angriffswege überprüft werden können, bevor das Bordnetz tatsächlich gebaut bzw. verwendet wird sowie auch während der Verwendung zur späteren Überprüfung. Bei Erkennung von Schwachstellen bzw. (zu) kurzen Angriffswegen, kann das Bordnetz entsprechend überarbeitet werden.
  • In einer weiteren Ausführungsform umfassen die Zielknoten eine Komponente, die in der Lage ist, die Höhe der elektronisch abgeriegelten Höchstgeschwindigkeit (Vmax) zu ändern und/oder aufzuheben (Vmax-Freischaltung), den Motor zu starten, und/oder eine Sicherheitsverriegelung, insbesondere die Verriegelung von Türen, zu öffnen. Ein Vorteil hiervon ist, dass sichergestellt wird, dass für Sicherheitskomponenten, die für Angreifer besonders attraktiv sind, die kürzeste Distanz/der (notwendige minimale) Aufwand für einen Angriff berechnet wird, und somit das Sicherheitsniveau bezüglich dieser besonders attraktiven Sicherheitskomponenten bestimmt wird bzw. werden kann.
  • Der Einstiegsknoten kann ein Browser und/oder eine externe Schnittstelle, insbesondere eine OBD-II-Schnittstelle, umfassen. Ein Vorteil hiervon ist, dass für den Angreifer besonders leicht zugängliche Einstiegsknoten die kürzeste Distanz bzw. den günstigsten Angriffsweg von diesen Einstiegsknoten aus berechnet wird. Die angeführten Einstiegsknoten müssen bei vielen Einsatzfällen für fremde Personen, wie z.B. Reparaturpersonal, grundsätzlich zugänglich sein, so dass die genannten Knoten stets auch für Angreifer frei zugänglich sind. Vorteilhaft ist, wenn unter Einbeziehung dieser besonders einfach zugänglicher Punkte die kürzeste (Angriffs-)Distanz bzw. der (notwendige/minimale) Aufwand berechnet wird.
  • Die Kanten können jeweils eine individuelle Distanzangabe bzw. Aufwandsangabe aufweisen. Ein Vorteil hiervon ist, dass das Systemmodell das tatsächliche bzw. zu bauende/umzusetzende System noch detailgetreuer nachbilden bzw. darstellen kann. Unterschiedliche Kommunikationswege können in der Realität unterschiedlich schwer beschreitbar sein, so dass durch eine Aufwandsangabe/Distanzangabe bzw. Kantengewichtung dies im Modell widergespiegelt werden kann. Für das Beschreiten unterschiedlicher Kommunikationswege kann ein unterschiedlicher Aufwand notwendig sein. Unter Aufwand ist insbesondere der Aufwand an Ressourcen, d.h. Geld, Zeit, Spezialwissen und/oder Werkzeuge, zu verstehen. Der Aufwand kann für jeden Angreifer unterschiedlich bzw. individuell sein. Die Distanzangabe bzw. Aufwandsangabe kann auch eine Zufallsvariable mit einer festgelegten Wahrscheinlichkeitsverteilung sein. Beispielsweise kann die Distanzangabe 0,5 mit einer Gaußschen Verteilung mit einer Standardabweichung von 0,1 sein, so dass in ca. 68,3% der Fälle die Distanzangabe im Bereich von 0,4 bis 0,6 liegt. Andere Wahrscheinlichkeitsverteilungen (z.B. Poisson-Verteilung) sind vorstellbar. Es wird bei Distanzangaben mit Zufallsvariable der Durchschnittswert der jeweiligen Wahrscheinlichkeitsverteilung als feststehende bzw. fixe Distanzangabe genommen. Dadurch kommt das Verfahren auch bei Graphen mit Distanzangaben, die Zufallsvariablen mit einer festgelegten Wahrscheinlichkeitsverteilung sind, bei jedem Durchlauf zum gleichen Ergebnis, d.h. das Verfahren ist deterministisch. Es ist jedoch auch vorstellbar, dass bei jedem neuen Beschreiten der Kante der Wert zufällig neu bestimmt wird.
  • Vorstellbar ist auch, dass die Distanzangabe bzw. Aufwandsangabe solcher Kanten (d.h. Kanten, bei denen die Distanzangabe eine Zufallsvariable mit einer festgelegten Wahrscheinlichkeitsverteilung ist) beim Erstellen des Systemmodells bzw. des Angriffsgraphen zufällig neubestimmt wird und bei jedem Beschreiten der gleichen Kante unverändert bleibt.
  • Das Verfahren kann ferner den Verfahrensschritt des Hochladens der Datenstruktur auf einen Server (oder Steuergerät), wenn die berechnete kürzeste Distanz oberhalb eines vorbestimmten Werts liegt, umfassen. Ein Vorteil hiervon ist, dass Datenstrukturen, die geeignet sind, Systemmodelle darzustellen, (automatisch) auf einen Server (oder einem Steuergerät) gelangen, von wo sie aus weiterbearbeitet werden können, allerdings nur solche Datenstrukturen, die gewisse Mindestsicherheitsanforderungen, die einer kürzesten Distanzen zwischen Einstiegsknoten und Zielknoten bzw. einem günstigsten Angriffsweg entsprechen, auf den Server (oder dem Steuergerät) hochgeladen werden. Hierdurch wird verhindert, dass Datenstrukturen und/oder Konfigurationen (automatisch) auf den Server (oder Steuergerät) hochgeladen werden, sofern sie nicht gewisse Mindestsicherheitsanforderungen bezüglich möglicher Angriffe bzw. Angriffswege aufweisen. Hierdurch kann das Verfahren zum Entwickeln eines tatsächlich zu bauenden/zu erstellenden Systems bzw. zu bauenden/zu erstellenden Konfiguration noch weiter technisch vereinfacht bzw. automatisiert werden. Vom Server aus können die Datenstrukturen automatisiert an Vorrichtungen übertragen werden, beispielsweise im Rahmen eines (Online-)Updates eines (verteilten) Softwaresystems.
  • Die Erfindung wird ebenfalls durch ein computerlesbares Speichermedium gelöst, das ausführbar Maschinenbefehle speichert, welche einen Computer dazu veranlassen, das Verfahren mit einem der oben beschriebenen Merkmale und/oder einer der oben beschriebenen Merkmalskombinationen zu implementieren, wenn diese ausgeführt werden.
  • Bevorzugte Ausführungsformen ergeben sich aus den Unteransprüchen. Nachfolgend wird die Erfindung anhand von Zeichnungen von Ausführungsbeispielen näher erläutert. Hierbei zeigen
  • 1 ein Systemmodell eines Hardware- und/oder Softwaresystems mit einem gefundenen Angriffsweg;
  • 2 ein Flussdiagramm des ersten Teilalgorithmus zum Ermitteln und Speichern der Distanz von Knoten zueinander; und
  • 3 ein Flussdiagramm des zweiten Teilalgorithmus zum Ermitteln und Speichern der Distanz von Knoten zueinander und Berechnen der kürzesten Distanz von einem Einstiegsknoten zu einem der Zielknoten, in Form eines A*-Algorithmus.
  • Bei der nachfolgenden Beschreibung werden für gleiche und gleich wirkende Teile dieselben Bezugsziffern verwendet.
  • 1 zeigt ein Systemmodell 1 eines Hardware- und/oder Softwaresystems. Das Systemmodell 1 umfasst mehrere Knoten 10. Jeder Knoten 10 stellt eine Komponente bzw. einen Baustein eines Hardware- und/oder Softwaresystems dar. Zwischen den Knoten 10 verlaufen Kanten 30. Die Kanten verbinden jeweils zwei Knoten 10 miteinander. Vorstellbar ist auch, dass eine Kante 30 mehr als zwei Knoten 10 miteinander verbindet, z.B. drei, vier, fünf, sechs, sieben Knoten 10 oder mehr als sieben Knoten 10. Beispielsweise kann eine Art Sternvernetzung mehrerer Knoten 10 vorhanden sein. Eine Sternvernetzung hat gegenüber einer Vollvernetzung den Vorteil, dass weniger Kanten 30 vorhanden sind, so dass die Berechnung schneller durchgeführt werden kann. Einige der Knoten 10 weisen zwei Kanten 30, andere drei Kanten 30 und manche nur eine Kante 30 auf. Vorstellbar ist jedoch auch, dass ein Knoten 30 mehr als vier Kanten, insbesondere 5, 6, 7 usw. Kanten umfasst. Jede Kante 30 stellt eine Kommunikationsverbindung zwischen den Komponenten bzw. Bausteinen des Hardware- und/oder Softwaresystems dar, die durch die Knoten 10 repräsentiert werden. Der Knoten 10 kann insbesondere einen Software-Baustein darstellen.
  • Die Kommunikationsverbindung, die durch die Kanten 30 dargestellt ist, kann eine physische Verbindung zwischen verschiedenen Hardwarekomponenten des Systems 1 sein. Alternativ kann die Kante 30 eine Kommunikationsverbindung, beispielsweise einen Port zwischen verschiedenen Software-Bausteinen eines Softwaresystems darstellen. Auch vorstellbar ist, dass die Kante 30 eine Kommunikationsverbindung zwischen einem Hardwarebaustein bzw. einer Hardwarekomponente und einer Softwarekomponente bzw. umgekehrt darstellt. Die Kommunikationsverbindung kann ein CAN-Bus oder eine Art von Bus sein. Auch vorstellbar ist, dass die Kommunikationsverbindung eine TCP/IP-basierte Verbindung ist, z.B. eine Verbindung mit dem Internet bzw. World Wide Web. Weiter vorstellbar ist, dass die Kommunikationsverbindung eine Interprozess-Kommunikation und/oder Intents, Kernel-Signale, LIN, MOST/Flexray umfasst.
  • In 1 sind die Knoten 10 in verschiedenen Ebenen von oben nach unten dargestellt, wobei eine Ebene die Knoten 10 auf einer horizontalen Höhe in 1 umfasst. Die verschiedenen Ebenen stellen verschiedene (logische) Systemebenen im modellierten System dar.
  • Die drei Knoten 10 in der obersten Ebene stellen Einstiegsknoten 15 dar. Ein Einstiegsknoten 15 im Systemmodell ist ein Knoten, an denen ein (potentieller) Angreifer initial angreifen kann, d.h. diese Knoten 10 sind für den betrachteten Angreifer unmittelbar erreichbar und damit regulär angreifbar. Diese Knoten 10 sind für den Angreifer zugänglich. Zugänglich bedeutet, dass der Angreifer Daten lesen und/oder schreiben kann bei der durch den Einstiegsknoten 15 repräsentierten Komponente des Systems. Ein Einstiegsknoten 15 wird auch als Zugangsknoten bzw. Angriffsknoten bezeichnet. Der bzw. die Einstiegsknoten 15 können insbesondere ein Browser, eine externe Schnittstelle, insbesondere eine OBD(On Board Diagnostic)-II-Schnittstelle, oder sonstige zugängliche Input-/Output-Ports sein. Auch vorstellbar ist, dass der Einstiegsknoten 15 ein USB-Port bzw. eine USB-Schnittstelle, eine WLAN-Verbindung bzw. -zugang, eine Bluetoothverbindung bzw. ein Bluetoothzugang, ein CD- und/oder DVD- und/oder Blu-Ray-Laufwerk, ein Reifendruck-Funksensor, C2X-Funk, gekoppelte Handys und/oder von außen (außerhalb des Fahrzeuges) zugängliche Stecker und Kabel unter Verkleidungen und im Unterboden ist/sind bzw. umfasst. Das Schreiben kann durch einen physischen Zugang zu dem Knoten 10 bzw. Baustein des Systems erfolgen (Beispiel: OBD-II-Schnittschelle) oder durch eine reine Kommunikationsverbindung (z.B. über das Internet oder via TCP/IP).
  • Jeder Einstiegsknoten 15 kann mit initialen Kosten bzw. Aufwand bewertet werden. Dieser kann für unterschiedliche Angreifer bzw. Angreiferprofile unterschiedlich festgelegt werden.
  • In der untersten Ebene ist in 1 eine Vielzahl von so genannten Zielknoten 20 dargestellt. Die Zielknoten 20 sind das eigentliche Ziel eines bzw. des Angreifers. Die Zielknoten 20 sind Wertesachen, die Angreifer begehren, z.B. eine Vmax-Freischaltung oder eine Fahrzeugöffnung. Unterschiedliche Angreifer können unterschiedliche Ziele begehren. Zudem kann die Wertsache für unterschiedliche bzw. individuelle Angreifer unterschiedlich wertvoll sein. Prinzipiell kann alles, was einen Wert für einen Angreifer darstellen kann, ein Attraktor sein. Die Zielknoten umfassen den Attraktor/die Attraktoren für einen Angreifer bzw. den Angreifer. Weitere Wertesachen, die durch Zielknoten 20 dargestellt werden bzw. werden können, sind Berechtigungsnachweise (credentials). Auch ist denkbar, dass der Zielknoten 20 eine Datenstruktur enthält bzw. ist, deren Codierung für den Angreifer unbekannt ist. In diesem Fall kann der Angreifer dennoch bei einem möglichen Schreibzugriff „falsche“ Daten hineinschreiben und somit die Sicherheit beeinträchtigen. Auch vorstellbar ist, dass der Zielknoten 20 zu einer Sperrung bzw. Unterbrechung der Kommunikation eines Teils des Systems mit einem anderen Teil des Systems oder des gesamten Systems mit der Außenwelt führt. Ebenso kann der Zielknoten 20 für eine Schreibmöglichkeit in einen Fehlerstatus stehen. Bei einem Schreibzugriff auf solch einen Fehlerstatus kann beispielsweise vorgetäuscht werden, dass in Teilen des Systems oder (wenn das System ein Bord-Netz eines Fahrzeugs ist) in Bereichen des Fahrzeugs Fehler aufgetreten sind, z.B. nicht genügend Luft in einem Reifen des Fahrzeugs vorhanden ist, und auf diese Weise den Fahrer des Fahrzeugs zum Stoppen des Fahrzeugs und zum Aussteigen aus dem Fahrzeug bewegen. Auch vorstellbar ist, dass solche Fehlermeldungen, den (rechtmäßigen) Benutzer des Systems dazu veranlassen, Sicherheitsvorkehrungen aktiv auszuschalten und auf diese Weise, den darauf folgenden eigentlichen Angriff durch den Angreifer zu erleichtern.
  • Auch vorstellbar ist, dass ein Angriff auf ein bestimmtes Fahrzeug einer Zielperson (z.B. eine hochrangige Persönlichkeit der Politik oder des öffentlichen Lebens) oder auf zufällig ausgewählte Fahrzeuge durch Angriff auf das System oder das Bord-Netz des Fahrzeugs durchgeführt wird, um einen Unfall bzw. eine Fehlfunktion des Fahrzeugs zu verursachen.
  • Von den Einstiegsknoten 15 führt eine Vielzahl unterschiedlicher Wege über verschieden Kanten 30 und verschieden Knoten 10 zu den verschiedenen Zielknoten 20. In 1 ist durch ausgefüllte Kreise ein Angriffsweg 40 dargestellt, der von einem (in 1 in der Mitte dargestellten) Einstiegsknoten 15 über eine erste Kante 30 zu einem weiteren Knoten 10 führt, von dort über eine zweite Kante 30 zu einem weiteren Knoten 10 führt, anschließend über eine dritte Kante 30 in die zweitunterste Ebene zu einem dort vorhandenen weiteren Knoten 10 führt, und schließlich über eine letzte Kante 30 in die unterste Ebene zu dem Zielknoten 20 führt. Die fünf Knoten 10, die mit einem ausgefüllten Kreis in 1 dargestellt sind, zusammen mit den Kanten 30 zwischen diesen Knoten 10, stellen den Angriffsweg 40 dar, der als kürzester bzw. günstigster Angriffsweg identifiziert bzw. berechnet wurde.
  • Manche Knoten 10 weisen nur lediglich eine Kante 30 zu einem Mutterknoten auf, d.h. sind stellen Sackgassen dar.
  • Im Folgenden wird nun das Verfahren zum Berechnen des kürzesten Angriffswegs anhand des Systemmodells erläutert. Hierbei werden mögliche und wirtschaftliche Angriffswege berücksichtigt.
  • Die Kanten 30 können Kantengewichte aufweisen. Die Kantengewichten der Kanten 30 können alle gleich groß sein. Alternativ können sie unterschiedlich zueinander sein und/oder teilweise gleichgroß und teilweise unterschiedlich zueinander. Die Kantengewichte geben an wie schwer eine Kommunikationsverbindung zwischen verschiedenen Komponenten zu beschreiten ist. Die Kantengewichte können für unterschiedliche Angreifer unterschiedlich hoch sein, d.h. auf unterschiedliche Werte gesetzt werden. Verschiedene Angreifer haben unterschiedliche Fähigkeiten, wodurch unterschiedliche Wege, d.h. Kanten 30, für verschiedenen Angreifer unterschiedlich schwer zu beschreiten sind. Die Analyse bzw. das Verfahren kann für jeden Angreifer individuell durchgeführt werden. Hierbei können unterschiedliche Charakteristiken und/oder Techniken der Angreifer berücksichtigt werden, die sich positiv und/negativ auf den jeweiligen Aufwand/die jeweilige Distanz(angabe) niederschlagen können.
  • Der erste Schritt bzw. Teilalgorithmus des erfindungsgemäßen Verfahrens ist ein Dijkstra-Algorithmus bzw. ähnlich wie ein Dijkstra-Algorithmus aufgebaut. In diesem ersten Schritt bzw. Teilalgorithmus werden startend bei den Zielknoten 20 die Knoten 10 durchlaufen und zu jedem Knoten 10 die Distanzen zu dem Zielknoten 20 oder zu den Zielknoten 20 bestimmt bzw. berechnet. Die Knoten 10 werden in einer Breitensuche (Breadth-first) durchlaufen. Bei der Berechnung der Distanz können Kantengewichte der Kanten 30 berücksichtigt werden.
  • Im zweiten Schritt bzw. zweiten Teil-Algorithmus werden diese berechneten Distanzen dann weiter verwendet. Der zweite Teil-Algorithmus wird nach dem ersten Teil-Algorithmus ausgeführt.
  • 2 zeigt ein Flussdiagramm eines solchen Dijkstra-Algorithmus. In einem ersten Schritt S100 („Initiales Laden von Zielknoten“) werden die Knoten 10, die zugleich Zielknoten 20 sind und mit mindestens einem anderen Knoten 10 verbunden sind, welcher bzw. welche nicht zugleich Zielknoten 20 sind, initial in die zuvor leere offene Liste geladen.
  • An der Verzweigung bzw. Schritt S101 („Noch offene Knoten vorhanden?“) werden verschiedene Wege genommen abhängig davon, ob noch offene, d.h. noch nicht bearbeitete Knoten, Knoten 10 vorhanden sind. Falls keine weiteren offenen Knoten 10 vorhanden sind, wird Schritt S102 („Beende Heuristik-Vorbereitungs-Verfahren“) ausgeführt und das heuristische (Vor-)Verfahren beendet. Falls bei der Entscheidung, ob noch offene Knoten vorhanden sind, festgestellt wird, dass noch offene Knoten vorhanden sind, wird Schritt S103 („Wähle den offenen Knoten mit den geringsten Kosten/mit der geringsten Distanz und markiere diesen als geschlossen“) ausgeführt. In Schritt S103 wird der offene Knoten mit der geringsten Distanz/mit dem geringsten Aufwand ausgewählt als geschlossen markiert. Wenn mehrere Knoten die gleiche Distanz aufweisen, wird einer der Knoten mit der gleichen Distanz zufällig ausgewählt.
  • Alle Knoten 10, die bereits expandiert bzw. vollständig bearbeitet wurden, sind als geschlossen markiert. Die offene Liste enthält die Knoten 10, die bereits während des Durchlaufens bzw. der Traversierung entdeckt wurden aber noch nicht expandiert und als geschlossen markiert wurden. Durch die Sortierung der offenen Liste nach den günstigsten weiterführenden Schritten/Kanten wird die Laufzeit des Verfahrens erheblich reduziert bzw. das Verfahren ist schneller durchführbar.
  • Knoten 10, die noch gar nicht bearbeitet wurden, werden nicht in der offenen Liste geführt.
  • Anschließend werden im Schritt S104 („Sammle alle neu erreichbaren Knoten“) alle neu erreichbaren Knoten, d.h. alle von dem zuletzt als expandiert und geschlossen markierten Knoten 10 erreichbaren Knoten bestimmt. Anschließend werden im Schritt S105 („Notiere alle neu erreichbaren Knoten mit ihrer Distanz (Update Knoten mit zuvor größerer Distanz)“) alle neu erreichbaren Knoten mit ihrer Distanz notiert. Zudem werden Knoten 10, die zuvor eine größere Distanz zu dem Zielknoten 20 oder den Zielknoten 20 aufwiesen, aktualisiert und die neu berechnete Distanz zu dem jeweiligen Knoten 10 gespeichert. Anschließend geht es zur Entscheidung S101 zurück, wo erneut festgestellt wird, ob noch offene Knoten vorhanden sind. Wenn ja, werden Schritt S103, Schritt S104 und Schritt S105 erneut ausgeführt, ansonsten wird in Schritt S102 das Heuristik-Vorbereitungs-Verfahren beendet.
  • Nach dem Ausführen dieses Teilalgorithmus ist für jeden Knoten 10 die Distanz zu einem Zielknoten 20 oder jedem der Zielknoten 20 bestimmt und (zu dem jeweiligen Knoten bzw. dem jeweiligen Knoten zugeordnet) gespeichert worden. Die Speicherung kann beispielsweis mittels eines Arrays oder objektorientierten Speicherstrukturen stattfinden. Die berechneten bzw. bestimmten Distanzen von jedem Knoten zu dem Zielknoten 20 oder zu den Zielknoten 20 werden nun für den zweiten Teil-Algorithmus verwendet.
  • Dieser zweite Teil des Algorithmus wird durch das in 3 dargestellte Ablaufflussdiagramm erläutert.
  • Die zweite Phase bzw. der zweite Teil des Verfahrens ist ein A*-Algorithmus mit einer zulässigen, konsistenten Heuristik. Damit kann dieser A*-Algorithmus mit einer expansionsoptimalen Laufzeit die günstigsten Pfade, d.h. Wege bzw. Pfade mit den besten Aufwandswerten von einem Einstiegsknoten 15 zu einem Zielknoten 20, finden. Die zweite Phase bzw. der zweite Teil-Algorithmus startet von den Einstiegsknoten 15 aus. Der A*-Algorithmus wählt entsprechend dem zulässigen, konsistenten A*-Verfahren den Angriffspfad nach der kürzesten Distanz bzw. nach dem günstigen Gesamtweg aus (wobei Kantengewichte für die Distanzberechnung berücksichtigt werden.). Die Kantengewichte können für unterschiedliche Angreifer individuell festgelegt werden bzw. sein. Der Algorithmus terminiert, sobald alle Ziele (alle Zielknoten 20) erreicht wurden oder alle erreichbaren Knoten 10 getestet wurden. Das Ergebnis des Algorithmus ist eine Menge von Pfaden, d.h. Wegen mit entsprechenden Gesamtdistanzen, die aus elementaren Angriffsschritten zur Erreichung der Zielknoten 20 ausgehend von den Einstiegsknoten 15 bzw. Zugangsknoten bestehen.
  • Zu Beginn der zweiten Phase wird in einem ersten Schritt S200 („Initiales Laden der Einstiegsknoten“) der oder die Einstiegsknoten 15, initial in die offene Liste geladen. Die Nachfolgeknoten der Einstiegsknoten 15 werden in die offene Liste eingefügt und der Einstiegsknoten 15 wird als geschlossen markiert.
  • Anschließend wird in Schritt bzw. Verzweigung S201 („Weitere, offene Attraktoren vorhanden?“) entschieden, ob noch weitere, offene Attraktoren, d.h. Zielknoten 20, vorhanden sind. Falls keine weiteren, offenen Attraktoren vorhanden sind, wird im Schritt S203 („Beende Graphensuche“) die Graphen-Suche, d.h. die Suche im Systemmodell nach einem (kürzeren bzw. günstigeren) Angriffsweg, beendet.
  • Falls im Schritt bzw. an der Verzweigung S201 festgestellt wird, dass noch weitere, offene Attraktoren vorhanden sind, wird im Schritt bzw. in der Verzweigung S202 („Offene (und erschwingliche) Knoten vorhanden?“) bestimmt, ob noch offene und erschwingliche, d.h. innerhalb einer vorgegebenen maximalen Distanz befindliche, Knoten 10 vorhanden sind. Falls festgestellt wird, dass keine solchen Knoten 10 mehr vorhanden sind, wird im Schritt S203 die Graphen-Suche, d.h. die Suche nach einem (kürzeren) Angriffsweg, ebenfalls beendet. Falls jedoch in Schritt S203 festgestellt wird, dass noch offene und erschwingliche Knoten vorhanden sind, wird Schritt S204 ausgeführt. Alternativ läuft der Algorithmus alle Zielknoten ohne Budgetgrenze (d.h. unabhängig von der jeweiligen Distanz bzw. dem jeweiligen Aufwand) an bzw. durch und ermittelt so die zu erwartenden Angreiferkosten (d.h. die Distanz bzw. den Aufwand für den Angreifer) welche später mit in einer Wahrscheinlichkeitsberechnung für den Angriffsweg einfließen.
  • In Schritt S204 („Wähle Knoten der offenen Liste mit den geringsten Kosten und Heuristik und markiere diesen als geschlossen“) wird der Knoten 10 der offenen Liste ausgewählt und der Knoten mit den geringsten Kosten (d.h. mit der geringsten bzw. kürzesten Distanz) und Heuristik ausgewählt und dieser als geschlossen markiert. In Schritt bzw. Verzweigung S205 („Attraktor gefunden?“) wird anschließend festgestellt, ob ein Attraktor, d.h. Zielknoten 20, gefunden wurde bzw. erreicht wurde. Falls in Schritt bzw. Verzweigung S205 festgestellt wird, dass ein bzw. der Attraktor erreicht wurde, wird zunächst Schritt S206 („Exportiere gefundenen Pfad entsprechend den Vorgängerrichtungen (und markiere den Attraktor als geschlossen)“) ausgeführt, in dem der gefundene Pfad entsprechend den Vorgängerrichtungen exportiert bzw. ausgegeben wird. Die Vorgängerrichtungen sind die Kanten 30 und die Knoten 10, die auf dem Weg vom Einstiegsknoten 15 zu dem Zielknoten 20 beschritten wurden. Somit wird der gefundene Angriffsweg exportiert bzw. ausgegeben.
  • Anschließend, d.h. nach Schritt S206, wird dann Schritt S207 ausgeführt. Falls im Schritt bzw. an der Verzweigung S205 festgestellt wird, dass kein Attraktor gefunden bzw. erreicht wurde, wird direkt nach Schritt S205 Schritt S207 ausgeführt. In Schritt S207 („Expandiere den gewählten Knoten der Liste“) wird der gewählte Knoten der Liste, d.h. der „nächste“ Knoten, expandiert und als geschlossen markiert. Die Nachfolgeknoten (über Kanten 30 erreichbare Knoten 10) des „nächsten“ Knotens 10 werden in die offene Liste eingefügt.
  • Der Schritt S207 umfasst mehrere Unterschritte S207a, S207b, S207c und S207d. In Schritt S207a („Sammle alle neu erreichbare Knoten“) werden die neu erreichbaren Systemknoten und Attraktoren (Zielknoten 20) eines Knotens 10 gesammelt. Ein Systemknoten kann ein Stück Software, ein Task, ein Prozess, ein Thread, ein Fiber, ein Runnable, ein VM, etc. bis hoch zu kompletten Steuergeräte-Images oder Subsystemen sein, je nach betrachteter, gewünschter oder vorhandener Granularität des Systems. In Schritt S207b („Wähle den günstigsten Exploit“) werden für alle Exploits deren Bedingungen geprüft ggü. dem Angreiferprofil, u.a. ob das Budget (Geld/Ressourcen, die ein potentieller Angreifer zur Verfügung hat) ausreichend ist, die Fähigkeiten (welche Rechte weist der Knoten auf, d.h. welche Art von Angriffen können vom Knoten 10 aus ausgehen) ausreichend sind, das Ziel des Angriffs (welcher Knoten 10 ist Ziel des Angriffs) passend ist und das Kommunikationsmedium (wie kommuniziert der andere Knoten 10 mit dem nächsten Knoten) ausreichend ist. Die Budget-Prüfung ist hierbei optional. Es kann wahlweise auch ohne Budget-Grenzen gearbeitet werden, um die voraussichtlichen Kosten für ein Bestimmtes Ziel (bzw. eine Vielzahl von Zielen) zu errechnen bzw. zu bestimmen. Von den erlaubten Exploits wird der günstigste gewählt. Dieser Schritt S207b ist fakultativ, d.h. muss nicht zwingend ausgeführt werden. Die Informationen, die in Schritt S207b verwendet werden befinden sich in einer Liste bzw. einem Array bzw. objektorientierten Speicherstrukturen. Hierbei kann auf Informationen des Systemmodells und des Angreiferprofils sowie auch auf eine Exploitdatenbank zurückgegriffen werden. Der Schritt S207b kann auch nur teilweise ausgeführt werden. Jeder der Teilschritte des Schritts S207b kann weggelassen werden.
  • In Schritt S207c („Notiere die neu gefundenen Knoten mit Vorgängerrichtungen und dem günstigsten Exploit bzw. Kostenschätzungen“) werden die neu gefundenen Knoten 10 mit Vorgängerrichtungen und dem günstigsten Exploit bzw. Kostenschätzungen notiert, d.h. gespeichert. Die Kostenschätzungen basieren auf Rechnungen bezüglich einem vorhandenem Angreiferprofil und einem erforderlichen Profil. In Schritt S207d („Füge neu gefundene zulässige Knoten zu der offenen Liste hinzu“) werden die neu gefundenen zulässigen Knoten in die offene Liste eingefügt bzw. dieser hinzugefügt. Falls ein „neu gefundener“ Knoten 10 bereits in der offenen Liste vorhanden ist, d.h. sozusagen wiedergefunden wird, wird lediglich überprüft, ob eine kürze Distanz für diesen Knoten 10 gefunden wurde, und gegebenenfalls die Distanz des Knotens 10 upgedatet und der Knoten in der Liste umgesetzt. Die Liste ist geordnet, so dass das Einfügen an dieser Stelle passiert, wodurch die Ordnung erhalten bleibt:
    Günstigste Knoten am Anfang der (sortierten) Liste und die teuersten Knoten ans Ende der Liste.
  • Nach Schritt S207, der aus den Unterschritten S207a, S207b, S207c und S207d besteht bzw. diese umfasst, wird in Schritt S201 erneut festgestellt, ob noch unerreichte Zielknoten vorhanden sind, und anschließend wird in Schritt S202 erneut festgestellt, ob noch offene (und erschwingliche) Knoten vorhanden sind. Wenn ja, wird erneut Schritt S204 usw. ausgeführt. Falls nein, wird Schritt S203 ausgeführt und die Graphen-Suche beendet.
  • Nach dem Durchlaufen des ersten Teil-Algorithmus und des zweiten Teil-Algorithmus sind der oder die günstigsten bzw. kürzesten Gesamtwege von einem Einstiegsknoten 15 zu einem (bestimmten) Zielknoten 20 (Attraktor) bestimmt bzw. berechnet worden. De Gesamtweg von dem Einstiegsknoten 15 zu dem Zielknoten 20, d.h. der Weg von dem Einstiegsknoten 15 über Kanten 30 und ggf. weitere Knoten 10 zu dem Zielknoten 20, kann nun weiter verwendet werden.
  • Nachdem der oder die kürzesten, d.h. der oder die günstigsten, Angriffswege von einem Einstiegsknoten 15 zu zumindest einem der Zielknoten 20 ermittelt wurde, kann nun festgestellt werden, ob die Länge des Angriffswegs (unter Berücksichtigung von Kantengewichten) unterhalb eines vorbestimmten Werts liegt. Der vorbestimmte Wert des Angriffswegs gibt die Mindestsicherheitsanforderung an, die vom System erfüllt werden muss. Somit können beispielsweise Systeme bzw. Systemmodelle, bei denen ein sehr kurzer bzw. sehr günstiger Angriffsweg vorhanden ist, als zu unsicher eingestuft werden. Diese Systeme bzw. Systemmodelle können dann entsprechend überarbeitet werden. Beispielsweise indem die Kommunikationsverbindungen verändert werden. Die Systeme können an in der Analyse auffälligen Komponenten nachgehärtet werden oder auch durch höhere Rücklagen besser abgesichert werden.
  • Je nach Resultat der Berechnung des kürzesten Angriffswegs, insbesondere bei Unterschreitung eines vorbestimmten Sicherheitsniveaus, können systemseitig Aktionen aufgerufen werden, u.a. nachträgliche Sicherheitsmaßnahmen.
  • Systeme/Systemkonfigurationen bzw. Systemmodelle, die als ausreichend sicher eingestuft werden, d.h. deren kürzeste bzw. günstigste Angriffswege oberhalb vorbestimmter Werte liegen, können (automatisiert) auf einen Server hochgeladen werden. Von dort aus können sie beispielsweise mittels eines (Online-/Funk-)Updates zu einem Fahrzeug gelangen. Mittels des Online-Updates wird das (Software-)System beispielsweise eines Bord-Netzes des Fahrzeugs entsprechend geändert und sicherer gemacht.
  • Hierbei ist auch vorstellbar, dass die Software sich selbst bzw. ihre Konfiguration zu einem Server hochlädt oder eine sonstige Aktion aufruft, wenn ein vorbestimmtes Sicherheitsniveau (d.h. eine Mindestlänge/ein Mindestaufwand für den kürzesten/günstigsten Angriffsweg) überschritten wurde.
  • Vorstellbar ist auch, dass das Hardware- und/oder Softwaresystem, das durch das Systemmodell repräsentiert wird, das (Computer-)System ist, auf dem das Verfahren zur Ermittlung eines Angriffswegs ausgeführt wird ist. Beispielsweise prüft eine Software bzw. ein Softwaresystem sich selbst hinsichtlich des kürzesten/günstigsten Angriffswegs und verändert sich selbst (d.h. insbesondere die Kommunikationswege zwischen verschiedenen Softwarebausteinen bzw. die Konfiguration) anschließend, um den kürzesten/günstigsten Angriffsweg zu verlängern (d.h. den notwendigen Aufwand für den Angreifer zu erhöhen) und auf diese Weise die Sicherheit von sich selbst gegenüber Angriffen zu erhöhen.
  • Auch vorstellbar ist, dass der Anwender/Benutzer des Hardware- und/oder Softwaresystems die Möglichkeit hat, die Kommunikationsverbindung zwischen verschiedenen Komponenten des Hardware- und/oder Softwaresystems zu verändern und hierbei jeweils der (kürzeste) Angriffsweg berechnet wird und der Anwender/Benutzer gewarnt wird, wenn durch diese beabsichtigte Veränderung des Hardware- und/oder Softwaresystems ein Angriffsweg möglich wird, der unterhalb eines vorgegebenen Schwellenwerts liegt.
  • Beispielsweise kann der Fahrer eines Kraftfahrzeugs einem Internet-Browser, der Teil eines Hardware- und/oder Softwaresystems eines Kraftfahrzeugs ist, Zugriff auf weitere Komponenten des Autos, wie z.B. den Tachometer, den Kilometerstand, das Autoradio und/oder den DVD-/Bluray-Player, geben. Der Fahrer des Kraftfahrzeugs teilt diese Absicht einem System des Kraftfahrzeugs, z.B. einem (Zentral-)Computer des Kraftfahrzeugs, durch Dateneingabe mit.
  • Daraufhin berechnet der Computer den (kürzesten) Angriffsweg des Hardware- und/oder Softwaresystems nach dieser beabsichtigten Änderung (d.h. dem gewährten Zugriff des Internet-Browsers auf andere Komponenten des Hardware- und/oder Softwaresystems) und warnt den Fahrer, falls dieser Vorgang unsicher ist, d.h. falls eine vorbestimmte Schwelle für die Mindestlänge des Angriffswegs beim angestrebten veränderten System unterschritten wird. Zudem oder alternativ kann die Mindestlänge des Angriffswegs bei dem System mit den beabsichtigten geänderten Kommunikationsverbindungen dem Fahrer mitgeteilt werden. Nun kann der Fahrer entscheiden und dies dem Kraftfahrzeug per Dateneingabe mitteilen, ob dieser Vorgang (Gewährung des Zugriffs durch den Internet-Browser) trotz der Warnung bzw. trotz der mitgeteilten Informationen durchgeführt werden soll oder nicht, d.h. ob der Internet-Browser den beabsichtigen Zugriff erhält oder nicht.
  • Anstelle des Fahrers ist auch vorstellbar, dass dies der Beifahrer oder ein anderer Insasse des Kraftfahrzeugs durchführt. Auch denkbar ist, dass eine Person außerhalb des Kraftfahrzeugs und/oder ein externes System außerhalb des Kraftfahrzeugs, beispielsweise in einer Zentrale, diese Aktionen durchführen.
  • Bezugszeichenliste
  • 1
    Systemmodell
    10
    Knoten
    15
    Einstiegsknoten
    20
    Zielknoten
    30
    Kante
    40
    Angriffsweg
    S100
    Schritt: Initiales Laden von Zielknoten
    S101
    Schritt bzw. Verzweigung: Noch offene Knoten vorhanden?
    S102
    Schritt: Beende Heuristik-Vorbereitungs-Verfahren
    S103
    Schritt: Wähle den offenen Knoten mit den geringsten Kosten/mit der geringsten Distanz und markiere diesen als geschlossen
    S104
    Schritt: Sammle alle neu erreichbaren Knoten
    S105
    Schritt: Notiere alle neu erreichbaren Knoten mit ihrer Distanz (Update Knoten mit zuvor größerer Distanz)
    S200
    Schritt: Initiales Laden der Einstiegsknoten
    S201
    Schritt: Weitere, offene Attraktoren vorhanden?
    S202
    Schritt: Offene (und erschwingliche) Knoten vorhanden?
    S203
    Schritt: Beende Graphensuche
    S204
    Schritt: Wähle Knoten der offenen Liste mit den geringsten Kosten und Heuristik und markiere diesen als geschlossen
    S205
    Schritt: Attraktor gefunden?
    S206
    Schritt: Exportiere gefundenen Pfad entsprechend den Vorgänger-Richtungen (und markiere den Attraktor als geschlossen)
    S207
    Schritt: Expandiere den gewählten Knoten der Liste
    S207a
    Schritt: Sammle alle neu erreichbare Knoten
    S207b
    Schritt: Wähle den günstigsten Exploit
    S207c
    Schritt: Notiere die neu gefundenen Knoten mit Vorgängerrichtungen und dem günstigsten Exploit bzw. Kostenschätzungen
    S207d
    Schritt: Füge neu gefundene zulässige Knoten zu der offenen Liste hinzu

Claims (10)

  1. Verfahren zur Ermittlung eines Angriffswegs (40) in einem Systemmodell (1) eines Hardware- und/oder Softwaresystems, wobei das Systemmodell (1) mehrere Knoten (10), die jeweils eine Komponente des Hardware- und/oder Softwaresystems darstellen, und mehrere Kanten (30), die jeweils zwei Knoten (10) oder mehr als zwei Knoten miteinander verbinden und jeweils eine Kommunikationsverbindung zwischen den Komponenten repräsentieren, umfasst, wobei das Verfahren folgende Schritte aufweist: Speichern einer Datenstruktur, die geeignet ist, das Systemmodell darzustellen, Initialisieren des Systemmodells, Durchlaufen aller Knoten (10) in einer Breitensuche ausgehend von vorbestimmten Knoten (Zielknoten) (20) der Knoten (10), Ermitteln und Speichern der Distanz von dem jeweiligen Knoten (10) zu jedem Zielknoten (20) für jeden Knoten (10), und Berechnen der kürzesten Distanz von einem für einen Angreifer zugänglichen Knoten (Einstiegsknoten) (15) der Knoten (10) zu einem der Zielknoten (20), insbesondere mittels eines A*-Algorithmus.
  2. Verfahren nach Anspruch 1, wobei die jeweils kürzeste Distanz von jedem Einstiegsknoten (15) zu jedem Zielknoten (20) berechnet wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Berechnen der kürzesten Distanz von einem der Einstiegsknoten (15) oder jeweils einem der Einstiegsknoten (15) aus startet.
  4. Verfahren nach einem der Ansprüche 1–3, wobei das Berechnen der kürzesten Distanz terminiert, sobald alle Zielknoten (20) erreicht wurden oder alle über die Kanten (30) erreichbaren Knoten (10) durchlaufen wurden.
  5. Verfahren nach einem der Ansprüche 1–4, wobei die Komponenten Teile eines Bordnetzes eines Kraftfahrzeugs, Flugzeugs, Zugs oder Schiffs sind.
  6. Verfahren nach einem der Ansprüche 1–5, wobei die Zielknoten (20) eine Komponente umfassen, die in der Lage ist, die Höhe der elektronisch abgeriegelten Höchstgeschwindigkeit (Vmax) zu ändern und/oder aufzuheben (Vmax-Freischaltung), den Motor zu starten, und/oder eine Sicherheitsverriegelung, insbesondere die Verriegelung von Türen, zu öffnen.
  7. Verfahren nach einem der Ansprüche 1–6, wobei der Einstiegsknoten (15) einen Browser, eine WLAN-Verbindung, eine Bluetoothverbindung, ein CD-Laufwerk und/oder eine externe Schnittstelle, insbesondere eine OBD-II-Schnittstelle, umfasst.
  8. Verfahren nach einem der Ansprüche 1–7, wobei die Kanten (30) jeweils eine individuelle Aufwandsangabe aufweisen.
  9. Verfahren nach einem der Ansprüche 1–8, ferner den Verfahrensschritt des Hochladens der Datenstruktur auf einen Server, wenn die berechnete kürzeste Distanz oberhalb eines vorbestimmten Werts liegt, umfassend.
  10. Computerlesbares Speichermedium, das ausführbare Maschinenbefehle speichert, welche einen Computer dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 9 zu implementieren, wenn diese ausgeführt werden.
DE102014212419.0A 2014-06-27 2014-06-27 Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell undComputerlesbares Speichermedium Pending DE102014212419A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014212419.0A DE102014212419A1 (de) 2014-06-27 2014-06-27 Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell undComputerlesbares Speichermedium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014212419.0A DE102014212419A1 (de) 2014-06-27 2014-06-27 Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell undComputerlesbares Speichermedium

Publications (1)

Publication Number Publication Date
DE102014212419A1 true DE102014212419A1 (de) 2015-12-31

Family

ID=54839739

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014212419.0A Pending DE102014212419A1 (de) 2014-06-27 2014-06-27 Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell undComputerlesbares Speichermedium

Country Status (1)

Country Link
DE (1) DE102014212419A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114600423A (zh) * 2019-10-29 2022-06-07 日立安斯泰莫株式会社 分析装置及分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SARRAUTE, C.; RICHARTE, G.; OBES, J. L.: An Algorithm to Find Optimal Attack Paths in Nondeterministic Scenarios. In: Proceedings of the 4th ACM workshop on Security and Artificial Intelligence. New York: ACM, 2011, S. 71-80. - ISBN 978-1-4503-1003-1 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114600423A (zh) * 2019-10-29 2022-06-07 日立安斯泰莫株式会社 分析装置及分析方法
CN114600423B (zh) * 2019-10-29 2024-04-30 日立安斯泰莫株式会社 分析装置及分析方法

Similar Documents

Publication Publication Date Title
WO2014183944A1 (de) Entwurfssystem und verfahren zum entwurf eines fahrerassistenzsystems
Newig Partizipation und neue Formen der Governance
DE102007053501A1 (de) Verfahren zur Entwicklung und/oder zum Testen wenigstens eines Sicherheits- und/oder Fahrerassistenzsystems für ein Kraftfahrzeug und Simulationsumgebung
DE102018220865B4 (de) Verfahren zum Trainieren wenigstens eines Algorithmus für ein Steuergerät eines Kraftfahrzeugs, Computerprogrammprodukt sowie Kraftfahrzeug
WO2014131666A1 (de) Gridbasierte vorhersage der position eines objektes
DE112012000459T5 (de) System und Verfahren zur Ermittlung der Fracht-/Beladungsverteilung für mehrere Fahrzeuge
DE102019124018A1 (de) Verfahren zum Optimieren von Tests von Regelsystemen für automatisierte Fahrdynamiksysteme
WO2021058223A1 (de) Verfahren zur effizienten, simulativen applikation automatisierter fahrfunktionen
WO2022028935A1 (de) Computerimplementiertes verfahren zum bereitstellen eines test-verlaufs zu testender verkehrsszenarien
EP2302516A1 (de) Verfahren zur Ausführung von Tasks zur Berechnung eines zu simulierenden Signals in Echtzeit
EP3398092A1 (de) Verfahren zum konfigurieren einer co-simulation für ein gesamtsystem
DE112018007371T5 (de) Sicherheits-evaluationssystem, sicherheits-evaluationsverfahren, und programm
DE112014001359T5 (de) Prädiktives System zum Bereitstellen von Unternehmensanwendungen
DE102013206308A1 (de) Verfahren und System zum Adaptieren von Modellparametern eines in einem Steuergerät eines Kraftfahrzeugs implementierten Funktionmodells
DE102019215858A1 (de) Cybersicherheits-penetrations-testplattform
WO2022067368A1 (de) Computergestütztes verfahren und vorrichtung zur wahrscheinlichkeitsbasierten geschwindigkeitsprognose für fahrzeuge
DE102014212419A1 (de) Verfahren zur Ermittlung eines Angriffswegs in einem Systemmodell undComputerlesbares Speichermedium
DE102020212921A1 (de) Verfahren, Computerprogramm und Vorrichtung zum Bewerten einer Verwendbarkeit von Simulationsdaten
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
AT524932A4 (de) Verfahren und System zum Testen eines Fahrerassistenzsystems für ein Fahrzeug
DE102020122979A1 (de) Verfahren zum Bereitstellen eines komprimierten, robusten neuronalen Netzes und Assistenzeinrichtung
DE102013220453A1 (de) Verfahren zum Betreiben eines Kraftfahrzeugs und Verfahren zum Auswerten von erfassten zeitlichen Verläufen
DE102018112718A1 (de) Verfahren zur Leistungssteigerung eines Fahrzeugsystems mit einem neuronalen Netz zum Steuern einer Fahrzeugkomponente
DE102012214500B4 (de) Zustandsbasierte Planung, Absicherung und Management von Ressourcen einer Datennetzstruktur
DE102017000693A1 (de) Vorrichtung und Verfahren zum Überwachen eines automatisierten Fahrzeugs in einem Verkehrssystem

Legal Events

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