我正在尝试建立DeviceGuard UMCI代码完整性策略以测试多个应用程序,但从外观上看,我无法使我的代码完整性策略生效并得到执行。
我已经使用就绪工具来确认我的硬件配置正确并且已启用DeviceGuard,HVCI和CredentialGuard:
Credential-Guard is enabled and running.
HVCI is enabled and running.
Config-CI is enabled and running. (Audit mode)
HVCI, Credential-Guard, and Config-CI are enabled and running.
就绪工具包含一个配置了UMCI的示例配置DefaultWindows_Enforced.xml
:
<Rule>
<Option>Enabled:UMCI</Option>
</Rule>
但是,使用此策略时,我仍然能够执行未签名的可执行文件和脚本。
接下来,我尝试使用here中所述的New-CIPolicy cmdlet。我运行了以下命令以生成新策略:
$CIPolicyInit = "C:\Users\user\Desktop\policy.xml"
New-CIPolicy -FilePath $CIPolicyInit -Level Publisher -UserPEs -ScanPath 'c:\windows\system32'
Set-RuleOption -FilePath $CIPolicyInit -Option 3 -Delete
Set-RuleOption -FilePath $CIPolicyInit -Option 9
Set-RuleOption -FilePath $CIPolicyInit -Option 10
ConvertFrom-CIPolicy $CIPolicyInit '.\DeviceGuardPolicy.bin'
此后,我部署了新的.bin文件并重新启动,其结果与使用就绪工具中的结果相同-我仍然能够运行未签名/未配置的可执行文件和脚本。
msinfo32报告说基于Device Guard虚拟化的安全性正在运行,并且同时实施了Device Guard代码完整性策略和Device Guard用户模式代码完整性。
是否可以解决此问题?我可能应该注意,我正在测试VM,但是我已将Intel VT-x和IOMMU虚拟化。