Microsoft veröffentlicht Gratis-Tool zum Entwickeln sicherer Software

Mit dem Tool sollen Programmierer das gesammelte Wissen von Microsoft Security Development Lifecycle (SDL) in ihre Softwareentwicklungsumgebung integrieren können.

In Pocket speichern vorlesen Druckansicht 162 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Uli Ries
  • Daniel Bachfeld

Im Rahmen seines Security Development Lifecycle (SDL) hat Microsoft jetzt ein Tool zum Download bereitgestellt, mit dem Programmierer das gesammelte Wissen des SDL in ihre Softwareentwicklungsumgebung integrieren können. SDL ist Microsofts Prozess, um möglichst sichere und fehlerfreie Software zu programmieren. Hausintern ist SDL integraler Bestandteil aller seit 2004 entwickelten Anwendungen und Betriebssysteme.

Um auch Entwickler außerhalb Microsofts am SDL teilhaben zu lassen, veröffentlichte der Softwarekonzern die Vorgaben und Ratschläge bisher in Form einer rein schriftlichen Dokumentation. Entsprechend mühsam war es, den eigenen Entwicklungsprozess mit SDL in Einklang zu bringen. Mit dem Process Template geben die Redmonder nun erstmals ein Tool frei, das den kompletten SDL in seiner jüngsten Version 4.1 abbildet. Dazu bedient sich Microsoft eines Templates für Visual Studio Team System.

Wie Glenn Pittaway, Group Program Manager des SDL-Teams, im Gespräch mit heise Security erklärt, muss der Sourcecode in Visual Studio vorliegen. Andernfalls habe das Template keinen Nutzen. Andererseits würde es Entwicklern, die mit Visual Studio Team System vertraut sind, so maximal einfach gemacht, mit dem SDL zu arbeiten. Selbst Entwickler, die keine ausgesprochene Security-Expertise haben, sollen laut Pittaway so sicheren Code schreiben können.

Ob Microsoft ein Template auch für andere Softwareentwicklungsumgebungen bereitstellt, vermochte Pittaway nicht zu bestätigen. Man warte auf die Rückmeldung der Entwicklergemeinde, und wenn Bedarf angemeldet wird, dann sei auch eine Variante denkbar, die nicht ausschließlich mit Visual Studio funktioniert. Besonderes Augenmerk habe Microsoft laut Pittaway bei SDL 4.1 auf Online-Anwendungen gelegt. Web-Services und auch lokale Anwendungen, die ständig oder oft mit dem Internet verbunden sind, bringen ganz eigene Anforderungen an ein Sicherheitskonzept mit, sodass die SDL-Macher dem Rechnung getragen haben.

Entwickler, die den eigenen Programmierprozess am SDL ausrichten wollen, können die längliche Liste der Vorgaben und Ratschläge an ihre eigenen Bedürfnisse anpassen und müssen sich somit nicht an für sie irrelevanten Prozessschritte entlanghangeln. Jede Aufgabe, wie zum Beispiel das Beseitigen eines Bugs im Sourcecode, kann mit dem Template einer Person oder einem Team zugeordnet werden. Der Status des jeweiligen Projekts soll auf einen Blick ersichtlich sein. Außerdem sollen sich leicht Statistiken und Reports erzeugen lassen, mit denen sich unter anderem die Effektivität von externen Tools zum Aufspüren von Bugs bewerten lassen soll.

Wie relevant das Entwickeln sicherer Anwendungen ist, verdeutlichte der Microsoft-Manager anhand einiger Statistiken. So entfielen inzwischen nur noch knapp zehn Prozent aller aufgetauchten Exploits auf das Betriebssystem. Die übrigen 90 Prozent tauchten laut Pittaway in Anwendungen und Web-Browsern auf. 70 Prozent aller Anwendungsentwickler unterzögen ihre Programme keinerlei Sicherheitstests, bevor sie sie veröffentlichen. Gleichzeitig hat die US-Behörde NIST (National Institute of Standards and Technology) ermittelt, dass es 30-mal günstiger ist, Sicherheitsprobleme bereits während der Designphase zu erkennen und zu beseitigen, als wenn dies nach Fertigstellung des Produkts passiert.

Dass das SDL seinen Zweck erfüllt, bestätigt auch Dan Kaminsky, der zuletzt durch die Entdeckung der DNS-Cache-Poisoning-Schwachstelle im Rampenlicht stand. Er gehört zu den externen Securityexperten, die von Microsoft regelmäßig zur Sourcecode-Überprüfung hinzugezogen werden. Im Gespräch mit Journalisten sagte Kaminsky, dass der mit Hilfe des SDL erzeugte Code um ein Vielfaches besser und sicherer sei als der vor 2004 geschriebene Programmcode.

Siehe dazu auch:

(Uli Ries) / (dab)