bereitgestellt

Transcription

bereitgestellt
Treffen: Fahrzeug-Initiative RLP
Embedded Systeme im Automobil:
Architekturen, Security und Virtualisierung
Manuel Duque-Antón
comlet Verteilte Systeme GmbH
4. Juni 2014
ITK Engineering AG
Rülzheim
1 von 50
• Die comlet GmbH bietet Dienstleistungen und Produkte im Bereich Embedded Systeme mit dem
Schwerpunkt Software an, im Einzelfall auch Hardware-Entwicklungen.
• Die comlet ist im Bereich Automotive gestartet und deckt mittlerweile andere Anwendungsbereiche
ab, wie z.B. Landwirtschaft oder Gebäude bzw. Heizungs-Management und vieles mehr.
• Unsere Erfahrungen zeigen, dass die abstrakten Problemstellungen und damit auch die geeigneten
Lösungen im Wesentlichen unabhängig vom konkreten Anwendungsbereich sind.
• Dabei spielt der Entwurf einer geeigneten Architektur eine zentrale Rolle. In diesem Vortrag wird am
Beispiel von Automotive dieser Sachverhalt erläutert.
• Da keine Kunden-Details verraten werden können, werden die Ausführungen am Beispiel der
bekannten AUTOSAR-Architektur erläutert werden.
• Natürlich spielt beim Entwurf einer geeigneten Architektur der Aspekt der Security (Datensicherheit)
eine immer wichtiger werdende Rolle. An Hand einiger Fallbeispiele werden die relevanten Sicherheitsschwächen im Fahrzeug vorgestellt und entsprechende Abwehrrmaßnahmen kurz skizziert.
Neben den klassischen kryptographischen Ansätzen, spielt die Virtualisierung eine zentrale Rolle.
Beispiel eines Fahrzeug-Netzwerks
Lichtweitensteuerung.
Sitzsteuerung.
Komfort, Sicherheits- und
Karosseriebereich (CAN-B)
Antriebstrang (CAN-C)
Instrumente
Instrumente
Klimasteuerung
Türsstr.
links.
LIN - Bus
Sitzsteuerung.
Sonnendach.
Klimapanel
Scheibenwischer
Stand-By
Heizung
...
LIN - Bus
Airbag
Unterhaltung/Telematik (MOST)
Zentrale ECU
und Gateway
Multiflenkrad
Motorsteuerung
Multifdisplay
Getriebesteuerung
Telefon
Fahrzeugdynamik
Navigation
Parkabstandsstrg.
...
Fahrwerk (FlexRay)
Stellmotorsteuerung
Pedalsteuerung
Radknoten
hinten
Airbagzünder
Sensoren
...
3 von 50
• Das Kommunikations-Netzwerk in einem Automobil kann sehr unterschiedlich gestaltet sein. Mittlerweile kommen mehrere verschiedene Kommunikationsprotokolle zum Einsatz, und zwar das am
besten geeignete für die jeweilige Anwendung. Auf der Folie wird ein Beispiel für ein solches Netzwerk
gezeigt:
• Typisch ist der Einsatz des Low-Speed-CANs für Anwendungen, die nur wenig Bandbreite benötigen, wie z.B. für Tür, Klima- und Sitz-Steuerungen.
• Der High-Speed-CAN kommt bei Anwendungen mit einem höheren Bandbreitenbedarf zur Anwendung wie z.B. bei Motor-, Getriebe- und Fahrwerk-Steuerungen.
• LIN-Sub-Busse werden für Sitzverstellungen, die Klimasteuerung und für Spiegeleinstellungen eingesetzt.
• FlexRay wird bevorzugt im Fahrwerksbereich und im Antriebsstrang eingesetzt und ersetzt langfristig Lösungen mit mehreren CAN-Bussen bzw. wird neue Anwendungen dort ermöglichen. Allerdings kann man nicht sagen, dass sich FlexRay so recht durchsetzt. Möglicherweise wird FlexRay
durch zukünftige CAN-Standards mit höheren Bitraten ersetzt werden.
• MOST wird typischerweise zur Vernetzung und Bedienung von Entertainment-Komponenten im
Auto (Premiumklasse) eingesetzt.
• Was genau ist das Problem?
• Die Entwicklung von Software für Steuergeräte im Auto stellt einen enorm komplexen Prozess dar!
• Die Steuergeräte laufen auf verschiedenen Maschinen und Betriebssystemen, i.d.R. in unterschiedlichen Programmiersprachen geschrieben. Es gibt eine Vielzahl von Kommunikationsprotokollen, die insbesondere permanenten Veränderungen/Erweiterungen unterworfen sind.
Viele Funktionen ergeben sich erst aus dem Zusammenspiel mehrere Komponenten, die
möglicherweise von verschiedenen Lieferanten entwickelt wurden und vieles mehr.
Probleme / Herausforderungen
• Bisher erläutert:
• Beherrschung der Komplexität, gerade vor dem Hintergrund, dass Funktionali-
täten im Zusammenspiel von mehreren Komponenten geliefert werden.
• Vielfalt der angeschlossenen Geräte, Systeme, Kommunikationsprotokolle
beherrschen und vieles mehr.
• Es gibt aber auch weitere Herausforderungen:
• Hoher Kostendruck
• Flexibilität bzw. Erweiterbarkeit
• Security bzw. Datensicherheit
• Safety bzw. Testbarkeit
5 von 50
• Kostendruck:
• Automobile werden in sehr hohen Stückzahlen, über einen langen Zeitraum gefertigt. VW lieferte z.B.
2012 über 9 Millionen Fahrzeuge aus.
• Die tief eingebetteten Systeme wie Tür-, Licht- oder Motor-Steuergeräte werden vom Kunden nicht
als eigenständige Geräte wahrgenommen. Ein eventueller Mehrpreis für einen besonders innovative
Lösung läßt sich in einem Verkaufsgespräch nur schwer begründen.
• Erweiterbarkeit:
• Auch hier kann wieder das Volkswagen (Baukasten-Prinzip) als Beispiel herangezogen werden.
Eine entsprechende Architektur muss mit vielen über die Zeit erweiterbaren Varianten, die sich in
Details unterscheiden, aber in der Grundform ähneln, zurecht kommen.
• Datensicherheit:
• Durch die Öffnung der Entertainment-Systeme im Automobile, aber auch durch die Verwendung von
drahtlosen Kommunikationsprotokollen im Automobil (z.B. Reifensensor, der per Funk angeschlossen ist) wird das Auto zu einem offenen Systemen, welches nun von Außen angegriffen werden
kann.
• Testbarkeit:
• Generell kann Fehlerfreiheit nie zweifelsfrei garantiert werden. Alter Informatiker-Witz: „Ein fehlerfreies Software-System ist veraltet".
• Im Automotive-Fall ergeben sich häufig die Funktionalitäten aus dem Zusammenspiel mehrerer Komponenten. Wie soll eine Komponente getestet werden, wenn man nicht weiß, ob die
anderen Komponenten fehlerfrei sind.
• In der nächsten Folie wird diese Problematik etwas genauer untersucht!
Komplexität und Zuverlässigkeit
• Mit jedem neuen Teilsystem, also etwa funkgesteuerter Zentralverriegelung,
elektronischer Heckdeckelsteuerung etc. wächst die Fehlerwahrscheinlichkeit
für das Gesamtfahrzeug. Das ist ein statistisches Phänomen.
• Als Beispiel wird ein Fahrzeug mit nur einem einzigen Steuergerät s1 betrach-
tet.
• Falls die gefertigten Steuergeräte mit einer Wahrscheinlichkeit P (s1) pro Jahr
von 99,9% zuverlässig funktionieren,
• wäre jedes Jahr eins von 1000 Fahrzeugen in der Werkstatt.
• Würde in dieses Fahrzeug ein weiteres Steuergerät s2 eingebaut werden und
• hätte diese Gerät dieselbe Ausfallwahrscheinlichkeit, dann ergibt sich die
Gesamtwahrscheinlichkeit (zuverlässig zu arbeiten) mit dem Multiplikationssatz
P (s1)  P (s2) = 0,999  0,999 = 0,998001
• Damit wären pro Jahr schon zwei von 1000 Fahrzeugen in der Werkstatt,
obwohl die Qualität in der Fertigung gar nicht verändert wurde.
• Wie kann dieses Problem aufgefangen werden?
7 von 50
• Praktische Situation ist noch schlimmer: Die Zuverlässigkeit einer Komponente ist i.d.R. beim
ersten Integrationstest weit von 100% (Produktreife nach Ende der Entwicklungsphase) entfernt:
• Wenn wir also 10 Komponenten mit einer Zuverlässigkeit von immerhin 70% unterstellen ergibt sich
eine Gesamtwahrscheinlichkeit, dass alle 10 Komponenten beim ersten Integrationstest zuverlässig zusammenarbeiten von 0,710 = 0,028. Also unter 3%.
• Bei diesen Zahlen wäre es nahezu unmöglich, irgendwelche Schlüsse aus dem Integrationstest zu ziehen.
• Als Lösung kann
• die Zuverlässigkeit der einzelnen Komponenten erhöht werden. Das geht nur, wenn isolierte Komponententests möglich sind. Da aber die Korrektheit einer Komponente nur im Wechselspiel mit
den anderen Komponenten überprüft werden kann, muss dazu die Umgebung simuliert werden.
Dieser Vorgang wird auch Restbus-Simulation genannt.
• Die Anzahl der integrierten Komponenten wird kontinuierlich gesteigert. In einer typischen Schichtenarchitektur sollte die Integration schrittweise von unten nach oben erfolgen.
• Insgesamt zeigt sich, dass die Wahl einer geeigneten Architektur eine zentrale Rolle spielt, um
mit möglichst geringen Kosten aller geforderten Kriterien zu erfüllen.
• In diesem Zusammenhang spielt der Begriff des „Software-Bus“ eine zentrale Rolle, den ich im folgenden am Beispiel von AUTOSAR erläutern will.
Schlüssel-Technologie: Software-Bus
Component
A
Component
B
Container
Container
Software Bus
• Zugrundeliegende Technologie stammt aus der Theorie der „Verteilten Systeme",
bekannt unter dem Schlagwort „Komponenten Basierte Entwicklung".
• In unterschiedlichen Ausprägungen wird es unter anderem eingesetzt in:
• Java Enterprise Beans, aber auch
• Android Plattformen und AUTOSAR.
9 von 50
• Die Kernaufgabe eines Software-Busses ist die Realisierung von Transparenz:
• Der Anwendungs-Entwickler muß die Details des Systems, also die Details aller beteiligten Steuergeräte (ECU Electronic Control Unit) nicht kennen, um seine Software entwickeln zu können.
• Vielmehr wird die Anwendung auf einer rein funktionalen Ebene geschrieben und erst nachträglich
auf das Ziel-System mit Hilfe von Tools, im wesentlichen Software-Generatoren, abgebildet.
• Dieses Prinzip wurde im Zusammenhang der Verfeinerung von SW-Engineering-Methoden für Verteilte Systeme entwickelt. Das wesentliche Ziel ist es, die Anwendungs-Logik von der SystemLogik zu trennen.
•
Im AUTOSAR (AUTOmotive Open System Architecture) Kontext wird der Software-Bus VFB
(Virtual Functional Bus) genannt und
• trennt beispielsweise die Entwicklung einer Blinker-Anwendung von den Details des darunter liegenden Steuergeräts, wie z.B. das benutzte Betriebssystem aber auch das verwendete Kommunikationsprotokoll.
• Dieser Sachverhalt ist besonders wichtig, wenn man sich vor Augen führt, dass aktuelle Automobile
über Dutzende von Kontrolleinheiten, Tausende von Funktionen und zehntausende von
potentiellen Vernetzungsmöglichkeiten verfügen.
• Aus der Abbildung wird auch deutlich, dass die weitere Aspekte wie Erweiterbarkeit oder Testbarkeit
mit Hilfe des Software-Busses ebenfalls sehr leicht umgesetzt werden können:
• Um den Anspruch der Safety zu genügen, erlaubt der Bus eine sogenannte Restbus-Simulation.
Reale Komponenten können gegen virtuelle Komponenten getestet werden, die nur in Form
von Software (minimalistisch) realisiert sind.
AUTOSAR
Software
Component n
AUTOSAR
Software
Component 3
AUTOSAR
Software
Component 2
AUTOSAR
Software
Component 1
AUTOSAR: Virtual Functional Bus
Virtual Functional Bus
AUTOSAR
Software
Component 3
AUTOSAR
Software
Component 1
RTE
BSW
AUTOSAR
Software
Component 2
ECU b
ECU a
RTE
BSW
11 von 50
• Bei der technischen Umsetzung wird in AUTOSAR ein funktionelles und ein strukturelles Modell
unterschieden.
• In der oberen Abbildung auf der Folie wird das funktionelle Modell beschrieben, welches sich aus
Softwaremodulen zusammensetzt, die miteinander kommunizieren.
• Jedes Softwaremodul realisiert dabei eine Funktion.
• Die Kommunikation der Softwaremodule erfolgt ausschließlich über den Virtual Functional Bus
(VFB), der einen virtuellen Kommunikationskanal darstellt.
• Der VFB abstrahiert von der Hardware, so dass die Anwendung nach rein funktionalen Aspekten,
also Hardware-unabhängig, entworfen werden kann.
• Durch die standardisierte Schnittstelle (zum VFB) wird die Modularität und Wiederverwendbarkeit
garantiert.
• Während der Entwurf und die Entwicklung der Softwarekomponenten eine Domäne der einzelnen
Automobilhersteller und -Zulieferer ist und wohl bleiben wird, wird die Realisierung des VFB von den
Mitglieder-Unternehmen des AUTOSAR-Konsortiums gemeinsam angegangen.
AUTOSAR
Software
Component n
AUTOSAR
Software
Component 3
AUTOSAR
Software
Component 2
AUTOSAR
Software
Component 1
AUTOSAR: Run Time Environment
Virtual Functional Bus
ECU b
AUTOSAR
Software
Component 2
AUTOSAR
Software
Component 3
Anwendung
AUTOSAR
Software
Component 1
ECU a
Ports
AUTOSAR
Infrastruktur
RTE
RTE
BSW
BSW
Hardware
Physikalisches Bus-System
13 von 50
• In der unteren Abbildung wird das strukturelle Modell dargestellt. Beim Übergang vom rein funktionalen
Modell (obere Abbildung) zu einem strukturellen Modell (untere Abbildung) wird der VFB aufgelöst und
in Teilfunktionen zerlegt. Dieser Vorgang erfolgt Tool-gestützt, im Wesentlichen kommen hier
Software-Generatoren zum Einsatz.
• Die Softwaremodule werden einzelnen ECUs zugeordnet, der VFB wird in das Real Time Environment (RTE), die Basic Software (BSW) und die Kommunikation zwischen den ECUs aufgeteilt.
• Das RTE stellt dabei eine Laufzeit-Implementierung des VFB dar und zwar in einer konkreten ECU.
• Die Schnittstelle für die Softwaremodule bleibt aber gleich. Sie kommunizieren nur mit dem RTE
über eine standardisierte Schnittstelle.
• Der Anwendungs-Entwickler schreibt seinen Code unabhängig vom Target Steuergerät bzw.
unabhängig von der Konfiguration aller Steuergeräte. Auf einem Steuergerät können wie in der
Abbildung ersichtlich auch mehrere SW-Komponenten laufen.
• Der Informationsaustausch zwischen den SW-Komponenten erfolgt über Ports, welche die Schnittstellen zu den Kommunikationspfaden darstellen. Die Ports sind Teil der Architektur. Die eigentliche
Codierung der SW-Komponenten liegt außerhalb des AUTOSAR-Standards.
• Die Laufzeitumgebung RTE und BSW werden automatisch generiert und zwar in Abhängigkeit der
System-Konfiguration, die der Entwickler angibt (welche SW-Komponente soll auf welches Steuergerät gelegt werden)
• Die Abstraktion von der HW und der Kommunikation zwischen den ECUs erfolgt also mit Hilfe der
Software-Generatoren, die RTE und BSW auf der Basis der Ziel-Konfiguration erzeugen. Empfängt
eine Softwarekomponente Informationen von einer anderen Softwarekomponente, macht es funktional keinen Unterschied, ob diese Softwarekomponente in der gleichen ECU läuft oder nicht.
AUTOSAR - Architektur
RTE
Basissoftware
Service Layer
ECU Abstraction Layer
Complex
Drivers
Microcontroller Abstraction Layer
ECU Hardware
15 von 50
• AUTOSAR verwendet das bekannte Schichtenmodell, Diese Schichten haben die Aufgabe, verschiedene HW-Aspekte wie Prozessoreigenschaften, Eigenschaften des Steuergerätes selbst oder der
Sensoren/Aktoren auch in Software zu trennen.
• Die oberste Schicht eines Steuergerätesoftware-Stacks bildet die Anwendungssoftware und enthält
neben den eigentlichen Anwendungssoftware-Komponenten auch die Sensor/Aktor-SoftwareKomponenten. Sie ist auf der Folie zuvor dargestellt.
• Die RTE liegt zwischen Anwendungssoftware und Basissoftware und stellt die Implementierung der
VFB-Extrakte je Steuergerät dar. Die RTE wird also für jede ECU spezifisch generiert. Werden
Anwendungen zwischen Steuergeräten verschoben, ändert sich die Systemsicht und damit der VFB,
was eine Neu-Generierung der RTEs der betroffenen Steuergeräte zur Folge hat.
• Innerhalb der Basissoftware bietet der Service Layer den Anwendungen und anderen BasissoftwareModulen grundlegende Dienste an wie beispielsweise: Betriebssystem-, Speicherverwaltungs-,
Diagnose- und Kommunikationsfunktionen.
• Der ECU Abstraction Layer dient der Abstraktion der Steuergeräte-spezifischen Eigenschaften. Zum
Beispiel kann damit von Anzahl der verbauten CAN-Controller und deren genauen Ort (on-chip/onboard) auf dem Steuergerät abstrahiert werden.
• Der Microcontroller Abstraction Layer abstrahiert vom Microcontroller. Dies umfaßt die
Konfiguration und Initialisierung des Microcontrollers und integrierter Geräte.
• Die Schicht der Complex Drivers durchschneidet alle Schichten der Basissoftware. Beispielsweise
zum Ansteuern und Verwalten von Sensoren, bei denen die Software aus Zeitgründen direkt auf die
Hardware zugreifen muss.
Beispiel: Warnblinkfunktion aus VFB-Sicht
Anwendungsebene
BlinkgeschwindigkeitsKalibrierung
adjustFrequency
adjustFrequency
setLight
takeStatus
StateRequest
crtlLamp
setLight
BlinkleuchteHintenRechts
WarnblinkTaster
giveStatus
BlinkleuchteHintenLinks
BlinkergeberAnwendung
currentState
setLight
crtlLamp
BasisSoftware
StateRequest
currentState
crtlLamp6
crtlLamp9
ECU State Manager
(EcuM)
I/O Hardware Abstraction
(IoHwA)
DIO Driver
17 von 50
• Der AUTOSAR-Standard gibt im Grunde nur Kommunikations-Beziehungen und Strukturen vor
und überläßt die eigentliche Programmierung (i.d.R. in der Programmiersprache C) den Anwendungs-Entwicklern. Dieser Sachverhalt soll an Hand einer einfachen Blinkgeber-Anwendung erläutert werden. Dazu aber vorher ein paar generelle Notationen:
• Generell unterscheidet AUTOSAR atomare SW-Komponenten (Rechtecke), zusammengesetzte
SW-Komponenten (oben 3 Quadrate) und Sensor/Aktor-Komponenten (oben Pfeil).
• Die Kommunikationsbeziehungen werden mit Hilfe von Ports beschrieben, kleine Quadrate mit
unterschiedlichen Inhalten an den Grenzen der Rechtecke.
• Es gibt Ports für die Kommunikation von Anwendungen untereinander, für die Kalibrierung
(Kalilbrierungswerte bereitzustellen oder auszulesen) und Servicemodule der BSW stellen über
diese Ports ihre Funktionen anderen Softwarekomponenten zur Verfügung.
• In den Bereichen Anwendungssoftware und AUTOSAR-Service stehen die beiden Arten von Kommunikationsmechanismen Sender/Receiver (nur Daten austauschen) und Client/Server (Funktionen aufrufen inklusive Datenaustausch) zur Verfügung.
Beispiel: Warnblinkfunktion aus VFB-Sicht
Anwendungsebene
BlinkgeschwindigkeitsKalibrierung
adjustFrequency
adjustFrequency
setLight
takeStatus
StateRequest
crtlLamp
setLight
BlinkleuchteHintenRechts
WarnblinkTaster
giveStatus
BlinkleuchteHintenLinks
BlinkergeberAnwendung
currentState
setLight
crtlLamp
BasisSoftware
StateRequest
currentState
crtlLamp6
crtlLamp9
ECU State Manager
(EcuM)
I/O Hardware Abstraction
(IoHwA)
DIO Driver
19 von 50
•
Die Anwendung erhält auf der „linken Seite" Input von einer Kalibrierungskomponente, die einen
Faktor für die Abstimmung der Blinkgeschwindigkeit liefert, und von einer SensorSoftwarekomponente, die eine Nachricht schickt, wenn sich der Zustand des Warnblinktasters
ändert.
• Auf der „rechten Seite" sendet sie eine Nachricht mit dem gewünschten Blinkleuchten-Zustand („an“
oder „aus“). Diese Nachricht wird von den beiden Aktor-Komponenten BlinkleuchteHintenLinks und
BlinkleuchteHintenRechts empfangen. Die beiden Aktoren stehen hier stellvertretend für die Vielzahl
der eigentlichen Aktoren wie „vorne“ und „seitlich“.
• Die Blinkleuchten-Aktoren nutzen ein C/S-Interface, um mittels I/O-Hardware-Abstraktion gezielt die
Lampenausgänge der ECU zu aktivieren/deaktivieren. Hierbei ist es typisch, dass die I/O-HWAbstraktion ihre Funktionen über Server-Ports bereitstellt.
• Die Blinkgeber-Anwendung nutzt in diesem Fall zwei Services des Basissoftwaremoduls ECU State
Manager, und zwar currentState zur Abfrage des aktuellen Status der ECU und StateRequest, um den
benötigten RunMode der ECU anzufordern.
Was ist mit Sicherheit?
• Der Begriff der Sicherheit ist im Deutschen nicht eindeutig festgelegt:
• Der englische Begriff Security „beschäftigt“ sich mit dem Schutz gegen böswil-
lige Manipulationen.
• Der englische Begriff Safety hat den Schutz gegen technische Ausfälle im
Fokus.
• Der Aspekt der Safety (funktionale Sicherheit) kann bereits mit Hilfe einer „geeig-
neten“ Architektur (z.B. Rest-Bus-Simulation) angegangen werden und muss
natürlich um die entsprechende Aspekte systematischer Tests erweitert werden.
• Der Aspekt der Security (Datensicherheit) wird im Umfeld automobiler Kommuni-
kationssysteme immer noch eher stiefmütterlich behandelt im Gegensatz zu anderen Bereichen wie dem Finanzgewerbe, in dem schon immer sehr viel Wert auf
angemessene Sicherheitsmaßnahmen gelegt wurde.
• In den meisten Fahrzeugen, aber auch in Flugzeugen, wird noch immer der CAN-
Bus verwendet. Der Zugriff auf den Bus ist meist sehr einfach, ungesichert und
leicht auszulesen. Kontrollen gegen unrechtmäßigen Zugriff oder Ähnliches gibt es
nicht.
21 von 50
• So ist es nicht verwunderlich, dass die CAN-Sicherheitslücken dazu verwendet werden, um z.B.
• durch Manipulationen an den CAN-Bus-Nachrichten eine Leistungssteigerung zu implementieren,
• Wegfahrsperren auszuschalten oder
• die Laufleistung und andere Fahrzeugfunktionen zu manipulieren.
•
So kann bzw. konnte man bis vor kurzem CAN-Bus-Module erwerben, die an die OBD (On Board
Diagnose) 2 Schnittstelle angeschlossen werden können (einfach aufgesteckt), die vornehmlich für
GM-Fahrzeuge verfügbar sind.
• Damit kann man die Funktionen des Fahrzeugs erweitern, z.B. um ein adaptives Bremslicht oder
Alarmanlagensimulation etc. Siehe auch www.happyligthschow.de bzw. .com)
•
Der Nachfolger von CAN (der im Übrigen sich nicht so recht durchsetzen kann) FlexRay besitzt
ebenfalls keine Sicherheitsmechanismen.
•
Den einzigen Schutz, den bisher Hersteller verwenden, besteht darin, die CAN-NachrichtenIdentifier geheim zu halten und den Zugriff zum Fahrzeug zu erschweren. Allerdings hat auch
hier das Gesetz von Moore zugeschlagen, und es sind billige Zugriffsvarianten über Funk (Bluetooth)
oder gar über Reifendruckkontrollsysteme (TPMS) verfügbar, die i.d.R. schlecht abgesichert sind.
Angriffspunkte
• Bevor die konkreten Bedrohungsmodelle vorgestellt und die entsprechenden
Abwehrmechanismen erläutert werden, sollte die Frage geklärt werden, wie ein
Hacker überhaupt ein eingebettetes System infiltrieren kann.
• Generell lassen sich die Zugänge zu eingebetteten Systemen im allgemeinen und
Automotive im Speziellen in die folgenden drei Kategorien einteilen: Indirekter physischer Zugang, Kurzstrecken- und Langstrecken-Zugang.
• Beim indirekten physischer Zugang unterscheidet man OBD-II Schnittstelle,
Infotainment-Geräte und zukünftig wohl auch Ladekabel.
• Der Langstrecken-Zugang zerfällt in den Rundfunk-Bereich (Broadcast Kanäle)
und in die adressierbaren Kanäle (z.B. UMTS).
• Beim Kurzstrecken-Zugang stellen Bluetooth, Keyless Entry-Systeme, Reifen-
drucksensoren und RFID Wegfahrsperren wichtige Kandidaten dar.
23 von 50
• Indirekter physischer Zugang
• OBD-II ist derzeit wichtigste Schnittstelle bei modernen Automobilen, die ursprünglich zur Überwachung aller abgassbeeinflussenden Systeme diente und in den USA entwickelt wurde. Schnittstelle
wurde schnell weiterentwickelt und bietet im Grunde einen direkten Zugriff auf alle wichtigen CANBussysteme und um insbesondere Fehlerspeicher auszulesen. Zum Anschluß eines Notebooks an
OBD-II wird ein „PassThru“-Gerät angeboten, welche auch die Programmierung der Steuergeräte
erlauben. Diese Geräte sind teilweise bei eBay käuflich. Durch Kompromittierung des Notebooks,
kann Schadsoftware auf Steuergerät gelangen.
• Andere Zugriffsmöglichkeit besteht über Schnittstellen (USB, CD/DVD, SD-Karten etc.) des Infotainment-Systems. Über diese Schnittstelle sind ebenfalls Angriffe denkbar. Zum Beispiel könnte mit
Hilfe der CD/SD eine speziell präparierte Datei abgespielt werden, welche die Software flasht, also
ein schadhaftes Update erzeugt. Da die Infotainment-Systeme über Gateway mit CAN-Segmenten
verbunden sind, könnten auf diese Weise auch Angriffe auf CAN produziert werden.
• Um die Ladestation zu informieren, wann ein Fahrzeug vollständig geladen ist, muss diese mit dem
Ladesteuergerät über das Ladekabel in Kontakt stehen. Möglicherweise geschieht das auch über
den CAN-Bus.
• Langstrecken-Funkzugang
• Moderne Fahrzeuge haben eine Fülle solcher Broadcast-Kanäle wie GPS, DAB, RDS und TMC,
die alle für gewöhnlich via Entertainmentsystem mit CAN-Bus verbunden sind. Der Vorteil für
Angreifer ist, dass Angriffe nur schwer zuzuordnen sind, mehrere Empfänger erreichbar sind und
keine Adressierung der Opfer notwendig ist.
• Die größte Angriffsfläche bieten Funkzugänge, die über lange Strecken adressierbar sind (z.B. Telematik-Systeme). Solche Systeme haben eine ständige Verbindung zu einem Telefonanbieter mit
Internetzugang (z.B. UMTS). In Holland wurde 2011 iPhones mit jailbreak gehackt.
Angriffspunkte
• Bevor die konkreten Bedrohungsmodelle vorgestellt und die entsprechenden
Abwehrmechanismen erläutert werden, sollte die Frage geklärt werden, wie ein
Hacker überhaupt ein eingebettetes System infiltrieren kann.
• Generell lassen sich die Zugänge zu eingebetteten Systemen im allgemeinen und
Automotive im Speziellen in die folgenden drei Kategorien einteilen: Indirekter physischer Zugang, Kurzstrecken- und Langstrecken-Zugang.
• Beim indirekten physischer Zugang unterscheidet man OBD-II Schnittstelle,
Infotainment-Geräte und zukünftig wohl auch Ladekabel.
• Der Langstrecken-Zugang zerfällt in den Rundfunk-Bereich (Broadcast Kanäle)
und in die adressierbaren Kanäle (z.B. UMTS).
• Beim Kurzstrecken-Zugang stellen Bluetooth, Keyless Entry-Systeme, Reifen-
drucksensoren und RFID Wegfahrsperren wichtige Kandidaten dar.
25 von 50
• Kurzstrecken-Funkzugang
• Mit Bluetooth hat sich ein de-facto Standard für Freisprecheinrichungen etabliert, der immer mehr
den Weg in Kleinwagen findet.
• Viele der Fahrzeuge aus der Premiumklasse bieten heute keyless entry-Systeme an, die ein weiteres Einfallstor ins Fahrzeugnetzwerk bieten (via Relay-Station Attack).
• In den USA seit 2007 Vorschrift sind Reifendrucksensoren, welche die Aufgabe haben, den Fahrer
vor einem Platten bzw. undichten Reifen rechtzeitig zu warnen. Die entsprechenden Sensordaten
werden auf derselben Frequenz wie bei den Keyless-Entry-Systeme übertragen: 433 MHz (EUR)
und 315 MHz (USA).
• Mittlerweile serienmäßig vorhanden sind RFID Technologie basierte Wegfahrsperren. Im Fahrzeugschlüssel ist dazu ein Transponder und im Fahrzeug in der Nähe des Zündschlosses ein Empfangssystem verbaut. Ohne den richtigen Transponder in der Nähe, wird zuverlässig verhindert,
dass das Fahrzeug gestartet werden kann.
Wie geht ein Hacker vor?
• Während ein System-Designer bei der Suche nach Schwächen die Architektur und
die verwendeten Kommunikationsprotokolle im Fokus hat, wählen Cracker oft
einen pragmatischen Weg, der im Wesentlichen auf den folgenden drei Schritten
basiert:
• Pakete abhören und gezielt sondieren!
• Fuzzing!
• Reverse Engineering!
27 von 50
• Der erste Schritt ist das Belauschen der Kommunikationsverbindung mit dem Ziel die Kommunikation
zwischen den einzelnen Clients zu verstehen und für seine Zwecke zu benutzen. Besonders hilfreich
ist das Auslösen verschiedener Events und Nachrichten und die Beobachtung der Kommunikation
währenddessen. So kann schnell eruiert werden, welcher Befehl für welche Aktion verwendet wird.
• Wenn man nur Schaden anrichten möchte, ist kein oder zumindest kein vollständiges Verständnis der
Kommunikation und der verfügbaren Teilnehmer notwendig. Beispielsweise ist die Anzahl der
gültigen CAN-Bus-Nachrichten beschränkt. Zufällig gewählte Nachrichten können in die
Kommunikation eingebracht werden und anschließend die Effekte beobachtet werden und
entsprechende Korrelationen über das Wirkprinzip erstellt werden.
•
Der anspruchsvollste Weg einen Schaden zu produzieren, besteht im Rahmen eines Reverse
Engineerings. Dabei wird versucht, den Speicher einer Komponente, oder den gesamten
Nachrichtenfluss zu lesen und anschließend zu verstehen. Dieses Vorgehen ist dann notwendig,
wenn neue Funktionalität hinzugefügt oder existierende manipuliert werden soll.
Lücken in der Software
• Heutige Fahrzeuge haben
• eine Vielzahl an vernetzten eingebetteten Systemen, die sehr eng zusammenar-
beiten müssen.
• Die oft sehr komplexe Software kann aus Zeit- und Kostengründen daher nicht
fehlerfrei sein und ist auch nur rudimentär gesichert.
• Der Fokus der Hersteller liegt eher auf Safety und weniger auf Security.
• Das Ziel der Angreifer ist es, geheime Informationen der Software zu entlocken
(Spionage) oder nicht autorisierte Schadsoftware zu installieren. Dabei werden
die folgenden Lücken ausgenutzt:
• Fehlerhafte Implementierung.
• Software-Updates bzw. das Aktivieren neuer Funktionen.
• Speicherort der Software.
29 von 50
• Heutige Systeme bestehen aus mehrere Dutzenden Steuergeräten, Tausende Funktionalitäten
und Zehntausende Vernetzungsmöglichkeiten.
• Fehlerhafte Implementierung:
• Häufige Fehler ergeben sich über sogenannte Buffer Overflows oder eine schlecht gewählte Architektur. Allerdings sind Buffer Overflow im Bereich der eingebetteten Systeme seltener auf Grund
der verwendeten Harward-Architektur, die im Gegensatz zur von Neumann-Architektur zwei
getrennte Speicher für Befehle und Daten verwendet. Bei der von Neumann-Architektur kann durch
einen Buffer Overflow in einen Datenbereich gesprungen werden, der schadhafte Befehle codiert.
Daneben gibt es aber noch eine Fülle an anderen typischen Fehlern, wie die Verwendung unsicherer kryptographischer Algorithmen, einen fehlerhaften Update-Prozess, Protokollfehler, Fehler bei
der Verwaltung der Schlüssel, Verwendung schlechter Zufallszahlengenerator, Umgehung von
Sicherheitsmaßnahmen durch eine möglicherweise implementierten Debug-Modus, fehlerhafte
Implementierung von Algorithmen --> Eigentliche alle Bestandteile können betroffen sein.
•
Zum Software-Update
• muss einfach nach Außen ein entsprechender Updatekanal angeboten werden, der i.d.R. nicht hinreichend gesichert sein kann.
• Ein weitere Verwundbarkeit stellt der Speicherort der Software dar.
• Diese ist meistens auf Speicherchips abgelegt, die von der Platine genommen und mit speziellen
Equipment gelesen werden können. Eine komplette Verschlüsselung der Software hilft nicht so
sehr, wie man gerne glauben würde, da die Software zur Ausführung entschlüsselt und dann entsprechend gelesen werden kann. Zudem werden oft geheime Schlüssel oft ungeschützt im Speicher abgelegt.
Lücken in der Buskommunikation: CAN
• Das CAN-Bus-Protokoll sieht keinerlei Verschlüsselung der Bus-Nachrichten
vor:
• Angreifer kann also problemlos Nachrichten abhören und Inhalt erfahren.
• Da zum Versenden kein Schlüssel benötigt wird, kann Angreifer ebenfalls ohne
Schwierigkeiten eigene (schadhafte) Nachrichten versenden.
• Da CAN-Bus auf CSMA/CA (unter Verwendung von Nachrichten-Prioritäten)
basiert, sind Denial of Service Angriffe problemlos möglich.
• In CAN-Nachrichten sind keine Felder für eine Authentifizierung oder Absender-
erkennung vorgesehen.
• Die in CAN-Bus verwendete Fehlerbehandlungsstrategie, welche bei der Fehler-
behandlung sehr effektiv ist, kann von Angreifer mißbraucht werden.
• Einige Beispiele: Tachometerrückstellung (häufig praktiziert, eher harmlos),
HappyLigthShow (CAN-Bus-Modul, welches auf OBD-II Port gesteckt wird),
Chiptuning (häufig praktiziert zur Leistungssteigerung), Komponentensimulation (Vorhandensein einer fehlenden Komponente z.B. Airbag vortäuschen) und
Schlüssel-Klonen (via OBD-Port, der ständig mit Strom versorgt wird).
31 von 50
• Da CAN im Wesentlichen Broadcast-Mechanismus (CSMA/CA) verwendet, kann Angreifer alle
Nachrichten im Bus mitlesen. Dazu kann man z.B. günstigen USB-to-CAN Adapter und Tool CarShark
verwenden. Damit können auch beliebige Nachrichten auf den Bus geschrieben werden.
• Denial of Service-Attacke: Angreifer versucht sich als Nachricht mit der höchsten Priorität auszugeben
und legt damit das gesamte Netz lahm.
• Wegen der fehlender Authentifizierung kann jede Komponente an eine andere Komponente eine
beliebige Nachricht senden, die z.B. Fehlinformationen enthält und zu einem dauerhaften
Fehlverhalten auf dem Bus führt.
• Falls im CAN-Bus Fehler (fehlerhafte Nachricht) entdeckt wird, werden über ein Error-Flag andere
Komponenten informiert, die in Schlaf-Modus wechseln. Auf diese Weise wird der aktuelle
Datenverkehr unterbrochen und erst nach einer gewissen Zeit wieder gestartet. Ein Angreifer kann
durch das systematische Aussenden solcher Fehler-Flags ebenfalls den Bus lahm legen.
• Beispiele sind aus Presse oder aus experimentellen Analysen. OEMs halten sich hier sehr bedeckt.
• Tachometerrückstellung: Auf tachoteam.de wird diese Dienstleistung offiziell beworben.
• HappyLightShow.de bzw. .com: Vornehmlich für GM-Fahrzeuge, um Funktionalitäten des Fahrzeugs zu erweitern, wie Bremslichter, spezielle Warnblicklichter, wenn Kofferraum geöffnet wird und
vieles mehr.
• Chiptuning: Nicht nur Leistungssteigerung auch günstigeren Verbrauch. Im einfachsten Fall wird
die Programmierung der kompletten Steuergeräte-Software vorgenommen (statt Austausch ECU).
• Komponentensimulation: So kann per Reverse Engineering Nachrichtenfluss ermittelt werden.
• Schlüssel-Klonen: OBD-Port besitzt CAN-Bus-Anschluß, in 3 Minuten kann so mit Hilfe einer Software neuer Schlüssel generiert werden. Wegfahrsperre muss nicht umgangen werden.
Lücken in der Buskommunikation: LIN, FlexRay und MOST
• LIN-Bus ist ein (kleiner) Subbus zur Kommunikation mit intelligenten Sensoren und
Aktoren und wird eingesetzt, wenn CAN über dimensioniert ist.
• LIN arbeitet ebenfalls ohne Verschlüsselung, verwendet Broadcast aber keine
Authentifizierung. Das Power Management kann prinzipiell vom Angreifer mißbraucht werden.
• Allerdings sind bisher keine direkten Angriffe auf den LIN-Bus aus der Presse
bekannt.
• Die Sicherheitslücken sind im Falle von FlexRay ähnlich zu bewerten. Auch hier
sind keine Angriffe aus der Presse bekannt.
• Der MOST-Bus ist ebenfalls im Vergleich zum CAN-Bus ein seltener Angriffspunkt.
• Das könnte daran liegen, dass MOST nicht so leicht zugänglich ist und passende
Geräte zum Zugriff recht teuer sind.
• Zudem wird dieser Entertainment-Bus nur in den Fahrzeugen der Premium-
Klasse eingesetzt.
• MOST bietet allerdings im Bereich von Content Protection Sicherheits-Features
an.
33 von 50
• LIN-Bus hat ähnliche Sicherheitslücken wie der CAN-Bus.
• Im Power-Management kann bei Bedarf in Energiesparmodus gewechselt werden, was von einem
Angreifer mißbraucht werden könnte.
• Möglicherweise ist LIN-Bus für Angreifer nicht interessant, da er nur sehr gering Bandbreite hat und
eher unkritische Aufgaben übernimmt.
• FlexRay war als Nachfolger für CAN gedacht, setzt sich aus meiner Sicht allerdings nicht so gut durch.
• Eine genau Studie von MOST zeigt im Grunde ähnliche Sicherheitslücken wie die anderen BusSysteme, lediglich mit dem Unterschied:
• dass hier der Content geschützt werden kann.
• MOST-Bus verfügt über M6- und AES-128 Verschlüsselungstechniken für DTCP (Digital Transmission Content Protection), die eine Voraussetzung zur Übertragung von HQ (High Quality) Audio
und Video- Signalen darstellt. Die Umsetzung weiterer Sicherheitsaspekte ist optional (kann also
der Anwendungsprogrammierer entscheiden). Jeder verschlüsselten Datenübertragung geht ein
AKE (Authentification and Key Exchange) voraus.
Lücken in der Funkkommunikation
• Die drahtlose Kommunikation mit eingebetteten Systemen wird durch den techni-
schen Fortschritt immer wichtiger und stellt einen möglichen Angriffspunkt dar.
• Die folgenden Techniken stellen entsprechende Beispiele dar:
• Bluetooth
• Funkschlüssel (Keyless Entry-Systeme)
• Reifendruckmessung (Tire Presure Monitoring System: TPMS)
• Internet-Kommunikation
• Obwohl
einige dieser Varianten krytographische Sicherheitsmaßnahmen
anwenden, sind sie doch häufig Ziel einiger erfolgreicher Angriffe.
• So stellen beispielsweise Wegfahrsperren oder ganz allgemein Keyless Entry-
Systeme eine der ältesten Anwendungsgebiete der Kryptographie in Fahrzeugen dar und wurden bereits erfolgreich gebrochen.
35 von 50
• Aus Zeitgründen werden die entsprechenden Details nicht weiter beleuchtet. Es sei nur erwähnt, dass
gerade im Bereich Bluetooth sehr viele Schwächen vorliegen und einige Angriffe bekannt sind.
• Car Whisperer: Dieses Tool wurde von europäischen Forschern entwickelt mit dem Ziel alle Beteiligten zu sensibilisieren, insbesondere die Hersteller von Bluetooth-Geräten. Da nahezu immer die
Standard-PIN-Codes 0000 oder 1234 verwendet werden. Die „Schad-Software“ versucht mit Hilfe
dieser Codes mit erreichbaren Audio-Geräten eine Verbindung aufzubauen und kann anschließend
über Mikrofon die Kommunikation im Fahrzeug belauschen.
• Der wohl berühmteste Angriff BlueSnarf nutzt eine Lücke in speziellen Profil OPP (OBEX Push Profile) aus, welches üblicherweise dazu verwendet wird, Visitenkarten oder andere Dateien auszutauschen. Da keine Authentifikation benötigt wird, kann ein Angreifer sich problemlos mit dem Gerät
verbinden. Mit Hilfe eines OBEX-GET-Befehls kann auf bestimmte Dateinamen zugegriffen werden.
Auf Grund fehlerhafter Gerätefirmware kann beim Zugriff auf bestimmte Dateinamen wie z.B. telecom/pb.vcf auf den Kalender oder das Telefonbuch zugegriffen werden.
• Keyless Entry Systeme basieren auf einem sogenannten Challenge-Response Verfahren.
• Challenge-Response Verfahren setzt auf den Austausch eines Zufallswerts, der mit einem
gemeinsam bekannten Schlüssel verschlüsselt wieder an das Fahrzeug gesendet wird.
• 2008 gelang es einer der bisherigen als sicher gekannten Verfahren (KeeLoq) zu brechen. Man
muss wissen, dass KeeLoq in nahezu allen Fahrzeugen und Garagentoröffnern in Europa und USA
eingesetzt wird. Bei Fahrzeugen wird diese Technik zur Öffnung von Türen und zur Realisierung
von Wegfahrsperren eingesetzt. Praktische Informationen zur Durchführung sind nicht bekannt (Via
Sidechannel-Angriff gelang es den Mastercode des Herstellers auszulesen)
• Viele eingebettete Systeme bieten mittlerweile WLAN oder UMTS Zugang an. In diesem Fall ist das
Fahrzeug mit einem Schlag dem riesigen Bedrohungspotential ausgeliefert, der im Internet aktuell gilt.
Sicherheits-Mechanismen
• Grundlegend bei der Umsetzung von Sicherheitsmaßnahmen ist, dass ein System
weiß, wer ein Nutzer ist, um zu entscheiden zu können, ob er über ausreichende
Rechte für eine gewählte Aktion verfügt.
• Das Thema Umsetzung von Sicherheit ist sehr vielschichtig und kann hier nur grob
angerissen werden. Die wichtigen Themen in diesem Bereich betreffen:
• Kryptographie ist Technik zur Verschlüsselung von Informationen. Die Sicher-
heit der Kryptographie basiert auf Geheimhaltung der Schlüssel und nicht der
Algorithmen.
• Firewall kontrolliert (separiert) den Datenverkehr zwischen verschiedenen Berei-
chen.
• Antivirenprogramme versuchen das Vorhandensein oder die Aktivität von
Schadprogrammen im System zu erkennen bzw. zu unterbinden.
• Zugriffskontrolle verwendet im Wesentlichen eine Zugriffsmatrix, die in tabella-
rischer Form die Rechte von zu schützenden Objekten, den zu nutzenden Subjekten zuordnet.
• Gefängnisse und Sandkästen
37 von 50
•
Wenn System von Beginn an nach dem oben beschrieben Prinzip entwickelt würden, dann
gäbe es viele Sicherheitsprobleme nicht. Häufig wird Sicherheit erst im Nachhinein konzipiert
und realisiert, so dass die grundlegende Sicherheitsproblematik bestehen bleibt.
•
Bei der Kryptographie unterscheidet man verschiedene Schutzziele und verschiedene Realisierungsvarianten:
• Man unterscheidet die Schutzziele „Unleserlich machen", „Daten-Integrität“ und „Absender-Authentizität“ (Digitale Signatur).
• Bei der Realisierung unterscheidet man symmetrische Varianten (1 Schlüssel: sehr schnell) und
asymmetrische Varianten (privater und öffentlicher Schlüssel: langsamer).
• Daneben gibt es auch Hashfunktionen, welche zur Optimierung eingesetzt werden. Um den Aufwand zu reduzieren, ein sehr großes Dokument zu unterschreiben, wird zunächst das Dokument
mit Hilfe einer Hash-Funktion (so was wie eine Quersumme) verkleinert und anschließend unterschrieben.
• Im einfachsten Fall kann eine Firewall wie ein Internet-Router interpretiert werden, welcher zusätzlich
mit Hilfe von Regeln, Pakete blockiert oder durchläßt, dem sogenannten Paket-Filter.
• Ein guter Paket-Filter verfügt über Gedächtnis, kennt also das entsprechende Kommunikationsprotokoll.
• Intrusion Detection Systeme bzw. Intrusion Reaction Systeme verwenden zusätzlich VerkehrsMuster, um aus bekannten Muster, Angriffe ableiten zu können.
Sicherheits-Mechanismen
• Grundlegend bei der Umsetzung von Sicherheitsmaßnahmen ist, dass ein System
weiß, wer ein Nutzer ist, um zu entscheiden zu können, ob er über ausreichende
Rechte für eine gewählte Aktion verfügt.
• Das Thema Umsetzung von Sicherheit ist sehr vielschichtig und kann hier nur grob
angerissen werden. Die wichtigen Themen in diesem Bereich betreffen:
• Kryptographie ist Technik zur Verschlüsselung von Informationen. Die Sicher-
heit der Kryptographie basiert auf Geheimhaltung der Schlüssel und nicht der
Algorithmen.
• Firewall kontrolliert (separiert) den Datenverkehr zwischen verschiedenen Berei-
chen.
• Antivirenprogramme versuchen das Vorhandensein oder die Aktivität von
Schadprogrammen im System zu erkennen bzw. zu unterbinden.
• Zugriffskontrolle verwendet im Wesentlichen eine Zugriffsmatrix, die in tabella-
rischer Form die Rechte von zu schützenden Objekten, die zu nutzende Subjekte zuordnet.
• Gefängnisse und Sandkästen
39 von 50
•
Antivirenprogramme untersuchen Dateien und Hauptspeicher nach Schädlingen (Rootkits,
Spyware, Trojaner etc.).
• Dabei werden Signaturen bekannter Schädlinge verwendet oder Codesequenzen mit heuristischen
Verfahren auf ein Schadpotential hin untersucht.
• Einige Variante untersuchen Metadaten und zwar werden die dynamische Daten analysiert. Es wird
also nicht der Programmcode untersucht, sondern das Verhaltensmuster der Anwendung zur Laufzeit wie Datei- oder Netzwerkzugriffe.
• Bei der Zugriffskontrolle stellen Dateien, Geräte oder Prozesse typische Objekte dar und User oder
Gruppen typische Subjekte. Es geht darum, die entsprechenden gültigen Rechte zu erfassen und zu
kontrollieren.
• Gefängnisse und Sandkäste
• Bei dem Jailing (Gefängnisse) genannten Verfahren wird ein vertrauenswürdiger Prozeß eingesetzt, um einen anderen Prozeß zu beobachten und im Bedarfsfall einzuschreiten. Immer wenn der
Gefangenenprozeß einen Systemaufruf tätigt, wird der Wärter aktiv und entscheidet, ob er diesen
Aufruf zuläßt oder unterbindet. Das Maß an Sicherheit liegt am Wissen des Wärters über schadhaftes Verhalten.
• Das Sandboxing (Sankasten) Verfahren erzeugt für potentiell gefährliche Prozesse oder zu Testzwecken eine isolierte Umgebung, den Sandkasten. Um das System gegenüber der im System laufenden Anwendung zu schützen, werden Zugriffe von dort unterbunden, reglementiert oder auf
ungefährliche Bereiche umgeleitet.
• Die technische Umsetzung dieser Sicherheitskonzepte findet mit Hilfe von Virtualisierungskonzepten statt.
Was sollte im Fahrzeug eingesetzt werden?
• Wie bisher erläutert, wurden in der Vergangenheit in Fahrzeugen Sicherheitsme-
chanismen eher selten eingesetzt.
• Einige Bereiche werden bereits gesichert, wie z.B. die Keyless Entry Systeme,
aber auch die Versionsverwaltung (Updates der Steuergeräte) der Hersteller etc.
• Andere Bereiche, wie z.B. die gesamte Bus-Kommunikation erfolgt ungeschützt.
• Die Frage, ob die bekannten Sicherheitsmaßnahmen auf bereits etablierte Kommu-
nikationslücken oder andere Sicherheitslücken anzuwenden ist, ist eher mit Nein
zu beantworten zumindest in der nahen Zukunft.
• Allerdings stellt die Bereitstellung des Internets im Fahrzeug eine kritische Sicher-
heitslücke dar, deren Behandlung keinen zeitlichen Aufschub dulden sollte.
• Die Gefahren, die durch das Internet im Fahrzeug ermöglicht werden, müssen
sofort beantwortet werden.
• In diesem Fall ist das Konzept der Virtualisierung das Mittel der Wahl.
41 von 50
• Beim SW-Update werden die bekannten Prinzipien aus der Kryptographie insbesondere das Arbeiten
mit Schlüsselzentralen und zertifizierten Produkten verwendet.
•
Die bisherigen Sicherheitslücken werden eher mit Hilfe zukünftiger Protokoll-Generationen gelöst
werden, und weniger durch eine simple Erweiterung.
•
Beim Internet muss sofort reagiert werden: Aus meiner Sicht kann man nur versuchen,
Fahrzeug und Internet möglichst vollständig zu trennen:
• Eine komplette Trennung in Hardware verbietet sich wohl eher aus Kostengründen.
• Daher kommt nur eine Trennung mit Hilfe der Virtualisierung in Frage.
Virtualisierungs-Varianten
• Im Wesentlichen wird zwischen zwei Teilsystemen unterschieden. Das Host-
System ist ein realer, physischer Computer, welcher die Virtualisierungstechnik
anbietet (hostet). Das Gast-System bezeichnet einen virtuellen Computer, der
durch das Host-System angeboten bzw. verwaltet wird. Es werden die folgenden
Virtualisierungs-Techniken unterschieden:
• Die Emulation bezeichnet die funktionale Simulation eines Computers auf Soft-
warebasis. D.h. für jede zu emulierende HW-Komponente reproduziert der Emulator dasselbe Verhalten durch ein Programm.
• Bei der Maschinen-Virtualisierung werden auf einem Computer eine oder meh-
rere virtuelle Maschinen (VM) erzeugt und verwaltet.
• Bei der OS (Operating System) Virtualisierung wird die Trennung der einzel-
nen Instanzen (Container), durch Trennung der Namensräume des Betriebssystem realisiert. Zum Beispiel durch eigene Prozess-IDs, ein eigenes RootDateisystem oder Netzwerkadresse je Container.
• Bei der Prozessvirtualisierung wird für jede Ausführung einer Anwendung (Pro-
zeß) eine eigene Laufzeitumgebung gestartet, die ebenfalls als Virtuelle
Maschine (VM) bezeichnet wird.
43 von 50
•
Da die Emulation ein komplettes System vollständig in Software abbildet, kann das Host-System
jede Form von Architektur und Hardware emulieren, wenn die entsprechenden Routinen verfügbar
sind.
• Die Maschinen-Virtualisierung wird auf der nächsten Folie etwas ausführlicher beschrieben.
• Die OS-Virtualisierung ist auch unter dem Namen Container Virtualisierung bekannt, da sie ja auf
der Trennung mit Hilfe von Container basiert.
• In Abhängigkeit von der Konfiguration kann jede Instanz eines Containers unterschiedlich stark vom
Host bzw. von anderen Containern isoliert werden. Das Betriebssystem wird dazu um einige Tools
ergänzt, welche die Container einrichten, isolieren und die Ressourcen für einen Container
beschränken.
• Als Konsequenz aus dieser Methode muss der Host-Kernel die Eigenschaften aller Gast-Kernel
umfassen, da es genau einen Kernel zur Laufzeit gibt. Auf diese Weise ist es z.B. möglich, einen
Android-Container auf einen Linux-Host zu betreiben, da auch Android auf einem Linux-Kernel
basiert.
• Im Gegensatz zur Maschinen-Virtualisierung ist die dynamische Zuteilung der Container-Ressourcen möglich, also die Veränderung der Ressourcen, ohne das virtuelle System im Container
herunter fahren zu müssen.
• Im Unterschied zu den anderen Techniken ist bei der Prozessvirtualisierung die Laufzeit der VM
direkt an die Anwendung gekoppelt. Sie startet und endet mit dieser. Bei dieser VM handelt es sich
um eine abstrakte Maschine, von der es im Grunde nur eine Spezifikation gibt.
• Das vorrangige Ziel der Prozessvirtualisierung liegt in der Plattformunabhängigkeit für die Anwendungsentwicklung. Beispiele sind die Java VM, dotNET oder auch Dalvik VM von Android.
Maschinen-Virtualisierung
Linux
WIN 7
Kernel
...
App
App
...
App
...
App
VM
App
App
...
App
VM
App
App
VM
BSD
Kernel
Kernel
Virtual Machine Monitor
Host
Host-OS
Kernel
45 von 50
• Die Software-Komponente, die auf dem Host-System läuft und die Steuerung der virtuellen Maschine
dient, wird Hypervisor oder Virtual Machine Monitor (VMM) genannt.
• Im Unterschied zur Emulation muss hier die HW-Architektur des Gast-Systems identisch mit der
Architektur des Host-Systems sein.
• Die Wahl des verwendeten BS hängt hingegen nur von der Architektur des Gast-Systems ab.
• Im einfachsten Fall (siehe Folie) läuft der Hypervisor unmittelbar auf der Hardware. Das BS besteht
also nur aus dem Hypervisor. Der Hypervisor hat dadurch die volle Kontrolle über die HW. HW-Zugriffe
müssen allerdings vom Hypervisor selbst umgesetzt werden.
• Bei einer erweiterten Form setzt der Hypervisor auf einem vollwertigen BS auf. In diesem Fall fällt
der Hypervisor kleiner aus, da er für die HW-Zugriffe das BS verwenden kann.
• Über die Zeit sind verschiedene Formen der Maschinen-Virtualisierung entwickelt worden, deren
Abgrenzung nicht immer trennscharf ist. Im Wesentlichen erfolgt die Trennung an Hand des
entsprechenden Privilegierungsmodell:
• In der x86 - Architektur (Intel) gibt es ein Privilegierungsmodell, das aus den Ringen 0 bis 3
besteht. Ring 0 besitzt dabei die höchste Priorität und wird auch Kernel-Mode genannt. Die übrigen
Schichten werden als User-Mode bezeichnet. Ring 0 hat als einziger direkten Zugriff auf die HW
und kapselt diese gegen die anderen Schichten ab. Anwendungen laufen typischerweise im Ring 3
ab und können keine CPU-Instruktionen ausführen, die andere Prozesse beeinflussen könnten.
• Aus der Sicht eines CPU-Designers teilen sich alle CPU-Instruktionen in privilegierte und nicht-privilegierte Instruktionen. Nicht-privilegierte Instruktionen werden im User-Mode ausgeführt, eine Ausnahmebehandlung wird ausgelöst und die HW relevante Zugriffe im Kernel-Mode durchgeführt.
• Die Maschinen-Virtualisierungs-Varianten unterscheiden sich in der Abbildung der HW-Zugriffe
des Gast-Systems auf das Host-System bzgl. privilegierte bzw nicht-privilegierter Instruktionen.
Virtualisierungs-Techniken: Analyse
• Bei der Analyse der verschiedenen Varianten spielt neben dem Aspekt der Sicher-
heit natürlich auch der Leistungsaspekt eine entscheidende Rolle:
• Die Fähigkeit der Emulation, verschiedene Systeme zu simulieren und architek-
turübergreifend zu arbeiten, führt zu einem hohen Performanceverlsut und
kommt daher für den Einsatz im Eingebetteten Systemen nicht in Frage.
• Das primäre Ziel der Prozessvirtualisierung liegt weder in der Virtualisierung
noch in der Sicherheit. sondern in der Plattform-Unabhängigkeit für die Anwendungsentwicklung.
• Seitdem die Chip-Hersteller ihre CPUs um Virtualisierungsfunktionen erweitert
haben, ist der Leistungsverlust bei der Maschinen-Virtualisierung eher moderat. Da die i.d.R. entsprechende Varianten Gast-Systeme als vollständige
Maschine virtualisieren, bleiben Angriffe zunächst auf diese beschränkt. Das
vom Gast-System isolierte Host-System bleibt unbehelligt.
• Bei der OS- Virtualisierung wird nur ein sehr geringer zusätzlicher Bedarf an
Ressourcen erforderlich. Häufig werden Container Varianten (z.B. LXC) verwendet. Da der Kernel von Host und Containern identsich ist und Root-User aller
Umgebungen darauf zugreifen können, hängt die Sicherheit davon ab, wie
restriktiv der Root-User eines Containers mit dem Kernel kommunizieren darf.
47 von 50
• Ehemals erfolgte die Maschinen-Virtualisierung rein in Software und war daher aus Perfomancegründen für Embedded Systeme völlig ungeeignet.
• Neuere Hardware kann durch die Unterstützung von I/O- und Speichervirtualisierung einen großen
Teil des Overheads reduzieren, der sonst durch Indirektion über den Hypervisor entsteht.
• Innerhalb von Linux stehen für die Maschinen-Virtualisierungsvarianten bereit wie z.B. VMware,
Citriy XEN und Kernel Based Virtual Machine (KVM).
• Mit der Virtualisierungstechnik wird natürlich auch eine Softwareschicht eingeführt, die ebenfalls
angegriffen werden kann. Sogar bei fehlerfreien Gast-BS kann ein Angreifer den Hypervisor oder
die Peripherie-Emulation selbst attackieren, was sich häufig als DoS-Attacke auf Gast-System oder
Host-System auswirkt.
•
Falls man auf Linux als BS festgelegt ist, schränkt sich die Auswahl der OS-Level basiert
Virtualisierungen auf unter Linux verfügbare Lösungen ein.
• Seit der Version 2.6.24 des Linux-Kernels gibt die Container-Lösung Linux Container (LXC), welche direkt in den Kernel integriert und damit sofort verfügbar ist. Daher auch die gute Performance.
• Zum Schutz des Gesamtsystems müssen die Root-Aktivitäten innerhalb der Container restriktiv
gehandhabt werden. Ubuntu stattet beispielsweise ihre LXC Container mit einem Satz von Apparmor Regeln (Zugriffsrechte) aus. weist aber allerdings darauf hin, dass dies kein vollwertiger Schutz
vor bösartigen Aktivitäten bietet, sondern eher zur Vermeidung unabsichtlicher Schäden dient.
• Im Wesentlichen steht die Sicherheit im Widerspruch zur vollen Funktionalität. Wenn der Root-User
eines Containers nicht direkt mit dem Kernel kommunizieren darf, wird gleichzeitig seine Rolle als
Administrators innerhalb der Container-Umgebung eingeschränkt.
• LXC ist also nur bedingt geeignet, eine sichere Umgebung zur Verfügung zu stellen, eher für
die komfortable Partitionierung eines Systems.
Vielen Dank für Ihre Aufmerksamkeit!
Fragen?
gerne auch später an:
[email protected]
+49 6332 811 100
49 von 50
•