Trustworthy Computing Security Development Lifecycle (Abgekürzt SDL, zu Deutsch Entwicklungszyklus für vertrauenswürdigen Computereinsatz) ist ein 2004 von Microsoft veröffentlichtes Konzept zur Entwicklung von sicherer Software und richtet sich an Softwareentwickler, die Software entwickeln, die böswilligen Angriffen standhalten muss. Stark vereinfacht handelt es sich dabei um Gebote und Verbote, Tipps und Tools. Es kam erstmals bei der Entwicklung von Windows Vista zum Einsatz.
SDL ist weiterhin in die Softwareentwicklung bei Microsoft eingebunden; 2011 zog die Trustworthy Computing Group des Unternehmens eine Zwischenbilanz über die bisher erreichten Ergebnisse mit dieser Methode.
Grundsätze
Microsoft geht bei SDL von folgenden Grundsätzen aus:
Secure by design
Schon in der Planungsphase sollte auf die Sicherheitsbelange der Software eingegangen werden.
Secure by default
Trotz sorgfältigster Planung sollte ein Entwickler von dem Vorhandensein von Sicherheitslücken ausgehen. Aus diesem Grund sollten die Standardeinstellungen (z.B. erforderliche Privilegien) möglichst niedrig gewählt werden und selten benutzte Features standardmäßig deaktiviert werden.
Secure in deployment
Die mitgelieferten Dokumentationen und Tools sollen die Administratoren dabei unterstützen, die Software möglichst optimal einzurichten.
Communications (Software)
Die Entwickler sollten offen mit möglichen Sicherheitslücken umgehen und den Endanwendern schnell Patches oder Workarounds zur Verfügung stellen.
Privacy by design
Schon in der Planungsphase sollten Datenschutzbelange der Software berücksichtigt werden.
Privacy by default
Die Standardeinstellungen der Software sollten konservativ gewählt werden.
Privacy in deployment
Datenschutzmechanismen sollten offengelegt werden, um es Administratoren zu ermöglichen, die internen Datenschutzrichtlinien des Unternehmens umzusetzen.
Communications (Privacy)
Datenschutzerklärungen sollten transparent formuliert werden. Ein Team für Datenschutzvorfälle sollte eingerichtet werden.
Der SDL-Prozess
Die untenstehende Liste entstammt der Dokumentation von Microsoft:
Anforderungsphase: Identifikation der Sicherheitsanforderungen und Schutzziele der zu erstellenden Software und deren Schnittstellen
Entwurfsphase: Identifikation der Komponenten, die grundlegend für die Sicherheit sind; Risikomodellierung
Implementierung: Verwendung von Tools und Test-Methoden sowie Code Reviews
Überprüfungsphase: Beta Test mit Nutzern, systematische Suche nach Sicherheitsmängeln
Veröffentlichung: Ist die Software auch wirklich reif für die Auslieferung
Schaffung der Möglichkeit auf entdeckte Fehler und Schwachstellen schnell zu reagieren
In diesem Artikel oder Abschnitt fehlen noch folgende wichtige Informationen:
Wie weit wurde das Konzept tatsächlich angewendet, mehr Geschichte, weitere Quellen --Crazy1880 19:25, 24. Mai 2010 (CEST)