Sdílet prostřednictvím


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:

Modelování hrozeb

Nástroje pro analýzu zabezpečení a úpravy

Techniky testování

Kritická správa kódu

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

  1. Identifikace prostředků Majetek obchodu s potravinami může zahrnovat zaměstnance, trezor, pokladny a inventář.

  2. 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.

  3. 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é