| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- %!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.
|