Strategie zabezpečení WPF – Technická příprava zabezpečení
Trustworthy Computing je iniciativa Microsoftu pro zajištění výroby zabezpečeného kódu. Klíčovým prvkem iniciativy Trustworthy Computing je SDL (Microsoft Security Development Lifecycle). SDL je technická praxe, která se používá ve spojení se standardními technickými procesy k usnadnění doručování zabezpečeného kódu. SDL se skládá z deseti fází, které kombinují osvědčené postupy s formalizací, measurabilitym a další strukturou, včetně:
Analýza návrhu zabezpečení
Kontroly kvality založené na nástrojích
Penetrační testování
Konečná kontrola zabezpečení
Správa zabezpečení produktů po vydání
Specifika WPF
Technický tým WPF aplikuje a rozšiřuje SDL, což zahrnuje následující klíčové aspekty:
nástroje pro analýzu zabezpečení a úpravy
Modelování hrozeb
Modelování hrozeb je základní komponentou SDL a slouží k profilování systému k určení potenciálních ohrožení zabezpečení. Jakmile jsou zjištěna ohrožení zabezpečení, modelování hrozeb také zajišťuje, že jsou zavedená vhodná omezení rizik.
Na vyšší úrovni zahrnuje modelování hrozeb následující klíčové kroky, pomocí příkladu s obchodem s potravinami:
identifikace prostředků. Majetek obchodu s potravinami může zahrnovat zaměstnance, trezor, pokladny a inventář.
Výčet Vstupních Bodů. Vstupní body obchodu s potravinami můžou zahrnovat přední a zadní dveře, okna, nakládací dok a klimatizační jednotky.
Vyšetřování útoků na aktiva pomocí vstupních bodů. Jedním z možných útoků může být útok na bezpečného prostředku obchodu s potravinami prostřednictvím klimatizace vstupního bodu; klimatizační jednotka by mohla být unscrewed, aby bylo možné bezpečně vytáhnout ho a z obchodu.
Modelování hrozeb se používá v rámci WPF a zahrnuje následující:
Jak analyzátor XAML čte soubory, mapuje text na odpovídající třídy modelu objektu a vytvoří skutečný kód.
Jak se vytvoří popisovač okna (hWnd), jak odešle zprávy a jak se použije pro vykreslování obsahu okna.
Způsob, jakým datová vazba získává prostředky a komunikuje se systémem
Tyto modely hrozeb jsou důležité pro identifikaci požadavků na návrh zabezpečení a zmírnění hrozeb během procesu vývoje.
Nástroje pro analýzu a úpravy zdroje
Kromě prvků kontroly ručního bezpečnostního kódu SDL používá tým WPF několik nástrojů pro analýzu zdroje a související úpravy, které snižují ohrožení zabezpečení. Používá se široká škála zdrojových nástrojů a zahrnuje následující:
FXCop: Najde běžné problémy se zabezpečením ve spravovaném kódu od pravidel dědičnosti až po použití zabezpečení přístupu ke kódu až po bezpečnou spolupráci s nespravovaným kódem. Viz FXCop.
Prefix/Prefast: Vyhledá bezpečnostní zranitelnosti a běžné problémy související se zabezpečením v nespravovaném kódu, jako jsou přetečení vyrovnávací paměti, problémy s formátovacími řetězci a kontrola chyb.
zakázaných rozhraní API: Vyhledá zdrojový kód a identifikuje náhodné použití funkcí, které jsou dobře známé pro příčiny problémů se zabezpečením, jako je
strcpy
. Po identifikaci se tyto funkce nahradí alternativami, které jsou bezpečnější.
Techniky testování
WPF používá různé techniky testování zabezpečení, které zahrnují:
Testování Whiteboxu: Testeři zobrazí zdrojový kód a pak sestaví testy zneužití.
Testování Blackboxu: Testeři se pokusí identifikovat slabiny v zabezpečení prozkoumáním rozhraní API a funkcí a pak se pokusí napadnout produkt.
Navracení problémů se zabezpečením z jiných produktů: V případě potřeby se testují problémy se zabezpečením z příbuzných produktů. Byly například identifikovány vhodné varianty přibližně šedesáti problémů se zabezpečením pro Internet Explorer a pokusily se o jejich použitelnost pro WPF.
Tools-Based Penetrační testování pomocí fuzzování souborů: Fuzzování souborů je zneužití vstupního rozsahu čtečky souborů prostřednictvím různých vstupů. Jedním z příkladů ve WPF, kde se tato technika používá, je kontrola selhání v dekódovacím kódu obrázku.
Kritická správa kódu
Pro aplikace prohlížeče XAML (XBAPs) WPF sestaví sandbox zabezpečení pomocí podpory rozhraní .NET Framework pro označení a sledování kódu kritického pro zabezpečení, který zvyšuje úroveň oprávnění (viz Security-Critical Metodologie v WPF Security Strategy - Platform Security). Vzhledem k vysokým požadavkům na kvalitu zabezpečení pro kritický kód zabezpečení tento kód obdrží další úroveň kontroly správy zdrojového kódu a auditu zabezpečení. Přibližně 5% až 10% kódu WPF je kritický pro zabezpečení a je prověřován vyhrazeným revizním týmem. Zdrojový kód a proces kontroly a zadávání se spravuje sledováním bezpečnostně kritického kódu a mapováním každé kritické entity (tj. metody obsahující kritický kód) na stav schválení. Stav odhlášení zahrnuje jména jednoho nebo více revidujících. Každý denní build WPF porovnává kritický kód s kódem v předchozích buildech a kontroluje neschválené změny. Pokud technik změní kritický kód bez schválení od revizního týmu, identifikuje se a opraví okamžitě. Tento proces umožňuje aplikaci a údržbu zejména vysoké úrovně kontroly nad kódem sandboxu WPF.
Varování
XBAPs vyžadují, aby fungovaly starší prohlížeče, jako je Internet Explorer a starší verze Firefoxu. Tyto starší prohlížeče jsou obvykle nepodporované ve Windows 10 a Windows 11. Moderní prohlížeče už kvůli rizikům zabezpečení nepodporují technologii potřebnou pro aplikace XBAP. Moduly plug-in, které umožňují XBAPs, se už nepodporují. Další informace najdete v tématu nejčastější dotazy k aplikacím hostovaným v prohlížeči WPF (XBAP).
Viz také
.NET Desktop feedback