Prechádzať zdrojové kódy

Add publications/Seminar-Kognitive-Automobile

Martin Thoma 9 rokov pred
rodič
commit
be354599ba

+ 18 - 0
publications/Seminar-Kognitive-Automobile/Makefile

@@ -0,0 +1,18 @@
+DOKUMENT = booka4
+
+make:
+	pdflatex -shell-escape $(DOKUMENT).tex -output-format=pdf # Referenzen erstellen
+	bibtex $(DOKUMENT)
+	pdflatex -shell-escape $(DOKUMENT).tex -output-format=pdf # Referenzen einbinden
+	pdflatex -shell-escape $(DOKUMENT).tex -output-format=pdf # Referenzen einbinden
+	make clean
+
+ebook:
+	latexml --dest=$(DOKUMENT).xml $(DOKUMENT).tex
+	latexmlpost -dest=$(DOKUMENT).html $(DOKUMENT).xml
+	ebook-convert $(DOKUMENT).html $(DOKUMENT).epub --language de --no-default-epub-cover
+
+clean:
+	rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.thm *.idx *.toc *.ilg *.glg *.glo *.gls *.ist *.xdy *.fdb_latexmk *.bak *.blg *.glsdefs *.acn *.acr *.alg *.nls *.nlo *.bak *.pyg *.lot *.lof *.xmpdata *.xmpi
+	rm -rf _minted-booka4
+	# rm -rf *.bbl *.ind  # Needed for arxiv

+ 114 - 0
publications/Seminar-Kognitive-Automobile/UVKABoA4.cls

@@ -0,0 +1,114 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%Dokumentklasse UVKABook für A4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{UVKABoA4}
+
+\DeclareOption{twoside}{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\DeclareOption{parindent}{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\DeclareOption{11pt}{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\DeclareOption{liststotocnumbered}{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\DeclareOption{idxtotoc}{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\DeclareOption{bibtotocnumbered}{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\DeclareOption{idxtotocnumbered}{
+	\AtEndOfClass{
+		\renewcommand*\idx@heading{
+			\if@openright\cleardoublepage\else\clearpage\fi
+			\twocolumn[\chapter{\indexname}]
+			\@mkboth{\indexname}{\indexname}
+		}
+	}
+} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\ExecuteOptions{parindent,twoside,11pt,liststotocnumbered,idxtotocnumbered,bibtotocnumbered}
+\ProcessOptions\relax
+\LoadClass{scrbook}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\switcht@@therlang\relax
+\let\svlanginfo\relax
+\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}
+\gdef\svlanginfo{\typeout{Deutsche Sprache}\global\let\svlanginfo\relax}}
+
+\AtBeginDocument{\@ifpackageloaded{babel}{
+\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}
+\@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}
+}{\switcht@@therlang}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage[T1]{fontenc}
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[titles]{tocloft}
+\RequirePackage{makeidx}
+\RequirePackage{mathptmx}
+\RequirePackage{natbib}
+\RequirePackage{color}
+\RequirePackage{scrpage2}
+\RequirePackage[inner=3cm,%
+								outer=2cm,%
+								top=2.7cm,%
+								bottom=3.2cm]{geometry}
+\RequirePackage[onehalfspacing]{setspace}
+%\clubpenalty = 10000 
+%\widowpenalty = 10000
+%\displaywidowpenalty = 10000
+
+\bibliographystyle{abbrv}
+
+\setheadsepline{.4pt}
+
+\addtokomafont{chapter}{\fontfamily{phv}\fontsize{14}{14}\bfseries}
+\addtokomafont{section}{\fontfamily{phv}\normalsize\bfseries}
+\addtokomafont{subsection}{\fontfamily{phv}\normalsize\bfseries}
+\addtokomafont{subsubsection}{\fontfamily{phv}\normalsize\bfseries}
+\addtokomafont{caption}{\small}
+\setkomafont{captionlabel}{\small}
+\setkomafont{pagehead}{\small} 
+
+
+
+\color[cmyk]{0,0,0,1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\deffootnote[1.5em]{2em}{1.5em}{\textsuperscript{\thefootnotemark}}
+
+\renewcommand{\cftchappagefont}{\fontfamily{phv}\bfseries}
+\renewcommand{\cftchapfont}{\fontfamily{phv}\bfseries}
+\renewcommand{\cftsecpagefont}{\fontfamily{phv}}
+\renewcommand{\cftsubsecpagefont}{\fontfamily{phv}}
+\renewcommand{\cftsecfont}{\fontfamily{phv}}
+\renewcommand{\cftsubsecfont}{\fontfamily{phv}}
+
+\newcommand{\affirmation}[1][\affirmationname]{\chapter*{#1}}
+\newcommand{\Affirmation}[1][\affirmationname]{\chapter*{#1}\addcontentsline{toc}{chapter}{#1}} 
+
+\newcommand{\preface}[1][\prefacename]{\chapter*{#1}}
+\newcommand{\Preface}[1][\prefacename]{\chapter*{#1}\addcontentsline{toc}{chapter}{#1}} 
+
+\newcommand{\ack}[1][\ackname]{\chapter*{#1}}
+\newcommand{\Ack}[1][\ackname]{\chapter*{#1}\addcontentsline{toc}{chapter}{#1}} 
+
+\newcommand{\abstract}[1][\abstractname]{\chapter*{#1}}
+\newcommand{\Abstract}[1][\abstractname]{\chapter*{#1}\addcontentsline{toc}{chapter}{#1}} 
+
+\newcommand{\changefont}[3]{\fontfamily{#1} \fontseries{#2} \fontshape{#3} \selectfont}
+
+\def\ackname{Acknowledgment}
+\def\abstractname{Abstract}
+\def\affirmationname{Affirmation}
+\renewcommand{\figurename}{Fig.}
+\renewcommand{\tablename}{Tab.}
+\def\switcht@deutsch{\svlanginfo
+	\def\ackname{Danksagung}
+	\def\abstractname{Kurzfassung}
+	\def\affirmationname{Erklärung}
+	\renewcommand{\figurename}{Abb.}
+  \renewcommand{\tablename}{Tab.}
+}
+
+\renewcommand*{\chapterpagestyle}{headings}
+%\renewcommand{\baselinestretch}{1.33}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

BIN
publications/Seminar-Kognitive-Automobile/booka4.pdf


+ 93 - 0
publications/Seminar-Kognitive-Automobile/booka4.tex

@@ -0,0 +1,93 @@
+\documentclass{UVKABoA4}
+
+\usepackage{graphicx} % Standardpaket zur Grafikeinbindung
+\usepackage{amsmath,amssymb} % Erweiterung des Mathematik-Modus
+\usepackage[colorinlistoftodos, german]{todonotes} % Option 'disable' entfernt alle ToDos
+\usepackage[absolute,overlay]{textpos}
+\usepackage{vmargin}          % Adjust margins in a simple way
+\usepackage{tikz}
+\usepackage{csquotes}
+\usepackage[binary-units=true]{siunitx}
+\usepackage{minted} % needed for the inclusion of source code
+
+% Toggle the following two lines to switch between english and german layout
+% \usepackage[english]{babel} % Neue deutsche Rechtschreibung und Silbentrennung.
+\usepackage[ngerman]{babel} % Neue deutsche Rechtschreibung und Silbentrennung.
+
+\usepackage[raiselinks=true,
+            bookmarks=true,
+            bookmarksopenlevel=1,
+            bookmarksopen=true,
+            bookmarksnumbered=true,
+            hyperindex=true,
+            plainpages=false,
+            pdfpagelabels=true,
+            pdfborder={0 0 0.5}]{hyperref}
+
+
+\makeatletter
+\def\tagform@#1{\maketag@@@{\ignorespaces [#1]\unskip\@@italiccorr}}	% Anpassung der Formelnummerierung
+\makeatother
+
+\makeindex
+
+\newcommand{\myname}{Martin~Thoma}
+\newcommand{\headtitle}{Sicherheit in Kognitiven Automobilien}
+\newcommand{\floatingtitle}{Sicherheit in Kognitiven Automobilien}
+\newcommand{\thesistype}{Seminararbeit}
+\newcommand{\advisor}{Dipl.--Inform.~Ralf~Kohlhaas}
+
+\newcommand{\timestart}{23. Juli 2015}
+\newcommand{\releaseyear}{2015}
+\newcommand{\timeend}{17. April \releaseyear}
+\newcommand{\releasemonth}{im Juli \releaseyear}
+
+
+% Names of the organizations
+\newcommand{\term}{\iflanguage{english}{Seminar Cognitive Vehicles}
+                                             {Seminar Kognitive Automobile}}
+\newcommand{\department}{\iflanguage{english}{Department of Computer Science}
+                                             {Fakultät für Informatik}}
+\newcommand{\institute}{\iflanguage{english}{Institute for Anthropomatics}
+                                            {Institut für Anthropomatik}}
+\newcommand{\fzidepartment}{Abteilung Technisch Kognitive Assistenzsysteme}
+\newcommand{\fziname}{\iflanguage{english}{FZI Research Center for Information Technology}
+                                          {FZI Forschungszentrum Informatik}}
+\usepackage{xspace}
+\newcommand*\elide{\textup{[\,\dots]}\xspace}
+
+% A graphic best describing your thesis
+\newcommand{\titlefig}{\includegraphics[width=0.4\textwidth]{graphics/FZI-Logo}}
+
+\usepackage[german,nameinlink]{cleveref}
+
+\begin{document}
+
+\pagenumbering{roman}
+\include{preface/kit_titlepage}
+
+\parindent 1em
+\include{preface/abstract}
+\begingroup
+\changefont{phv}{m}{n}
+\tableofcontents
+\endgroup
+
+\mainmatter
+\renewcommand{\chapterpagestyle}{plain}
+\pagestyle{scrheadings}
+\pagenumbering{arabic}
+
+\input{content/Einleitung}
+\input{content/Standards}
+\input{content/Angriffe}
+\input{content/Verteidigung}
+
+\pagestyle{scrplain}
+\appendix
+\bibliography{content/literatur}
+
+\printindex
+
+
+\end{document}

+ 192 - 0
publications/Seminar-Kognitive-Automobile/content/Angriffe.tex

@@ -0,0 +1,192 @@
+%!TEX root = ../booka4.tex
+\chapter{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 Funkschlü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 zunächst Möglichkeiten von netzwerk-internen Angreifer,
+d.h. Angreifern welche physischen Zugang zum CAN-Bus haben, aufgelistet. Es
+folgt 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 ein Abschnitt über konkrete, der Öffentlichkeit bekannt
+gewordene 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.
+
+
+\section{CAN-interne Angriffe}
+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,
+stoppen des Motors, 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.
+
+\section{CAN-externe Angriffe}
+In~\cite{Checkoway2011} wurde an einer Mittelklasselimosine mit
+Standardkomponenten 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 Angriffsvektoren
+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
+aktualisieren. Dafür muss nur 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 Angriffspunkt dar. Für die
+verschiedenen Marken gibt es Diagnosewerkzeuge, wie z.B. NGS für Ford,
+Consult~II für Nissan und der Diagnostic~Tester von Toyota. Diese dedizierten
+Diagnosegeräte werden allerdings über PCs mit Aktualisierungen versorgt.
+Modernere Diagnosewerkzeuge sind nicht mehr bei der Diagnose vom PC getrennt,
+sondern werden direkt, über ein Kabel, W-LAN oder Bluetooth, mit einem PC
+verbunden. Daher stellt die Diagnose- und Aktualisierungstätigkeit von
+Automechanikern einen weiteren Angriffsvektor dar. Wenn der Mechaniker ein
+Diagnosegerät benutzt, welches ein 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 Diagnosegerä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.
+
+
+\section{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 nachfolgende Speicherbereiche geschrieben. Dies kann
+an folgendem, aus~\cite{Arora2013} entnommenem und leicht modifiziertem
+Beispiel beobachtet werden:
+
+\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=simple.c]{c}{content/exploit-buffer-overflow/simple.c}
+
+Kompiliert man dieses Programm mit
+\verb+gcc -O0 -fno-stack-protector -g simple.c -o simple+, so kann mit der
+Eingabe von 16~Zeichen die Variable \verb+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.
+
+
+\section{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}

+ 23 - 0
publications/Seminar-Kognitive-Automobile/content/Einleitung.tex

@@ -0,0 +1,23 @@
+%!TEX root = ../booka4.tex
+
+\chapter{Einleitung}
+Kognitive Automobile sind, im Gegensatz zu klassischen Automobilen, in der Lage
+ihre Umwelt und sich selbst wahrzunehmen und dem Fahrer zu assistieren oder
+auch teil- bzw. vollautonom zu fahren. Diese Systeme benötigen Zugriff auf
+Sensoren und Aktoren, um ihre Aufgabe zu erfüllen. So benötigt ein Auto mit
+Antiblockiersystem beispielsweise die Drehzahl an jedem Reifen und die
+Möglichkeit die Bremsen zu beeinflussen; für Einparkhilfen werden Sensoren
+benötigt, welche die Distanz zu Hindernissen wahrnehmen sowie Aktoren, die das
+Auto lenken und beschleunigen können. Weitere dieser Systeme sind
+Spurhalteassistenz, Spurwechselassistenz und Fernlichtassistenz.
+
+Als immer mehr elektronische Systeme in Autos verbaut wurden, die teilweise
+sich überschneidende Aufgaben erledigt haben, wurde der CAN-Bus
+entwickelt~\cite{Kiencke1986}. Über ihn kommunizieren elektronische
+Steuergeräte, sog. \textit{ECUs} (engl. \textit{electronic control units}).
+Diese werden beispielsweise für ABS und ESP eingesetzt.
+
+Der folgende Kapitel geht auf Standards wie den CAN-Bus und Verordnungen, die
+in der Europäischen Union gültig sind, ein. In \cref{ch:attack} werden
+Angriffsziele und Grundlagen zu den Angriffen erklärt, sodass in
+\cref{ch:defense} mögliche Verteidigungsmaßnahmen erläutert werden können.

+ 44 - 0
publications/Seminar-Kognitive-Automobile/content/Standards.tex

@@ -0,0 +1,44 @@
+%!TEX root = ../booka4.tex
+\chapter{Standards und Verordnungen}\label{ch:standards}
+Für den Automobilbereich existieren viele Standards und Verordnungen. In diesem
+Kapitel wird eine Auswahl vorgestellt, die Fahrzeuge der Klassen M$_1$ und
+N$_1$ betrifft. Das sind Fahrzeuge zur Personenbeförderung
+\enquote{mit mindestens vier Rädern und höchstens acht Sitzplätzen außer dem Fahrersitz}
+sowie \enquote{für die Güterbeförderung ausgelegte und gebaute Kraftfahrzeuge
+mit einer zulässigen Gesamtmasse von 3,5 Tonnen}\cite{Richtlinie70/156/EWG:Fahrzeugklassen}.
+
+In der EU wurde mit \cite{EUDirective98/69/EC} die OBD-Schnittstelle
+verpflichtend für Fahrzeuge der Klasse M$_1$ und N$_1$ mit Fremdzündungsmotor
+ab 1.~Januar 2004. Die EU-Direktive führt weiter die in der ISO~DIS~15031-6
+Norm aufgeführten Fehlercodes als Minimalstandard ein. Diese müssen
+\enquote{für genormte Diagnosegeräte \elide uneingeschränkt zugänglich sein}.
+Außerdem muss die Schnittstelle im Auto so verbaut werden, dass sie
+\enquote{für das Servicepersonal leicht zugänglich \elide ist}.
+
+Der Software-Zugang ist mit J2534 der Society of Automotive Engineers
+standardisiert~\cite{SAE2004}. Dieser Standard stellt sicher, dass unabhängig
+vom OBD-Reader Diagnosen über das Auto erstellt und die ECUs umprogrammiert
+bzw. mit Aktualisierungen versorgt werden können.
+
+Um die Daten bereitzustellen, werden verschiedene elektronische Komponenten
+über den CAN-Bus vernetzt. Dieser ist in ISO~11898 genormt.
+
+Weiterhin wurde in der EU mit \cite{EURegulation661/2009} beschlossen, dass ab
+1.~November 2012 alle PKWs für Neuzulassungen ein System zur
+Reifendrucküberwachung (engl. \textit{tire pressure monitoring system}, kurz
+\textit{TPMS}) besitzen müssen. Ab 1.~November 2014 müssen alle Neuwagen ein
+solches System besitzen. Da sich die Räder schnell drehen ist eine
+kabelgebundene Übertragung der Druckmesswerte nicht durchführbar. Daher sendet
+jeder Reifen kabellos ein Signal, welches von einem oder mehreren Sensoren im
+Auto aufgenommen wird.
+
+Mit \cite{EURegulation2015/ecall} wird für Fahrzeuge, die ab dem 31.~März 2018
+gebaut werden das eCall-System, ein elektronisches Notrufsystem, verpflichtend.
+Dabei müssen dem eCall-System \enquote{präzise\mbox{[-]} und verlässliche\mbox{[-]}
+Positionsdaten} zur Verfügung stehen, welche über das globales
+Satellitennavigationssystem Galileo und dem Erweiterungssystem EGNOS geschehen
+soll. eCall soll über öffentliche Mobilfunknetze eine \enquote{Tonverbindung
+zwischen den Fahrzeuginsassen und einer eCall-Notrufabfragestelle} herstellen
+können. Außerdem muss ein Mindestdatensatz übermittelt werden, welcher in
+DIN EN 15722:2011 geregelt ist. Diese Funktionen müssen im Fall eines schweren
+Unfalls automatisch durchgeführt werden können.

+ 55 - 0
publications/Seminar-Kognitive-Automobile/content/Verteidigung.tex

@@ -0,0 +1,55 @@
+%!TEX root = ../booka4.tex
+\chapter{Verteidigungsmaßnahmen}\label{ch:defense}
+Wie bereits in \cref{sec:sicherheitslage} beschrieben, sind die Arten der
+Angriffe nicht neu. Daher sind auch die Verteidigungsmaßnahmen nicht
+spezifisch für den Automobilbereich, sondern allgemeiner softwaretechnischer
+Art.
+
+Alle von Checkoway~et~al. beschriebenen Angriffe basieren zum einen auf
+Reverse-Engineering, also der Rekonstruktion der Software-Systeme und
+Protokolle, zum anderen auf Fehlern in der Software. Das Reverse-Engineering
+wurde in einigen Fällen laut Checkoway~et~al. stark vereinfacht, da
+Debugging-Symbole in der Software waren. Diese können und sollten
+entfernt werden.
+
+
+\section{Datenvalidierung}\label{sec:validation}
+Der CAN-Bus ist eine große Schwachstelle der IT-Sicherheit in Autos. Über ihn
+müssen viele ECUs kommunizieren und einige, wie das Autoradio, werden nicht als
+sicherheitskritisch wahrgenommen. Gleichzeitig sind sicherheitskritische ECUs
+an dem selben CAN-Bus angeschlossen. Daher ist es wichtig die Nachrichten,
+welche über den CAN-Bus empfangen werden, zu filtern. Die Informationen müssen
+auf Plausibilität geprüft werden. Insbesondere bei Software-Updates sollte
+anhand einer kryptographischen Signatur überprüft werden, ob das Update vom
+Hersteller stammt.
+
+Außerdem sollten laut Checkoway~et~al. die Diagnosegeräte Authentifizierung und
+Verschlüsselung wie beispielsweise OpenSSL nutzen.
+
+
+\section{Buffer Overflows}
+Gegen Buffer-Overflow-Angriffe können zum einen Sprachen wie Java oder Rust
+verwendet werden, welche die Einhaltung der Bereichsgrenzen automatisch
+überprüfen. Des Weiteren kann anstelle der C-Funktion \verb+strcpy()+ die
+Funktion \verb+strncpy()+ verwendet werden, welche die Anzahl der zu
+schreibenden Zeichen begrenzt~\cite{Eckert2012}.
+
+Ein weiteres Konzept zum Schutz vor Buffer-Overflow-Angriffen sind Stack
+Cookies~\cite{Bray2002}. Stack Cookies sind Werte die auf den Stack, direkt
+nach den Puffer geschrieben werden. Bevor der Sprung zurück in
+die aufrufende Funktion durchgeführt wird, wird die \verb+XOR+ Operation auf
+den Stack Cookie und die Rücksprungadresse ausgeführt. Der so errechnete Wert
+wird mit dem erwarteten Wert verglichen. Falls es eine Abweichung gibt wird
+nicht die \verb+RET+ Operation ausgeführt, sondern in eine Sicherheitsroutine
+gesprungen, die diesen Fall behandelt.
+
+
+\section{Code-Qualität}
+Code Reviews können solche Sicherheitslücken aufdecken~\cite{Howard2006}.
+Code Reviews können teilweise automatisch mit Werkzeugen zur statischen Code
+Analyse durchgeführt werden~\cite{McGraw2008}.
+
+Eine weiterer wichtiger Stützpfeiler für sichere Software sind schnell
+ausgelieferte Sicherheitsaktualisierungen. Dazu gehört laut~\cite{Mahaffey2015}
+unter anderem ein System zum mobilen versenden von Aktualisierungen an Autos
+mit Mobilfunkverbindung.

+ 29 - 0
publications/Seminar-Kognitive-Automobile/content/exploit-buffer-overflow/exploitable.asm

@@ -0,0 +1,29 @@
+%% Funktion exploitableFunction
+0x0000000000400586 <+0>:    push   %rbp
+0x0000000000400587 <+1>:    mov    %rsp,%rbp
+0x000000000040058a <+4>:    sub    $0x20,%rsp
+0x000000000040058e <+8>:    lea    -0x20(%rbp),%rax
+0x0000000000400592 <+12>:    mov    %rax,%rdi
+0x0000000000400595 <+15>:    callq  0x400480 <gets@plt>
+0x000000000040059a <+20>:    lea    -0x20(%rbp),%rax
+0x000000000040059e <+24>:    mov    %rax,%rdi
+0x00000000004005a1 <+27>:    callq  0x400450 <puts@plt>
+0x00000000004005a6 <+32>:    leaveq
+0x00000000004005a7 <+33>:    retq
+
+
+%% Funktion main
+% Funktionsprolog: Sichern des alten Base Pointers im Stack. Der alte Stack
+%                  Pointer wird zum neuen Base Pointer
+0x00000000004005a8 <+0>:    push   %rbp
+0x00000000004005a9 <+1>:    mov    %rsp,%rbp
+
+% Aufrufen der Funktion "exploitableFunction"
+0x00000000004005ac <+4>:    callq  0x400586 <exploitableFunction>
+% Kopieren der Konstante "0" in das EAX-Register
+0x00000000004005b1 <+9>:    mov    $0x0,%eax
+% Kopieren des Wertes von [%rsp] in das Base Pointer Register
+0x00000000004005b6 <+14>:    pop    %rbp
+% Laden des Wertes von [%rsp], hinzufügen von 8 zu dem Wert in [%rsp], und
+% Sprung zur geladenen Adresse
+0x00000000004005b7 <+15>:    retq

+ 12 - 0
publications/Seminar-Kognitive-Automobile/content/exploit-buffer-overflow/exploitable.c

@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+void exploitableFunction (void) {
+    char small[30];
+    gets (small);
+    printf("%s\n", small);
+}
+
+int main(void) {
+    exploitableFunction();
+    return 0;
+}

+ 22 - 0
publications/Seminar-Kognitive-Automobile/content/exploit-buffer-overflow/simple.c

@@ -0,0 +1,22 @@
+#include <stdio.h>
+
+int main(void) {
+    char buff[10];
+    int pass = 0;
+
+    printf("Enter password: ");
+    gets(buff);
+
+    if (strcmp(buff, "correct")) {
+        printf("Wrong Password\n");
+    } else {
+        printf("Correct Password\n");
+        pass = 1;
+    }
+
+    if (pass) {
+        printf("Password protected code. pass=%i\n", pass);
+    }
+
+    return 0;
+}

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 776 - 0
publications/Seminar-Kognitive-Automobile/content/literatur.bib


+ 6 - 0
publications/Seminar-Kognitive-Automobile/graphics/README.md

@@ -0,0 +1,6 @@
+Not added due to legal reasons:
+
+* kitlogo_de_rgb.eps
+* kitlogo_de_rgb.pdf
+* kitlogo_en_rgb.eps
+* kitlogo_en_rgb.pdf

+ 8 - 0
publications/Seminar-Kognitive-Automobile/preface/abstract.tex

@@ -0,0 +1,8 @@
+
+\abstract
+
+Moderne Automobile verfügen über eine Vielzahl von Assistenz- und
+Fahrsicherheitssystemen. Diese Systeme haben Schnittstellen, welche das Ziel
+von Angriffen sein können. In dieser Seminararbeit wird der aktuelle Stand der
+IT-Sicherheit kognitiver Automobilie untersucht. Dabei wird auf mögliche
+Angriffe sowie Möglichkeiten zum Schutz eingegangen.

+ 82 - 0
publications/Seminar-Kognitive-Automobile/preface/kit_titlepage.tex

@@ -0,0 +1,82 @@
+%% titlepage.tex
+%%
+
+% coordinates for the bg shape on the titlepage
+\newcommand{\diameter}{20}
+\newcommand{\xone}{-25}
+\newcommand{\xtwo}{150}
+\newcommand{\yone}{25}
+\newcommand{\ytwo}{-243}
+
+\begin{titlepage}
+% bg shape
+\begin{tikzpicture}[overlay]
+\draw[color=gray]  
+ 		 (\xone mm, \yone mm)
+  -- (\xtwo mm, \yone mm)
+ arc (90:0:\diameter pt) 
+  -- (\xtwo mm + \diameter pt , \ytwo mm) 
+	-- (\xone mm + \diameter pt , \ytwo mm)
+ arc (270:180:\diameter pt)
+	-- (\xone mm, \yone mm);
+\end{tikzpicture}
+  \begin{textblock}{10}[0,0](3.35,2.55)
+	  \iflanguage{english}  {\includegraphics[width=.3\textwidth]{graphics/kitlogo_en_rgb}}
+                          {\includegraphics[width=.3\textwidth]{graphics/kitlogo_de_rgb}}
+  \end{textblock}
+	\changefont{phv}{m}{n}	% helvetica	
+	\vspace*{2.0cm}
+	
+	\begin{center}
+	\Large{
+	\iflanguage{english}{Seminar Cognitive Vehicles}			
+		{Seminar Kognitive Automobile}
+	}\\
+	  \vspace*{1cm}
+		\Huge{\headtitle}
+		\vspace*{2cm}\\
+		\Large{
+			\iflanguage{english}{Term Paper of}			
+												  {Seminararbeit\\von}
+		}\\
+		\vspace*{1cm}
+		\huge{\myname}\\
+		\vspace*{1cm}
+		\Large{
+			\department\\ \institute\\ \iflanguage{english}{and}{und}\\ \fziname
+		}
+	\end{center}
+	\vspace*{1.5cm}
+\Large{
+\begin{center}
+\begin{tabular}[ht]{l c l}
+  %\iflanguage{english}{Reviewer}{Erstgutachter}: & \hfill  & \reviewerone\\
+  %\iflanguage{english}{Second reviewer}{Zweitgutachter}: & \hfill  & \reviewertwo\\
+  \iflanguage{english}{Advisor}{Betreuender Mitarbeiter}: & \hfill  & \advisor\\
+  % \iflanguage{english}{Second advisor}{Zweiter betreuender Mitarbeiter}: & \hfill  & \advisortwo\\
+\end{tabular}
+\end{center}
+}
+
+
+\vspace{2cm}
+\begin{center}
+\large{\iflanguage{english}{Research Period}{Sommersemester 2015} }
+\end{center}
+
+
+\begin{textblock}{10}[0,0](4,16.8)
+\tiny{ 
+	\iflanguage{english}
+		{KIT -- University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association}
+		{KIT -- Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft}
+}
+\end{textblock}
+
+\begin{textblock}{10}[0,0](14,16.75)
+\large{
+	\textbf{www.kit.edu} 
+}
+\end{textblock}
+
+\end{titlepage}