AppLocker 体系结构和组件

本文面向 IT 专业人员介绍了 AppLocker 的基本体系结构及其主要组件。

AppLocker 使用应用程序标识服务为文件提供属性,并评估文件的 AppLocker 策略。 AppLocker 策略是 (ACE) 的条件访问控制条目,使用基于属性的访问控制 SeAccessCheckWithSecurityAttributesAuthzAccessCheck 函数评估策略。

AppLocker 提供三种方法来截获和验证是否允许根据 AppLocker 策略运行文件。

创建新进程

运行应用文件时,将创建一个新进程。 发生这种情况时,AppLocker 调用应用程序标识组件来计算用于创建新进程的main可执行文件的属性。 然后,它使用这些属性更新新进程的令牌,并检查 AppLocker 策略以验证是否允许运行可执行文件。

加载 DLL

加载 DLL 时,会向 AppLocker 发送通知,以验证是否允许加载 DLL。 AppLocker 调用应用程序标识组件来计算文件属性。 它会复制现有的进程令牌,并将重复令牌中的这些应用程序标识属性替换为加载的 DLL 的属性。 然后,AppLocker 会评估此 DLL 的策略,并丢弃重复的令牌。 根据此检查的结果,系统会继续加载 DLL 或停止进程。

运行脚本

在运行脚本文件之前,脚本主机 (例如,PowerShell) 调用 AppLocker 来验证脚本。 AppLocker 使用文件名或文件句柄在用户模式下调用应用程序标识组件,以计算文件属性。 然后,根据 AppLocker 策略评估脚本文件,以验证它是否应运行。 在每种情况下,AppLocker 执行的操作都会写入事件日志。