Keine Ahnung von der Sicherheit

Michal Zalewski rantet über Security Engineering und zieht dabei über formale Methoden, Risikomanagement und Fehlertaxonomien her. Das gefällt nicht allen, aber in allen drei Punkten halte ich Zweifel und Kritik für sehr berechtigt:

  • Reale Anwendungen sind für formale Methoden zu groß und zu kurzlebig. Aus der Forschung meldet man begeistert die erfolgreiche formale Verifikation des seL4-Mikrokernels (PDF). Er umfasst 8700 Zeilen C und 600 Zeilen Assembler. Vermutlich hat der JavaScript-Code schon mehr Zeilen, der mir hier den Editor ins Blog baut. Die Verifikation des Kernels war übrigens aufwändiger als seine Entwicklung.
  • Risikomanagement klingt erst einmal gut und vernünftig. Das tut es genau so lange, wie man sich mit der Floskel von Eintrittswahrscheinlichkeit mal Schadenshöhe begnügt. Fragt man aber nach Zahlen, so ist es mit dem Risikomanagement schnell vorbei. Wie hoch ist die Wahrscheinlichkeit eines Angriffs? Um wieviel reduziert eine Sicherheitsmaßnahme das Risiko? Wir wissen es nicht.
  • Taxonomien leiden, ähnlich wie Metriken, unter mangelnder Zweckorientierung. Die fein ausdifferenzierten Defektkatekorien der CWE zum Beispiel nützen vermutlich weder dem Entwickler noch dem Tester etwas: die Fehler sind nicht nach Teststrategien und nur indirekt nach Vermeidungsmöglichkeiten klassifiziert.

Dass wir eigentlich keine rechte Ahnung haben, wie das mit der Sicherheit so funktioniert, war schon im Februar auf dem Smartcard-Workshop meine These. Ich winke deshalb freundlich über den Atlantik, der Mann hat recht (d.h. ich teile seinen Glauben. :-))