2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-19 11:38:05 +02:00

Prepare publications/Seminar-Kognitive-Automobile for submission to arXiv

This commit is contained in:
Martin Thoma 2015-12-17 12:32:55 +01:00
parent be354599ba
commit c5887ded1d
16 changed files with 110 additions and 377 deletions

View file

@ -0,0 +1,2 @@
booka4.tex toplevelfile
nohypertex

View file

@ -1,5 +1,5 @@
%!TEX root = ../booka4.tex
\chapter{Angriffe}\label{ch:attack}
\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
@ -21,7 +21,7 @@ Schnittstelle senden. Außerdem liegt es aus wirtschaftlichen Gründen nahe
möglichst wenige Leitungen zur Datenübertragung zu verlegen.
\section{CAN-interne Angriffe}
\subsection{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
@ -32,7 +32,7 @@ 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}
\subsection{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.
@ -98,7 +98,7 @@ 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}
\subsection{Buffer Overflow Angriffe}\label{sec:Buffer-Overflow}
Dieser Abschnitt erklärt anhand eines einfachen Beispiels wie Buffer Overflow
Angriffe durchgeführt werden.
@ -114,11 +114,11 @@ 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}
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=simple.c]{c}{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
\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.
@ -129,7 +129,7 @@ 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}
\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
@ -155,38 +155,42 @@ 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 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.
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}

View file

@ -1,6 +1,6 @@
%!TEX root = ../booka4.tex
\chapter{Einleitung}
\section{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
@ -17,7 +17,7 @@ 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
Der folgende Abschnitt 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.

View file

@ -1,13 +1,14 @@
%!TEX root = ../booka4.tex
\chapter{Standards und Verordnungen}\label{ch:standards}
\section{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
Abschnitt 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}.
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
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

View file

@ -1,114 +0,0 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View file

@ -1,5 +1,5 @@
%!TEX root = ../booka4.tex
\chapter{Verteidigungsmaßnahmen}\label{ch:defense}
\section{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
@ -13,23 +13,23 @@ Debugging-Symbole in der Software waren. Diese können und sollten
entfernt werden.
\section{Datenvalidierung}\label{sec:validation}
\subsection{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
sicherheits\-kritisch 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.
Außerdem sollten laut Checkoway~et~al. die Diagnose\-geräte Authentifizierung
und Verschlüsselung wie beispielsweise OpenSSL nutzen.
\section{Buffer Overflows}
\subsection{Buffer Overflows}
Gegen Buffer-Overflow-Angriffe können zum einen Sprachen wie Java oder Rust
verwendet werden, welche die Einhaltung der Bereichsgrenzen automatisch
verwendet werden, welche die Einhaltung der Bereichs\-grenzen 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}.
@ -38,18 +38,18 @@ 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
den Stack Cookie und die Rücksprung\-adresse 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
nicht die \verb+RET+ Operation ausgeführt, sondern in eine Sicherheits\-routine
gesprungen, die diesen Fall behandelt.
\section{Code-Qualität}
Code Reviews können solche Sicherheitslücken aufdecken~\cite{Howard2006}.
\subsection{Code-Qualität}
Code Reviews können solche Sicherheits\-lü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.
ausgelieferte Sicherheits\-aktualisierungen. Dazu gehört
laut~\cite{Mahaffey2015} unter anderem ein System zum mobilen versenden von
Aktualisierungen an Autos mit Mobilfunk\-verbindung.

View file

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

View file

@ -1,5 +1,9 @@
\documentclass{UVKABoA4}
\documentclass[technote,a4paper,leqno]{IEEEtran}
\pdfoutput=1
\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
\usepackage{graphicx} % Standardpaket zur Grafikeinbindung
\usepackage{amsmath,amssymb} % Erweiterung des Mathematik-Modus
\usepackage[colorinlistoftodos, german]{todonotes} % Option 'disable' entfernt alle ToDos
@ -10,84 +14,48 @@
\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{url}
\usepackage{breakurl}
\usepackage[raiselinks=true,
bookmarks=true,
bookmarksopenlevel=1,
bookmarksopen=true,
bookmarksnumbered=true,
breaklinks,
hyperindex=true,
plainpages=false,
pdfpagelabels=true,
pdfborder={0 0 0.5}]{hyperref}
\def\UrlBreaks{\do\/\do-}
\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, noabbrev,capitalise]{cleveref}
\usepackage[german,nameinlink]{cleveref}
\title{Sicherheit in Kognitiven Automobilien}
\author{%
\IEEEauthorblockN{Martin Thoma}\\
\IEEEauthorblockA{E-Mail: info@martin-thoma.de} % ORCID: http://orcid.org/0000-0002-6517-1690
}
\hypersetup{
pdfauthor = {Martin Thoma},
pdfkeywords = {security, Sicherheit, Automobile, Hacking},
pdfsubject = {security},
pdftitle = {Sicherheit in Kognitiven Automobilien},
}
\usepackage{microtype}
\begin{document}
\maketitle
\input{abstract}
\input{Einleitung}
\input{Standards}
\input{Angriffe}
\input{Verteidigung}
\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
\bibliographystyle{IEEEtranSA}
\bibliography{literatur}
\end{document}

View file

@ -1,29 +0,0 @@
%% 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

View file

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

View file

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

View file

@ -1,8 +0,0 @@
\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.

View file

@ -1,82 +0,0 @@
%% 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}

View file

@ -15,7 +15,9 @@ int main(void) {
}
if (pass) {
printf("Password protected code. pass=%i\n", pass);
printf("Password protected");
printf(" code. pass=%i\n",
pass);
}
return 0;