Automatisierung von Sicherheitstools von SDL kennenlernen

Abgeschlossen

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 genehmigter Tools zur Verwendung durch unsere Entwickler, darunter Compiler und Entwicklungsumgebungen, zusammen mit integrierten Funktionen zur Sicherheitsüberprüfung. Unsere Entwickler verwenden die neuesten Versionen genehmigter Tools, um neue Sicherheitsfeatures nutzen zu können.

Zusätzlich zur Bereitstellung zuverlässiger Entwicklungstools implementiert und erzwingt Microsoft Anforderungen für die SDL-Codeanalyse mithilfe automatischer Sicherheitstools. Viele dieser Tools sind in die Commit-Pipeline integriert und analysieren Code automatisch beim Einchecken und beim Kompilieren und Testen von neuen Builds auf Sicherheitslücken. Probleme, die von unseren automatisierten Sicherheitstools aufgedeckt werden, müssen behoben werden, bevor neue Builds die Sicherheitsüberprüfung durchlaufen und für die Veröffentlichung genehmigt werden können.

Unsere automatisierten Sicherheitstools sind in verschiedene umfassende Kategorien für das Testen von Code in unterschiedlichen Entwicklungsphasen unterteilt, vom Zeitpunkt der Codeübergabe bis zu dessen Freigabe für den Einsatz in Produktionsumgebungen. In der nachstehenden Tabelle sind die Arten von Tools zusammengefasst, die wir bei Microsoft für die SDL-Codeanalyse verwenden.

Sicherheitstool Beschreibung
Statische Codeanalyse Analysiert den Quellcode auf mögliche Sicherheitslücken, einschließlich des Vorhandenseins von Anmeldeinformationen im Code.
Binäre Analyse Bewertet Sicherheitsrisiken auf binärer Codeebene, um zu überprüfen, ob der Code für den Einsatz in Produktionsumgebungen bereit ist.
Verschlüsselungsanalyse Überprüft bewährte Verschlüsselungsmethoden in Quellcode und Codeausführung.
Konfigurationsprüfung Analysiert die Konfiguration von Produktionssystemen auf Sicherheitsstandards und bewährte Methoden hin.

Statische Codeanalyse und binäre Analyse

Das Analysieren von Quellcode vor der Kompilierung ermöglicht eine hochgradig skalierbare Überprüfung von Sicherheitscode und trägt dazu bei, sicherzustellen, dass Richtlinien für die Erstellung sicheren Codes befolgt werden. Unsere Statischen Codeanalysetools überprüfen Quellcode auf häufige Sicherheitsrisiken, Sicherheitslücken wie unsichere Funktionen, Anmeldeinformationen und andere geheimnisse, die im Quellcode eingebettet sind. Die von diesen Tools aufgedeckten Mängel werden als Fehler gekennzeichnet, die von den Entwicklern behoben werden müssen.

Die meisten unserer Tools für die statische Codeanalyse sind in die Commit-Pipeline integriert, um bei jeder Softwareerstellung Sicherheitsrisiken zu erkennen und zu verhindern, dass unsicherer Code eingecheckt wird. Außerdem sind Tools für die statische Codeanalyse in die Entwicklerumgebung integriert, um bestimmte Schwachstellen wie etwa das Vorhandensein unsicherer Funktionen zu erkennen, und um unsicheren Code durch sicherere Alternativen zu ersetzen, während der Entwickler aktiv codiert.

Zusätzlich zur statischen Analyse des Quellcodes verwenden wir automatisierte Tools, um kompilierten Code auf Binärebene auf Sicherheitslücken zu überprüfen, z. B. Compiler-/Linkereinstellungen und andere sicherheitsrelevante binäre Merkmale. Unsere binären Analysetools werden auf jedem Build ausgeführt, um binäre Sicherheitsmängel zu erkennen und sie zur Behebung zu kennzeichnen, bevor ein Build veröffentlicht werden kann.

Verschlüsselungsanalyse

Microsoft achtet darauf, sicherzustellen, dass alle Daten, einschließlich sicherheitsrelevanter Informationen und Verwaltungs- und Kontrolldaten, durch starke Verschlüsselung vor unbeabsichtigter Offenlegung oder Manipulation geschützt sind, wenn sie übertragen oder gespeichert werden. Mit dem SDL werden Entwickler auf die Verwendung anerkannter Verschlüsselungsmodule beschränkt, durch die die Verschlüsselung zuverlässig und sicher implementiert wird. Zur Durchsetzung dieser Richtlinie analysieren und überprüfen unsere Tools Kryptografie-Implementierungen im Quellcode und während der Codeausführung. Unsicherer Einsatz von Kryptografie wird zur Behebung gekennzeichnet und während einer Sicherheitsüberprüfung validiert.

Konfigurationsprüfung

Microsofts Betriebsteams sind in Entwicklungsteams auf der Grundlage des DevOps-Modells eingebunden. Als Bestandteil von DevOps überprüfen wir beständig die sichere Funktionsweise unseres Codes, nachdem ein Build für Produktionsumgebungen veröffentlicht wurde. Unsere Betriebsteams verwenden Prüflisten für die sichere Bereitstellung, die Überprüfung grundlegender Konfigurationen, die Prüfung auf Schwachstellen sowie hostbasierte Systeme zur Erkennung von Eindringversuchen, um zu überprüfen, ob Software entsprechend bewährter Methoden für die Sicherheit konfiguriert und eingesetzt wird. Die von den Betriebsteams erkannten Konfigurationsmängel werden zur Behebung gekennzeichnet, während alle entdeckten Fehler dem entsprechenden Entwicklungsteam zugewiesen werden, um auf Codeebene behoben zu werden. Die Einbeziehung von Betriebssicherheit in unsere SDL-Anforderungen trägt dazu bei, die anhaltende Sicherheit unserer Produkte und Dienste auch nach der Veröffentlichung sicherzustellen.

Weitere Informationen