Strategie zabezpečení WPF – engineering 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
Testování průniku
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.
Modelováníhrozebch
Identifikace prostředků Majetek obchodu s potravinami může zahrnovat zaměstnance, trezor, pokladny a inventář.
Vytvoření výčtu 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.
Zkoumání útoků na prostředky pomocí vstupních bodů Jedním z možných útoku může být bezpečný prostředek obchodu s potravinami prostřednictvím vstupního bodu klimatizace; jednotka klimatizace by mohla být odkrytá, aby se v něm bezpečně vytáhl 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), odešle zprávy a použije se k vykreslení 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.
Předpona/předrychlý kód: Vyhledá ohrožení zabezpečení a běžné problémy se zabezpečením v nespravovaném kódu, jako jsou přetečení vyrovnávací paměti, problémy s formátovacím řetězcem a kontrola chyb.
Zakázaná rozhraní API: Vyhledá zdrojový kód k identifikaci náhodného použití funkcí, které jsou dobře známé pro příčiny problémů se zabezpečením, například
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í najít zneužití zabezpečení prozkoumáním rozhraní API a funkcí a pak se pokusí na produkt napadnout.
Regrese problémů se zabezpečením z jiných produktů: V případě potřeby se testují problémy se zabezpečením ze související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.
Penetrační testování založené na nástrojích prostřednictvím fuzzingu souborů: Fuzzing 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) vytvoří WPF sandbox zabezpečení pomocí podpory rozhraní .NET Framework pro označení a sledování kódu kritického pro zabezpečení, který zvyšuje oprávnění (viz Metodologie kritická pro zabezpečení WPF – Zabezpečení platformy). 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 % WPF se skládá z kritického kódu zabezpečení, který kontroluje vyhrazený revizní tým. Zdrojový kód a proces vrácení se změnami se spravuje sledováním kritického kódu zabezpečení a mapováním každé kritické entity (tj. metody obsahující kritický kód) na stav odhlášení. 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.
Upozorňující
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