3. 账户与身份安全加固
账户是攻击者进入 Windows 主机后最先利用的身份载体。一次成功的横向移动,往往始于某个本地管理员账户口令为空、某个服务账户拥有交互登录权限,或某个特权账户从未被审计。账户与身份安全加固的目标不是"把账户都删掉",而是让每个账户只拥有完成其职责所必需的最小权限,并让口令与锁定策略在"可暴力破解"和"可用性"之间取得平衡。
一、账户分类与最小权限设计
Windows 本地账户可分为四类,加固策略应分别对待:
- 本地用户账户:用于交互登录。默认的 Administrator 与 Guest 是重点对象。Administrator 应重命名并禁用(或保留但设置强口令并限制登录时段),Guest 必须禁用。
- 组账户:权限的容器。加固的核心是控制"谁在哪个组里"。Administrators 组只保留必要的管理账户,Remote Desktop Users 组只保留需要远程登录的账户,Users 组不应被随意加入特权成员。
- 服务账户:用于运行服务、计划任务、IIS 应用程序池。默认的 LocalSystem、LocalService、NetworkService 权限较高,应优先使用虚拟账户或 gMSA(组托管服务账户),避免使用域用户账户作为服务账户,更不应给服务账户授予"作为服务登录"之外的交互权限。
- 特权账户:包括本地管理员、域管理员、备份操作员等。特权账户应遵循"专用、少用、可审计"原则:不与日常办公账户混用,登录后不浏览网页、不收邮件,所有特权操作应可追溯到具体人员。
最小权限的落地方式是"权限清单 + 组归属审计"。以一台成员服务器为例,合理的初始状态是:Administrators 组仅包含重命名后的本地管理员账户和一个受控的运维账户;Remote Desktop Users 组仅包含运维账户;Users 组包含普通业务账户;Guest 禁用;所有账户均设置"用户下次登录时须更改密码"或已设置强口令。
二、口令策略与账户锁定策略的配置
口令策略与锁定策略通过"本地安全策略"(secpol.msc)或组策略(gpedit.msc)配置,路径为:计算机配置 → Windows 设置 → 安全设置 → 账户策略 → 密码策略 / 账户锁定策略。也可用 net accounts 命令快速查看与设置。
口令策略的关键参数及推荐值(示例,需结合组织实际调整):
| 策略项 | 推荐值 | 说明 |
|---|---|---|
| 密码长度最小值 | 14 个字符 | 低于 8 位在现代 GPU 下可被快速爆破 |
| 密码最长使用期限 | 60 天 | 特权账户可缩短至 30 天 |
| 密码最短使用期限 | 1 天 | 防止用户立即改回旧口令 |
| 密码历史记录 | 24 个 | 阻止重复使用近期口令 |
| 密码必须符合复杂性要求 | 已启用 | 至少包含三类字符 |
| 用可还原的加密存储密码 | 已禁用 | 避免明文等价存储 |
账户锁定策略用于对抗在线口令猜测:
- 账户锁定阈值:建议 5~10 次无效登录。设为 0 表示永不锁定,等于放弃防护。
- 账户锁定时间:建议 15~30 分钟。设为 0 表示管理员手动解锁前一直锁定。
- 重置账户锁定计数器:建议 15 分钟,应小于或等于锁定时间。
需要特别提醒:锁定阈值过低(如 3 次)会带来拒绝服务风险——攻击者可用错误口令故意锁定大量账户。因此阈值、锁定时间与计数器重置三者必须协同设计。例如阈值 5 次、锁定 30 分钟、计数器重置 15 分钟,意味着攻击者每 15 分钟只能尝试 5 次,显著降低爆破速率,同时正常用户误输 5 次后等待 30 分钟即可恢复。
三、配置示例与验证
以下命令可在提升权限的命令提示符中直接设置口令与锁定策略(示例参数):
net accounts /minpwlen:14 /maxpwage:60 /minpwage:1 /uniquepw:24
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:15
net accounts
执行后 net accounts 会回显当前策略,可用于确认配置是否生效。若通过组策略配置,则需运行 gpupdate /force 并检查 gpresult /r 的结果。
账户层面的加固还应配合审计:启用"审核登录事件"(成功与失败)、"审核账户管理"和"审核特权使用",这样锁定事件、特权账户登录、组成员变更都会留下日志。在事件查看器中,事件 ID 4625 表示登录失败,4740 表示账户被锁定,4720/4726 表示账户创建/删除,4728/4732 表示加入全局/本地组,这些是排查账户异常的核心线索。
四、常见误区与加固检查要点
在实际加固中,以下误区最为常见:
- 只改口令不改组归属:口令再强,若普通账户仍在 Administrators 组,最小权限形同虚设。
- 服务账户使用域用户且授予交互登录:一旦该账户口令泄露,攻击者可直接登录主机。
- 锁定阈值设为 0:等于关闭锁定防护,在线爆破可无限尝试。
- 禁用 Administrator 后未重命名:攻击者仍可针对已知 SID(500)进行定向攻击,重命名可增加识别成本。
- 未启用审核:锁定、组变更、特权使用无日志,事后无法追溯。
建议将以下检查项纳入基线核查:Administrators 组成员是否仅包含必要账户;Guest 是否禁用;是否存在口令永不过期的账户;服务账户是否具有"允许本地登录"权限;账户锁定阈值是否非 0;审核策略是否覆盖登录、账户管理与特权使用。完成配置后,用 net accounts 与 whoami /groups 交叉验证,确保策略已实际生效而非仅停留在组策略编辑器中。