Verteidigung.tex 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. %!TEX root = booka4.tex
  2. \section{Verteidigungsmaßnahmen}\label{ch:defense}
  3. Wie bereits in \cref{sec:sicherheitslage} beschrieben, sind die Arten der
  4. Angriffe nicht neu. Daher sind auch die Verteidigungs\-maßnahmen nicht
  5. spezifisch für den Automobil\-bereich, sondern allgemeiner software\-technischer
  6. Art.
  7. Alle von Checkoway~et~al. beschriebenen Angriffe basieren zum einen auf
  8. Reverse-Engineering, also der Rekonstruktion der Software-Systeme und
  9. Protokolle, zum anderen auf Fehlern in der Software. Das Reverse-Engineering
  10. wurde in einigen Fällen laut Checkoway~et~al. stark vereinfacht, da
  11. Debugging-Symbole in der Software waren. Diese können und sollten
  12. entfernt werden.
  13. \subsection{Datenvalidierung}\label{sec:validation}
  14. Der CAN-Bus ist eine große Schwachstelle der IT-Sicherheit in Autos. Über ihn
  15. müssen viele ECUs kommunizieren und einige, wie das Autoradio, werden nicht als
  16. sicherheits\-kritisch wahrgenommen. Gleichzeitig sind sicherheitskritische ECUs
  17. an dem selben CAN-Bus angeschlossen. Daher ist es wichtig die Nachrichten,
  18. welche über den CAN-Bus empfangen werden, zu filtern. Die Informationen müssen
  19. auf Plausibilität geprüft werden. Insbesondere bei Software-Updates sollte
  20. anhand einer kryptographischen Signatur überprüft werden, ob das Update vom
  21. Hersteller stammt.
  22. Außerdem sollten laut Checkoway~et~al. die Diagnose\-geräte Authentifizierung
  23. und Verschlüsselung wie beispielsweise OpenSSL nutzen.
  24. \subsection{Buffer Overflows}
  25. Gegen Buffer-Overflow-Angriffe können zum einen Sprachen wie Java oder Rust
  26. verwendet werden, welche die Einhaltung der Bereichs\-grenzen automatisch
  27. überprüfen. Des Weiteren kann anstelle der C-Funktion \verb+strcpy()+ die
  28. Funktion \verb+strncpy()+ verwendet werden, welche die Anzahl der zu
  29. schreibenden Zeichen begrenzt~\cite{Eckert2012}.
  30. Ein weiteres Konzept zum Schutz vor Buffer-Overflow-Angriffen sind Stack
  31. Cookies~\cite{Bray2002}. Stack Cookies sind Werte die auf den Stack, direkt
  32. nach den Puffer geschrieben werden. Bevor der Sprung zurück in
  33. die aufrufende Funktion durchgeführt wird, wird die \verb+XOR+ Operation auf
  34. den Stack Cookie und die Rücksprung\-adresse ausgeführt. Der so errechnete Wert
  35. wird mit dem erwarteten Wert verglichen. Falls es eine Abweichung gibt wird
  36. nicht die \verb+RET+ Operation ausgeführt, sondern in eine Sicherheits\-routine
  37. gesprungen, die diesen Fall behandelt.
  38. \subsection{Code-Qualität}
  39. Code Reviews und IT-Sicherheits\-audits können solche Sicherheits\-lücken
  40. aufdecken~\cite{Howard2006}. Code Reviews können teilweise automatisch mit
  41. Werkzeugen zur statischen Code Analyse durchgeführt werden~\cite{McGraw2008}.
  42. Insbesondere Fahrzeuge welche typischerweise von der Feuerwehr, der Polizei
  43. oder von Rettungsdiensten eingesetzt werden sollten --- unabhängig vom Hersteller
  44. --- überprüft werden.
  45. Eine weiterer wichtiger Stützpfeiler für sichere Software sind schnell
  46. ausgelieferte Sicherheits\-aktualisierungen. Dazu gehört
  47. laut~\cite{Mahaffey2015} unter anderem ein System zum mobilen versenden von
  48. Aktualisierungen an Autos mit Mobilfunk\-verbindung.