Sdílet prostřednictvím


Použití ovládacího prvku aplikace v programu Windows Defender

Windows 10 obsahuje dvě technologie, Windows Defender Application Control (WDAC) a AppLocker , které můžete použít k řízení aplikací. Umožňují vám vytvořit prostředí uzamčení, které vám pomůže zabezpečit prostředí PowerShellu.

AppLocker vychází z funkcí řízení aplikací zásad omezení softwaru. AppLocker obsahuje funkce a rozšíření, která umožňují vytvářet pravidla, která umožňují spouštění aplikací na základě jedinečných identit souborů a určení uživatelů nebo skupin, kteří mají povolené spouštění těchto aplikací.

Poznámka:

Při výběru mezi WDAC nebo AppLockerem doporučujeme implementovat řízení aplikací pomocí WDAC místo AppLockeru. Společnost Microsoft neustále vylepšuje platformy WDAC a Microsoft pro správu rozšiřuje jejich podporu pro WDAC. I když AppLocker může dál dostávat opravy zabezpečení, nebude dostávat vylepšení funkcí.

WdAC byl zaveden ve Windows 10 a umožňuje organizacím řídit ovladače a aplikace, které můžou běžet na svých zařízeních s Windows. WDAC je navržena jako funkce zabezpečení v rámci kritérií údržby definovaných centrem Microsoft Security Response Center (MSRC).

Další informace o AppLockeru a WDAC naleznete v tématu Řízení aplikací pro Windows a WDAC a dostupnost funkcí AppLockeru.

Vynucení zásad WDAC

Když PowerShell běží pod zásadou WDAC, změní jeho chování na základě definovaných zásad zabezpečení. V rámci zásad WDAC PowerShell spouští důvěryhodné skripty a moduly povolené zásadami v režimu úplného jazyka. Všechny ostatní skripty a bloky skriptů nejsou nedůvěryhodné a běží v režimu omezeného jazyka. PowerShell vyvolá chyby, když se nedůvěryhodné skripty pokusí provést akce, které nejsou povoleny v režimu omezeného jazyka. Může být obtížné zjistit, proč se skript nepodařilo správně spustit v režimu omezeného jazyka.

Auditování zásad WDAC

PowerShell 7.4 přidal novou funkci pro podporu zásad WDAC v režimu auditování . V režimu auditu PowerShell spouští nedůvěryhodné skripty v režimu omezeného jazyka bez chyb, ale protokoluje zprávy do protokolu událostí. Zprávy protokolu popisují, jaká omezení by se použila, pokud by byla zásada v režimu vynucení .

Zobrazení událostí auditu

PowerShell protokoluje události auditu do protokolu událostí PowerShellCore/Analytic . Musíte povolit analytický protokol. Pokud chcete povolit analytický protokol ve Windows Prohlížeč událostí, klikněte pravým tlačítkem na protokol PowerShellCore/Analytic a vyberte Povolit protokol.

Nebo můžete spustit následující příkaz z relace PowerShellu se zvýšenými oprávněními.

wevtutil.exe sl PowerShellCore/Analytic /enabled:true /quiet

Události ve Windows Prohlížeč událostí můžete zobrazit nebo pomocí Get-WinEvent rutiny události načíst.

Get-WinEvent -LogName PowerShellCore/Analytic -Oldest |
    Where-Object Id -eq 16387 | Format-List
TimeCreated  : 4/19/2023 10:11:07 AM
ProviderName : PowerShellCore
Id           : 16387
Message      : WDAC Audit.

    Title: Method or Property Invocation
    Message: Method or Property 'WriteLine' on type 'System.Console' invocation will not
        be allowed in ConstrainedLanguage mode.
        At C:\scripts\Test1.ps1:3 char:1
        + [System.Console]::WriteLine("pwnd!")
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    FullyQualifiedId: MethodOrPropertyInvocationNotAllowed

Zpráva události obsahuje umístění skriptu, kde by se omezení použilo. Tyto informace vám pomůžou pochopit, kde potřebujete změnit skript tak, aby běžel v zásadách WDAC.

Důležité

Po kontrole událostí auditu byste měli analytický protokol zakázat. Analytické protokoly se rychle zvětšují a spotřebovávají velké množství místa na disku.

Zobrazení událostí auditu v ladicím programu PowerShellu

Pokud nastavíte $DebugPreference proměnnou Break na interaktivní relaci PowerShellu, PowerShell se rozdělí do ladicího programu skriptu příkazového řádku v aktuálním umístění ve skriptu, kde došlo k události auditu. To vám umožní ladit kód a kontrolovat aktuální stav skriptu v reálném čase.