User Account Control (UAC) 体系结构 UAC 架构 User Account Control (UAC) 工作原理相关的技术;Windows 客户端中有两种常规类型的用户组:标准用户和管理用户。 UAC 简化了用户作为标准用户进行作和执行所有必要的日常任务的能力。 管理用户也受益于 UAC,因为只有在 UAC 请求用户对该实例的权限后,管理权限才可用。
How User Account Control works | Microsoft Learn
User Account Control | Microsoft Learn
How User Account Control Works | Microsoft Learn
用户帐户控制和远程限制 - Windows Server | Microsoft Learn
禁用用户帐户控制 (UAC) - Windows Server | Microsoft Learn
Microsoft Entra ID Windows 帐户管理器 API 参考 - Microsoft identity platform | Microsoft Learn
安全访问产品和 API - Microsoft Entra 应用程序 - Azure API 管理 - Azure API Management | Azure Docs
Microsoft 帐户 (MSA) 服务器端 API 参考 - Microsoft identity platform | Microsoft Learn
在某些情况下,在 Windows Server 上禁用 User Account Control (UAC) 可能是可接受的建议做法。 仅当以下两个条件均为 true 时,才会发生这些情况:
- 仅允许管理员在控制台或使用远程桌面服务以交互方式登录到 Windows 服务器。
- 管理员仅登录到基于 Windows 的服务器,以在服务器上执行合法的系统管理功能。
如果上述任一条件都不正确, User Account Control (UAC) 应保持启用状态。 例如,服务器启用远程桌面服务角色,以便非管理员用户可以登录到服务器来运行应用程序。 在这种情况下, User Account Control (UAC) 应保持启用状态。 同样,在以下情况下, User Account Control (UAC) 应保持启用状态:
- 管理员在服务器上运行有风险的应用程序。 例如,Web 浏览器、电子邮件客户端或即时消息客户端。
- 管理员执行应从客户端操作系统(如 Windows 7)执行的其他操作。
备注
- 本指南仅适用于 Windows Server 操作系统。
- 始终在 Windows Server 2008 R2 及更高版本的 Server Core 版本上禁用 User Account Control (UAC) 。
详细信息
User Account Control (UAC) 旨在帮助 Windows 用户默认使用标准用户权限。 UAC 包括多项实现此目标的技术。 这些技术包括:
-
文件和注册表虚拟化:当旧版应用程序尝试写入文件系统或注册表的受保护区域时,Windows 以无提示和透明方式将访问权限重定向到文件系统的一部分或允许用户更改的注册表。 它使许多应用程序需要早期版本的 Windows 的管理权限才能在 Windows Server 2008 及更高版本上仅使用标准用户权限成功运行。
-
同一桌面提升:当授权用户运行并提升程序时,生成的进程将被授予比交互式桌面用户的权限更强大的权限。 通过将提升与 UAC 的筛选令牌功能(请参阅下一个项目符号点)结合使用,管理员可以使用标准用户权限运行程序。 他们只能提升那些需要具有相同用户帐户管理权限的程序。 此同用户提升功能也称为管理员审批模式。 还可以使用不同的用户帐户以提升的权限启动程序,以便管理员可以在标准用户的桌面上执行管理任务。
-
筛选令牌:当具有管理权限或其他强大权限的用户或组成员身份登录时,Windows 将创建两个访问令牌来表示用户帐户。 未筛选的令牌具有所有用户的组成员身份和特权。 筛选的令牌表示与标准用户权限等效的用户。 默认情况下,此筛选令牌用于运行用户的程序。 未筛选的令牌仅与提升的程序相关联。 在以下情况下,帐户称为 受保护的管理员 帐户:
- 它是管理员组的成员
- 当用户登录时,它会收到筛选的令牌
-
用户界面特权隔离(UIPI):UIPI 阻止低特权程序通过以下方式控制高特权进程:
将窗口消息(例如合成鼠标或键盘事件)发送到属于更高特权进程的窗口 -
受保护的模式 Internet Explorer(PMIE):PMIE 是深层防御功能。 Windows Internet Explorer 以低特权保护模式运行,无法写入文件系统或注册表的大部分区域。 默认情况下,当用户浏览 Internet 或受限站点区域中的网站时,将启用受保护的模式。 PMIE 使得感染 Internet Explorer 正在运行的实例的恶意软件更难更改用户的设置。 例如,它会将自身配置为每次用户登录时启动。 PMIE 实际上不是 UAC 的一部分。 但它取决于 UAC 功能,如 UIPI。
-
安装程序检测:当新进程即将启动且没有管理权限时,Windows 会应用启发式方法来确定新进程是否可能是旧版安装程序。 Windows 假定旧版安装程序在没有管理权限的情况下可能会失败。 因此,Windows 会主动提示交互式用户提升。 如果用户没有管理凭据,则用户无法运行程序。
如果禁用用户帐户控制:在管理员批准模式策略设置中运行所有管理员。 它禁用本部分介绍的所有 UAC 功能。 此策略设置可通过计算机的本地安全策略、安全设置、本地策略以及安全选项获得。 具有预期写入受保护文件夹或注册表项的标准用户权限的旧应用程序将失败。 不会创建筛选的令牌。 所有程序都以登录计算机的用户的完整权限运行。 它包括 Internet Explorer,因为所有安全区域都禁用了受保护的模式。
有关 UAC 和同桌面提升的常见误解之一是:它可防止安装恶意软件或获得管理权限。 首先,可以编写恶意软件,不需要管理权限。 恶意软件可以写入到用户配置文件中的区域。 更重要的是,UAC 中的同一桌面提升不是安全边界。 它可以被在同一桌面上运行的未特权软件劫持。 同桌面提升应被视为一项便利功能。 从安全角度来看,受保护的管理员应被视为相当于管理员。 相比之下,使用快速用户切换通过管理员帐户登录到其他会话涉及管理员帐户与标准用户会话之间的安全边界。
对于基于 Windows 的服务器,交互式登录的唯一原因是管理系统,提升提示次数减少的目标不可行或可取。 系统管理工具合法地需要管理权限。 当所有管理用户的任务都需要管理权限,并且每个任务都可以触发提升提示时,提示只会阻碍工作效率。 在此上下文中,此类提示不能/不能促进鼓励开发需要标准用户权限的应用程序的目标。 此类提示不会改善安全状况。 这些提示只是鼓励用户单击对话框而不阅读它们。
本指南仅适用于托管良好的服务器。 这意味着只有管理用户可以以交互方式或通过远程桌面服务登录。 他们只能执行合法的行政职能。 在以下情况下,服务器应被视为等效于客户端系统:
- 管理员运行有风险的应用程序,例如 Web 浏览器、电子邮件客户端或即时消息客户端。
- 管理员执行应从客户端操作系统执行的其他操作。
在这种情况下,UAC 应保持启用为深度防御措施。
此外,如果标准用户在控制台或通过远程桌面服务登录到服务器以运行应用程序(尤其是 Web 浏览器)时,UAC 应保持启用状态以支持文件和注册表虚拟化以及受保护的模式 Internet Explorer。
避免在不禁用 UAC 的情况下避免提升提示的另一个选项是设置用户帐户控制:管理员审批模式安全策略中管理员提升提示的行为,而无需提示。 通过使用此设置,如果用户是 Administrators 组的成员,则以无提示方式批准提升请求。 此选项还会启用 PMIE 和其他 UAC 功能。 但是,并非所有需要管理权限请求提升的操作。 使用此设置可能会导致某些用户的程序被提升,有些程序不能区分它们。 例如,需要管理权限的大多数控制台实用程序应在命令提示符或其他已提升的程序处启动。 在命令提示符下启动这些实用工具时,这些实用工具只会失败,但未提升。
禁用 UAC 的其他效果
- 如果尝试使用 Windows 资源管理器浏览到没有读取权限的目录,资源管理器将提供更改目录的权限,以永久授予用户帐户访问权限。 结果取决于是否启用了 UAC。 有关详细信息,请参阅 在 Windows 资源管理器中单击“继续”获取文件夹访问权限时,用户帐户将添加到该文件夹的 ACL。
- 如果禁用 UAC,Windows 资源管理器将继续显示需要提升的项目的 UAC 防护图标。 Windows 资源管理器继续在应用程序和应用程序快捷方式的上下文菜单中以管理员身份运行。 由于 UAC 提升机制已禁用,因此这些命令不起作用。 应用程序与登录的用户在同一安全上下文中运行。
- 如果启用了 UAC,则当控制台实用工具Runas.exe用于使用受令牌筛选约束的用户帐户启动程序时,程序将使用用户的筛选令牌运行。 如果禁用 UAC,则启动的程序使用用户的完整令牌运行。
- 如果启用了 UAC,则不受令牌筛选约束的本地帐户不能用于通过远程桌面以外的网络接口进行远程管理。 例如,通过 NET USE 或 WinRM。 通过此类接口进行身份验证的本地帐户仅获取授予帐户筛选令牌的权限。 如果禁用 UAC,则会删除此限制。 也可以使用KB951016中所述的设置来删除
LocalAccountTokenFilterPolicy
此限制。 删除此限制可能会增加许多系统具有相同用户名和密码的管理本地帐户的环境中系统泄露的风险。 建议确保针对此风险使用其他缓解措施。 有关建议的缓解措施的详细信息,请参阅 缓解传递哈希(PtH)攻击和其他凭据盗窃、版本 1 和版本 2。 - PsExec、用户帐户控制和安全边界
- 在 Windows 资源管理器中选择“继续”以访问文件夹时,用户帐户将添加到文件夹的 ACL(KB 950934)
许多用户使用的用户帐户登录到其计算机,该帐户具有比运行其应用程序和访问其数据文件所需的权限更多的权限。 使用管理用户帐户执行日常用户任务会带来重大的安全风险。 在较旧版本的 Windows作系统中,建议管理员对大多数任务使用普通用户帐户,并使用运行方式帐户执行需要额外权限的任务。
Windows 提供 UAC 来简化和保护提升帐户权限的过程。 但是,除非你知道 UAC 的工作原理以及它如何影响用户,否则在尝试执行典型的最终用户支持任务时可能会遇到问题。 本模块介绍用户帐户控制的工作原理,以及如何使用 UAC 相关的桌面功能来降低安全风险。
目标
本模块结束时,你应该能够:
- 描述 UAC) (用户帐户控制。
- 说明 UAC 的工作原理。
- 说明如何配置 UAC 通知设置。
探索用户帐户控制
UAC 是一项安全功能,为用户提供了一种将状态从标准用户帐户提升到管理员帐户的方法,而无需注销或切换用户配置文件。 UAC 是功能集合,而不仅仅是提示。 这些功能(包括文件和注册表重定向、安装程序检测、UAC 提示符、ActiveX 安装程序服务等)允许 Windows 用户使用不是 Administrators 组成员的用户帐户进行作。 这些帐户(通常称为标准用户)被广泛描述为以最低特权进行作。 最重要的事实是,当用户使用标准用户帐户登录时,体验通常更加安全可靠。
需要对需要管理员级权限的计算机进行更改时,UAC 会通知你,如下所示:
- 如果你是管理员,请选择“ 是 ”以继续。
- 如果你不是管理员,则计算机上具有管理员帐户的用户必须输入其密码才能继续。
如果你是标准用户,则提供管理凭据可授予你完成任务的管理员权限。 完成该任务后,权限将还原标准用户拥有的权限。 这可确保即使你使用的是管理员帐户,也没有人可以在不知情的情况下对计算机进行更改。 临时提升的权限有助于防止恶意用户在您的计算机上安装恶意软件和间谍软件,或者对计算机进行更改。
检查 UAC 的工作原理
Windows 客户端中有两种常规类型的用户组:标准用户和管理用户。 UAC 简化了用户作为标准用户进行作和执行所有必要的日常任务的能力。 管理用户也受益于 UAC,因为只有在 UAC 请求用户对该实例的权限后,管理权限才可用。
Standard用户
在早期版本的 Windows作系统中,许多用户配置为使用管理权限,而不是标准用户权限。 这是因为以前的 Windows 版本要求用户具有管理员权限来执行基本的系统任务,例如添加打印机或配置时区。 在 Windows 10 及更高版本中,其中许多任务不再需要管理权限。
当用户在其计算机上具有管理权限时,他们可以安装其他软件。 尽管组织策略禁止安装未经授权的软件,但许多用户仍然这样做,这可能会降低其系统的稳定性,并推高支持成本。 启用 UAC 并且用户必须执行需要管理权限的任务时,UAC 会提示用户输入管理凭据。 在企业环境中,支持人员可以为具有本地管理权限的用户提供临时凭据以完成任务。 默认 UAC 设置允许标准用户在不收到 UAC 提示的情况下执行以下任务:
- 从 Windows 更新 安装更新。
- 从Windows 更新或作系统附带的驱动程序安装驱动程序。
- 查看 Windows 设置。 但是,更改 Windows 设置时,系统会提示标准用户提供提升的权限。
- 将蓝牙设备与计算机配对。
- 重置网络适配器并执行其他网络诊断和修复任务。
管理用户
管理用户自动拥有:
- 对所有资源具有读/写/颁布权限。
- 所有 Windows 权限。
虽然所有用户都无法读取、更改和删除任何 Windows 资源,但许多运行旧版 Windows作系统的企业 IT 部门别无选择,只能将其所有用户分配到本地管理员组。
UAC 的优点之一是,它允许具有管理权限的用户在大多数情况下以标准用户身份运行。 当具有管理权限的用户执行需要管理权限的任务时,UAC 会提示用户提供完成任务的权限。 当用户授予权限时,使用完全管理权限执行任务,然后帐户将还原到较低的权限级别。
了解 UAC 提升提示
默认情况下,许多应用程序要求用户成为管理员,因为它们在运行应用程序之前检查管理员组成员身份。
Standard用户帐户权限任务
以下列表详细介绍了标准用户可以执行的一些任务:
- (LAN) 连接建立局域网。
- 建立并配置无线连接。
- 修改显示设置。
- 用户无法对硬盘驱动器进行碎片整理,但服务会代表他们执行此作。
- 播放 CD/DVD 媒体 (可配置组策略) 。
- 刻录 CD/DVD 媒体 (可配置组策略) 。
- 更改当前用户的桌面背景。
- 在 控制面板 中打开“日期和时间”,并更改时区。
- 使用远程桌面连接到另一台计算机。
- 更改用户自己的帐户密码。
- 配置电池电源选项。
- 配置辅助功能选项。
- 还原用户的备份文件。
- 设置与移动设备(包括智能手机、笔记本电脑或个人数字助手 (PDA) )的计算机同步。
- 连接并配置蓝牙设备。
管理员帐户权限任务
以下列表详细介绍了需要提升到管理员帐户的一些任务:
- 安装和卸载应用程序。
- 为设备安装驱动程序,例如数码相机驱动程序。
- 安装 Windows 更新。
- 配置家长控制。
- 安装 ActiveX 控件。
- 在 控制面板 中打开 Windows Defender 防火墙。
- 更改用户的帐户类型。
- 修改安全策略编辑器管理单元中的 UAC 设置, (Secpol.msc) 到 Microsoft 管理控制台 (MMC) 。
- 配置远程桌面访问。
- 添加或删除用户帐户。
- 将文件复制或移动到 Program Files 或 Windows 目录中。
- 计划自动任务。
- 还原系统备份文件。
- 配置自动更新。
- 浏览到其他用户的目录。
启用 UAC 时,本地管理员组的成员使用与标准用户相同的访问令牌运行。 仅当本地 Administrators 组的成员批准时,进程才能使用管理员的完全访问令牌。
此过程是管理员审批模式原则的基础。 用户仅提升权限以执行需要管理员访问令牌的任务。 当标准用户尝试执行管理任务时,UAC 会提示用户输入管理员帐户的有效凭据。 这是标准用户提示行为的默认值。
提升提示显示有关请求提升的可执行文件的上下文信息。 上下文是不同的,具体取决于应用程序是否由 Authenticode 技术签名。 提升提示符有下表描述的两种变体:同意提示和凭据提示。
提升提示
说明
同意提示
在管理员尝试执行管理任务时,以管理员审批模式显示。 它请求用户批准以继续。
凭据提示
在标准用户尝试执行管理任务时显示。
提升入口点不记得已发生提升,例如从受防护的位置或任务返回时。 因此,用户必须重新删除才能再次输入任务。
Windows 客户端作系统减少了执行日常任务的标准用户的 UAC 提升提示数。 但是,有时适合返回提升提示。 例如,查看防火墙设置不需要提升。 但是,更改设置确实需要提升,因为这些更改会对系统范围产生影响。
提升提示的类型
当需要权限或密码才能完成任务时,UAC 会通知你三种不同类型的对话框之一。 下表描述了用户将看到的不同类型的对话框,并提供了有关如何响应这些对话框的指导。
提升提示的类型
说明
属于 Windows 的设置或功能需要你的权限才能启动。
此项具有有效的数字签名,用于验证Microsoft是否是此项的发布者。 如果显示此类型的对话框,通常可以放心地继续。 如果不确定,检查程序或函数的名称,以确定它是否是要运行。
不属于 Windows 的程序需要你的权限才能启动。
此程序具有有效的数字签名,这有助于确保程序实际是它声称的,并验证程序发布者的身份。 如果显示此类型的对话框,请确保程序是你想要运行的程序,并且你信任发布者。
具有未知发布者的程序需要你的权限才能启动。
此程序没有来自其发布者的有效数字签名。 这不一定表示危险,因为许多较旧的合法应用缺少签名。 但是,请格外小心,并且仅允许程序在从受信任的源(如产品 CD 或发布者的网站)获取时运行。 如果不确定,请在 Internet 上搜索程序的名称,以确定它是已知的程序还是恶意软件。
大多数情况下,应使用标准用户帐户登录到计算机。 无需管理员帐户即可浏览 Internet、发送电子邮件和使用字处理器。 如果要执行管理任务(例如安装新程序或更改会影响其他用户的设置),则无需切换到管理员帐户。 在执行任务之前,Windows作系统会提示你输入权限或管理员密码。 我们还建议为所有使用计算机的用户创建标准用户帐户。
配置 UAC 通知设置
在 Windows 中,你可以配置 UAC,以便在对计算机进行更改时通知你。 为此,请转到控制面板,选择“系统和维护”,然后在“作中心”下,选择“更改用户帐户控制设置”。 使用滑块确定 Windows 如何提示你。 默认值为“ 仅当应用尝试更改我的计算机时通知我”。
下表标识了启用提升提示体验自定义的四个设置。
Prompt
说明
从不通知我
UAC 已关闭。
仅当应用尝试对我的计算机进行更改时通知我 (不会调暗我的桌面)
当程序进行更改时,将显示提示,但桌面不会变暗。否则,不会提示用户。
仅当应用尝试对我的计算机进行更改时通知我 (默认)
当程序进行更改时,将显示一个提示,并且桌面会变暗,以提供一个视觉提示,指示正在尝试安装。 否则,不会提示用户。
始终通知我。
对计算机进行更改时,始终会提示用户。
可以通过使用不同的组策略设置来配置不同的用户体验。 为环境所做的配置选项会影响标准用户和/或管理员可以查看的提示和对话框。
例如,可能需要管理权限才能将 UAC 设置更改为 “始终通知我 ”或 “始终通知我并等待我的响应”。 配置此类型的配置时, “用户帐户控制设置” 页底部会显示一条黄色通知,指示要求。
简介
User Account Control (UAC) 是 Windows Vista 的新安全组件。 UAC 使用户能够以非管理员身份执行常见的日常任务。 这些用户称为 Windows Vista 中的标准用户 。 属于本地管理员组成员的用户帐户将使用最低权限原则运行大多数应用程序。 在此方案中,最低特权用户具有与标准用户帐户的权限类似的权限。 但是,当本地管理员组的成员必须执行需要管理员权限的任务时,Windows Vista 会自动提示用户批准。
UAC 远程限制的工作原理
为了更好地保护属于本地管理员组成员的用户,我们在网络上实施 UAC 限制。 此机制有助于防止 环回 攻击。 此机制还有助于防止本地恶意软件使用管理权限远程运行。
本地用户帐户(安全帐户管理器用户帐户)
例如,当作为目标远程计算机上的本地管理员组成员的用户使用 net use *\\remotecomputer\Share$
命令建立远程管理连接时,他们不会作为完全管理员进行连接。 用户在远程计算机上没有提升潜力,用户无法执行管理任务。 如果用户想要使用安全帐户管理器(SAM)帐户管理工作站,则如果用户必须以交互方式登录到要通过远程协助或远程桌面管理的计算机(如果这些服务可用)。
域用户帐户(Active Directory 用户帐户)
具有域用户帐户的用户远程登录到 Windows Vista 计算机。 并且,域用户是管理员组的成员。 在这种情况下,域用户将在远程计算机上使用完全管理员访问令牌运行,并且 UAC 不会生效。
备注
此行为与 Windows XP 中的行为不同。
如何禁用 UAC 远程限制
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表。
若要禁用 UAC 远程限制,请执行以下步骤:
-
单击开始,单击运行,键入 regedit,然后按 Enter。
-
找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
-
如果
LocalAccountTokenFilterPolicy
注册表项不存在,请执行以下步骤:- 在编辑菜单中指向新建,然后选择 DWORD 值。
- 键入 LocalAccountTokenFilterPolicy,然后按 Enter。
-
右键单击“LocalAccountTokenFilterPolicy”,然后选择“修改”。
-
在“值”数据框中,键入“1”,然后选择“确定”。
-
退出注册表编辑器。
此问题是否修复了问题
检查问题是否已修复。 如果问题未解决, 请联系支持人员。
UAC 远程设置
LocalAccountTokenFilterPolicy 注册表项的值可以为 0 或 1。 这些值将注册表项的行为更改为下表中所述的行为。
值 | 说明 |
---|---|
0 | 此值生成筛选的令牌。 它是默认值。 删除管理员凭据。 |
1 | 此值生成提升的令牌。 |
User Account Control (UAC) 体系结构
下图详细介绍了 User Account Control (UAC) 体系结构。
用户
- 用户执行需要特权的作:如果作更改了文件系统或注册表,则会调用虚拟化。 所有其他作调用 ShellExecute。
- ShellExecute:ShellExecute 调用 CreateProcess。 ShellExecute 在 CreateProcess 中查找
ERROR_ELEVATION_REQUIRED
错误。 如果收到错误,ShellExecute 会调用应用程序信息服务,以尝试使用提升的提示执行请求的任务。 - CreateProcess:如果应用程序需要提升,CreateProcess 会拒绝使用
ERROR_ELEVATION_REQUIRED
的调用。
系统
-
应用程序信息服务:
- 一种系统服务,可帮助启动需要一个或多个提升的权限或用户权限才能运行的应用。
- 应用程序信息服务通过在需要提升时使用管理用户的完全访问令牌为应用程序创建一个新进程来帮助启动此类应用。
- 根据配置的策略,用户可能会同意。
-
提升 ActiveX 安装:
- 如果未安装 ActiveX,系统会检查 UAC 滑块级别。
- 如果安装了 ActiveX,则会选中“用户帐户控制:在提示提升组策略时切换到安全桌面”设置。
-
检查 UAC 滑块级别:UAC 有一个滑块,可从四个通知级别中进行选择:
- 始终通知 将:
- 当程序尝试安装软件或对计算机进行更改时,通知你。
- 更改 Windows 设置时通知你。
- 冻结其他任务,直到你做出响应。
- 如果你经常安装新软件或访问不熟悉的网站,建议这样做。
- 仅当程序尝试对我的计算机进行更改时,才会通知我 :
- 当程序尝试安装软件或对计算机进行更改时,通知你。
- 对 Windows 设置进行更改时,不会通知你。
- 冻结其他任务,直到你做出响应。
- 如果你不经常安装应用或访问不熟悉的网站,建议这样做。
- 仅当程序尝试对我的计算机进行更改时通知我 (不调暗我的桌面) 会:
- 当程序尝试安装软件或对计算机进行更改时,通知你。
- 对 Windows 设置进行更改时,不会通知你。
- 在响应之前,不会冻结其他任务。
- 不建议这样做。 仅当需要很长时间来调暗计算机上的桌面时,才选择此选项。
- 从不通知 (禁用 UAC 提示) 将:
- 当程序尝试安装软件或更改计算机时,不会通知你。
- 对 Windows 设置进行更改时,不会通知你。
- 在响应之前,不会冻结其他任务。
- 出于安全考虑,不建议这样做。
- 始终通知 将:
-
已启用安全桌面:选中 “用户帐户控制:在提示提升策略设置时切换到安全桌面 ” :
- 如果启用了安全桌面,则无论管理员和标准用户的提示行为策略设置如何,所有提升请求都会转到安全桌面。
- 如果未启用安全桌面,则所有提升请求将发送到交互式用户的桌面,并使用管理员和标准用户的每个用户设置。
-
CreateProcess:
- CreateProcess 调用 AppCompat、Fusion 和 Installer 检测来评估应用是否需要提升。
- 然后检查该文件以确定其请求的执行级别,该级别存储在文件的应用程序清单中。
- 如果清单中指定的请求执行级别与访问令牌不匹配,并且向 ShellExecute 返回错误 (ERROR_ELEVATION_REQUIRED) ,CreateProcess 将失败。
-
AppCompat:
- AppCompat 数据库将信息存储在应用程序的应用程序兼容性修补程序条目中。
-
Fusion:
- Fusion 数据库存储来自描述应用程序的应用程序清单的信息。
- 更新清单架构以添加新请求的执行级别字段。
-
安装程序检测:
- 安装程序检测可检测安装程序文件,并帮助防止在用户不知情和未经同意的情况下运行安装。
内核
- 虚拟化:虚拟化技术可确保不合规的应用不会以无法确定原因的方式无提示地运行或失败。 UAC 还为写入到受保护区域的应用程序提供文件和注册表虚拟化以及日志记录。
- 文件系统和注册表:每用户文件和注册表虚拟化将每台计算机注册表和文件写入请求重定向到等效的每用户位置。 读取请求首先重定向到虚拟化的每用户位置,然后重定向到每台计算机位置。
滑块永远不会完全关闭 UAC。 如果将其设置为 “从不通知”,它将:
- 使 UAC 服务保持运行
- 导致管理员发起的所有提升请求在未显示 UAC 提示的情况下自动批准
- 自动拒绝标准用户的所有提升请求
重要
若要完全禁用 UAC,必须禁用“用户帐户控制:在管理员审批模式下运行所有管理员”策略。 禁用 UAC 时,某些通用 Windows 平台应用可能无法正常工作。
虚拟化
由于企业环境中的系统管理员尝试保护系统,因此许多业务线 (LOB) 应用程序设计为仅使用标准用户访问令牌。 因此,打开 UAC 后,无需替换大多数应用。
Windows 包含适用于不符合 UAC 且需要管理员访问令牌才能正常运行的应用的文件和注册表虚拟化技术。 当不符合 UAC 标准的管理应用尝试写入受保护的文件夹(如 Program Files)时,UAC 会为应用提供它尝试更改的资源的虚拟化视图。 虚拟化副本在用户的配置文件中维护。 此策略为运行不合规应用的每个用户创建虚拟化文件的单独副本。
大多数应用任务通过使用虚拟化功能可以正常运行。 尽管虚拟化允许大多数应用程序运行,但它是短期修复,而不是长期解决方案。 应用开发人员应尽快修改其应用,使其符合要求,而不是依赖文件、文件夹和注册表虚拟化。
在以下方案中,虚拟化不是一个选项:
- 虚拟化不适用于提升并使用完全管理访问令牌运行的应用
- 虚拟化仅支持 32 位应用。 未授权的 64 位应用在尝试获取句柄 (Windows 对象的唯一标识符) 时会收到拒绝访问消息。 本机 Windows 64 位应用需要与 UAC 兼容,并将数据写入到正确的位置
- 如果应用包含具有请求的执行级别属性的应用清单,则禁用虚拟化
请求执行级别
应用清单是一个 XML 文件,用于描述和标识应用在运行时应绑定到的共享程序集和专用并行程序集。 应用清单包含用于 UAC 应用兼容性的条目。 在应用清单中包含条目的管理应用会提示用户提供访问用户访问令牌的权限。 尽管它们缺少应用清单中的条目,但大多数管理应用都可以使用应用兼容性修补程序在不进行修改的情况下运行。 应用兼容性修补程序是数据库条目,使不符合 UAC 的应用程序能够正常工作。
所有符合 UAC 的应用都应将请求的执行级别添加到应用程序清单。 如果应用程序需要对系统进行管理访问权限,请将请求的执行级别标记为 “需要管理员 ”的应用可确保系统将此程序标识为管理应用,并执行必要的提升步骤。 请求的执行级别指定应用所需的权限。
安装程序检测技术
安装程序是设计用于部署软件的应用。 大多数安装程序写入系统目录和注册表项。 这些受保护的系统位置通常只能由安装程序检测技术的管理员写入,这意味着标准用户没有足够的访问权限来安装程序。 Windows 会启发式检测安装程序,并请求管理员凭据或管理员用户的批准,以便使用访问权限运行。 Windows 还会启发式检测卸载应用程序的更新和程序。 UAC 的设计目标之一是防止在用户不知情和同意的情况下运行安装,因为安装程序会写入文件系统和注册表的受保护区域。
安装程序检测仅适用于:
- 32 位可执行文件
- 没有请求的执行级别属性的应用程序
- 以启用了 UAC 的标准用户身份运行的交互式进程
在创建 32 位进程之前,会检查以下属性以确定它是否为安装程序:
- 文件名包括“install”、“setup”或“update”等关键字。
- 版本控制资源字段包含以下关键字:供应商、公司名称、产品名称、文件说明、原始文件名、内部名称和导出名称。
- 并行清单中的关键字嵌入到可执行文件中。
- 特定 StringTable 条目中的关键字在可执行文件中链接。
- 资源脚本数据中的键属性链接在可执行文件中。
- 可执行文件包含目标字节序列。
备注
关键字和字节序列派生自各种安装程序技术观察到的常见特征。
备注
必须启用 “用户帐户控制:检测应用程序安装并提示提升 ”策略,才能检测安装程序。 有关详细信息,请参阅 用户帐户控制设置列表。
User Account Control (UAC) 工作原理
User Account Control (UAC) 是 Windows 安全性的关键部分。 UAC 通过限制恶意代码以管理员权限执行的能力来降低恶意软件的风险。 本文介绍 UAC 的工作原理以及它如何与最终用户交互。
UAC 进程和交互
使用 UAC 时,需要 管理员访问令牌 的每个应用程序都必须提示最终用户同意。 唯一的例外是父进程和子进程之间存在的关系。 子进程从父进程继承用户的访问令牌。 但是,父进程和子进程必须具有相同 的完整性级别。
Windows 通过标记进程的完整性级别来保护进程。 完整性级别是信任的度量:
- 高完整性应用程序是执行修改系统数据的任务的应用程序,例如磁盘分区应用程序
- 低完整性应用程序是执行可能危及作系统的任务的应用程序,例如 Web 浏览器
具有较低完整性级别的应用程序不能修改具有较高完整性级别的应用程序中的数据。 当标准用户尝试运行需要管理员访问令牌的应用时,UAC 要求用户提供有效的管理员凭据。
为了更好地了解此过程的工作原理,让我们更详细地了解一下 Windows 登录过程。
登录过程
下图显示了管理员的登录过程与标准用户的登录过程有何不同。
默认情况下,标准用户和管理员用户访问资源,并在标准用户的安全上下文中执行应用。
当用户登录时,系统会为该用户创建访问令牌。 访问令牌包含有关授予用户的访问权限级别的信息,包括特定安全标识符 (SID) 和 Windows 权限。
管理员登录时,将为用户创建两个单独的访问令牌: 标准用户访问令牌 和 管理员访问令牌。 标准用户访问令牌:
- 包含与管理员访问令牌相同的特定于用户的信息,但已删除管理 Windows 特权和 SID
- 用于启动不 (标准用户应用) 执行管理任务的应用程序
- 用于通过执行 进程explorer.exe显示桌面。 Explorer.exe 是所有其他用户启动的进程从中继承其访问令牌的父进程。 因此,除非用户提供许可或凭据来批准应用使用完整的管理访问令牌,否则所有应用都以标准用户身份运行
作为 Administrators 组成员的用户可以在使用标准用户访问令牌时登录、浏览 Web 和阅读电子邮件。 当管理员需要执行需要管理员访问令牌的任务时,Windows 会自动提示用户进行审批。 此提示称为 提升提示,可以通过策略或注册表配置其行为。
UAC 用户体验
启用 UAC 后,标准用户的用户体验不同于管理员用户。 建议的、更安全的运行 Windows 方法是确保主用户帐户是标准用户。 以标准用户身份运行有助于最大程度地提高托管环境的安全性。 使用内置的 UAC 提升组件,标准用户可以通过输入本地管理员帐户的有效凭据来轻松执行管理任务。
标准用户的默认内置 UAC 提升组件是 凭据提示。
作为标准用户运行的替代方法是在管理员审批模式下以管理员身份运行。 使用内置的 UAC 提升组件,本地管理员组的成员可以通过提供审批轻松执行管理任务。
管理员审批模式下管理员帐户的默认内置 UAC 提升组件称为同意提示。
凭据提示
当标准用户尝试执行需要用户管理访问令牌的任务时,会显示凭据提示。 还可以要求管理员提供其凭据,方法是将“用户帐户控制:管理员审批模式中管理员的提升提示行为”策略设置值设置为“凭据提示”。
许可提示
当用户尝试执行需要用户管理访问令牌的任务时,会显示同意提示。
UAC 提升提示
UAC 提升提示的颜色编码为特定于应用,以便更轻松地识别应用程序的潜在安全风险。 当应用尝试使用管理员的完全访问令牌运行时,Windows 首先分析可执行文件以确定其发布者。 应用首先根据文件的发布者分为三个类别:
- Windows
- 发布者已验证 (签名)
- 发布者未验证 (未签名)
提升提示颜色编码如下所示:
- 灰色背景:应用程序是 Windows 管理应用,例如控制面板项,或由已验证发布者签名的应用程序
- 黄色背景:应用程序未签名或已签名,但不受信任
“盾牌”图标
某些控制面板项(如日期和时间)包含管理员和标准用户作的组合。 Standard用户可以查看时钟并更改时区,但需要完全管理员访问令牌才能更改本地系统时间。 下面是日期和时间控制面板项的屏幕截图。
“ 更改日期和时间...” 按钮上的屏蔽图标指示该过程需要完整的管理员访问令牌。
保护提升提示
通过将提示定向到 安全桌面,可以进一步保护提升过程。 默认情况下,同意和凭据提示显示在安全桌面上。 只有 Windows 进程可以访问安全桌面。 为了提高安全级别,我们建议保持 用户帐户控制:在提示提升策略设置时切换到安全桌面 。
当可执行文件请求提升时, 交互式桌面(也称为 用户桌面)将切换到安全桌面。 安全桌面会调暗用户桌面,并显示必须在继续之前响应的提升提示。 当用户选择 “是” 或“ 否”时,桌面将切换回用户桌面。
备注
从 2019 Windows Server 开始,无法将剪贴板的内容粘贴到安全桌面上。 此行为与当前支持的 Windows 客户端 OS 版本相同。
恶意软件可以呈现对安全桌面的模拟,但当“用户帐户控制:在管理员审批模式中管理员的提升提示行为”策略设置设置为“同意提示”时,如果用户在模拟中选择“是”,则恶意软件不会获得提升。 如果策略设置设置为 “提示输入凭据”,则模拟凭据提示的恶意软件可能能够收集用户的凭据。 但是,恶意软件不会获得提升的权限,并且系统具有其他保护,可缓解恶意软件即使使用已获取的密码也无法控制用户界面。
虽然恶意软件可能会模拟安全桌面,但除非用户以前在电脑上安装了恶意软件,否则此问题不会发生。 由于在启用 UAC 时无法以无提示方式安装需要管理员访问令牌的进程,因此用户必须通过选择“ 是 ”或提供管理员凭据来显式提供同意。 UAC 提升提示的特定行为取决于安全策略。
用户帐户控制 (UAC) 有助于防止恶意程序(也称为恶意软件)损坏计算机,并帮助组织部署管理更好的桌面。使用 UAC 时,应用程序和任务始终在非管理员帐户的安全上下文中运行,除非管理员特别授权对系统的管理员级别访问权限。UAC 可以阻止自动安装未经授权的应用程序并防止无意中更改系统设置。
UAC 流程和交互
需要管理员访问令牌的每个应用程序都必须提示管理员同意。一个例外是父进程和子进程之间存在的关系。子进程从父进程继承用户访问令牌。但是,父进程和子进程必须具有相同的完整性级别。Windows Server 2012 通过标记进程的完整性级别来保护进程。完整性水平是信任的衡量标准。“高”完整性应用程序是执行修改系统数据的任务(如磁盘分区应用程序)的应用程序,而“低”完整性应用程序是执行可能危及作系统的任务(如 Web 浏览器)的应用程序。完整性级别较低的应用程序无法修改完整性级别较高的应用程序中的数据。当标准用户尝试运行需要管理员访问令牌的应用程序时,UAC 要求用户提供有效的管理员凭据。
为了更好地了解此过程是如何发生的,请务必查看 Windows Server 2012 登录过程的详细信息。
Windows Server® 2012 登录过程
下图演示了管理员的登录过程与标准用户的登录过程有何不同。
缺省情况下,标准用户和管理员在标准用户的安全上下文中访问资源并运行应用程序。当用户登录到计算机时,系统会为该用户创建一个访问令牌。访问令牌包含有关向用户授予的访问级别的信息,包括特定的安全标识符 (SID) 和 Windows 权限。
当管理员登录时,将为用户创建两个单独的访问令牌:标准用户访问令牌和管理员访问令牌。标准用户访问令牌包含与管理员访问令牌相同的用户特定信息,但将删除管理 Windows 权限和 SID。标准用户访问令牌用于启动不执行管理任务的应用程序(标准用户应用程序)。然后使用标准用户访问令牌来显示桌面 (Explorer.exe)。Explorer.exe 是所有其他用户启动的进程从中继承其访问令牌的父进程。因此,除非用户提供同意或凭据以批准应用程序使用完全管理访问令牌,否则所有应用程序都以标准用户身份运行。
作为 Administrators 组成员的用户可以使用标准用户访问令牌登录、浏览 Web 和阅读电子邮件。当管理员需要执行需要管理员访问令牌的任务时,Windows Server 2012 会自动提示用户进行批准。此提示称为提升提示,可以使用本地安全策略管理单元 (Secpol.msc) 或组策略配置其行为。
注意
术语“提升”用于指代 Windows Server 2012 中的进程,该过程提示用户同意或凭据以使用完全管理员访问令牌。
UAC 用户体验
启用 UAC 后,标准用户的用户体验与管理员审批模式下的管理员的用户体验不同。运行 Windows Server 2012 的建议且更安全的方法是将主用户帐户设为标准用户帐户。以标准用户身份运行有助于最大限度地提高托管环境的安全性。使用内置 UAC 提升组件,标准用户可以通过输入本地管理员帐户的有效凭据来轻松执行管理任务。标准用户的默认内置 UAC 提升组件是凭据提示。
以标准用户身份运行的替代方法是在管理员审批模式下以管理员身份运行。使用内置的 UAC 提升组件,本地管理员组的成员可以通过提供审批轻松执行管理任务。管理员审批模式下管理员帐户的默认内置 UAC 提升组件称为同意提示。可以使用本地安全策略管理单元 (Secpol.msc) 或组策略配置 UAC 提升提示行为。
同意和凭据提示
启用 UAC 后,Windows Server 2012 会在启动需要完全管理员访问令牌的程序或任务之前提示同意或提示输入有效本地管理员帐户的凭据。此提示可确保无法以静默方式安装任何恶意软件。
同意提示
当用户尝试执行需要用户管理访问令牌的任务时,将显示同意提示。下面是 UAC 同意提示的屏幕截图。
凭据提示
当标准用户尝试执行需要用户管理访问令牌的任务时,将显示凭据提示。可以使用本地安全策略管理单元 (Secpol.msc) 或组策略配置此标准用户默认提示行为。还可以要求管理员提供其凭据,方法是将“用户帐户控制:管理员审批模式下管理员的提升提示行为”策略设置值设置为“提示输入凭据”。
以下屏幕截图是 UAC 凭据提示的示例。
UAC elevation prompts
The UAC elevation prompts are color-coded to be application-specific, enabling for immediate identification of an application's potential security risk. When an application attempts to run with an administrator's full access token, Windows Server 2012 first analyzes the executable file to determine its publisher. Applications are first separated into three categories based on the executable file's publisher: Windows Server 2012, publisher verified (signed), and publisher not verified (unsigned). The following diagram illustrates how Windows Server 2012 determines which color elevation prompt to present to the user.
高程提示颜色编码如下:
-
带有红色盾牌图标的红色背景:应用程序被组策略阻止,或者来自被阻止的发布者。
-
带有蓝色和金色盾牌图标的蓝色背景:应用程序是 Windows Server 2012 管理应用程序,例如控制面板项。
-
带有蓝色盾牌图标的蓝色背景:应用程序使用 Authenticode 签名,并受本地计算机信任。
-
带有黄色盾牌图标的黄色背景:应用程序未签名或已签名,但尚未被本地计算机信任。
盾牌图标
某些控制面板项(如日期和时间属性)包含管理员和标准用户作的组合。标准用户可以查看时钟和更改时区,但需要完整的管理员访问令牌才能更改本地系统时间。下面是“日期和时间属性”控制面板项的屏幕截图。
“更改日期和时间”按钮上的盾牌图标表示该进程需要完整的管理员访问令牌,并将显示 UAC 提升提示。
保护高程提示
通过将提示定向到安全桌面,可以进一步保护提升过程。默认情况下,同意和凭据提示显示在 Windows Server 2012 的安全桌面上。只有 Windows 进程可以访问安全桌面。为了获得更高级别的安全性,建议保持“用户帐户控制:提示提升策略时切换到安全桌面”设置。
当可执行文件请求提升时,交互式桌面(也称为用户桌面)将切换到安全桌面。安全桌面会使用户桌面变暗,并显示必须响应的提升提示,然后才能继续。当用户单击“是”或“否”时,桌面将切换回用户桌面。
恶意软件可以呈现安全桌面的模仿,但当“用户帐户控制:管理员审批模式下管理员提升提示的行为”策略设置设置为“提示同意”时,如果用户在模仿上单击“是”,恶意软件不会获得提升。如果策略设置设置为“提示输入凭据”,则模仿凭据提示的恶意软件可能能够从用户那里收集凭据。但是,恶意软件不会获得提升的权限,并且系统具有其他保护措施,即使使用收集的密码,也可以防止恶意软件控制用户界面。
虽然恶意软件可能会模仿安全桌面,但除非用户之前在计算机上安装了恶意软件,否则不会发生此问题。由于启用 UAC 时,需要管理员访问令牌的进程无法以静默方式安装,因此用户必须通过单击“是”或提供管理员凭据来显式提供同意。UAC 提升提示的特定行为取决于组策略。
UAC 架构
下图详细介绍了 UAC 体系结构。
为了更好地了解每个组件,请查看下表:
元件 |
描述 |
---|---|
用户 |
|
用户执行需要权限的作 |
如果作更改了文件系统或注册表,则调用虚拟化。所有其他作都调用 ShellExecute。 |
Shell执行 |
ShellExecute 调用 CreateProcess。ShellExecute 从 CreateProcess 中查找ERROR_ELEVATION_REQUIRED错误。如果收到错误,ShellExecute 将调用应用程序信息服务,以尝试使用提升的提示符执行请求的任务。 |
创建过程 |
如果应用程序需要提升,CreateProcess 会拒绝带有 ERROR_ELEVATION_REQUIRED 的调用。 |
系统 |
|
应用信息服务 |
一种系统服务,可帮助启动需要一个或多个提升的权限或用户权限才能运行的应用程序,例如本地管理任务,以及需要更高完整性级别的应用程序。应用程序信息服务通过在需要提升和管理用户的完全访问令牌为应用程序创建新进程来帮助启动此类应用程序,并且 (取决于组策略) 用户同意这样做。 |
提升 ActiveX 安装 |
如果未安装 ActiveX,系统将检查 UAC 滑块级别。如果安装了 ActiveX,则选中“用户帐户控制:提示提升组策略时切换到安全桌面”设置。 |
检查 UAC 滑块级别 |
UAC 现在有四个级别的通知可供选择,还有一个滑块可用于选择通知级别:
|
启用安全桌面 |
选中“用户帐户控制:提示提升策略设置时切换到安全桌面”:
|
创建过程 |
CreateProcess 调用 AppCompat、Fusion 和 Installer 检测来评估应用程序是否需要提升。然后检查可执行文件以确定其请求的执行级别,该级别存储在可执行文件的应用程序清单中。如果清单中指定的请求执行级别与访问令牌不匹配,则 CreateProcess 将失败,并向 ShellExecute 返回错误 (ERROR_ELEVATION_REQUIRED)。有关详细信息,请参阅本部分后面的请求执行级别。 |
应用兼容 |
AppCompat 数据库将信息存储在应用程序的应用程序兼容性修补程序条目中。 |
融合 |
Fusion 数据库存储来自描述应用程序的应用程序清单的信息。清单架构将更新以添加新的请求执行级别字段。 |
安装程序检测 |
安装程序检测可检测安装程序可执行文件,这有助于防止在用户不知情和同意的情况下运行安装。有关详细信息,请参阅本部分后面的安装程序检测技术。 |
内核 |
|
虚拟化 |
虚拟化技术可确保不合规的应用程序不会以无提示方式运行或以无法确定原因的方式失败。UAC 还为写入受保护区域的应用程序提供文件和注册表虚拟化和日志记录。有关详细信息,请参阅本部分后面的虚拟化。 |
文件系统和注册表 |
每用户文件和注册表虚拟化将每计算机注册表和文件写入请求重定向到等效的每用户位置。读取请求首先重定向到虚拟化的每用户位置,然后重定向到每计算机位置。 |
Windows Server 2012 UAC 与以前的 Windows 版本相比发生了更改。新滑块永远不会完全关闭 UAC。新设置将:
-
保持 UAC 服务运行。
-
使管理员发起的所有提升请求自动获得批准,而不显示 UAC 提示。
-
自动拒绝标准用户的所有提升请求。
重要
要完全禁用 UAC,您必须禁用策略用户帐户控制:在管理员批准模式下运行所有管理员。
警告
禁用 UAC 后,定制应用程序将无法在 Windows Server 2012 上运行。
虚拟化
由于企业环境中的系统管理员尝试保护系统,因此许多业务线 (LOB) 应用程序设计为仅使用标准用户访问令牌。因此,在运行启用了 UAC 的 Windows Server 2012 时,IT 管理员无需替换大多数应用程序。
Windows Server 2012 包括文件和注册表虚拟化技术,适用于不符合 UAC 且需要管理员访问令牌才能正常运行的应用程序。虚拟化确保即使不符合 UAC 的应用程序也与 Windows Server 2012 兼容。当不符合 UAC 的管理应用程序尝试写入受保护的目录(如 Program Files)时,UAC 会为应用程序提供它尝试更改的资源的自己的虚拟化视图。虚拟化副本在用户配置文件中维护。此策略为运行不合规应用程序的每个用户创建虚拟化文件的单独副本。
大多数应用程序任务通过使用虚拟化功能正常运行。尽管虚拟化允许运行大多数应用程序,但它是短期修复,而不是长期解决方案。应用程序开发人员应尽快修改其应用程序以符合 Windows Server 2012 徽标计划,而不是依赖文件、文件夹和注册表虚拟化。
在以下情况下,虚拟化不在选项中:
-
虚拟化不适用于提升并使用完全管理访问令牌运行的应用程序。
-
虚拟化仅支持 32 位应用程序。非提升的 64 位应用程序在尝试获取 Windows 对象的句柄 (唯一标识符) 时,只会收到拒绝访问的消息。本机 Windows 64 位应用程序需要与 UAC 兼容,并将数据写入正确的位置。
-
如果应用程序包含具有请求的执行级别属性的应用程序清单,则应用程序将禁用虚拟化。
请求执行级别
应用程序清单是一个 XML 文件,用于描述和标识应用程序在运行时应绑定到的共享和专用并行程序集。在 Windows Server 2012 中,应用程序清单包括用于 UAC 应用程序兼容性目的的条目。在应用程序清单中包含条目的管理应用程序会提示用户授予访问用户访问令牌的权限。尽管它们在应用程序清单中缺少条目,但大多数管理应用程序都可以使用应用程序兼容性修补程序运行而无需修改。应用程序兼容性修补程序是数据库条目,使不符合 UAC 的应用程序能够与 Windows Server 2012 正常工作。
所有符合 UAC 的应用程序都应将请求的执行级别添加到应用程序清单中。如果应用程序需要对系统的管理访问权限,则将应用程序标记为请求的执行级别“需要管理员”可确保系统将此程序标识为管理应用程序并执行必要的提升步骤。请求的执行级别指定应用程序所需的权限。
安装人员检测技术
安装程序是设计用于部署软件的应用程序。大多数安装程序都会写入系统目录和注册表项。这些受保护的系统位置通常只能由安装程序检测技术中的管理员写入,这意味着标准用户没有足够的访问权限来安装程序。Windows Server 2012 以启发式方式检测安装程序,并请求管理员凭据或管理员用户的批准,以便以访问权限运行。Windows Server 2012 还以启发式方式检测卸载应用程序的更新和程序。UAC 的设计目标之一是防止在用户不知情和同意的情况下运行安装,因为安装程序会写入文件系统和注册表的受保护区域。
安装程序检测仅适用于:
-
32 位可执行文件。
-
没有请求的执行级别属性的应用程序。
-
以启用 UAC 的标准用户身份运行的交互式进程。
在创建 32 位进程之前,将检查以下属性以确定它是否是安装程序:
-
文件名包含“安装”、“安装”或“更新”等关键字。
-
版本控制资源字段包含以下关键字:供应商、公司名称、产品名称、文件描述、原始文件名、内部名称和导出名称。
-
并排清单中的关键字嵌入在可执行文件中。
-
特定 StringTable 条目中的关键字在可执行文件中链接。
-
资源脚本数据中的关键属性在可执行文件中链接。
-
可执行文件中存在目标字节序列。
注意
字节的关键字和序列源自从各种安装程序技术中观察到的共同特征。
注意
必须启用“用户帐户控制:检测应用程序安装并提示提升”策略设置,安装程序检测才能检测安装程序。默认情况下,此设置处于启用状态,可以使用本地安全策略管理单元 (Secpol.msc) 在本地进行配置,也可以通过组策略 (Gpedit.msc) 为域、OU 或特定组进行配置。
用户帐户控制设置和配置
UAC(用户账户控制)是 Windows 操作系统中的一项安全功能,旨在帮助防止未经授权的更改系统设置和应用程序的行为。UAC通过提示用户确认或提升权限来减少恶意软件对系统的影响。然而,有人可能试图绕过 UAC 以获取更高的权限,这种行为是不推荐的,并且可能违反法律。
以下是您提到的一些可能与绕过 UAC 相关的技术,简单解释它们的含义:
- cmstpelevatedcom: 这可能涉及使用 COM 组件来执行一些需要管理员权限的操作,绕过 UAC 提示。
- colordataproxy: 可能是指利用色彩数据代理的漏洞或机制来绕过 UAC,具体细节可能涉及特定的实现。
- editionupgrademanager: 可能是指绕过 UAC 的一种方法,利用系统版本升级管理器的漏洞或特性。
- silentcleanupwindir: 可能与在 Windows 目录中执行一些“静默清理”操作有关,可能会尝试绕过 UAC。
- registryshellcommand: 可能是指通过注册表 shell 命令来执行一些绕过 UAC 的操作。
- trustedpathdllhijack: 可能涉及利用 DLL 劫持技术来执行一些绕过 UAC 的操作。
- sspiuacbypass: 可能指尝试绕过 SSPI(安全服务提供接口)来绕过 UAC。
-
cmstpelevatedcom:使用 COM(Component Object Model)组件执行需要管理员权限的操作。COM 是一种微软的组件对象模型,通过使用 COM 组件可以执行一些需要较高权限的操作,可能被利用来绕过 UAC 提示。
-
colordataproxy:利用色彩数据代理的漏洞或机制来绕过 UAC。在 Windows 中,颜色数据处理可能涉及系统级别的操作,某些漏洞或机制可能被利用来绕过 UAC 的权限限制。
-
editionupgrademanager:利用系统版本升级管理器的漏洞或特性来绕过 UAC。系统版本升级管理器可能涉及对系统核心部分的操作,利用其中的漏洞或特性可能实现绕过 UAC 的效果。
-
silentcleanupwindir:在 Windows 目录中执行一些“静默清理”操作,尝试绕过 UAC。通过在系统目录执行清理操作,可能会绕过 UAC 的权限控制。
-
registryshellcommand:通过注册表 shell 命令执行一些绕过 UAC 的操作。注册表中包含系统重要的配置信息,利用注册表的 shell 命令可能实现对系统的控制,绕过 UAC。
-
trustedpathdllhijack:利用 DLL 劫持技术来执行一些绕过 UAC 的操作。通过操纵系统中加载的 DLL 文件,可能实现对系统权限的提升或绕过 UAC。
-
sspiuacbypass:尝试绕过 SSPI(安全服务提供接口)来绕过 UAC。SSPI 是 Windows 系统中用于安全认证和加密通信的接口,尝试绕过 SSPI 可能导致绕过 UAC 控制。