Megosztás a következőn keresztül:


WPF biztonsági stratégia – Biztonságtechnika

A Trustworthy Computing egy Microsoft-kezdeményezés a biztonságos kód előállításának biztosítására. A Trustworthy Computing kezdeményezés kulcsfontosságú eleme a Microsoft Security Development Lifecycle (SDL). Az SDL egy mérnöki gyakorlat, amelyet a szabványos mérnöki folyamatokkal együtt használnak a biztonságos kód átadásának megkönnyítésére. Az SDL tíz fázisból áll, amelyek az ajánlott eljárásokat formalizálással, mérhetőséggel és további struktúrával kombinálják, többek között:

  • Biztonsági tervezés elemzése

  • Eszközalapú minőségi ellenőrzések

  • Behatolástesztelés

  • Végső biztonsági felülvizsgálat

  • Kiadás utáni termékbiztonsági kezelés

WPF-sajátosságok

A WPF mérnöki csapata egyaránt alkalmazza és bővíti az SDL-t, amelynek kombinációja a következő főbb szempontokat foglalja magában:

Fenyegetés modellezés

Biztonsági elemzési és szerkesztési eszközök

Tesztelési technikák

Kritikus kódkezelés

Fenyegetésmodellezés

A fenyegetésmodellezés az SDL alapvető összetevője, és a rendszer profilozására szolgál a lehetséges biztonsági rések meghatározásához. A biztonsági rések azonosítása után a fenyegetésmodellezés biztosítja a megfelelő kockázatcsökkentést is.

Magas szinten a fenyegetésmodellezés a következő fő lépéseket foglalja magában egy élelmiszerbolt példáján keresztül:

  1. Eszközök azonosítása. Az élelmiszerboltok eszközei közé tartozhatnak az alkalmazottak, a széfek, a pénztárgépek és a leltár.

  2. Belépési pontok számbavétele. Egy élelmiszerbolt belépési pontjai közé tartozhatnak az első és a hátsó ajtók, az ablakok, a rakodó dokkoló és a légkondicionáló egységek.

  3. Adategységek elleni támadások vizsgálata belépési pontok használatával. Egy lehetséges támadás egy élelmiszerbolt biztonságos eszközét célozhatja meg a légkondicionáló belépési ponton keresztül; a légkondicionáló berendezést le lehet csavarni, hogy a széfet fel lehessen húzni rajta, és ki lehessen húzni a boltból.

A fenyegetések modellezése a WPF-ben történik, és a következőket tartalmazza:

  • Hogyan olvassa be az XAML-elemző a fájlokat, hogyan képez le szöveget a megfelelő objektummodell-osztályokra, és hogyan hozza létre a tényleges kódot.

  • Hogyan jön létre egy ablakfogópont (hWnd), hogyan küld üzeneteket, és hogyan jeleníti meg az ablak tartalmát.

  • Hogyan szerzi be az adatkötés az erőforrásokat, és hogyan kommunikál a rendszerrel.

Ezek a fenyegetésmodellek fontosak a biztonsági tervezési követelmények és a fenyegetéscsökkentések azonosításához a fejlesztési folyamat során.

Forráselemzési és -szerkesztési eszközök

Az SDL manuális biztonságikód-felülvizsgálati elemei mellett a WPF-csapat számos eszközt használ a forráselemzéshez és a kapcsolódó módosításokhoz a biztonsági rések csökkentése érdekében. A forráseszközök széles skáláját használják, és tartalmazzák a következőket:

Figyelmeztetés

A code Access Security (CAS) használatát a modern .NET nem támogatja, ez egy .NET-keretrendszerre vonatkozó fogalom. A CAS-tal kapcsolatos összes funkció a teljes megbízhatóság feltételezése alapján lesz kezelve. További információt a WPF .NET – Code Access Security különbségei című témakörben talál.

  • FXCop: Megkeresi a felügyelt kód gyakori biztonsági problémáit az öröklési szabályoktól a kódhozzáférési biztonsági használaton át a nem felügyelt kódokkal való biztonságos együttműködésig. Lásd : FXCop.

  • Prefix/Prefast: Megkeresi a nem felügyelt kód biztonsági réseit és gyakori biztonsági problémáit, például a puffertúllépéseket, a formátum sztring problémákat és a hibaellenőrzést.

  • Tiltott API-k: A forráskódban megkeresi az olyan függvények véletlen használatát, amelyek jól ismertek arról, hogy biztonsági problémákat okoznak, például strcpy. Miután azonosította ezeket a függvényeket, a rendszer lecseréli a biztonságosabb alternatívákat.

Tesztelési technikák

A WPF számos biztonsági tesztelési technikát használ, amelyek a következők:

  • Whitebox-tesztelés: A tesztelők megtekinthetik a forráskódot, majd biztonsági résteszteket hozhatnak létre.

  • Blackbox-tesztelés: A tesztelők az API és a funkciók vizsgálatával próbálják megtalálni a biztonsági réseket, majd megpróbálják megtámadni a terméket.

  • Más termékek biztonsági problémáinak regressziója: Ahol releváns, a kapcsolódó termékek biztonsági problémáit teszteljük. Például az Internet Explorer körülbelül hatvan biztonsági problémájának megfelelő változatait azonosították, és megpróbálták a WPF-re való alkalmazhatóságukat.

  • Tools-Based Penetrációs tesztelés a fájlfuzzingon keresztül: A fájlfuzzing a fájlolvasó bemeneti tartományának kihasználása számos bemeneten keresztül. Az egyik példa a WPF-ben, ahol ezt a technikát használják, a rendszerkép-dekódoló kód meghibásodásának ellenőrzése.

Kritikus kódkezelés

XAML böngészőalkalmazások (XBAP-k) esetén a WPF biztonsági tesztkörnyezetet hoz létre a .NET-keretrendszer támogatásával a jogosultságokat emelő, biztonsági szempontból kritikus kód megjelöléséhez és nyomon követéséhez (lásdSecurity-Critical WPF biztonsági stratégia – platformbiztonság módszertanát). A biztonsági szempontból kritikus kódra vonatkozó magas biztonsági minőségi követelmények miatt az ilyen kód további szintű forráskezelési ellenőrzést és biztonsági auditot kap. A WPF körülbelül 5%–10% tartalmaz biztonsági szempontból kritikus kódot, amelyet egy dedikált felülvizsgáló csapat tekint át. A forráskód és a bejelentkezési folyamat a biztonsági szempontból kritikus kód nyomon követésével és az egyes kritikus entitások (azaz a kritikus kódot tartalmazó metódus) kijelentkezési állapotához való leképezésével kezelhető. A kijelentkezés állapota egy vagy több véleményező nevét tartalmazza. A WPF minden napi buildje összehasonlítja a kritikus kódot az előző buildekben szereplő kóddal, hogy ellenőrizze a nem jóváhagyott módosításokat. Ha egy mérnök módosítja a kritikus kódot a felülvizsgáló csapat jóváhagyása nélkül, a rendszer azonnal azonosítja és kijavítja. Ez a folyamat lehetővé teszi a WPF tesztkörnyezet kódjának különösen magas szintű vizsgálatát és karbantartását.

Figyelmeztetés

Az XBAP-k működéséhez régi böngészőkre van szükség, például az Internet Explorerre és a Firefox régi verzióira. Ezek a régebbi böngészők általában nem támogatottak a Windows 10-ben és a Windows 11-ben. A modern böngészők már nem támogatják az XBAP-alkalmazásokhoz szükséges technológiát a biztonsági kockázatok miatt. Az XBAP-ket engedélyező beépülő modulok már nem támogatottak. További információ: A WPF böngésző által üzemeltetett alkalmazásokkal (XBAP) kapcsolatos gyakori kérdések.

Lásd még