我试图了解为什么我的 WDAC 策略不允许我使用事件查看器日志列出的程序运行。
这就是我根据事件查看器审核日志制作 WDAC 策略允许列表的方式:
New-CIPolicy -FilePath .\EventsPolicy.xml -Audit -Level FilePath –UserPEs -UserWriteablePaths -MultiplePolicyFormat 3> .\EventsPolicyWarnings.txt
我只想使用 FilePath,因为当程序更新到较新版本时,不需要更新策略。
一些负责应用程序允许列表的部分来自 EventViewer 策略:
<Allow ID="ID_ALLOW_A_6" FriendlyName="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7zFM.exe FileRule" MinimumFileVersion="0.0.0.0" FilePath="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7zFM.exe" />
<Allow ID="ID_ALLOW_A_14" FriendlyName="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7-zip.dll FileRule" MinimumFileVersion="0.0.0.0" FilePath="GLOBALROOT\Device\HarddiskVolume4\Program Files\7-Zip\7-zip.dll" />
<Allow ID="ID_ALLOW_A_11" FriendlyName="GLOBALROOT\Device\HarddiskVolume4\Program Files\Mullvad VPN\resources\mullvad-daemon.exe FileRule" MinimumFileVersion="0.0.0.0" FilePath="GLOBALROOT\Device\HarddiskVolume4\Program Files\Mullvad VPN\resources\mullvad-daemon.exe" />
创建此策略后,我将其与我之前制定的基于 Microsoft ISG(签名和信誉模式)的策略合并,在最终策略中,合并的结果是我设置的策略规则:
<Rules>
<Rule>
<Option>Enabled:Unsigned System Integrity Policy</Option>
</Rule>
<Rule>
<Option>Enabled:UMCI</Option>
</Rule>
<Rule>
<Option>Enabled:Inherit Default Policy</Option>
</Rule>
<Rule>
<Option>Enabled:Update Policy No Reboot</Option>
</Rule>
<Rule>
<Option>Enabled:Intelligent Security Graph Authorization</Option>
</Rule>
<Rule>
<Option>Enabled:Developer Mode Dynamic Code Trust</Option>
</Rule>
<Rule>
<Option>Enabled:Revoked Expired As Unsigned</Option>
</Rule>
<Rule>
<Option>Required:Enforce Store Applications</Option>
</Rule>
<Rule>
<Option>Required:WHQL</Option>
</Rule>
<Rule>
<Option>Enabled:Dynamic Code Security</Option>
</Rule>
<Rule>
<Option>Disabled:Runtime FilePath Rule Protection</Option>
</Rule>
<Rule>
<Option>Enabled:Invalidate EAs on Reboot</Option>
</Rule>
<Rule>
<Option>Enabled:Allow Supplemental Policies</Option>
</Rule>
<Rule>
<Option>Enabled:Advanced Boot Options Menu</Option>
</Rule>
<Rule>
<Option>Enabled:Unsigned System Integrity Policy</Option>
</Rule>
起初,我认为在 SYSTEM 用户下运行的程序是内核模式驱动程序。阅读下面的评论和答案,我意识到事实并非如此。是什么让我这么想的是 1)
在这里:在“文件路径”旁边
它说:“FilePath 规则仅适用于用户模式二进制文件,不能用于允许内核模式驱动程序。”
和 2)
当我使用它根据事件查看器日志创建 WDAC 策略允许列表时,只有以 SYSTEM 身份运行的程序无法运行,而其他程序(如 7-zip)被允许运行。
New-CIPolicy -FilePath .\EventsPolicy.xml -Audit -Level FileName -Fallback FilePath –UserPEs -UserWriteablePaths -MultiplePolicyFormat 3> .\EventsPolicyWarnings.txt
使用此创建的 WDAC 策略允许所有已被 WDAC 阻止的程序运行:
New-CIPolicy -FilePath .\EventsPolicy.xml -Audit -Level hash –UserPEs -UserWriteablePaths -MultiplePolicyFormat 3> .\EventsPolicyWarnings.txt
不,以 SYSTEM 身份运行的进程未在内核模式下运行。一个简短的解释是:
例如,这是所有内核模式驱动程序在 (PID 4) 下运行的内核进程:
如果没有看到您的 FilePath 规则或您如何创建它,我不确定,但有很多原因它可能不起作用:
*
Runtime FilePath Rule Protection
编辑:我个人不使用文件路径,
\Device\HarddiskVolume4\
因为不能保证卷号。尝试使用-ScanPath
生成有效的文件路径规则: