Sichere Softwareentwicklung nach dem "Security by Design"-Prinzip

Microsoft-SDL

Der Microsoft-SDL

Microsofts Security Development Lifecycle ist in vielen Aspekten als vorbildlich zu betrachten. Zahlreiche Sicherheitslücken brachten das Unternehmen zur Erkenntnis, dass die Sicherheit in ihrer Software nachhaltig zu verbessern sei. 2002 startete Microsoft deshalb eine Software-Sicherheitsinitiative.

Ihren offiziellen Beginn markierte eine E-Mail von Bill Gates. Er schrieb an sämtliche Mitarbeiter, dass Sicherheit von nun an für Microsoft ein wichtiges Thema und von jedem Mitarbeiter zu unterstützen sei. Der Nachricht folgte ein umfassendes Ausbildungsprogramm, in dem die Firma rund 9000 Software-Ingenieure in den Bereichen Awareness und sichere Programmierung ausbildete. Danach konnten die Entwicklerteams zusammen mit einer dezidierten Gruppe für Softwaresicherheit die benötigten Maßnahmen während des Entwicklungszyklus umsetzen.

Anzahl der Verwundbarkeiten in Microsofts IIS (Abb. 1)

Noch im gleichen Jahr fiel die Anzahl der Verwundbarkeiten Microsofts Softwareprodukten messbar. Wie konsequent der Konzern die neuen Prinzipien umsetzte, zeigte sich 2003: Die Release des Windows Server 2003 wurde aufgrund nicht behobener Sicherheitslücken verschoben. Betrachtet man die Anzahl der Verwundbarkeiten in Microsoft-Produkten auf einer Zeitachse, so ist nach der Einführung des SDL ein deutlicher Rückgang zu erkennen.

Die Grafik zeigt die Anzahl der Verwundbarkeiten in Microsofts IIS über mehrere Jahre hinweg. Unterhalb der Zeitachse wird Microsofts SDL- Initiative dargestellt. Auffallend ist der Rückgang der Fehler während und nach der Einführung des SDL. Die Anzahl der Verwundbarkeiten pro Jahr wurden der National Vulnerability Database (http://nvd.nist.gov/) entnommen (Abb. 1)

Der Microsoft-SDL (siehe Abb. 2) besteht aus 14 Maßnahmen, auch Stufen genannt:

  • Stufe 0: Bewusstmachung und Schulung
  • Stufe 1: Projektinitialisierung und Definition des Schutzbedarfs
  • Stufe 2: Kostenschätzung für Sicherheitsmaßnahmen
  • Stufe 3: Vorgaben für Entwurf sowie Etablieren und Befolgen von Best Practices für den Entwurf
  • Stufe 4: Risikoanalyse für Design
  • Stufe 5: Erstellen der Dokumentation für das sichere Anwenden der Software
  • Stufe 6: Umsetzen und Befolgen der Best Practices, sichere Programmierung
  • Stufe 7: Überprüfung von Sicherheit und Datenschutz
  • Stufe 8: "Security Push" als letztes und intensives Suchen von Sicherheitslücken
  • Stufe 9: Datenschutz-Review
  • Stufe 10: Planung für Eintreten von Sicherheitsvorfällen
  • Stufe 11: Letzte Sicherheits- und Datenschutzreview inklusive Abnahme
  • Stufe 12: Ausliefern der Software
  • Stufe 13: Reagieren auf Sicherheitsvorfälle
Darstellung der Entwicklungsphasen, wie sie sich in einem herkömmlichen Entwicklungsprojekt anwenden lassen. Parallel dazu die Sicherheitsmaßnahmen, wie sie der Microsoft-SDL anwendet (Abb. 2).

In den sieben Jahren seit Einführung des SDL hat Microsoft die Initiative weiterentwickelt und stellt inzwischen sogar Software zur Unterstützung gewisser SDL-Aktionen, etwa Threat Modeling, zur Verfügung.