Übersicht über Sicherheitsentwicklung und -betrieb

Wie implementiert Microsoft sichere Entwicklungsmethoden?

Der Security Development Lifecycle (SDL) von Microsoft ist ein Prozess zur Gewährleistung der Sicherheit, der sich auf die Entwicklung und den Betrieb sicherer Software konzentriert. Der SDL enthält detaillierte, messbare Sicherheitsanforderungen für Entwickler und Techniker bei Microsoft, um die Anzahl und den Schweregrad von Sicherheitsrisiken in unseren Produkten und Dienstleistungen zu reduzieren. Alle Microsoft-Softwareentwicklungsteams müssen die SDL-Anforderungen erfüllen, und wir aktualisieren das SDL kontinuierlich, um die sich ändernde Bedrohungslandschaft, bewährte Branchenmethoden und gesetzliche Standards für Compliance widerzuspiegeln.

Wie verbessert SDL von Microsoft die Anwendungssicherheit?

Der SDL-Prozess bei Microsoft kann in fünf Phasen der Entwicklung betrachtet werden: Anforderungen, Entwurf, Implementierung, Überprüfung und Release. Es beginnt mit der Definition von Softwareanforderungen unter Berücksichtigung der Sicherheit. Um dieses Ziel zu erreichen, stellen wir sicherheitsrelevante Fragen dazu, was die Anwendung erreichen muss. Muss die Anwendung vertrauliche Daten sammeln? Wird der Antrag vertrauliche oder wichtige Aufgaben erfüllen? Muss die Anwendung Eingaben aus nicht vertrauenswürdigen Quellen akzeptieren?

Sobald die relevanten Sicherheitsanforderungen identifiziert sind, entwerfen wir unsere Software so, dass sie Sicherheitsfunktionen enthält, die diese Anforderungen erfüllen. Unsere Entwickler implementieren SDL- und Designanforderungen in den Code, den wir durch manuelle Codeüberprüfung, automatisierte Sicherheitstools und Penetrationstests verifizieren. Bevor Der Code veröffentlicht werden kann, werden neue Features und wesentliche Änderungen abschließend einer endgültigen Sicherheits- und Datenschutzüberprüfung unterzogen, um sicherzustellen, dass alle Anforderungen erfüllt sind.

Wie testt Microsoft Quellcode auf häufige Sicherheitsrisiken?

Um unsere Entwickler beim Implementieren von Sicherheitsanforderungen während der Codeentwicklung und nach der Veröffentlichung zu unterstützen, bietet Microsoft eine Reihe sicherer Entwicklungstools, mit denen der Quellcode automatisch auf Sicherheitslücken und -risiken überprüft werden kann. Microsoft definiert und veröffentlicht eine Liste der genehmigten Tools, die unsere Entwickler verwenden können, z. B. Compiler und Entwicklungsumgebungen, sowie die integrierten Sicherheitsprüfungen, die automatisch in Microsoft-Buildpipelines ausgeführt werden. Unsere Entwickler verwenden die neuesten Versionen genehmigter Tools, um neue Sicherheitsfeatures nutzen zu können.

Bevor Code in einen Releasebranch eingecheckt werden kann, erfordert der SDL eine manuelle Codeüberprüfung durch einen separaten Prüfer. Codeüberprüfer suchen nach Codierungsfehlern und überprüfen, ob Codeänderungen den SDL- und Konzeptanforderungen entsprechen, ob sie Funktions- und Sicherheitstests bestehen und zuverlässig funktionieren. Außerdem prüfen sie zugeordnete Dokumentationen, Konfigurationen und Abhängigkeiten, um sicherzustellen, dass die Codeänderungen ordnungsgemäß dokumentiert wurden und keine unbeabsichtigten Nebeneffekte zur Folge haben. Wenn ein Überprüfer während der Codeüberprüfung auf Probleme stößt, kann er die einreichende Person auffordern, den Code mit den vorgeschlagenen Änderungen und nach zusätzlichen Tests erneut einzureichen. Codeüberprüfer können die Übernahme des Codes auch gänzlich verhindern, wenn dieser den Anforderungen nicht entspricht. Sobald der Code vom Prüfer als zufriedenstellend eingestuft wurde, erteilt der Prüfer eine Genehmigung, die erforderlich ist, bevor der Code mit der nächsten Bereitstellungsphase fortfahren kann.

Zusätzlich zu sicheren Entwicklungstools und manueller Codeüberprüfung erzwingt Microsoft SDL-Anforderungen mithilfe automatisierter Sicherheitstools. Viele dieser Tools sind in die Commitpipeline integriert und analysieren Code automatisch auf Sicherheitslücken, wenn er eingecheckt wird und wenn neue Builds kompiliert werden. Beispiele hierfür sind statische Codeanalyse für häufige Sicherheitslücken und Überprüfungen von Anmeldeinformationen, die Code auf eingebettete Geheimnisse analysieren. Probleme, die von automatisierten Sicherheitstools aufgedeckt werden, müssen behoben werden, bevor neue Builds die Sicherheitsüberprüfung bestehen und für die Veröffentlichung genehmigt werden können.

Wie verwaltet Microsoft Open-Source-Software?

Microsoft hat eine allgemeine Strategie für die Verwaltung von Open-Source-Sicherheit eingeführt, die Tools und Workflows verwendet, die für Folgendes konzipiert sind:

  • Verstehen, welche Open Source-Komponenten in unseren Produkten und Diensten verwendet werden.
  • Erfassen, wo und wie diese Komponenten verwendet werden.
  • Ermitteln, ob diese Komponenten Sicherheitsrisiken aufweisen.
  • Bei ermittelten Sicherheitsrisiken, die sich auf diese Komponenten auswirken, angemessen zu reagieren.

Microsoft-Entwicklungsteams sind für die Sicherheit aller Open Source-Software, die in einem Produkt oder Dienst enthalten ist, verantwortlich. Um diese Sicherheit im großen Stil zu erreichen, hat Microsoft wesentliche Funktionen in Entwicklungssysteme über Die Komponentengovernance (Component Governance, CG) integriert, die Open-Source-Erkennung, rechtliche Anforderungsworkflows und Warnungen für anfällige Komponenten automatisiert. Automatisierte CG-Tools überprüfen Builds bei Microsoft auf Open-Source-Komponenten und zugehörige Sicherheitsrisiken oder gesetzliche Verpflichtungen. Entdeckte Komponenten werden registriert und den zuständigen Teams für Business-und Security Reviews übermittelt. Diese Überprüfungen sind so ausgelegt, dass sie alle rechtlichen Verpflichtungen oder Sicherheitsrisiken auswerten, die mit Open Source-Komponenten verbunden sind, und diese beheben, bevor sie Komponenten für die Bereitstellung genehmigen.

Die Onlinedienste von Microsoft werden regelmäßig auf Einhaltung externer Vorschriften und Zertifizierungen überprüft. In der folgenden Tabelle finden Sie Informationen zur Überprüfung von Steuerelementen im Zusammenhang mit der Entwicklung und dem Betrieb der Sicherheit.

Azure und Dynamics 365

Externe Überwachungen Section Datum des letzten Berichts
ISO 27001/27002

Erklärung der Anwendbarkeit
Zertifikat
A.12.1.2: Steuerungen der Änderungsverwaltung
A.14.2: Sicherheit in Entwicklungs- und Supportprozessen
6. November 2023
ISO 27017

Erklärung der Anwendbarkeit
Zertifikat
A.12.1.2: Steuerungen der Änderungsverwaltung
A.14.2: Sicherheit in Entwicklungs- und Supportprozessen
6. November 2023
SOC 1
SOC 2
SOC 3
SDL-1: Sdl-Methodik (Security Development Lifecycle)
SDL-2: Sicherheitskontrollanforderungen, die in Releases dokumentiert sind
SDL-4: Trennung von Test- und Produktionsumgebungen
SDL-6: Malwarescans für Quellcodebuilds
SDL7: Halbjährlicher SDL-Review
17. November 2023

Microsoft 365

Externe Überwachungen Section Datum des letzten Berichts
FedRAMP (Office 365) SA-3: Lebenszyklus der Systementwicklung 31. Juli 2023
ISO 27001/27002/27017

Erklärung der Anwendbarkeit
Zertifizierung (27001/27002)
Zertifizierung (27017)
A.12.1.2: Steuerungen der Änderungsverwaltung
A.14.2: Sicherheit in Entwicklungs- und Supportprozessen
März 2024
SOC 1
SOC 2
CA-03: Risikomanagement
CA-18: Change Management
CA-19: Änderungsüberwachung
CA-21: Änderungstests
CA-38: Baselinekonfigurationen
CA-46: Sicherheitsüberprüfung
23. Januar 2024

Ressourcen