Referenční informace k ochraně proti zneužití
Platí pro:
- Plán 1 pro Microsoft Defender for Endpoint
- Plán 2 pro Microsoft Defender pro koncový bod
- Microsoft Defender XDR
Chcete vyzkoušet Defender pro Endpoint? Zaregistrujte se a získejte bezplatnou zkušební verzi,
Ochrana před zneužitím poskytuje pokročilou ochranu aplikací, které můžou podnikoví správci a IT specialisté použít poté, co vývojář zkompiluje a distribuuje software.
Tento článek vám pomůže pochopit, jak funguje ochrana před zneužitím, a to jak na úrovni zásad, tak na úrovni jednotlivých omezení rizik, aby vám pomohla úspěšně sestavovat a uplatňovat zásady ochrany před zneužitím.
Způsob použití zmírnění rizik
Omezení rizik ochrany před zneužitím se aplikují na každou aplikaci.
Zmírnění rizik se konfigurují prostřednictvím položky registru pro každý program, pro který konfigurujete ochranu. Tato nastavení jsou uložená v položce registru MitigationOptions pro jednotlivé programy (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\*ImageFileName*\MitigationOptions
). Projeví se při restartování programu a zůstanou v platnosti, dokud je nezměníte a program znovu nerestartovat.
Důležité
Možnosti spuštění souboru bitové kopie umožňují zadat pouze název nebo cestu k souboru, nikoli číslo verze, architekturu ani jiné rozdíly. Buďte opatrní a zaměřte omezení rizik na aplikace, které mají jedinečné názvy nebo cesty, a používejte je jenom na zařízeních, na kterých jste tuto verzi a architekturu aplikace otestovali.
Pokud nakonfigurujete zmírnění rizik ochrany před zneužitím pomocí konfiguračního souboru XML pomocí PowerShellu, Zásady skupiny nebo MDM, při zpracování tohoto konfiguračního souboru XML se nakonfigurují jednotlivá nastavení registru.
Resetování ochrany před zneužitím
Důležité
Pokud se už zásady distribuce souboru XML nevynucují, nastavení nasazená tímto konfiguračním souborem XML se automaticky neodeberou.
Pokud chcete odebrat nastavení ochrany před zneužitím, exportujte konfiguraci XML z čistého Windows 10 nebo Windows 11 zařízení a nasaďte tento nový soubor XML. Microsoft také poskytuje soubor XML jako součást standardních hodnot Zabezpečení Windows pro resetování nastavení ochrany před zneužitím.
Pokud chcete resetovat nastavení ochrany exploit protection pomocí PowerShellu, použijte následující příkaz:
Set-ProcessMitigation -PolicyFilePath EP-reset.xml
Následuje soubor EP-reset.xml distribuovaný se směrnými plány Zabezpečení Windows:
<?xml version="1.0" encoding="UTF-8"?>
<MitigationPolicy>
<AppConfig Executable="ONEDRIVE.EXE">
<DEP OverrideDEP="false" />
<ASLR OverrideRelocateImages="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
<ImageLoad OverrideBlockRemoteImages="false" />
</AppConfig>
<AppConfig Executable="firefox.exe">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
</AppConfig>
<AppConfig Executable="fltldr.exe">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
<ImageLoad OverrideBlockRemoteImages="false" />
<ChildProcess OverrideChildProcess="false" />
</AppConfig>
<AppConfig Executable="GROOVE.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
<ImageLoad OverrideBlockRemoteImages="false" />
<ChildProcess OverrideChildProcess="false" />
</AppConfig>
<AppConfig Executable="Acrobat.exe">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="AcroRd32.exe">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="chrome.exe">
<DEP OverrideDEP="false" />
</AppConfig>
<AppConfig Executable="EXCEL.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="iexplore.exe">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="INFOPATH.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="java.exe">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="javaw.exe">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="javaws.exe">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="LYNC.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="MSACCESS.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="MSPUB.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="OIS.EXE">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="OUTLOOK.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="plugin-container.exe">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="POWERPNT.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="PPTVIEW.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="VISIO.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="VPREVIEW.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="WINWORD.EXE">
<DEP OverrideDEP="false" />
<ASLR ForceRelocateImages="true" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="wmplayer.exe">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
<AppConfig Executable="wordpad.exe">
<DEP OverrideDEP="false" />
<Payload OverrideEnableExportAddressFilter="false" OverrideEnableExportAddressFilterPlus="false" OverrideEnableImportAddressFilter="false" OverrideEnableRopStackPivot="false" OverrideEnableRopCallerCheck="false" OverrideEnableRopSimExec="false" />
</AppConfig>
</MitigationPolicy>
Referenční informace ke zmírnění rizik
V následujících částech jsou podrobně popsané ochrany poskytované jednotlivými zmírněními ochrany před zneužitím, důležité informace o kompatibilitě pro zmírnění rizik a dostupné možnosti konfigurace.
Ochrana proti spuštění libovolného kódu
Popis
Ochrana proti spuštění libovolného kódu pomáhá chránit před útočníkem, který načítá kód podle svého výběru do paměti prostřednictvím bezpečnostní chyby v paměti a je schopen tento kód spustit.
Ochrana libovolného kódu chrání aplikaci před spuštěním dynamicky generovaného kódu (kód, který není načten, například ze samotného exe nebo knihovny DLL). Ochrana proti spuštění libovolného kódu funguje tak, že zabraňuje označení paměti jako spustitelné. Když se aplikace pokusí přidělit paměť, zkontrolujeme příznaky ochrany. (Paměť je možné přidělit pomocí příznaků ochrany pro čtení, zápis nebo spouštění.) Pokud se přidělení pokusí zahrnout příznak ochrany spuštění, přidělení paměti selže a vrátí kód chyby (STATUS_DYNAMIC_CODE_BLOCKED). Podobně platí, že pokud se aplikace pokusí změnit příznaky ochrany paměti, která již byla přidělena a obsahuje příznak ochrany spuštění, změna oprávnění selže a vrátí kód chyby (STATUS_DYNAMIC_CODE_BLOCKED).
Když zabráníte nastavení příznaku spuštění, funkce zabránění spuštění dat Windows 10 a Windows 11 pak může chránit před ukazatelem na instrukce nastaveným na tuto paměť a spuštěním tohoto kódu.
Důležité informace o kompatibilitě
Ochrana proti spuštění libovolného kódu zabraňuje přidělení jakékoli paměti jako spustitelného souboru, což představuje problém s kompatibilitou s přístupy, jako jsou kompilátory JIT (Just-in-Time). Většina moderních prohlížečů například kvůli optimalizaci výkonu kompiluje JavaScript do nativního kódu. Aby bylo možné toto zmírnění podpořit, je potřeba změnit architekturu tak, aby se kompilace JIT přesunula mimo chráněný proces. Jiné aplikace, jejichž návrh dynamicky generuje kód ze skriptů nebo jiných zprostředkujících jazyků, jsou podobně nekompatibilní s tímto zmírněním rizik.
Možnosti konfigurace
Povolit odhlášení vlákna – Můžete nakonfigurovat zmírnění rizik tak, aby se jednotlivá vlákna odhlásily z této ochrany. Vývojář musí napsat aplikaci s vědomím tohoto zmírnění a volat rozhraní API SetThreadInformation s parametrem ThreadInformation nastaveným na ThreadDynamicCodePolicy , aby bylo možné v tomto vlákně spouštět dynamický kód.
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli změřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Defender for Endpoint.
Blokovat obrázky s nízkou integritou
Popis
Blokování imagí s nízkou integritou zabraňuje aplikaci v načítání nedůvěryhodných souborů, obvykle proto, že byly staženy z internetu z prohlížeče v izolovaném prostoru (sandbox).
Toto omezení rizik blokuje načítání imagí, pokud má image Access Control Entry (ACE), která uděluje přístup k procesům s nízkou úrovní il a která nemá popisek důvěryhodnosti ACE. Implementuje ho správce paměti, který blokuje mapování souboru do paměti. Pokud se aplikace pokusí namapovat image s nízkou integritou, aktivuje STATUS_ACCESS_DENIED chybu. Podrobnosti o tom, jak úrovně integrity fungují, najdete v tématu Povinná kontrola integrity.
Důležité informace o kompatibilitě
Blokovat image s nízkou integritou brání aplikaci v načítání souborů stažených z internetu. Pokud pracovní postup aplikace vyžaduje načtení stažených imagí, chcete zajistit, aby se stahovaly z procesu s vyšší důvěryhodností nebo byly explicitně znovu označeny, aby bylo možné toto omezení rizik použít.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Blokovat vzdálené obrázky
Popis
Blokování vzdálených imagí pomáhá zabránit aplikaci v načítání souborů hostovaných na vzdáleném zařízení, jako je například sdílená složka UNC. Blokování vzdálených imagí pomáhá chránit před načítáním binárních souborů do paměti, které jsou na externím zařízení řízeném útočníkem.
Toto omezení rizik blokuje načtení image, pokud se zjistí, že je image na vzdáleném zařízení. Implementuje ho správce paměti, který blokuje mapování souboru do paměti. Pokud se aplikace pokusí namapovat vzdálený soubor, aktivuje STATUS_ACCESS_DENIED chybu.
Důležité informace o kompatibilitě
Blokování vzdálených imagí brání aplikaci v načítání imagí ze vzdálených zařízení. Pokud vaše aplikace načte soubory nebo moduly plug-in ze vzdálených zařízení, nebude kompatibilní s tímto zmírněním rizik.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Blokovat nedůvěryhodná písma
Popis
Blokování nedůvěryhodných písem snižuje riziko chyby při analýze písma, což vede k tomu, že útočník může na zařízení spustit kód. GDI načte jenom písma, která jsou nainstalovaná do adresáře windows\fonts.
Toto zmírnění je implementováno v rámci rozhraní GDI, které ověřuje umístění souboru. Pokud soubor není v adresáři systémových písem, písmo se pro analýzu nenačte a volání selže.
Toto zmírnění je navíc k integrovanému zmírnění rizik poskytnutému v Windows 10 1607 a novějších verzích a ve Windows 11, které přesouvá analýzu písma z jádra a do kontejneru aplikace v uživatelském režimu. Jakékoli zneužití založené na analýze písma v důsledku toho probíhá v izolovaném a izolovaném kontextu, což významně snižuje riziko. Podrobnosti o tomto zmírnění rizik najdete na blogu Posílení zabezpečení Windows 10 s nulovým zmírněním zneužití.
Důležité informace o kompatibilitě
Nejběžnějším použitím písem mimo adresář systémových písem jsou webová písma. Moderní prohlížeče, jako je Microsoft Edge, používají místo GDI DirectWrite a nejsou ovlivněné. Starší prohlížeče, jako je Internet Explorer 11 (a režim IE v novém Microsoft Edge), ale můžou být ovlivněné, zejména u aplikací, jako je Office 365, které k zobrazení uživatelského rozhraní používají piktogramy písem.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Ochrana integrity kódu
Popis
Ochrana integrity kódu zajišťuje digitální podepsání všech binárních souborů načtených do procesu společností Microsoft. Ochrana integrity kódu zahrnuje podpisy WHQL (Windows Hardware Quality Labs), které umožňují spuštění ovladačů schválených pro WHQL v rámci procesu.
Toto zmírnění je implementováno ve správci paměti, což blokuje namapování binárního souboru do paměti. Pokud se pokusíte načíst binární soubor, který není podepsaný Microsoftem, vrátí správci paměti chybu STATUS_INVALID_IMAGE_HASH. Blokováním na úrovni správce paměti zabráníte tomu, aby proces načetl binární soubory i binární soubory vložené do procesu.
Důležité informace o kompatibilitě
Toto zmírnění rizik konkrétně blokuje všechny binární soubory, které nejsou podepsané Microsoftem. Proto je nekompatibilní s většinou softwaru od jiných společností než Microsoft, pokud tento software není distribuovaný (a digitálně podepsaný) službou Microsoft Store a není vybrána možnost povolit načítání obrázků podepsaných obchodem Microsoft Store.
Možnosti konfigurace
Povolte také načítání imagí podepsaných službou Microsoft Store – Aplikace distribuované službou Microsoft Store jsou digitálně podepsány službou Microsoft Store a přidáním této konfigurace umožníte, aby aplikace načítala binární soubory, které procházejí procesem certifikace obchodu.
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Ochrana toku řízení (CFG)
Popis
Ochrana toku řízení (CFG) zmírňuje riziko útočníků využívajících ohrožení zabezpečení poškození paměti tím, že chrání nepřímá volání funkcí. Útočník může například pomocí chyby zabezpečení přetečení vyrovnávací paměti přepsat paměť obsahující ukazatel na funkci a nahradit tento ukazatel funkce ukazatelem na spustitelný kód podle vlastního výběru (který by také mohl být vložen do programu).
Toto zmírnění je poskytováno vložením další kontroly při kompilaci. Před každým nepřímým voláním funkce se přidají další pokyny, které před voláním ověřují, že cíl je platným cílem volání. Pokud cíl není platným cílem volání, aplikace se ukončí. Z tohoto zmírnění proto můžou těžit jenom aplikace, které jsou kompilované s podporou CFG.
Kontrola platného cíle je poskytována jádrem systému Windows. Když se načtou spustitelné soubory, metadata pro nepřímé cíle volání se extrahují při načítání a označí se jako platné cíle volání. Pokud je paměť přidělená a označená jako spustitelná (například pro vygenerovaný kód), označí se tato umístění paměti také jako platné cíle volání, aby podporovala mechanismy, jako je kompilace JIT.
Důležité informace o kompatibilitě
Vzhledem k tomu, že aplikace musí být kompilovány, aby podporovaly CFG, implicitně s ním deklarují kompatibilitu. Většina aplikací by proto měla s povoleným zmírněním rizik pracovat. Vzhledem k tomu, že se tyto kontroly kompilují do binárního souboru, je konfigurace, kterou můžete použít, jenom zakázat kontroly v rámci jádra Windows. Jinými slovy, zmírnění rizik je ve výchozím nastavení zapnuté, ale můžete nakonfigurovat jádro Windows tak, aby vždy vracelo ano, pokud později zjistíte, že došlo k problému s kompatibilitou, který vývojář aplikace při testování nezjišťoval, což by mělo být vzácné.
Možnosti konfigurace
Použít striktní CFG – Ve striktním režimu musí být všechny binární soubory načtené do procesu zkompilovány pro Ochranu toku řízení (nebo v nich nesmí být žádný spustitelný kód , například knihovny DLL prostředků), aby bylo možné je načíst.
Poznámka
Ochrana toku řízení nemá žádný režim auditování. Binární soubory se kompilují s povoleným zmírněním rizik.
Zabránění spuštění dat (DEP)
Popis
Zabránění spuštění dat (DEP) brání spuštění paměti, která nebyla explicitně přidělena jako spustitelný soubor. DEP pomáhá chránit před útočníkem, který do procesu vloží škodlivý kód, například prostřednictvím přetečení vyrovnávací paměti, a pak tento kód spustí.
Pokud se pokusíte nastavit ukazatel na instrukce na adresu paměti, která není označena jako spustitelná, procesor vyvolá výjimku (obecné porušení ochrany), což způsobí chybové ukončení aplikace.
Důležité informace o kompatibilitě
Všechny spustitelné soubory x64, ARM a Arm64 mají ve výchozím nastavení povolenou funkci DEP a nedá se zakázat. Vzhledem k tomu, že se aplikace nespustí bez programu DEP, předpokládá se kompatibilita.
Všechny binární soubory x86 (32bitové) mají ve výchozím nastavení povolené DEP, ale DEP se dá zakázat pro každý proces. Některé starší aplikace, obvykle aplikace vyvinuté před aktualizací Windows XP SP2, nemusí být kompatibilní s programem DEP. Takové aplikace obvykle generují kód dynamicky (například kompilaci JIT) nebo odkazují na starší knihovny (například starší verze ATL), které dynamicky generují kód.
Možnosti konfigurace
Povolit emulaci převodní rutiny ATL – Tato možnost konfigurace zakáže emulaci převodní rutiny ATL. Knihovna šablon ActiveX ATL je navržená tak, aby byla co nejmenší a nejrychlejší. Ke zmenšení binární velikosti by se použila technika nazývaná převodní rutina. Převod dat se obvykle považuje za interakci mezi 32bitovými a 16bitovými aplikacemi, ale v ATL nejsou žádné 16bitové komponenty. Aby bylo možné optimalizovat velikost binárního souboru, atl ukládá strojový kód do paměti, která není zarovnaná se slovy (vytváří menší binární soubor), a pak tento kód přímo vyvolá. Komponenty ATL kompilované pomocí sady Visual Studio 7.1 nebo starší (Visual Studio 2003) nepřidělují tuto paměť jako spustitelný soubor – emulace thunk tento problém s kompatibilitou řeší. Aplikace, které mají binární model rozšíření (například Internet Explorer 11), musí mít povolenou emulaci převodu souborů ATL.
Zakázat body rozšíření
Popis
Toto omezení rizik zakáže různé rozšiřovací body pro aplikaci, které se můžou použít k vytvoření trvalosti nebo zvýšení oprávnění škodlivého obsahu.
Patří mezi ně:
- Knihovny DLL AppInit – při každém spuštění procesu systém před voláním funkce vstupního bodu načte zadanou knihovnu DLL do kontextu nově spuštěného procesu. Podrobnosti o knihovnách DLL AppInit najdete tady. Po použití tohoto omezení rizik se knihovny DLL AppInit nenačtou. Počínaje systémem Windows 7 musí být knihovny DLL AppInit digitálně podepsané, jak je popsáno zde. Kromě toho se od Windows 8 nenačtou knihovny DLL AppInit, pokud je povolené zabezpečení SecureBoot, jak je popsáno tady.
- Starší editory IME – Editor IME (Input Method Editor) umožňuje uživateli psát text v jazyce, který má více znaků, než lze reprezentovat na klávesnici. Třetí strany mohou vytvářet editory IME. Škodlivý editor IME může z tohoto vstupního záznamu získat přihlašovací údaje nebo jiné citlivé informace. Některé IME, označované jako starší verze IME, fungují jenom v desktopových aplikacích pro Windows, a ne v aplikacích pro UPW. Toto zmírnění také zabraňuje načtení tohoto staršího editoru IME do zadané desktopové aplikace pro Windows.
- Zavěšení událostí systému Windows – Aplikace může volat rozhraní API SetWinEventHook, aby se zaregistroval zájem o probíhající událost. Je zadána knihovna DLL, kterou lze vložit do procesu. Toto zmírnění vynutí, aby se zavěšení publikovalo do procesu registrace a nespustilo se v procesu prostřednictvím vložené knihovny DLL.
Důležité informace o kompatibilitě
Většina těchto bodů rozšíření se používá poměrně zřídka, takže efekt kompatibility je obvykle malý, zejména na úrovni jednotlivých aplikací. Jedním z důležitých aspektů je, pokud uživatelé používají starší verze IME od jiných společností než Microsoft, které nebudou s chráněnou aplikací fungovat.
Možnosti konfigurace
Pro toto zmírnění rizik nejsou k dispozici žádné možnosti konfigurace.
Poznámka
Zakázat rozšiřovací body nemá žádný režim auditování.
Zakázat systémová volání Win32k
Popis
Win32k.sys poskytuje útočníkovi širokou oblast útoku. Jako součást režimu jádra se často cílí jako řídicí vektor pro aplikace, které jsou v izolovaném prostoru (sandbox). Toto omezení rizik zabraňuje volání win32k.sys blokováním samotného převodu vlákna na vlákno grafického uživatelského rozhraní, které je pak uděleno oprávnění k vyvolání funkcí Win32k. Vlákno je při vytvoření jiné než grafické uživatelské rozhraní, ale při prvním volání win32k.sys nebo prostřednictvím volání rozhraní API pro IsGuiThread.
Důležité informace o kompatibilitě
Toto omezení rizik je určeno pro procesy, které jsou vyhrazenými procesy bez uživatelského rozhraní. Mnoho moderních prohlížečů například používá izolaci procesů a zahrnuje procesy, které nejsou uživatelské rozhraní. Toto zmírnění bude mít vliv na všechny aplikace, které zobrazí grafické uživatelské rozhraní pomocí jednoho procesu.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Nepovolit podřízené procesy
Popis
Toto omezení rizik zabraňuje aplikaci v vytváření nových podřízených aplikací. Obvyklou technikou, kterou nežádoucí osoba používá, je iniciovat důvěryhodný proces na zařízení se škodlivým vstupem (útok „live off the land“), který často vyžaduje spuštění jiné aplikace na zařízení. Pokud neexistují žádné legitimní důvody, proč by aplikace spustila podřízený proces, zmírní se tím tento potenciální vektor útoku. Zmírnění rizik se použije nastavením vlastnosti tokenu procesu, která blokuje vytvoření tokenu pro podřízený proces s chybovou zprávou STATUS_CHILD_PROCESS_BLOCKED.
Důležité informace o kompatibilitě
Pokud vaše aplikace z nějakého důvodu spouští podřízené aplikace, například podpůrné hypertextové odkazy, které spouštějí prohlížeč nebo externí prohlížeč, nebo které v počítači spouští jiné nástroje, je tato funkce poškozena.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Export filtrování adres
Popis
Export filtrování adres (EAF) snižuje riziko škodlivého kódu, který se dívá na tabulku exportních adres všech načtených modulů a hledá moduly, které obsahují užitečná rozhraní API pro jejich útok. Toto je běžná taktika používaná kódem prostředí. Aby se zmírnila rizika takového útoku, toto zmírnění chrání tři běžně napadené moduly:
- ntdll.dll
- kernelbase.dll
- kernel32.dll
Zmírnění rizik chrání paměťovou stránku v [adresáři exportu, který odkazuje na tabulku exportu adres. Na tuto stránku paměti je použitá ochrana PAGE_GUARD . Když se někdo pokusí získat přístup k této paměti, vygeneruje STATUS_GUARD_PAGE_VIOLATION. Zmírnění této výjimky zpracuje a pokud instrukce pro přístup neprojde ověřením, proces se ukončí.
Důležité informace o kompatibilitě
Toto zmírnění je primárně problém u aplikací, jako jsou ladicí programy, aplikace v izolovaném prostoru (sandbox), aplikace používající DRM nebo aplikace implementující antiladění.
Možnosti konfigurace
Ověřte přístup pro moduly, které jsou běžně zneužity zneužitím – Tato možnost, označovaná také jako EAF+, přidává ochranu pro další běžně napadené moduly:
mshtml.dll
flash*.ocx
jscript*.ocx
vbscript.dll
vgx.dll
mozjs.dll
xul.dll
acrord32.dll
acrofx32.dll
acroform.api
Kromě toho povolením EAF+ toto zmírnění rizik přidá ochranu PAGE_GUARD na stránku, která obsahuje hlavičku "MZ", první 2 bajty hlavičky SYSTÉMU DOS v souboru PE, což je aspekt obsahu známé paměti, který shellcode může hledat, aby mohl identifikovat potenciálně zajímavé moduly v paměti.
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Vynutit randomizaci obrázků (povinné ASLR)
Popis
Randomizace rozložení adresního prostoru (ASLR) snižuje riziko útočníka pomocí znalostí rozložení paměti systému, aby mohl spustit kód, který je již přítomen v paměti procesu a již označen jako spustitelný. To může zmírnit riziko útočníka pomocí technik, jako jsou útoky typu return-to-libc, kdy nežádoucí osoba nastaví kontext a pak upraví návratovou adresu tak, aby spustila existující kód s kontextem, který vyhovuje účelu nežádoucího uživatele.
Povinná funkce ASLR vynutí přenesení všech knihoven DLL v rámci procesu. Vývojář může povolit ASLR pomocí možnosti linkeru /DYNAMICBASE a toto zmírnění má stejný účinek.
Když správce paměti mapuje v imagi na proces, povinná funkce ASLR vynutí převést knihovny DLL a soubory EXE, které se nepřihlásily k ASLR. Upozorňujeme ale, že toto přenesení nemá žádnou entropii, a proto se dá umístit do předvídatelného umístění v paměti. V případě přenesení a náhodného umístění binárních souborů by toto zmírnění rizik mělo být spárováno s náhodným přidělením paměti (ASLR zdola nahoru).
Důležité informace o kompatibilitě
Tento efekt kompatibility ASLR je obvykle omezen na starší aplikace, které byly vytvořeny pomocí kompilátorů, které vytvořily předpoklady o základní adrese binárního souboru nebo vymazané informace o přemístění základu. To může vést k nepředvídatelným chybám, protože se tok provádění pokouší přejít na očekávané místo ve skutečném umístění v paměti.
Možnosti konfigurace
Nepovolit odstraněné obrázky – Tato možnost blokuje načítání imagí, u kterých byly odstraněny informace o přemístění. Formát souboru Windows PE obsahuje absolutní adresy a kompilátor také vygeneruje [tabulku základního přemístění, kterou může zavaděč použít k vyhledání všech relativních odkazů na paměť a jejich posunu, aby je bylo možné aktualizovat, pokud se binární soubor nenačte na upřednostňovanou základní adresu. Některé starší aplikace tyto informace odstraňují z produkčních sestavení, a proto tyto binární soubory nelze změnit. Toto omezení rizik znemožňuje načtení těchto binárních souborů (místo toho, aby bylo možné je načíst na upřednostňovanou základní adresu).
Poznámka
Vynucení randomizace pro obrázky (povinné ASLR) nemá žádný režim auditování.
Hardwarově vynucená ochrana zásobníku
Popis
Hardwarově vynucená ochrana zásobníku nabízí robustní ochranu před zneužitím ROP, protože uchovává záznam zamýšleného toku spuštění programu. Pro zajištění bezproblémového přijetí ekosystému a kompatibility aplikací nabízí Systém Windows tuto ochranu jako model výslovného souhlasu, aby vývojáři mohli tuto ochranu získat vlastním tempem.
Důležité informace o kompatibilitě
Hardwarově vynucená ochrana zásobníku funguje pouze na čipových sadách s podporou hardwarových stínových zásobníků, technologie CET (Control-flow Enforcement Technology) společnosti Intel nebo stínových zásobníků AMD.
Pokud spouštíte aplikace založené na rozhraní .NET Framework, hardwarově vynucená ochrana zásobníku funguje s rozhraním .NET Framework 7 (výslovný souhlas) nebo novějším. Pokud používáte starší verzi, může dojít k chybovému ukončení nebo vysokému využití procesoru. K těmto problémům může dojít také v režimu auditování nebo při cílení pouze na kompatibilní moduly.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli změřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Defender for Endpoint.
Vynucovat pro všechny moduly místo kompatibilních modulů – Toto zmírnění rizik můžete povolit tak, aby se vynucování pro všechny moduly místo kompatibilních modulů.
Import filtrování adres (IAF)
Popis
Zmírnění rizik Import filtrování adres (IAF) pomáhá zmírnit riziko nežádoucí změny toku řízení aplikace úpravou tabulky importních adres (IAT) tak, aby při volání této funkce přesměrovávala na libovolný kód útočníka. Útočník by mohl tento přístup použít k napadení řízení nebo k zachycení, kontrole a potenciálně blokování volání citlivých rozhraní API.
Na paměťových stránkách pro všechna chráněná rozhraní API se používá ochrana PAGE_GUARD . Když se někdo pokusí získat přístup k této paměti, vygeneruje STATUS_GUARD_PAGE_VIOLATION. Zmírnění této výjimky zpracuje a pokud instrukce pro přístup neprojde ověřením, proces se ukončí.
Toto omezení rizik chrání následující rozhraní API systému Windows:
GetProcAddress
GetProcAddressForCaller
LoadLibraryA
LoadLibraryExA
LoadLibraryW
LoadLibraryExW
LdrGetProcedureAddress
LdrGetProcedureAddressEx
LdrGetProcedureAddressForCaller
LdrLoadDll
VirtualProtect
VirtualProtectEx
VirtualAlloc
VirtualAllocEx
NtAllocateVirtualMemory
NtProtectVirtualMemory
CreateProcessA
CreateProcessW
WinExec
CreateProcessAsUserA
CreateProcessAsUserW
GetModuleHandleA
GetModuleHandleW
RtlDecodePointer
DecodePointer
Důležité informace o kompatibilitě
Legitimní aplikace, které provádějí zachytávání rozhraní API, můžou být tímto zmírněním zjištěny a způsobit chybové ukončení některých aplikací. Mezi příklady patří bezpečnostní software a překrytí kompatibility aplikací.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Náhodně přidělovat paměť (ASLR zespoda nahoru)
Popis
Náhodné přidělení paměti (ASLR zdola nahoru) přidává entropii k přemístění, takže jejich umístění je náhodné a proto méně předvídatelné. Toto zmírnění vyžaduje, aby se projevila povinná aslr.
Velikost 32bitového adresního prostoru omezuje entropii, kterou je možné přidat, a proto 64bitové aplikace znesnadní útočníkovi odhad umístění v paměti.
Důležité informace o kompatibilitě
Většina aplikací kompatibilních s povinnou funkcí ASLR (rebasing) je také kompatibilní s jinou entropií ASLR zdola nahoru. Některé aplikace můžou mít problémy se zkrácením ukazatele, pokud ukládají místní ukazatele do 32bitových proměnných (očekávají základní adresu nižší než 4 GB), a proto nebudou kompatibilní s možností vysoké entropie (kterou lze zakázat).
Možnosti konfigurace
Nepoužívejte vysokou entropii – tato možnost zakáže použití ASLR s vysokou entropií, která přidá 24 bitů entropie (1 TB odchylky) do přidělení zdola nahoru pro 64bitové aplikace.
Poznámka
Náhodné přidělení paměti (ASLR zdola nahoru) nemá žádný režim auditování.
Simulovat provádění (SimExec)
Popis
Simulovat spuštění (SimExec) je omezení rizik pouze pro 32bitové aplikace. To pomáhá ověřit, jestli se volání citlivých rozhraní API vrací do legitimních funkcí volajícího. Dělá to tak, že zachycuje volání do citlivých rozhraní API a pak simuluje provádění těchto rozhraní API procházením kódovaných pokynů jazyka sestavení, které hledají instrukci RET, která by se měla vrátit volajícímu. Potom tuto funkci zkontroluje a provede zpětně v paměti, aby našel předchozí pokyn CALL, aby zjistil, jestli se funkce a instrukce CALL shodují a jestli se RET nezachytilo.
Rozhraní API zachycená tímto zmírněním rizik jsou:
LoadLibraryA
LoadLibraryW
LoadLibraryExA
LoadLibraryExW
LdrLoadDll
VirtualAlloc
VirtualAllocEx
NtAllocateVirtualMemory
VirtualProtect
VirtualProtectEx
NtProtectVirtualMemory
HeapCreate
RtlCreateHeap
CreateProcessA
CreateProcessW
CreateProcessInternalA
CreateProcessInternalW
NtCreateUserProcess
NtCreateProcess
NtCreateProcessEx
CreateRemoteThread
CreateRemoteThreadEx
NtCreateThreadEx
WriteProcessMemory
NtWriteVirtualMemory
WinExec
CreateFileMappingA
CreateFileMappingW
CreateFileMappingNumaW
NtCreateSection
MapViewOfFile
MapViewOfFileEx
MapViewOfFileFromApp
LdrGetProcedureAddressForCaller
Pokud se zjistí miniaplikace ROP, proces se ukončí.
Důležité informace o kompatibilitě
Aplikace, které provádějí zachytávání rozhraní API, zejména bezpečnostní software, mohou při tomto zmírnění způsobit problémy s kompatibilitou.
Toto zmírnění je nekompatibilní se zmírněním rizik pro libovolnou ochranu Code Guard.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Ověřit vyvolání rozhraní API (CallerCheck)
Popis
Ověřit vyvolání rozhraní API (CallerCheck) je zmírnění pro techniky ROP (Return-Oriented Programming), které ověřují, že od platného volajícího byla volána citlivá rozhraní API. Toto zmírnění rizik zkontroluje předanou návratovou adresu a poté heukusticky zpětně vyhledá volání nad návratovou adresou, aby zjistilo, jestli cíl volání odpovídá parametru předanému funkci.
Rozhraní API zachycená tímto zmírněním rizik jsou:
LoadLibraryA
LoadLibraryW
LoadLibraryExA
LoadLibraryExW
LdrLoadDll
VirtualAlloc
VirtualAllocEx
NtAllocateVirtualMemory
VirtualProtect
VirtualProtectEx
NtProtectVirtualMemory
HeapCreate
RtlCreateHeap
CreateProcessA
CreateProcessW
CreateProcessInternalA
CreateProcessInternalW
NtCreateUserProcess
NtCreateProcess
NtCreateProcessEx
CreateRemoteThread
CreateRemoteThreadEx
NtCreateThreadEx
WriteProcessMemory
NtWriteVirtualMemory
WinExec
CreateFileMappingA
CreateFileMappingW
CreateFileMappingNumaW
NtCreateSection
MapViewOfFile
MapViewOfFileEx
MapViewOfFileFromApp
LdrGetProcedureAddressForCaller
Pokud se zjistí miniaplikace ROP, proces se ukončí.
Důležité informace o kompatibilitě
Aplikace, které provádějí zachytávání rozhraní API, zejména bezpečnostní software, mohou při tomto zmírnění způsobit problémy s kompatibilitou.
Toto zmírnění je nekompatibilní se zmírněním rizik pro libovolnou ochranu Code Guard.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Ověřit řetězce výjimek (SEHOP)
Popis
Ověření řetězců výjimek (SEHOP) je zmírněním rizik v porovnání s technikou zneužití se strukturovanou obslužnou rutinou výjimek (SEH). Strukturované zpracování výjimek je proces, pomocí kterého může aplikace požádat o zpracování konkrétní výjimky. Obslužné rutiny výjimek jsou zřetězené dohromady, takže pokud se jedna obslužná rutina výjimky rozhodne nezpracovávat konkrétní výjimku, může být předána další obslužné rutině výjimky v řetězci, dokud se nerozhodne ji zpracovat. Vzhledem k tomu, že seznam obslužné rutiny je dynamický, je uložený v zásobníku. Útočník může použít chybu zabezpečení přetečení zásobníku a pak přepsat obslužnou rutinu výjimky ukazatelem na kód podle volby útočníka.
Toto zmírnění rizik závisí na návrhu SEH, kde každá položka SEH obsahuje ukazatel na obslužnou rutinu výjimky a ukazatel na další obslužnou rutinu v řetězu výjimek. Toto zmírnění je voláno dispečerem výjimek, který ověřuje řetěz SEH při vyvolání výjimky. Ověřuje, že:
- Všechny záznamy řetězu výjimek jsou uvnitř hranic zásobníku.
- Všechny záznamy výjimek jsou zarovnané.
- Na zásobník neukazují žádné ukazatele obslužných rutin výjimek.
- Nejsou k dispozici žádné zpětné ukazatele.
- Řetěz výjimek končí na známé konečné obslužné rutině výjimky.
Pokud se tato ověření nezdaří, zpracování výjimek se přeruší a výjimka se nezpracuje.
Důležité informace o kompatibilitě
Problémy s kompatibilitou se SEHOP jsou relativně neobvyklé. Je neobvyklé, že aplikace převezme závislost na poškození řetězu výjimek. Některé aplikace jsou však ovlivněny drobnými změnami v časování, které se můžou projevit jako konflikt časování, který v aplikaci odhalí latentní chybu s více vlákny.
Možnosti konfigurace
Poznámka
Ověřte, že řetězy výjimek (SEHOP) nemají žádný režim auditování.
Ověřit použití popisovačů
Popis
Ověření použití popisovače je zmírnění, které pomáhá chránit před útočníkem pomocí existujícího popisovače pro přístup k chráněnému objektu. Popisovač je odkaz na chráněný objekt. Pokud kód aplikace odkazuje na neplatný popisovač, může to znamenat, že se nežádoucí osoba pokouší použít popisovač, který už dříve zaznamenal (ale o kterém počítání odkazů na aplikaci nebude vědět). Pokud se aplikace pokusí použít neplatný objekt místo prostého vrácení hodnoty null, aplikace vyvolá výjimku (STATUS_INVALID_HANDLE).
Toto omezení rizik se automaticky použije u aplikací pro Windows Store.
Důležité informace o kompatibilitě
Toto zmírnění rizik může mít vliv na aplikace, které přesně nesledovaly odkazy na popisovače a které tyto operace nezabalily do obslužných rutin výjimek.
Možnosti konfigurace
Poznámka
Použití popisovače ověření nemá žádný režim auditování.
Ověřit integritu haldy
Popis
Zmírnění integrity haldy ověření zvyšuje úroveň ochrany zmírnění haldy ve Windows tím, že způsobuje ukončení aplikace v případě zjištění poškození haldy. Mezi zmírnění rizik patří:
- Zabránění uvolnění popisovače HALD
- Provádí se další ověření rozšířených hlaviček bloků pro přidělení haldy.
- Ověření, že přidělení haldy ještě není označené jako používané
- Přidání strážených stránek do velkých přidělení, segmentů haldy a dílčích segmentů nad minimální velikost
Důležité informace o kompatibilitě
Toto omezení rizik je již použito ve výchozím nastavení pro 64bitové aplikace a pro 32bitové aplikace cílené na systém Windows Vista nebo novější. Starší verze aplikací z Windows XP nebo starších verzí jsou nejohroženější, i když problémy s kompatibilitou jsou neobvyklé.
Možnosti konfigurace
Poznámka
Ověření integrity haldy nemá žádný režim auditování.
Ověřit integritu závislosti obrázku
Popis
Zmírnění závislosti ověření obrázku pomáhá chránit před útoky, které se pokoušejí nahradit kód knihovnami DLL staticky propojenými binárními soubory systému Windows. Technika zasazování knihovny DLL zneužívá vyhledávací mechanismus zavaděče k vložení škodlivého kódu, který se dá použít k tomu, aby se škodlivý kód spouštěl v kontextu se zvýšenými oprávněními. Když zavaděč načítá binární soubor podepsaný systémem Windows a pak načte všechny knihovny DLL, na kterých binární soubor závisí, jsou tyto binární soubory ověřeny, aby se zajistilo, že jsou také digitálně podepsané jako binární soubor Systému Windows. Pokud se kontrola podpisu nezdaří, knihovna DLL se nenačte a vyvolá výjimku, která vrátí stav STATUS_INVALID_IMAGE_HASH.
Důležité informace o kompatibilitě
Problémy s kompatibilitou jsou neobvyklé. Aplikace, které závisí na nahrazení binárních souborů Windows místními privátními verzemi, jsou ovlivněny a existuje také malé riziko odhalení drobných chyb časování v aplikacích s více vlákny.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Ověřit integritu zásobníku (StackPivot)
Popis
Zmírnění Ověřit integritu zásobníku (StackPivot) pomáhá chránit před útokem Stack Pivot, což je útok ROP, kdy útočník vytvoří falešný zásobník v paměti haldy a pak aplikaci nasává, aby se vracela do falešného zásobníku, který řídí tok provádění.
Toto omezení rizik zachycuje mnoho rozhraní API systému Windows a kontroluje hodnotu ukazatele zásobníku. Pokud adresa ukazatele zásobníku nespadne mezi dolní a horní část zásobníku, zaznamená se událost, a pokud není v režimu auditování, proces se ukončí.
Rozhraní API zachycená tímto zmírněním rizik jsou:
LoadLibraryA
LoadLibraryW
LoadLibraryExA
LoadLibraryExW
LdrLoadDll
VirtualAlloc
VirtualAllocEx
NtAllocateVirtualMemory
VirtualProtect
VirtualProtectEx
NtProtectVirtualMemory
HeapCreate
RtlCreateHeap
CreateProcessA
CreateProcessW
CreateProcessInternalA
CreateProcessInternalW
NtCreateUserProcess
NtCreateProcess
NtCreateProcessEx
CreateRemoteThread
CreateRemoteThreadEx
NtCreateThreadEx
WriteProcessMemory
NtWriteVirtualMemory
WinExec
CreateFileMappingA
CreateFileMappingW
CreateFileMappingNumaW
NtCreateSection
MapViewOfFile
MapViewOfFileEx
MapViewOfFileFromApp
LdrGetProcedureAddressForCaller
Důležité informace o kompatibilitě
Aplikace, které používají falešné zásobníky, jsou ovlivněny a existuje také malé riziko odhalení drobných chyb časování ve vícevláknových aplikacích. Aplikace, které provádějí zachytávání rozhraní API, zejména bezpečnostní software, mohou při tomto zmírnění způsobit problémy s kompatibilitou.
Toto zmírnění je nekompatibilní se zmírněním rizik pro libovolnou ochranu Code Guard.
Možnosti konfigurace
Pouze audit – Toto zmírnění rizik můžete povolit v režimu auditování, abyste mohli měřit potenciální vliv na kompatibilitu aplikace. Události auditu je pak možné zobrazit buď v prohlížeči událostí, nebo pomocí rozšířeného proaktivního vyhledávání v Microsoft Defender for Endpoint.
Tip
Chcete se dozvědět více? Engage s komunitou Microsoft Security v naší technické komunitě: Microsoft Defender for Endpoint Tech Community.