mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-19 11:38:05 +02:00
58 lines
3 KiB
TeX
58 lines
3 KiB
TeX
%!TEX root = booka4.tex
|
|
\section{Verteidigungsmaßnahmen}\label{ch:defense}
|
|
Wie bereits in \cref{sec:sicherheitslage} beschrieben, sind die Arten der
|
|
Angriffe nicht neu. Daher sind auch die Verteidigungs\-maßnahmen nicht
|
|
spezifisch für den Automobil\-bereich, sondern allgemeiner software\-technischer
|
|
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.
|
|
|
|
|
|
\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
|
|
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 Diagnose\-geräte Authentifizierung
|
|
und Verschlüsselung wie beispielsweise OpenSSL nutzen.
|
|
|
|
|
|
\subsection{Buffer Overflows}
|
|
Gegen Buffer-Overflow-Angriffe können zum einen Sprachen wie Java oder Rust
|
|
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}.
|
|
|
|
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ü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 Sicherheits\-routine
|
|
gesprungen, die diesen Fall behandelt.
|
|
|
|
|
|
\subsection{Code-Qualität}
|
|
Code Reviews und IT-Sicherheits\-audits 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}.
|
|
Insbesondere Fahrzeuge welche typischerweise von der Feuerwehr, der Polizei
|
|
oder von Rettungsdiensten eingesetzt werden sollten --- unabhängig vom Hersteller
|
|
--- überprüft werden.
|
|
|
|
Eine weiterer wichtiger Stützpfeiler für sichere Software sind schnell
|
|
ausgelieferte Sicherheits\-aktualisierungen. Dazu gehört
|
|
laut~\cite{Mahaffey2015} unter anderem ein System zum mobilen versenden von
|
|
Aktualisierungen an Autos mit Mobilfunk\-verbindung.
|