Dela via


WPF-säkerhetsstrategi – Säkerhetsteknik

Tillförlitlig databehandling är ett Microsoft-initiativ för att säkerställa produktion av säker kod. En viktig del av initiativet Trustworthy Computing är Microsoft Security Development Lifecycle (SDL). SDL är en teknisk praxis som används tillsammans med standardteknikprocesser för att underlätta leverans av säker kod. SDL består av tio faser som kombinerar metodtips med formalisering, mätbarhet och ytterligare struktur, inklusive:

  • Analys av säkerhetsdesign

  • Verktygsbaserade kvalitetskontroller

  • Intrångstestning

  • Slutlig säkerhetsgranskning

  • Produktsäkerhetshantering efter lansering

WPF-specifikationer

WPF-teknikteamet både tillämpar och utökar SDL, vars kombination omfattar följande viktiga aspekter:

Hotmodellering

verktyg för säkerhetsanalys och redigering

Testmetoder

Kritisk kodhantering

Hotmodellering

Hotmodellering är en kärnkomponent i SDL och används för att profilera ett system för att fastställa potentiella säkerhetsrisker. När säkerhetsriskerna har identifierats säkerställer hotmodellering också att lämpliga åtgärder finns på plats.

På hög nivå omfattar hotmodellering följande viktiga steg genom att använda en livsmedelsbutik som exempel:

  1. Identifiera tillgångar. En livsmedelsbutiks tillgångar kan omfatta anställda, kassaskåp, kassaregister och inventering.

  2. uppräkning av startpunkter. En livsmedelsbutiks startpunkter kan innehålla fram- och bakdörrar, fönster, lastkaj och luftkonditioneringsenheter.

  3. Undersöka attacker mot tillgångar genom ingångspunkter. En möjlig attack kan riktas mot en livsmedelsbutiks säkra tillgång genom luftkonditionering startpunkt; luftkonditioneringsenheten kan skruvas ur så att kassaskåpet kan dras upp genom den och ut ur lagret.

Hotmodellering tillämpas i hela WPF och innehåller följande:

  • Hur XAML-parsern läser filer, mappar text till motsvarande objektmodellklasser och skapar den faktiska koden.

  • Hur ett fönsterhandtag (hWnd) skapas, skickar meddelanden och används för att återge innehållet i ett fönster.

  • Hur databindning hämtar resurser och interagerar med systemet.

Dessa hotmodeller är viktiga för att identifiera krav på säkerhetsdesign och hotreducering under utvecklingsprocessen.

Verktyg för källanalys och redigering

Förutom de manuella säkerhetskodgranskningselementen i SDL använder WPF-teamet flera verktyg för källanalys och tillhörande redigeringar för att minska säkerhetsrisker. Ett brett utbud av källverktyg används och omfattar följande:

Varning

Code Access Security (CAS) stöds inte av modern .NET, det är ett .NET Framework-begrepp. Alla CAS-relaterade funktioner behandlas under antagandet om fullständigt förtroende. Mer information finns i Skillnader med WPF .NET – Kodåtkomstsäkerhet.

  • FXCop: Hittar vanliga säkerhetsproblem i hanterad kod, allt från arvsregler till kodåtkomstsäkerhetsanvändning till hur du på ett säkert sätt samverkar med ohanterad kod. Se FXCop.

  • Prefix/Prefast: Hittar säkerhetsrisker och vanliga säkerhetsproblem i ohanterad kod, till exempel buffertöverkörningar, problem med formatsträngar och felkontroll.

  • Förbjudna API:er: Söker efter källkod för att identifiera oavsiktlig användning av funktioner som är välkända för att orsaka säkerhetsproblem, till exempel strcpy. När de har identifierats ersätts dessa funktioner med alternativ som är säkrare.

Testtekniker

WPF använder en mängd olika tekniker för säkerhetstestning som omfattar:

  • Whitebox-testning: Testare visar källkod och skapar sedan exploateringstester.

  • Blackbox Testing: Testare försöker hitta säkerhetsexploateringar genom att undersöka API:et och funktionerna och sedan försöka attackera produkten.

  • Återgick säkerhetsproblem från andra produkter: Där det är relevant testas säkerhetsproblem från relaterade produkter. Till exempel har lämpliga varianter av cirka sextio säkerhetsproblem för Internet Explorer identifierats och provats för deras tillämplighet för WPF.

  • Tools-Based penetrationstestning via filfuzzning: Filfuzzning är utnyttjandet av en filläsares indataintervall genom olika indata. Ett exempel i WPF där den här tekniken används är att söka efter fel i avkodningskoden för bilder.

Hantering av kritisk kod

För XAML-webbläsarprogram (XBAPs) skapar WPF en säkerhetssandbox med hjälp av .NET Framework-stöd för märkning och spårning av säkerhetskritisk kod som höjer behörigheter (se Security-Critical Methodology i WPF Security Strategy – Platform Security). Med tanke på de höga kraven på säkerhetskvalitet för säkerhetskritisk kod får sådan kod ytterligare en nivå av källhanteringskontroll och säkerhetsgranskning. Cirka 5% till 10% av WPF består av säkerhetskritisk kod, som granskas av ett dedikerat granskningsteam. Källkoden och incheckningsprocessen hanteras genom att spåra säkerhetskritisk kod och mappa varje kritisk entitet (dvs. en metod som innehåller kritisk kod) till dess signeringstillstånd. Utloggningstillståndet innehåller namnen på en eller flera granskare. Varje daglig version av WPF jämför den kritiska koden med den i tidigare versioner för att söka efter icke godkända ändringar. Om en tekniker ändrar kritisk kod utan godkännande från granskningsteamet identifieras den och åtgärdas omedelbart. Den här processen möjliggör tillämpning och underhåll av en särskilt hög nivå av granskning av koden i WPF-sandboxen.

Varning

XBAP:er kräver att äldre webbläsare används, till exempel Internet Explorer och gamla versioner av Firefox. Dessa äldre webbläsare stöds vanligtvis inte i Windows 10 och Windows 11. Moderna webbläsare stöder inte längre den teknik som krävs för XBAP-appar på grund av säkerhetsrisker. Plugin-program som aktiverar XBAP:er stöds inte längre. Mer information finns i Vanliga frågor och svar om WPF-webbläsarbaserade program (XBAP).

Se även