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:
parent
be354599ba
commit
c5887ded1d
16 changed files with 110 additions and 377 deletions
2
publications/Seminar-Kognitive-Automobile/00README.XXX
Normal file
2
publications/Seminar-Kognitive-Automobile/00README.XXX
Normal file
|
@ -0,0 +1,2 @@
|
|||
booka4.tex toplevelfile
|
||||
nohypertex
|
|
@ -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}
|
|
@ -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.
|
|
@ -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
|
|
@ -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}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
@ -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.
|
7
publications/Seminar-Kognitive-Automobile/abstract.tex
Normal file
7
publications/Seminar-Kognitive-Automobile/abstract.tex
Normal 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}
|
Binary file not shown.
|
@ -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}
|
||||
|
|
|
@ -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
|
|
@ -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;
|
||||
}
|
|
@ -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
|
|
@ -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.
|
|
@ -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}
|
|
@ -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;
|
Loading…
Add table
Add a link
Reference in a new issue