将已签名的应用分发给用户之前,应针对 Smart App Control 测试应用的签名。 由于智能应用控件在加载二进制文件时会评估二进制文件,因此请务必测试应用的所有代码路径和功能。 这包括测试应用程序的所有安装和卸载二进制文件、应用程序的所有功能以及与可能加载二进制文件的其他应用程序的所有集成(例如,Office 插件)。 可以使用审核策略测试智能应用控制,这将创建日志条目,而不会实际阻止应用执行,或直接针对 Smart App Control 强制模式进行测试。
配置用于测试的智能应用控件
可以在 Windows 设置应用中配置智能应用控制,也可以手动编辑 Windows 注册表。
使用 Windows 设置配置智能应用控件
转到 “设置>隐私和安全>Windows 安全>应用”和“浏览器控制>智能应用控制”设置。
注释
将智能应用控制配置为 关闭 或 开启(强制)是一种单向操作。 这意味着您无法通过 Windows 设置更改模式,除非当前设置是 评估。 出于测试目的,可以使用 注册表强制智能应用控制进入另一个设置。
如果智能应用控件处于评估模式,智能应用控件将评估应用的签名,但如果应用签名无效,则不会阻止应用。 在此模式下,可以使用 审核策略 查看智能应用控件的输出,包括检查应用的签名时遇到的错误。
选择 “打开”,将智能应用控制置于强制模式。 在此模式下,如果应用签名无效,智能应用控制将阻止应用运行。
使用注册表配置智能应用控件
重要
只有 出于测试目的 ,才能通过注册表手动配置智能应用控制。以这种方式编辑智能应用控制设置可能会损害它所提供的保护。
使用 Windows 注册表配置智能应用控制,可以强制启用任何所需的执行模式,即使无法通过 Windows 设置选择该模式。 若要配置智能应用控制,请执行以下作:
使用管理员权限打开命令提示符并执行以下命令:
manage-bde -protectors c: -disable -rebootcount 2 "C:\Program Files\Windows Defender\MpCmdRun.exe" -RemoveDefinitions -DynamicSignatures
注释
如果系统驱动器不是 C:,则可能需要更新第二个命令。
通过启动“设置”并选择“
恢复 恢复”选项, 高级启动 “重启” ,重新启动到启动菜单中。在“高级启动”菜单中,选择 排查>,高级>,命令提示符。 恢复命令提示符将打开。
注释
默认情况下,恢复命令提示符将打开恢复驱动器 X:。 这并不表示系统驱动器已更改。 系统驱动器仍与其通常的驱动器号(通常为 C:)相关联。
执行以下命令:
注释
在以下命令中,将 {VALUE} 替换为要设置的模式的值。
价值 模式 0 关闭 1 关于(执行) 2 评估 reg load HKLM\sac c:\windows\system32\config\system reg add hklm\sac\controlset001\control\ci\policy /v VerifiedAndReputablePolicyState /t REG_DWORD /d {VALUE} /f reg add hklm\sac\controlset001\control\ci\protected /v VerifiedAndReputablePolicyStateMinValueSeen /t REG_DWORD /d {VALUE} /f reg unload hklm\sac reg load HKLM\sac2 C:\windows\system32\config\SOFTWARE reg add "hklm\sac2\Microsoft\Windows Defender" /v SacLearningModeSwitch /t REG_DWORD /d 0 reg unload hklm\sac2
重启电脑
验证智能应用控件的当前模式
可以通过打开命令提示符并执行以下命令来验证 Smart App Control 的当前模式:
citool.exe -lp
如果“友好名称”的值为 VerifiedAndReputableDesktopEvaluation
且“当前强制实施”的值为 true
,则智能应用控制处于评估模式。
如果“友好名称”的值是 VerifiedAndReputableDesktop
且“当前是否已实施”的值是 true
,则智能应用程序控制处于强制实施模式。
配置 Smart App Control 的审核策略
智能应用控制在评估模式下使用的默认 Windows Defender 应用程序控制 (WDAC) 策略不会记录 CodeIntegrity作日志中的审核事件。 这是为了减少在评估模式下使用智能应用控制传送的典型使用者设备上的日志大小。
为了针对智能应用控制评估应用程序,开发人员或系统管理员可能想要在评估模式下启用审核日志,以查看如果系统处于强制模式,将阻止哪些文件。
注释
仅当智能应用控制在评估模式下运行时,审核策略才适用。 在强制模式下,智能应用控制默认将记录事件。
可以在此处
注释
但用户也可以创建自己的策略。 有关详细信息 ,请参阅 Windows Defender 应用程序控制(WDAC)示例基本策略 和 为轻管理设备创建 WDAC 策略 。
智能应用控制审核策略(SmartAppControlAudit.bin)
这是标准智能应用控制策略,在评估模式下启用审核日志。 签名和云信誉允许的所有二进制文件和脚本都将通过策略,就像启用强制模式时一样。 将被阻止的应用程序和二进制文件将记录审核事件。
注释
此策略仅适用于评估模式下的智能应用控制。 仍可以应用智能应用控制评估模型以使用此策略关闭评估模式,因此我们建议使用以下其他方法之一进行测试。
应用此策略后,其 citool.exe -lp
输出将显示 VerifiedAndReputableDesktopEvaluationAudit
为策略名称。
应用智能应用控制审核策略
首先,确保 SAC 处于评估模式。
使用 C:\WINDOWS\System32\CodeIntegrity\CiPolicies\Active\{1283AC0F-FFF1-49AE-ADA1-8A933130CAD6}.cip
获取 评估模式策略文件的所有权。 如果无法使用 takeown,则可以使用以下步骤手动获取所有权:
重要
我们建议尽可能使用命令 "takeown"。
- 右键单击资源管理器中的文件,然后选择“属性”。
- 转到“安全”选项卡,然后选择底部的“高级”。
- 单击对话框中的“更改”。
- 在弹出对话框中,输入用户信息(例如
<PC name>\<username>
),然后单击“确定”。 - 在“高级安全设置”对话框中单击“确定”并确认。
- 重新打开文件属性“安全性”选项卡,然后单击“编辑”。
- 在“管理员”下,选择所有复选框并单击“确定”,然后在弹出对话框中再次确认。
现在,你已拥有策略文件的所有权,请将其重命名为 {1283AC0F-FFF1-49AE-ADA1-8A933130CAD6}.cip.old
。 重命名要应用到 {1283AC0F-FFF1-49AE-ADA1-8A933130CAD6}.cip
的审核策略文件,并将其复制到策略目录。
从管理员命令提示符运行 citool.exe -r
以刷新策略。
没有 ISG 的智能应用控制审核策略(SmartAppControlAuditNoISG.bin)
这是作为开发人员测试自己的应用的建议策略。
此策略在评估模式下检查二进制文件和脚本,但不会检查智能安全图,这意味着只有由受信任证书正确签名的应用才会被允许且不会生成审核事件。 由于信誉可能不适合新发布的二进制文件,并且会随时间而改变,因此确保所有二进制文件都正确签名是确保用户在使用应用程序时不会遇到问题的最佳方式。 这也是通过 Windows 应用商店发布时的要求,即必须使用从受信任的证书颁发机构获得的证书进行签名。
即使智能应用控制设置为“关闭”,也可以应用此策略。 应用此策略后,其 citool.exe -lp
输出将显示 VerifiedAndReputableDesktopEvaluationAuditNoISG
为策略名称。
在没有 ISG 的情况下应用智能应用控制审核策略
此策略专门用于根据智能应用控制的签名要求,在评估模式下测试应用程序,不允许基于智能安全图的云智能的应用程序的任何二进制文件。
确保智能应用控制处于评估模式或关闭
在管理员权限的命令提示符下运行 mountvol S: /S
将SmartAppControlAuditNoISG.bin复制到 S:\efi\microsoft\boot\cipolicies\active\{5283AC0F-FFF1-49AE-ADA1-8A933130CAD6}.cip
.
从管理员命令行运行 citool.exe -r
以刷新策略
检查事件日志
智能应用控制将阻止的任何可执行文件记录到代码完整性事件日志中。 可以通过打开事件查看器,然后浏览到应用程序和服务日志>>>> 来查找这些日志。
智能应用控制记录事件 ID 为 3076 的评估模式事件,以及事件 ID 为 3077 的强制模式事件。 有关 Smart App Control 和 Microsoft Defender 事件日志的详细信息,请参阅 查看事件日志和错误代码,以排查 Microsoft Defender 防病毒的问题。