用户帐户控制工作原理

用户帐户控制 (UAC) 是 Windows 安全性的关键部分。 UAC 通过限制恶意代码以管理员权限执行的能力来降低恶意软件的风险。 本文介绍 UAC 的工作原理以及它如何与最终用户交互。

UAC 进程和交互

使用 UAC 时,需要 管理员访问令牌 的每个应用程序都必须提示最终用户同意。 唯一的例外是父进程和子进程之间存在的关系。 子进程从父进程继承用户的访问令牌。 但是,父进程和子进程必须具有相同 的完整性级别

Windows 通过标记进程的完整性级别来保护进程。 完整性级别是信任的度量:

  • 高完整性应用程序是执行修改系统数据的任务的应用程序,例如磁盘分区应用程序
  • 低完整性应用程序是执行可能危及作系统的任务的应用程序,例如 Web 浏览器

具有较低完整性级别的应用程序不能修改具有较高完整性级别的应用程序中的数据。 当标准用户尝试运行需要管理员访问令牌的应用时,UAC 要求用户提供有效的管理员凭据。

为了更好地了解此过程的工作原理,让我们更详细地了解一下 Windows 登录过程。

登录过程

下图显示了管理员的登录过程与标准用户的登录过程有何不同。

描述 UAC Windows 登录过程的关系图。

默认情况下,标准用户和管理员用户访问资源,并在标准用户的安全上下文中执行应用。
当用户登录时,系统会为该用户创建访问令牌。 访问令牌包含有关授予用户的访问权限级别的信息,包括特定安全标识符 (SID) 和 Windows 权限。

管理员登录时,将为用户创建两个单独的访问令牌: 标准用户访问令牌管理员访问令牌。 标准用户访问令牌:

  • 包含与管理员访问令牌相同的特定于用户的信息,但已删除管理 Windows 特权和 SID
  • 用于启动不 (标准用户应用) 执行管理任务的应用程序
  • 用于通过执行 进程explorer.exe显示桌面。 Explorer.exe 是所有其他用户启动的进程从中继承其访问令牌的父进程。 因此,除非用户提供许可或凭据来批准应用使用完整的管理访问令牌,否则所有应用都以标准用户身份运行

作为 Administrators 组成员的用户可以在使用标准用户访问令牌时登录、浏览 Web 和阅读电子邮件。 当管理员需要执行需要管理员访问令牌的任务时,Windows 会自动提示用户进行审批。 此提示称为 提升提示,可以通过策略或注册表配置其行为。

UAC 用户体验

启用 UAC 后,标准用户的用户体验不同于管理员用户。 建议的、更安全的运行 Windows 方法是确保主用户帐户是标准用户。 以标准用户身份运行有助于最大程度地提高托管环境的安全性。 使用内置的 UAC 提升组件,标准用户可以通过输入本地管理员帐户的有效凭据来轻松执行管理任务。

标准用户的默认内置 UAC 提升组件是 凭据提示

作为标准用户运行的替代方法是在管理员审批模式下以管理员身份运行。 使用内置的 UAC 提升组件,本地管理员组的成员可以通过提供审批轻松执行管理任务。

管理员审批模式下管理员帐户的默认内置 UAC 提升组件称为同意提示

凭据提示

当标准用户尝试执行需要用户管理访问令牌的任务时,会显示凭据提示。 还可以要求管理员提供其凭据,方法是将“用户帐户控制:管理员审批模式中管理员的提升提示行为”策略设置值设置为“凭据提示”。

显示 UAC 凭据提示的屏幕截图。

当用户尝试执行需要用户管理访问令牌的任务时,会显示同意提示。

显示 UAC 同意提示的屏幕截图。

UAC 提升提示

UAC 提升提示的颜色编码为特定于应用,以便更轻松地识别应用程序的潜在安全风险。 当应用尝试使用管理员的完全访问令牌运行时,Windows 首先分析可执行文件以确定其发布者。 应用首先根据文件的发布者分为三个类别:

  • Windows
  • 发布者已验证 (签名)
  • 发布者未验证 (未签名)

提升提示颜色编码如下所示:

  • 灰色背景:应用程序是 Windows 管理应用,例如控制面板项,或由已验证发布者签名的应用程序 屏幕截图,其中显示了带有已签名可执行文件的 UAC 凭据提示。
  • 黄色背景:应用程序未签名或已签名,但不受信任 屏幕截图显示带有未签名可执行文件的 UAC 同意提示。

“盾牌”图标

某些控制面板项(如日期和时间)包含管理员和标准用户作的组合。 Standard用户可以查看时钟并更改时区,但需要完全管理员访问令牌才能更改本地系统时间。 下面是日期和时间控制面板项的屏幕截图。

显示日期和时间属性中的 UAC 防护图标的屏幕截图。

更改日期和时间...” 按钮上的屏蔽图标指示该过程需要完整的管理员访问令牌。

保护提升提示

通过将提示定向到 安全桌面,可以进一步保护提升过程。 默认情况下,同意和凭据提示显示在安全桌面上。 只有 Windows 进程可以访问安全桌面。 为了提高安全级别,我们建议保持 用户帐户控制:在提示提升策略设置时切换到安全桌面

当可执行文件请求提升时, 交互式桌面(也称为 用户桌面)将切换到安全桌面。 安全桌面会调暗用户桌面,并显示必须在继续之前响应的提升提示。 当用户选择 “是” 或“ ”时,桌面将切换回用户桌面。

注意

2019 Windows Server 开始,无法将剪贴板的内容粘贴到安全桌面上。 此行为与当前支持的 Windows 客户端 OS 版本相同。

恶意软件可以呈现对安全桌面的模拟,但当“用户帐户控制:在管理员审批模式中管理员的提升提示行为”策略设置设置为“同意提示”时,如果用户在模拟中选择“是”,则恶意软件不会获得提升。 如果策略设置设置为 “提示输入凭据”,则模拟凭据提示的恶意软件可能能够收集用户的凭据。 但是,恶意软件不会获得提升的权限,并且系统具有其他保护,可缓解恶意软件即使使用已获取的密码也无法控制用户界面。

虽然恶意软件可能会模拟安全桌面,但除非用户以前在电脑上安装了恶意软件,否则此问题不会发生。 由于在启用 UAC 时无法以无提示方式安装需要管理员访问令牌的进程,因此用户必须通过选择“ ”或提供管理员凭据来显式提供同意。 UAC 提升提示的特定行为取决于安全策略。