%!TEX root = booka4.tex \section{Angriffe}\label{ch:attack} Eine Reihe von elektronischen Systemen wurde zum Diebstahlschutz entwickelt \cite{Song2008,Turner1999,Hwang1997}. Allerdings passen sich auch Diebe an die modernen Gegebenheiten, insbesondere Funk\-schlüssel \cite{Lee2014}, an. Außerdem gehen diese Systeme von einem klassischen Angreifer aus, der sich ausschließlich auf der Hardware-Ebene bewegt. Im Folgenden werden in \cref{subsec:can-intern-attackers} zunächst Möglichkeiten von netzwerk-internen Angreifer, d.h.~Angreifern welche physischen Zugang zum CAN-Bus haben, aufgelistet. Es folgt in \cref{subsec:can-extern-attackers} eine Beschreibung wie Angreifer ohne direkten physischen Zugriff auf das Auto sich mit dem CAN-Bus verbinden können. Viele Angriffe nutzen sogenannte Buffer Overflows aus. Diese werden in~\cref{sec:Buffer-Overflow} erklärt. Abschließend folgt in \cref{sec:sicherheitslage} eine Liste konkreter, öffentlich bekannt gewordener Sicherheitslücken. Es ist nicht notwendigerweise der Fall, dass alle ECUs am selben CAN-Bus angeschlossen sind. Allerdings müssen einige der Geräte Daten an die OBD-II Schnittstelle senden. Außerdem liegt es aus wirtschaftlichen Gründen nahe möglichst wenige Leitungen zur Datenübertragung zu verlegen. \subsection{CAN-interne Angriffe}\label{subsec:can-intern-attackers} Koscher~et~al.~haben in \cite{Koscher2010} zwei nicht näher spezifizierte Autos der selben Marke und des selben Modells untersucht. Sie waren in der Lage über den CAN-Bus etliche Funktionen des Autos, unabhängig vom Fahrer, zu manipulieren. Das beinhaltet das Deaktivieren und Aktivieren der Bremsen, das Stoppen des Motors, das Steuern der Klimaanlage, Heizung, Lichter, Manipulation der Anzeigen im Kombiinstrument sowie das Öffnen und Schließen der Schlösser. Durch moderne Systeme wie eCall kann der Angreifer sich sogar einen Kommunikationskanal zu dem Auto aufbauen. Dies setzt allerdings voraus, dass der Angreifer sich bereits im auto-internen Netzwerk befindet. \subsection{CAN-externe Angriffe}\label{subsec:can-extern-attackers} In~\cite{Checkoway2011} wurde an einer Mittel\-klasse\-limosine mit Standard\-komponenten gezeigt, dass der Zugang zum auto-internen Netzwerk über eine Vielzahl an Komponenten erfolgen kann. So haben Checkoway~et~al. CD-Spieler, Bluetooth und den OBD-Zugang als mögliche Angriffs\-vektoren identifiziert. Bei dem Angriff über den Media Player haben Checkoway~et~al. die Tatsache genutzt, dass dieser am CAN-Bus angeschlossen ist und die Software des Mediaplayers über eine CD mit einem bestimmten Namen und Dateiformat aktualisiert werden kann. Außerdem wurde ein Fehler beim Abspielen der Audio-Dateien genutzt um einen Buffer Overflow zu erzeugen. Es wurde gezeigt, dass dieser genutzt werden kann um die Software des Media-Players zu überschreiben. Über diesen Fehler können alle sicherheitskritischen Funktionen wie beispielsweise das Deaktivieren der Bremsen nach dem Erreichen einer Geschwindigkeit über $\SI[per-mode=fraction]{100}{\km\per\hour}$ vom Angreifer kontrolliert werden. Dafür muss lediglich eine modifizierte Audio-Datei, welche immer noch abspielbar ist, auf der CD sein. Der von Checkoway~et~al. durchgeführte Angriff via Bluetooth benötigt ein mit dem Media Player verbundenes Gerät. Dieses nutzt dann \verb+strcpy+-Befehle, bei denen die Puffergrößen nicht überprüft wurden um bei der Bluetooth-Konfiguration aus um beliebigen Code auf der Telematik-Einheit des Autos ausführen zu können. Daher ist das Smartphone des Autobesitzers ein Angriffsvektor. Die Bluetooth-Verbindung kann jedoch auch ohne ein verbundenes Gerät für Angriffe genutzt werden. Dazu muss der Angreifer genügend Zeit in der Nähe des Autos verbringen um die Bluetooth-MAC-Adresse zu erfahren. Damit kann er ein Anfrage zum Verbindungsaufbau starten. Diese müsste der Benutzer normalerweise mit der Eingabe einer PIN bestätigen. Checkoway~et~al. haben für ein Auto gezeigt, dass die Benutzerinteraktion nicht nötig ist und die PIN via Brute-Force, also das Ausprobieren aller Möglichkeiten, innerhalb von 10~Stunden gefunden werden kann. Allerdings kann dieser Angriff parallel ausgeführt werden. Es ist also beispielsweise möglich diesen Angriff für alle Autos in einem Parkhaus durchzuführen. Bei einem parallel durchgeführten Brute-Force-Angriff ist der erste Erfolg deutlich schneller zu erwarten. Die standardisierte und von Automechanikern zu Diagnosezwecken genutzte OBD-Schnittstelle stellt einen weiteren Angriffs\-vektor dar. Für die verschiedenen Marken gibt es Diagnose\-werkzeuge, wie z.B. NGS für Ford, Consult~II für Nissan und der Diagnostic~Tester von Toyota. Diese dedizierten Diagnose\-geräte werden allerdings über PCs mit Aktualisierungen versorgt. Modernere Diagnose\-werkzeuge sind nicht mehr bei der Diagnose vom PC getrennt, sondern werden direkt, über ein Kabel, \mbox{W-LAN} oder Bluetooth, mit einem PC verbunden. Daher stellt die Diagnose- und Aktualisierungs\-tätigkeit von Automechanikern einen weiteren Angriffs\-vektor dar. Wenn der Mechaniker ein Diagnose\-gerät benutzt, welches ein \mbox{W-LAN} aufbaut, so können Angreifer sich mit diesem verbinden und selbst Aktualisierungen durchführen. Außerdem wurde von Checkoway~et~al. gezeigt, dass auch das Diagnose\-gerät selbst so manipuliert werden kann, dass es automatisch die gewünschten Angriffe ausführt. Wie in \cref{ch:standards} beschrieben wird eCall-System ab 2018 in Europa verpflichtend eingeführt. Dieses nutzt das Mobilfunknetz zur Kommunikation. Checkoway~et~al. haben gezeigt, dass Telematik-Einheiten von außerhalb des Autos angewählt werden und die Software auf diese Weise aus beliebigen Entfernungen aktualisiert werden kann. Dazu wurden zahlreiche Schwachstellen der Telematik-Einheit von Airbiquitys Modem aqLink genutzt. Dieses Modem wird unter anderem von BMW und Ford eingesetzt \cite{AirbiquityBMW,AirbiquityFord}. Ein Angriff auf die Privatsphäre ist mit TPMS möglich. In~\cite{Rouf2010} wurde gezeigt, dass TPMS-Signale zur Identifikation von Autos genutzt werden können. Die Identifikation eines vorbeifahrenden Autos ist aus bis zu \SI{40}{\meter} Entfernung möglich. Genauso stellt das Mikrofon, welches wegen eCall ab 2018 in jedem Auto sein muss, eine Möglichkeit zum Angriff auf die Privatsphäre dar. \subsection{Buffer Overflow Angriffe}\label{sec:Buffer-Overflow} Dieser Abschnitt erklärt anhand eines einfachen Beispiels wie Buffer Overflow Angriffe durchgeführt werden. Um Buffer Overflow Angriffe zu verstehen, müssen Grundlagen der Struktur eines Prozesses im Speicher bekannt sein. Diese werden im Detail in~\cite{Silberschatz2005} erklärt. Buffer Overflow Angriffe nutzen die Tatsache aus, dass bestimmte Befehle wie beispielsweise \verb+gets+ Zeichenketten in einen Puffer schreiben, ohne die Größe des Puffers zu beachten. \verb+gets+ erhält als Parameter einen Zeiger auf die Startadresse des Puffers. Wenn der Benutzer eine längere Eingabe macht als der Puffer erlaubt, so wird in nach\-folgende Speicher\-bereiche geschrieben. Dies kann an folgendem, aus~\cite{Arora2013} entnommenem und leicht modifiziertem Beispiel beobachtet werden: \lstinputlisting[language=C,title=simple.c]{simple.c} Kompiliert man dieses Programm mit \texttt{gcc -O0 -fno-stack-protector -g simple.c -o simple}, so kann mit der Eingabe von 16~Zeichen die Variable \texttt{pass} überschrieben werden. In diesem Fall wird deshalb der passwortgeschützte Code-Abschnitt ausgeführt, selbst wenn das eingegebene Passwort fehlerhaft ist. Allerdings ist es nicht nur möglich interne Variablen zu überschreiben, sondern sogar beliebigen Code auszuführen. Dies wird in \cite{Mixter} mit einem sehr ähnlichem Beispiel gezeigt und im Detail erklärt. Dabei wird nicht beliebiger Text in den Puffer geschrieben, sondern sogenannter \textit{Shellcode}. Unter Shellcode versteht man Assemblerbefehle, welche in Opcodes umgewandelt wurden. \subsection{Sicherheitslage in Automobilen bis August 2015}\label{sec:sicherheitslage} Heutzutage ist nicht nur die Hardware von Automobilen durch Diebe und andere Angreifer gefährdet, sondern auch die Software. Die folgenden Beispiele zeigen, dass Angriffe auf die IT in Automobilen nicht nur im akademischen Rahmen auf einige wenige spezielle Modelle durchgeführt werden, sondern dass auch modellübergreifende Angriffe möglich sind. Es gibt etliche Automobilhersteller, -marken und -modelle. Für viele Modelle gibt es unterschiedliche Konfigurationen und wiederum zahlreiche Optionen für Zubehör wie beispielsweise das Autoradio oder Navigationssysteme. Dies macht allgemeine Aussagen über konkrete Angriffe auf Automobile schwierig. Allerdings stellen Standards und Verordnungen (vgl. \cref{ch:standards}) sicher, dass Teile der relevanten Infrastruktur in Automobilen gleich sind, sodass Angreifer diese fahrzeugübergreifend nutzen können. Die Art der Angriffe ist nicht neu. So sind wurde mit dem Morris-Wurm bereits 1988 ein Stack Overflow Angriff durchgeführt~\cite{Seltzer2013}, Replay-Angriffe wurden 1994 beschrieben~\cite{Syverson1994} und seit Beginn der Entwicklung von Viren werden bekannte Lücken in veralteter Software ausgenutzt. Allerdings ist die Software in kognitiven Automobilen komplexer als in herkömmlichen Automobilen, die Menge der eingesetzten Software ist größer und die Möglichkeiten zur Einflussnahme durch Aktoren sind gewachsen. Daher bieten kognitive Automobile eine größere Angriffsfläche als herkömmliche Automobile. \begin{itemize} \item 2010 hat ein ehemaliger Angestellter mehr als 100~Autos über ein Fernsteuersystem, welches Kunden an fällige Zahlungen erinnern soll, die Hupen aktiviert~\cite{Poulsen2010}. \item 2010 wurde mit~\cite{Koscher2010} auf mögliche Probleme in kognitiven Automobilen hingewiesen. Mit~\cite{Checkoway2011} wurde 2011 gezeigt, dass mindestens ein Modell in einer bestimmten Konfiguration unsicher ist. \item 2015 wurde von Charlie Miller und Chris Valasek gezeigt, dass das Unterhaltungssystem Uconnect von Fiat Crysler benutzt werden kann um Autos aus der Ferne zu übernehmen. Wegen dieses Softwarefehlers hat Fiat Chrysler 1,4~Millionen Autos zurückgerufen~\cite{Gallagher2015}. \item 2015 wurde eine Sicherheitslücke in BMW's ConnectedDrive bekannt. Diese hat es dem Angreifer erlaubt, das Auto zu öffnen~\cite{Spaar2015}. Dieter Spaar hat dabei mehrere Sicherheitslücken aufgedeckt: BMW hat in allen Fahrzeugen die selben symmetrischen Schlüssel eingesetzt, Teildienste haben keine Transportverschlüsselung verwendet und ConnectedDrive war nicht gegen Replay-Angriffe geschützt. Bei Replay-Angriffen nimmt der Angreifer Teile der Kommunikation zwischen dem BMW-Server und dem Auto auf und spielt diese später wieder ab. Dies könnte beispielsweise eine Nachricht sein, die das Auto entriegelt. \item In \cite{Verdult2015} wurde 2015 gezeigt, dass einige Dutzend Automodelle von Audi, Ferrari, Fiat, Opel, VW und weiterer Marken eine Sicherheitslücke in den Schlüsseln haben, welche es Autodieben erlaubt nach nur zweimaligem Abhören der Kommunikation des Originalschlüssels mit dem Auto eine Kopie des Schlüssels anzufertigen. \item Die Sicherheitsfirma Lookout hat 2015 Fehler in der Software des Tesla Model~S gefunden, welche Root-Zugang zu internen Systemen erlaubt hat~\cite{Mahaffey2015}. Drei der gefundenen sechs Sicherheitslücken sind veraltete Softwarekomponenten. \item 2015 wurde auch ein Angriff auf das OnStar-System von GM bekannt, durch welchen der Angreifer beliebige Autos mit dem OnStar-System öffnen und den Motor starten konnte~\cite{Stevens2015}. Die Art des Angriffs, die bisher noch nicht detailliert beschrieben wurde, betrifft laut \cite{Greenberg2015} auch die iOS-Apps für Remote von BMW, mbrace von Mercedes-Benz, Uconnect von Chrysler und Smartstart von Viper. \end{itemize}