zurück zum Artikel

Microsofts Kampf gegen Bugs

Uli Ries

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.

Diese Mail von Bill Gates brachte den Stein ins Rollen.

Das erste Ergebnis der Gates-Mail [1] 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 [2], 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.

"Früher handelte Microsoft nach dem Motto 'die gegen uns'. Hacker waren ausschließlich Gegner, die man bestenfalls ignorierte", erklärt Sarah Blankinship das Verhältnis zur Security-Community. Sie leitete früher das Outreach Team, eine Hand voll Microsoft-MitarbeiterInnen, die Kontakt zur weltweiten Hacker-Community aufbauen und halten. Und es ist wohl eher kein Zufall, dass Microsoft mit Blankinship, Window Snyder und Katie Moussouris an dieser Schnittstelle zur Hacker-Welt bevorzugt intelligente und attraktive Frauen positioniert.

Vincenzo Iozzo, Tim Kornau und Ralf-Philipp Weinmann erklären Microsoft-Mitarbeitern Return-Oriented Programming.

Die Redmonder arbeiten jedenfalls mittlerweile erfolgreich mit Hackern zusammen. So lädt der Konzern seit 2005 Sicherheitsexperten zur internen Hacker-Konferenz namens Blue Hat. Dort diskutieren die unabhängigen Experten mit Entwicklern und geben ihr Wissen weiter.

Oder man engagiert Hacker, um die Sicherheit neuer Produkte vorab zu testen. Während der Entwicklung von Windows Vista bekamen rund 30 Hacker den Auftrag mögliche Sicherheitsprobleme aufzuspüren, darunter bekannte Namen wie Dan Kaminsky oder Chris Paget. Sie bekamen dazu nicht nur den Quellcode des Systems sondern direkten Kontakt zu den verantwortlichen Entwicklern: "Microsoft versprach uns, dass wir binnen 24 Stunden mit jedem Entwicklungsteam auf dem Microsoft Campus über unsere Entdeckungen diskutieren können" erinnert sich Kaminsky. Tausende von Bugs sollen so gefunden und beseitigt worden sein, bevor das Produkt überhaupt in die Regale kam.

Und manche Hacker landeten sogar auf Microsofts Gehaltsliste wie der Kern der polnischen Hacker-Crew Last Stage of Delirium. LSD wurde bekannt, weil die Gruppe die kritische Lücke in Windows Remote Procedure Calls [3] entdeckt und veröffentlicht hatte, die kurze Zeit später der Blaster-Wurm ausnutzte, um tausende Rechner zu infizieren.

Das Versprechen von "Trustworthy Computing" hat sich als mehr als ein bloßes Lippenbekenntnis zur Sicherheit erwiesen. Von Bill Gates Forderung nach Microsoft Produkten, die "so verfügbar, verlässlich und sicher sind wie die Versorgung mit Strom, Wasser und Telefon" ist man zwar noch ein gutes Stück entfernt. Deutliche Schritte in die richtige Richtung hat der Software-Konzern in den letzten 10 Jahren jedoch allemal gemacht; der ehemalige Prügelknabe in Sachen Sicherheit gilt vielen Experten heute sogar als Musterschüler. Doch es bleibt Raum für weitere Verbesserungen. So kritisiert etwa Chaouki Bekrar, dass sich Microsoft oft über Gebühr Zeit lasse, um von unabhängigen Sicherheitsforschern gemeldete Schwachstellen zu beheben. "Kursiert hingegen ein Exploit bereits im Netz, geht alles ganz schnell", so der Vupen-Geschäftsführer. (ju [4])


URL dieses Artikels:
https://www.heise.de/-1429333

Links in diesem Artikel:
[1] http://www.microsoft.com/Presspass/Features/2012/jan12/GatesMemo.mspx
[2] http://www.microsoft.com/sdl
[3] https://www.heise.de/news/Exploit-fuer-Windows-RPC-Bug-im-Umlauf-82815.html
[4] mailto:ju@ct.de