“简单”UAC 和 Windows 上的两个用户帐户有什么区别?

信息安全 视窗 uac
2021-08-22 23:10:48

我目前正在考虑提高我的 Windows 机器的安全性。

作为强化的一部分,我考虑了最小权限原则,并希望使用两个不同的用户帐户在 Windows 上应用它:管理员帐户和普通用户帐户(用于日常使用)。

现在我问自己:

与运行(单个管理员)用户帐户 + UAC 相比,使用两个不同的帐户实际上会增加安全性吗?

1个回答

简短答案
使用受限帐户执行日常活动,并拥有一个具有管理权限的单独帐户来执行需要提升权限的任务。

长答案
用户访问控制不被 Microsoft 视为安全边界原因是由于 Microsoft Vista 及更高版本的设计,进程在启动时仅持有有限的特权令牌,并且明确需要在默认状态下受 UAC 保护的提升特权。如您所见,只要进程不请求提升权限,UAC 就不会发挥作用。这意味着恶意软件可以访问用户帐户可以访问的所有内容,而无需任何提升的权限。用户的数据比获得 NT AUTHORITY\SYSTEM 权限重要得多。

需要澄清的另一件事是 UAC 的 Always Notify 设置。一般认为,默认状态下的 UAC 即“仅当程序尝试对我的计算机进行更改时通知”可以通过多种方式绕过。Metasploit 等开发框架具有专用模块,可在默认状态下实现 UAC 绕过,在该状态下,无需任何 UAC 同意对话即可静默提升进程。但是,始终通知设置也是如此。例如,看看这里概述的技术. 该技术的简要总结不是以交互方式请求提升,而是使用登录用户将进程注册到任务计划程序。在微软的术语中,它被称为 S4U(为用户服务)。执行时任务将具有提升的权限,无需权限提升用户的任何同意,即使 UAC 设置为始终通知的最高安全设置也是如此。

结论
如果用户没有管理权限,UAC 在很多方面都是有益的。有一个单独的受限用户帐户,每次需要提升权限时,UAC 都会提示用户输入管理员用户的密码。如果用户已经拥有管理权限,那么 UAC 就没什么用了。