Security Development Lifecycle
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.[1] Es kam erstmals bei der Entwicklung von Windows Vista zum Einsatz.[2]
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.[3][4]
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:[5]
- 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
Einzelnachweise
- Steve Lipner und Michael Howard: Entwicklungszyklus für sichere Software. In: MSDN. 30. Mai 2005.
- Beschreibung der Verbesserungen in Windows Vista durch Nutzung des Security Development Lifecycle
- The SDL Progress Report. Abgerufen am 1. Februar 2022 (amerikanisches Englisch).
- heise online: Microsoft zieht Zwischenbilanz für Security Development Lifecycle. Abgerufen am 1. Februar 2022.
- Microsoft Security Development Lifecycle. Abgerufen am 22. Oktober 2018 (amerikanisches Englisch).
Weblinks
- Microsoft Security Development Lifecycle
- A Look Inside the Security Development Lifecycle at Microsoft: Michael Howard in MSDN Magazine, 11/2005
- Der Microsoft-SDL: Niklaus Schild in heise Developer, 19. August 2009
- SDL für Dummys: Uli Ries in heise Security, 2. Februar 2010
- Microsoft stellt SDL für Agile-Softwareentwicklung vor: Daniel Bachfeld in heise Security, 10. November 2009