Freigeben über


WPF-Sicherheitsstrategie – Sicherheitstechnik

Vertrauenswürdiges Computing ist eine Microsoft-Initiative zur Sicherstellung der Produktion von sicherem Code. Ein wichtiges Element der Initiative "Vertrauenswürdiges Computing" ist der Microsoft Security Development Lifecycle (SDL). Sdl ist eine Technische Praxis, die in Verbindung mit Standard-Engineering-Prozessen verwendet wird, um die Bereitstellung von sicherem Code zu erleichtern. Der SDL besteht aus zehn Phasen, die bewährte Methoden mit Formalisierung, Measurierbarkeit und zusätzlicher Struktur kombinieren, darunter:

  • Analyse des Sicherheitsdesigns

  • Qualitätsprüfungen mithilfe von Tools

  • Penetrationstests

  • Endgültige Sicherheitsüberprüfung

  • Verwaltung der Produktsicherheit nach der Veröffentlichung

WPF im Einzelnen

Das WPF-Engineering-Team wendet das SDL sowohl an als auch erweitert es, dessen Kombination die folgenden wichtigen Aspekte umfasst:

Bedrohungsmodellierung

Sicherheitsanalyse und Bearbeitungstools

Testverfahren

Kritisches Code-Management

Bedrohungsmodellierung

Die Bedrohungsmodellierung ist eine Kernkomponente des SDL und wird verwendet, um ein System zu profilieren, um potenzielle Sicherheitsrisiken zu ermitteln. Sobald die Sicherheitsrisiken identifiziert wurden, stellt die Bedrohungsmodellierung auch sicher, dass geeignete Gegenmaßnahmen vorhanden sind.

Auf hoher Ebene umfasst die Bedrohungsmodellierung die folgenden wichtigen Schritte, indem ein Lebensmittelgeschäft als Beispiel verwendet wird:

  1. Ressourcenermittlung. Zu den Vermögenswerten eines Lebensmittelgeschäfts gehören möglicherweise Mitarbeiter, ein Tresor, Kassen und ein Inventar.

  2. Aufzählen der Einstiegspunkte. Zu den Einstiegspunkten eines Lebensmittelgeschäfts gehören die Vorder- und Hintertüren, Fenster, das Ladedock und Klimaanlagen.

  3. Untersuchen von Angriffen auf Ressourcen mithilfe der Einstiegspunkte. Ein mögliches Angriffsszenario könnte auf die Ressource Tresor des Lebensmittelmarkts über den Einstiegspunkt Klimaanlage abzielen; die Klimaanlage könnte demontiert werden, um das Herausziehen des Tresors aus dem Lebensmittelmarkt durch die Lüftungsschächte zu ermöglichen.

Die Bedrohungsmodellierung wird in WPF angewendet und umfasst Folgendes:

  • Wie der XAML-Parser Dateien liest, ordnet Text entsprechenden Objektmodellklassen zu und erstellt den tatsächlichen Code.

  • Wie ein Fensterhandle (hWnd) erstellt wird, Nachrichten sendet und zum Rendern der Inhalte eines Fensters verwendet wird

  • Wie die Datenbindung Ressourcen erlangt und mit dem System interagiert.

Diese Bedrohungsmodelle sind wichtig für die Identifizierung von Sicherheitsentwurfsanforderungen und Bedrohungsminderungen während des Entwicklungsprozesses.

Quellenanalyse- und Bearbeitungswerkzeuge

Zusätzlich zu den manuellen Sicherheitscodeüberprüfungselementen des SDL verwendet das WPF-Team mehrere Tools für die Quellanalyse und zugehörige Bearbeitungen, um Sicherheitsrisiken zu verringern. Es werden eine Vielzahl von Quelltools verwendet, darunter folgende:

  • FXCop: Findet häufige Sicherheitsprobleme in verwaltetem Code, von Vererbungsregeln über die Verwendung von Codezugriffssicherheit bis hin zu sicheren Möglichkeiten der Interoperabilität mit nicht verwaltetem Code. Weitere Informationen finden Sie unter FXCop.

  • Prefix/Prefast: Findet Schwachstellen der Sicherheit und häufige Sicherheitsprobleme in nicht verwaltetem Code, wie etwa Pufferüberläufe, Probleme bei Formatzeichenfolgen und Fehlerprüfung.

  • Gesperrte APIs: Durchsucht den Quellcode, um die versehentliche Verwendung von Funktionen zu identifizieren, die dafür bekannt sind, Sicherheitsprobleme wie strcpyzu verursachen. Nach der Identifizierung werden diese Funktionen durch Alternativen ersetzt, die sicherer sind.

Testtechniken

WPF verwendet eine Vielzahl von Sicherheitstests, die Folgendes umfassen:

  • Whitebox Testing: Tester sehen den Quellcode ein und erstellen dann Exploit-Tests.

  • Blackbox Testing: Tester versuchen, Sicherheitslücken zu finden, indem sie die API und Funktionen untersuchen und dann versuchen, das Produkt anzugreifen.

  • Zurückverfolgen von Sicherheitsproblemen anderer Produkte: Sofern sie relevant sind, werden Sicherheitsprobleme von verwandten Produkten getestet. Beispielsweise wurden geeignete Varianten von ungefähr sechszig Sicherheitsproblemen für Internet Explorer identifiziert und für ihre Anwendbarkeit auf WPF versucht.

  • Toolbasierte Penetrationstests durch Fuzzing mit Daten: Fuzzing mit Daten stellen die Ausnutzung des Eingabebereichs von Dateilesemodulen durch eine Vielzahl von Eingaben dar. Ein Beispiel in WPF, bei dem diese Technik verwendet wird, ist die Überprüfung auf Fehler im Bilddecodierungscode.

Kritische Codeverwaltung

Für XAML-Browseranwendungen (XBAPs) erstellt WPF eine Sicherheits-Sandbox mit .NET Framework-Unterstützung zum Markieren und Nachverfolgen von sicherheitskritischem Code, der Berechtigungen erhöht (siehe Security-Critical Methodologie- in WPF-Sicherheitsstrategie – Plattformsicherheit). Angesichts der hohen Sicherheitsqualitätsanforderungen für sicherheitskritischen Code erhält dieser Code eine zusätzliche Ebene der Quellcodeverwaltung und Sicherheitsüberwachung. Annähernd 5 % bis 10 % von WPF bestehen aus sicherheitskritischem Code, der von einem dedizierten Team überprüft wird. Der Quellcode und der Eincheckvorgang werden verwaltet, indem sicherheitskritischer Code nachverfolgt und jede kritischen Entität (d. h. eine Methode, die kritischen Code enthält) ihrem abgezeichneten Zustand zugeordnet wird. Der abgezeichnete Zustand schließt die Namen eines oder mehrerer Prüfenden ein. Jeder tägliche Build von WPF vergleicht den kritischen Code mit dem in früheren Builds, um nach nicht genehmigten Änderungen zu suchen. Wenn ein Techniker kritischen Code ohne Genehmigung des Prüfteams ändert, wird er identifiziert und sofort behoben. Dieser Prozess ermöglicht die Anwendung und Wartung einer besonders hohen Kontrolle über WPF-Sandkastencode.

Warnung

XBAPs erfordern, dass ältere Browser funktionieren, z. B. Internet Explorer und alte Versionen von Firefox. Diese älteren Browser werden in der Regel unter Windows 10 und Windows 11 nicht unterstützt. Moderne Browser unterstützen die für XBAP-Apps erforderliche Technologie aufgrund von Sicherheitsrisiken nicht mehr. Plug-Ins, die XBAPs aktivieren, werden nicht mehr unterstützt. Weitere Informationen finden Sie unter Häufig gestellte Fragen zu von WPF im Browser gehosteten Anwendungen (XBAP).

Weitere Informationen