Microsofts Kampf gegen Bugs

Am 15. Januar 2012 jährte sich der Versand einer inzwischen berühmten E-Mail zum zehnten Mal: Bill Gates machte die Themen Sicherheit, Datenschutz und Verlässlichkeit von IT-Systemen zum obersten Ziel.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 7 Min.
Von
  • Uli Ries
Inhaltsverzeichnis

Diese Mail von Bill Gates brachte den Stein ins Rollen.

Das erste Ergebnis der Gates-Mail war die Initiative für Trustworthy – vertrauenswürdiges – Computing. Darunter bündelt Microsoft seither seine verschiedenen Sicherheitsinitiativen. Natürlich setzte Gates die genannten Themen nicht aus freien Stücken ganz oben auf die Prioritätenliste: Windows-Nutzer in aller Welt kämpften seit Jahren mit immer massiveren Wurm- und Vireninfektionen. Nimda, Code Red oder "I Love You" verseuchten Windows-Systeme millionenfach und richteten in der Wirtschaft erhebliche finanzielle Schäden an.

Insbesondere Microsofts Großkunden gingen auf die Barrikaden und forderten stabilere Software. Andernfalls würden sie zu alternativen Anwendungen und Betriebssystemen wechseln. Ein ehemaliger Microsoft-Manager, der gemeinsam mit Gates mit den Kunden diskutieren musste, erinnert sich, dass IT-Leiter von Großkonzernen den Microsoft-Gründer regelrecht angeschrien haben. Auch Steve Lipner erinnert sich an die turbulente Zeit: "Als die E-Mail von Bill außerhalb von Microsoft die Runde machte, ernteten wir Spott. Wir hatten immense Sicherheitsprobleme und böse Zungen sagten, dass wir diese mit einer E-Mail und Pressemitteilungen bekämpfen wollen."

Steve Lipner ist so etwas wie der Vater von SDL.

Dass Microsoft mehr tat, als Nachrichten zu verschicken, weiß kaum einer besser als Lipner. Er war es, der im Jahr 2002 den über 8000 Windows-Entwicklern bei Microsoft verkündete, dass ihre Arbeit bis auf weiteres auf Eis liegt. "Wir mussten den Programmierern beibringen, wie sie möglichst fehlerfreie und somit schwer angreifbare Software schreiben. Das dazu notwendige Schulungskonzept haben wir in nur zwei Monaten entwickelt und in der Praxis lief es in der Tat am Anfang etwas holprig", erinnert sich Lipner schmunzelnd. Sicherheit war plötzlich wichtiger als Funktionsumfang und Aussehen – eine Erkenntnis, die sich in der IT-Welt nur langsam durchsetzt.

Lipners wohl wichtigster Beitrag zu Trustworthy Computing ist der Security Development Lifecycle, kurz SDL, der die Entwicklung von weitgehend fehlerfreier und somit sicherer Betriebssysteme und Anwendungen ermöglichen soll. Insgesamt durchlaufen Microsoft-intern inzwischen über 300 Produkte pro Jahr den SDL – vom per Windows-Update verteilten Windows-Patch über Xbox-Spiele bis hin zum Serverbetriebssystem. Damit auch andere Softwarehersteller von diesem Konzept profitieren können, hat Microsoft im Laufe des Jahres 2008 zahlreiche Dokumente, Videos und Webcasts veröffentlicht, die den SDL ausführlich beschreiben.

Die verschiedenen Phasen des Security Development Lifecycle

(Bild: Microsoft)

Der SDL besteht aus einer Vielzahl von Komponenten, die den kompletten Entwicklungszyklus eines Softwareproduktes begleiten. Stark vereinfacht gesprochen, ist der SDL eine umfangreiche Checkliste, die je nach Produkt mehr als 700 Punkte umfassen kann und vollständig abgearbeitet werden muss, bevor es in den Handel kommt. Der SDL schreibt zum Beispiel bestimmte Einstellungen beim Kompilieren, spezielle ASP-Kommandos oder Kryptotechniken vor.

Eine der Errungenschaften des SDL ist eine Liste verbotener Funktionen – das "Banned API" –, das bekanntermaßen unsichere Funktionen wie strcpy() umfasst. Die Einhaltung dieser Verbote wird erzwungen. Das heißt konkret, dass es zum Beispiel gar nicht erst möglich ist, Code in die Versionsverwaltung einzuchecken, der Funktionen des Banned APIs enthält. So hat der SDL einer Unzahl von banalen Fehlern, die sonst kaum auszurotten sind, auf einen Schlag den Garaus gemacht.

Außerdem umfasst der SDL Richtlinien, wie und womit der Quellcode auf Schwachstellen getestet werden muss. Er hält jeden Entwickler an, sich Gedanken über mögliche Angriffe auf seinen Code zu machen (Threat modelling) und sieht auch systematische Tests auf ungültige Eingaben etwa mit Fuzzing-Tools vor. Vor der Freigabe eines Produkts ist ein "Incident Response Plan" zu erstellen, der sicherstellt, dass auf später auftauchende Sicherheitsprobleme angemessen reagiert wird.

Das sichtbarste Resultat sind die seit Oktober 2003 monatlich erscheinenden Sicherheits-Updates. Früher mussten Anwender sich die aus verschiedenen Bereichen der Microsoft-Website selbst herunterladen. Dann kam der automatische Update-Mechanismus, der später auch auf Microsoft-Anwendungssoftware ausgeweitet und in Microsoft Update umbenannt wurde.

Doch manchen Experten geht dies aber immer noch nicht weit genug: "Ich wünschte, dass Microsoft das Verteilen von Softwareupdates anderer Hersteller über Windows Update zulassen würde. Zwar können Großkunden unsere Updates inzwischen mit Microsoft-Tools verteilen. Aber wenn auch Anwender außerhalb von Großkonzernen per Windows Update versorgt würden, würde das die Verteilung immens erleichtern", erklärt Brad Arkin, bei Adobe für die Produktsicherheit verantwortlich. Das ist durchaus keine weit hergeholte Forderung. Bei Linux-Distributionen wie Ubuntu oder Red Hat etwa werden alle Applikationen über die Update-Funktion des Systems aktualisiert.