Security Development Lifecycle
# 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. 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
