4. 用户权限分配与特权管理
在Windows主机安全中,账户和组解决的是“你是谁”,而用户权限分配解决的是“你能做什么”。即使一个账户只是普通用户,只要被授予了“调试程序”“备份文件和目录”“取得文件或其他对象的所有权”等特权,它依然可能读取敏感数据、替换系统文件或绕过访问控制。因此,权限收敛的核心不是简单地把用户加入某个组,而是同时管理三件事:用户权限分配、受保护用户组和特权账户分级。
一、用户权限分配:特权不是组的附属品
Windows的“用户权限分配”位于本地安全策略的本地策略 → 用户权限分配,或域环境中的计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 用户权限分配。它控制的是登录方式、系统级操作和对象访问特权,与NTFS权限、共享权限属于不同层面。常见的高风险权限包括:
- SeDebugPrivilege(调试程序):可附加到其他进程,常被用于读取LSASS内存或注入代码。
- SeBackupPrivilege(备份文件和目录):可绕过文件ACL读取任意文件,包括注册表配置单元。
- SeRestorePrivilege(还原文件和目录):可绕过ACL写入文件,可能替换系统可执行文件。
- SeTakeOwnershipPrivilege(取得文件或其他对象的所有权):可夺取任意对象所有权,再修改其权限。
- SeImpersonatePrivilege(模拟客户端之后):服务账户常具备,被滥用时可提升至SYSTEM。
- SeLoadDriverPrivilege(加载和卸载设备驱动程序):可加载恶意驱动进入内核。
默认情况下,Administrators组拥有上述大部分权限,Backup Operators组拥有备份和还原权限,普通用户仅拥有“绕过遍历检查”“增加进程工作集”等低风险权限。加固时应遵循最小特权原则:只保留角色必需的登录权限和系统特权,删除所有非必要授权。例如,普通办公终端上,不应把“调试程序”授予任何非管理员账户;应用服务器上,若服务账户不需要备份,应移除其备份权限。
secedit /export /cfg policy.inf导出当前策略,再逐项比对基线。二、受保护用户组:把高权限账户关进“隔离区”
受保护用户组(Protected Users)是Windows Server 2012 R2及Windows 8.1之后引入的安全组,用于保护高价值账户。将账户加入Protected Users组后,系统会强制实施以下限制:
- 禁用NTLM、CredSSP和Digest认证,只允许Kerberos。
- 不缓存凭据,避免凭据从内存中被提取。
- Kerberos的TGT有效期缩短为4小时,且不自动续期。
- 禁止使用DES或RC4加密,强制使用AES。
- 不允许委派,降低横向移动风险。
受保护用户组适合保护域管理员、企业管理员、架构管理员等最高权限账户。但要注意:它并不适合所有账户。若某账户需要访问只支持NTLM的旧系统,加入后会导致认证失败;若服务账户被加入,可能因无法缓存凭据而中断服务。因此,加入前应确认账户的认证依赖,加入后通过事件日志4625、4771观察是否出现认证失败。
三、特权账户分级:从“管理员”到“分层管理”
很多入侵事件的共同路径是:普通用户 → 工作站管理员 → 服务器管理员 → 域管理员。特权账户分级的目标是切断这条链。微软推荐的分层管理模型将资产和账户划分为三层:
| 层级 | 保护对象 | 典型账户 | 登录限制 |
|---|---|---|---|
| 第0层 | 域控制器、AD DS、证书服务 | 域管理员、企业管理员 | 只能登录第0层主机 |
| 第1层 | 成员服务器、业务应用 | 服务器管理员 | 只能登录第1层主机 |
| 第2层 | 普通工作站、终端 | 工作站管理员、普通用户 | 只能登录第2层主机 |
分层的落地方式包括:为每层建立独立的管理员账户,禁止跨层登录;使用“受保护用户组”保护第0层账户;通过组策略限制“允许本地登录”和“允许通过远程桌面服务登录”权限;对第0层账户启用智能卡或Windows Hello for Business,避免密码凭据暴露。
四、权限收敛的检查与验证
完成配置后,需要验证权限是否真正收敛。以下命令可用于快速检查本地管理员组成员和特权分配:
net localgroup Administrators
whoami /priv
whoami /groups
secedit /export /cfg C:\temp\secpol.inf
findstr /i "SeDebugPrivilege SeBackupPrivilege SeImpersonatePrivilege" C:\temp\secpol.inf
判断依据是:whoami /priv中不应出现与当前角色无关的高风险特权;net localgroup Administrators中不应存在普通业务账户;导出的策略文件中,高风险权限的赋值列表应只包含明确批准的管理账户。若发现异常,应记录账户、权限名称、当前赋值和批准基线,再通过组策略或本地安全策略修正。
最后需要强调,权限分配不是一次性动作。人员岗位变化、应用上线、服务账户调整都会改变权限需求。建议每季度复核一次高风险权限的赋值列表,并结合whoami /priv、secedit导出结果和事件日志进行交叉验证。只有把“权限分配—受保护组—账户分级”三者联动,才能真正实现Windows主机的权限收敛与提权防护。