Freigeben über


Security Development Lifecycle (SDL) von Microsoft

Sicherheit und Datenschutz sollten bei der Entwicklung sicherer Software niemals im Hinterfragen stehen, es muss ein formaler Prozess vorhanden sein, um sicherzustellen, dass sie an allen Punkten des Produktlebenszyklus berücksichtigt werden. Der Security Development Lifecycle (SDL) von Microsoft bettet umfassende Sicherheitsanforderungen, technologiespezifische Tools und obligatorische Prozesse in die Entwicklung und den Betrieb aller Softwareprodukte ein. Alle Entwicklungsteams bei Microsoft müssen die SDL-Prozesse und -Anforderungen einhalten, was zu einer sichereren Software mit weniger und weniger schwerwiegenden Sicherheitsrisiken bei geringeren Entwicklungskosten führt.

Prozess des Sicherheitsentwicklungslebenszyklus.

Microsoft SDL besteht aus sieben Komponenten, darunter fünf Kernphasen und zwei unterstützende Sicherheitsaktivitäten. Die fünf Kernphasen sind Anforderungen, Entwurf, Implementierung, Überprüfung und Release. Jede dieser Phasen enthält obligatorische Überprüfungen und Genehmigungen, um sicherzustellen, dass alle Sicherheits- und Datenschutzanforderungen und bewährten Methoden ordnungsgemäß berücksichtigt werden. Die beiden unterstützenden Sicherheitsaktivitäten, Training und Reaktion, werden vor und nach den Kernphasen durchgeführt, um sicherzustellen, dass sie ordnungsgemäß implementiert werden, und die Software bleibt nach der Bereitstellung sicher.

Schulungen

Alle Microsoft-Mitarbeiter müssen allgemeine Schulungen zum Sicherheits- und Datenschutzbewusstsein sowie spezifische Schulungen im Zusammenhang mit ihrer Rolle absolvieren. Neue Mitarbeiter werden bei der Einstellung zunächst geschult, und während der gesamten Beschäftigung bei Microsoft sind jährliche Auffrischungsschulungen erforderlich.

Entwickler und Techniker müssen auch an rollenspezifischen Schulungen teilnehmen, um sie über Sicherheitsgrundlagen und aktuelle Trends in der sicheren Entwicklung auf dem Laufenden zu halten. Alle Vollzeitmitarbeiter, Praktikanten, Bedingten, Subunternehmer und Dritten werden ebenfalls ermutigt und erhalten die Möglichkeit, erweiterte Sicherheits- und Datenschutzschulungen zu suchen.

Anforderungen

Jedes Produkt, jeder Dienst und jedes Feature, das Microsoft entwickelt, beginnt mit klar definierten Sicherheits- und Datenschutzanforderungen. sie bilden die Grundlage sicherer Anwendungen und sind die Grundlage für deren Entwurf. Entwicklungsteams definieren diese Anforderungen basierend auf Faktoren wie der Art der Daten, die das Produkt behandeln wird, bekannten Bedrohungen, bewährten Methoden, Vorschriften und Branchenanforderungen sowie den Erkenntnissen aus früheren Vorfällen. Nach der Definition werden die Anforderungen klar dokumentiert und nachverfolgt.

Die Softwareentwicklung ist ein kontinuierlicher Prozess, was bedeutet, dass sich die damit verbundenen Sicherheits- und Datenschutzanforderungen während des gesamten Lebenszyklus des Produkts ändern, um Änderungen in der Funktionalität und der Bedrohungslandschaft widerzuspiegeln.

Entwerfen

Nachdem die Sicherheits-, Datenschutz- und Funktionsanforderungen definiert wurden, kann mit dem Entwurf der Software begonnen werden. Im Rahmen des Entwurfsprozesses werden Bedrohungsmodelle erstellt, um potenzielle Bedrohungen anhand des Risikos zu identifizieren, zu kategorisieren und zu bewerten. Bedrohungsmodelle müssen während des gesamten Lebenszyklus jedes Produkts beibehalten und aktualisiert werden, wenn Änderungen an der Software vorgenommen werden.

Bedrohungsmodellierungsdiagramm.

Der Bedrohungsmodellierungsprozess beginnt mit der Definition der verschiedenen Komponenten eines Produkts und deren Interaktion untereinander in wichtigen Funktionsszenarien, z. B. der Authentifizierung. Datenfluss Diagramme (DFDs) werden erstellt, um wichtige Datenflussinteraktionen, Datentypen, Ports und protokolle visuell darzustellen. DFDs werden verwendet, um Bedrohungen für die Risikominderung zu identifizieren und zu priorisieren, die den Sicherheitsanforderungen des Produkts hinzugefügt werden.

Serviceteams verwenden die Threat Modeling Tool von Microsoft, um Bedrohungsmodelle zu erstellen, die dem Team Folgendes ermöglichen:

  • Kommunizieren über das Sicherheitsdesign ihrer Systeme
  • Analysieren von Sicherheitsentwürfen auf potenzielle Sicherheitsprobleme mithilfe einer bewährten Methodik
  • Vorschlagen und Verwalten der Entschärfung für Sicherheitsprobleme

Bevor ein Produkt veröffentlicht wird, werden alle Bedrohungsmodelle auf Genauigkeit und Vollständigkeit überprüft, einschließlich der Risikominderung für inakzeptable Risiken.

Implementierung

Die Implementierung beginnt damit, dass Entwickler Code gemäß dem Plan schreiben, den sie in den vorherigen beiden Phasen erstellt haben. Microsoft bietet Entwicklern eine Suite sicherer Entwicklungstools, um alle Sicherheits-, Datenschutz- und Funktionsanforderungen der von ihnen entworfenen Software effektiv zu implementieren. Zu diesen Tools gehören Compiler, sichere Entwicklungsumgebungen und integrierte Sicherheitsüberprüfungen.

Überprüfung

Bevor geschriebener Code veröffentlicht werden kann, sind mehrere Überprüfungen und Genehmigungen erforderlich, um zu überprüfen, ob der Code SDL entspricht, die Designanforderungen erfüllt und frei von Codierungsfehlern ist. Manuelle Überprüfungen werden von einem Prüfer unabhängig von dem Techniker durchgeführt, der den Code entwickelt hat. Die Trennung von Aufgaben ist eine wichtige Kontrolle in diesem Schritt, um das Risiko zu minimieren, dass Code geschrieben und freigegeben wird, der zu versehentlichen oder böswilligen Schäden führt.

Verschiedene automatisierte Überprüfungen sind ebenfalls erforderlich und sind in die Pipeline integriert, um Code während des Eincheckens und beim Kompilieren von Builds zu analysieren. Die bei Microsoft verwendeten Sicherheitsprüfungen fallen in die folgenden Kategorien:

  • Statische Codeanalyse: Analysiert Quellcode auf potenzielle Sicherheitslücken, einschließlich des Vorhandenseins von Anmeldeinformationen im Code.
  • Binäre Analyse: Bewertet Sicherheitsrisiken auf binärer Codeebene, um zu bestätigen, dass code produktionsbereit ist.
  • Überprüfung von Anmeldeinformationen und Geheimnissen: Identifizieren Sie mögliche Instanzen von Anmeldeinformationen und Offenlegung von Geheimnissen in Quellcode- und Konfigurationsdateien.
  • Verschlüsselungsüberprüfung: Überprüft bewährte Methoden für die Verschlüsselung in Quellcode und Codeausführung.
  • Fuzztests: Verwenden Sie falsch formatierte und unerwartete Daten, um APIs und Parser durchzuführen, um auf Sicherheitsrisiken zu überprüfen und die Fehlerbehandlung zu überprüfen.
  • Konfigurationsüberprüfung: Analysiert die Konfiguration von Produktionssystemen anhand von Sicherheitsstandards und bewährten Methoden.
  • Component Governance (CG): Open-Source-Softwareerkennung und -überprüfung von Versionen, Sicherheitsrisiken und gesetzlichen Verpflichtungen.

Wenn der manuelle Prüfer oder automatisierte Tools Probleme mit dem Code finden, wird der Übermittlungsgeber benachrichtigt, und er muss die erforderlichen Änderungen vornehmen, bevor er ihn erneut zur Überprüfung übermittelt.

Darüber hinaus werden regelmäßig Penetrationstests auf Microsoft Onlinedienste sowohl von internen als auch von externen Anbietern durchgeführt. Penetrationstests bieten ein weiteres Mittel zur Ermittlung von Sicherheitslücken, die von anderen Methoden nicht erkannt wurden. Weitere Informationen zu Penetrationstests bei Microsoft finden Sie unter Angriffssimulation in Microsoft 365.

Freigabe

Nachdem alle erforderlichen Sicherheitstests und Überprüfungen bestanden wurden, werden Builds nicht sofort für alle Kunden freigegeben. Builds werden in einem so genannten sicheren Bereitstellungsprozess (SDP) systematisch und schrittweise für immer größere Gruppen freigegeben, die als Ringe bezeichnet werden. Die SDP-Ringe können im Allgemeinen wie folgt definiert werden:

  • Ring 0: Das Entwicklungsteam, das für den Dienst oder das Feature verantwortlich ist
  • Ring 1: Alle Microsoft-Mitarbeiter
  • Ring 2: Benutzer außerhalb von Microsoft, die ihre organization oder bestimmte Benutzer so konfiguriert haben, dass sie sich im Zielversionskanal befinden
  • Ring 3: Weltweites Standardrelease in Unterphasen

Builds verbleiben in jedem dieser Ringe für eine angemessene Anzahl von Tagen mit hoher Last, mit Ausnahme von Ring 3, da der Build in den früheren Ringen entsprechend auf Stabilität getestet wurde.

Antwort

Alle Microsoft-Dienste werden nach der Veröffentlichung umfassend protokolliert und überwacht, um potenzielle Sicherheitsvorfälle mithilfe eines zentralisierten proprietären Überwachungssystems nahezu in Echtzeit zu identifizieren. Weitere Informationen zur Sicherheitsüberwachung und zur Verwaltung von Sicherheitsvorfällen bei Microsoft finden Sie unter Übersicht über die Sicherheitsüberwachung und Verwaltung von Sicherheitsvorfällen von Microsoft.