Security Development Lifecycle (SDL) von Microsoft

Sicherheit und Datenschutz sollten bei der Entwicklung sicherer Software niemals nachgedacht werden. 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 reduzierten Entwicklungskosten führt.

Lebenszyklusprozess für die Sicherheitsentwicklung.

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 Freigabe. Jede dieser Phasen enthält obligatorische Prüfungen und Genehmigungen, um sicherzustellen, dass alle Sicherheits- und Datenschutzanforderungen und bewährten Methoden ordnungsgemäß erfüllt werden. Die beiden unterstützenden Sicherheitsaktivitäten, Schulung und Reaktion, werden vor und nach den Kernphasen durchgeführt, um sicherzustellen, dass sie ordnungsgemäß implementiert sind, und Die Software bleibt nach der Bereitstellung sicher.

Schulungen

Alle Microsoft-Mitarbeiter müssen allgemeine Sicherheitsschulungen und spezifische Schulungen durchführen, die für ihre Rolle geeignet sind. Erste Schulungen zur Sicherheitssensibilisierung werden neuen Mitarbeitern bei der Einstellung angeboten, und jährliche Auffrischungsschulungen sind während ihrer gesamten Beschäftigung bei Microsoft erforderlich.

Entwickler und Ingenieure müssen auch an rollenspezifischen Schulungen teilnehmen, um sie über die Sicherheitsgrundlagen und aktuellen Trends bei der sicheren Entwicklung auf dem Laufenden zu halten. Alle Vollzeitmitarbeiter, Praktikanten, Kontingentmitarbeiter, Subunternehmer und Dritte werden ebenfalls ermutigt und erhalten die Möglichkeit, erweiterte Sicherheits- und Datenschutzschulungen in Anspruch zu nehmen.

Anforderungen

Jedes von Microsoft entwickelte Produkt, jede Dienstleistung und jedes Feature beginnt mit klar definierten Sicherheits- und Datenschutzanforderungen. sie sind die Grundlage sicherer Anwendungen und informieren sie über ihren Entwurf. Entwicklungsteams definieren diese Anforderungen basierend auf Faktoren wie der Art der Daten, die das Produkt verarbeiten wird, bekannten Bedrohungen, bewährten Methoden, Vorschriften und Branchenanforderungen sowie den Erkenntnissen aus früheren Vorfällen. Nach der Definition werden die Anforderungen klar definiert, dokumentiert und nachverfolgt.

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

Entwurf

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

Bedrohungsmodellierungsdiagramm.

Der Prozess der Bedrohungsmodellierung beginnt mit der Definition der verschiedenen Komponenten eines Produkts und ihrer Interaktion miteinander in wichtigen funktionalen Szenarien wie der Authentifizierung. Datenfluss Diagramme (DFDs) werden erstellt, um wichtige Datenflussinteraktionen, Datentypen, Ports und verwendete Protokolle visuell darzustellen. DFDs werden verwendet, um Bedrohungen zur Entschärfung zu identifizieren und zu priorisieren, die den Sicherheitsanforderungen des Produkts hinzugefügt werden.

Entwickler müssen die Threat Modeling Tool von Microsoft für alle Bedrohungsmodelle verwenden, wodurch das Team Folgendes ausführen kann:

  • Kommunizieren über das Sicherheitsdesign ihrer Systeme
  • Analysieren von Sicherheitsdesigns auf potenzielle Sicherheitsprobleme mithilfe einer bewährten Methodik
  • Vorschlagen und Verwalten von Abhilfemaßnahmen 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 Reihe sicherer Entwicklungstools, um alle Sicherheits-, Datenschutz- und Funktionsanforderungen der von ihnen entwickelten 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 Prüfungen und Genehmigungen erforderlich, um zu überprüfen, ob der Code SDL entspricht, die Entwurfsanforderungen erfüllt und frei von Codierungsfehlern ist. SDL setzt voraus, dass manuelle Überprüfungen von einem Prüfer getrennt von den Mitarbeitern durchgeführt werden, die den Code entwickelt haben. Die Aufgabentrennung ist ein wichtiges Steuerelement in diesem Schritt, um sicherzustellen, dass kein Code von derselben Person geschrieben und freigegeben werden kann, was zu potenziellen versehentlichen oder böswilligen Schäden führt.

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

  • Statische Codeanalyse: Analysiert den Quellcode auf potenzielle Sicherheitslücken, einschließlich des Vorhandenseins von Anmeldeinformationen im Code.
  • Binäranalyse: Bewertet Sicherheitsrisiken auf binärer Codeebene, um zu bestätigen, dass Code produktionsbereit ist.
  • Anmeldeinformations- und geheimer Scanner: Identifizieren Sie mögliche Instanzen der Belichtung von Anmeldeinformationen und geheimen Informationen in Quellcode- und Konfigurationsdateien.
  • Verschlüsselungsüberprüfung: Überprüft bewährte Methoden für die Verschlüsselung im Quellcode und in der Codeausführung.
  • Fuzz-Tests: Verwenden Sie falsch formatierte und unerwartete Daten, um APIs und Parser anzuwenden, 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): Erkennung und Überprüfung von Versionen, Sicherheitsrisiken und gesetzlichen Verpflichtungen durch Open-Source-Software.

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

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

Freigabe

Nach dem Bestehen aller erforderlichen Sicherheitstests und Überprüfungen werden Builds nicht sofort für alle Kunden veröffentlicht. Builds werden in einem sogenannten sicheren Bereitstellungsprozess (Safe Deployment Process, SDP) systematisch und schrittweise für größere und größere Gruppen freigegeben, die als Ringe bezeichnet werden. Die SDP-Ringe sind wie folgt definiert:

  • Ring 0: Das für den Service zuständige Entwicklungsteam
  • Ring 1: Alle Microsoft-Mitarbeiter
  • Ring 2: Benutzer außerhalb von Microsoft, die ihre Organisation oder bestimmte Benutzer für den gezielten Releasekanal konfiguriert haben
  • Ring 3: Weltweite Standardversion in Teilphasen

Builds verbleiben in jedem dieser Ringe für eine angemessene Anzahl von Tagen mit hohen Ladezeiten, 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, wodurch potenzielle Sicherheitsvorfälle mithilfe eines zentralisierten proprietären Nahezu-Echtzeit-Überwachungssystems identifiziert werden. Weitere Informationen zur Sicherheitsüberwachung und zur Verwaltung von Sicherheitsvorfällen bei Microsoft finden Sie in der Übersicht über die Sicherheitsüberwachung und der Verwaltung von Sicherheitsvorfällen von Microsoft.