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 组成员、服务账户的登录权限、以及长期未登录但仍启用的账户。
账户与身份安全加固:最小权限 + 口令锁定策略 账户分类与最小权限 本地用户账户 Administrator 重命名/禁用 Guest 禁用 组账户 Administrators 精简成员 RDU 仅保留运维账户 服务账户 优先虚拟账户 / gMSA 禁止交互登录 特权账户 专用、少用、可审计 不与日常账户混用 原则:只授予完成职责所需的最小权限 口令与锁定策略 密码策略 长度最小值:14 字符 最长使用期限:60 天 最短使用期限:1 天 历史记录:24 个 复杂性要求:已启用 可还原加密:已禁用 账户锁定策略 锁定阈值:5 次 锁定时间:30 分钟 计数器重置:15 分钟 三者协同,防爆破又防误锁 配置路径:secpol.msc / gpedit.msc 验证与审计 命令验证 net accounts gpupdate /force gpresult /r whoami /groups 关键审计事件 4625 登录失败 4740 账户被锁定 4720/4726 账户创建/删除 4728/4732 加入组 4672 特权分配 启用:审核登录/账户管理/特权使用 每季度审计组归属与长期未登录账户 风险提示:锁定阈值过低(如 3 次)可能被利用进行拒绝服务攻击,需与锁定时间协同设计

四、常见误区与加固检查要点

在实际加固中,以下误区最为常见:

  1. 只改口令不改组归属:口令再强,若普通账户仍在 Administrators 组,最小权限形同虚设。
  2. 服务账户使用域用户且授予交互登录:一旦该账户口令泄露,攻击者可直接登录主机。
  3. 锁定阈值设为 0:等于关闭锁定防护,在线爆破可无限尝试。
  4. 禁用 Administrator 后未重命名:攻击者仍可针对已知 SID(500)进行定向攻击,重命名可增加识别成本。
  5. 未启用审核:锁定、组变更、特权使用无日志,事后无法追溯。

建议将以下检查项纳入基线核查:Administrators 组成员是否仅包含必要账户;Guest 是否禁用;是否存在口令永不过期的账户;服务账户是否具有"允许本地登录"权限;账户锁定阈值是否非 0;审核策略是否覆盖登录、账户管理与特权使用。完成配置后,用 net accounts 与 whoami /groups 交叉验证,确保策略已实际生效而非仅停留在组策略编辑器中。

修改口令与锁定策略前,务必确认不会锁定唯一的本地管理员账户。建议保留一个已知口令的应急管理账户,并将其口令存放在受控的密码管理器中。