服务账号为什么要专门盘
服务账号介于人员账号与技术账号之间:通常口令长期不变、权限偏高、没人说得清用途。它们既是横向移动的抓手,也是权限膨胀的源头。盘点服务账号的登录方式、口令期限与权限级别,是让这些隐性资产浮出水面的过程。
基本信息
| 适用平台 | Windows 域环境(含成员服务器的本地服务账号) |
|---|---|
| 盘点字段 | 服务主体名、口令最后设置时间、口令是否永不过期 |
| 配套控制 | 禁止交互登录与远程桌面登录 |
| 基线 | 服务账号禁止交互登录,权限最小化 |
典型使用场景
- 域安全自查:找出所有服务账号并确认用途与责任人
- 离职与交接:确认账号归属,避免无人认领的账号长期存在
- 权限收敛:把服务账号从高权限组里摘出来,改为按需授权
- 事件排查:定位是否存在被滥用的高权限服务账号
盘点
盘点
# 按服务主体名或命名前缀找出候选服务账号
Get-ADUser -Filter {ServicePrincipalName -like '*' -or samAccountName -like 'svc-*'} -Properties PasswordLastSet, PasswordNeverExpires, ServicePrincipalName | Select-Object Name, PasswordLastSet, PasswordNeverExpires, ServicePrincipalName | Format-Table -AutoSize
# 成员机本地服务账号
Get-CimInstance Win32_Service | Select-Object Name, StartName, StartMode | Where-Object {$_.StartName -notlike 'NT AUTHORITY*' -and $_.StartName -notlike 'LocalSystem*'}盘点字段读法
| 字段 | 含义 | 处置建议 |
|---|---|---|
| ServicePrincipalName | 是否注册为服务主体 | 有值说明被应用绑定,需确认用途 |
| PasswordLastSet | 口令最后设置时间 | 多年未变优先安排轮换 |
| PasswordNeverExpires | 口令永不过期 | 不作为长期方案,应迁移托管账号 |
| StartName | 服务运行账户 | 高权限账户要按需降权 |
给服务账号配置「拒绝本地登录」与「拒绝通过远程桌面登录」用户权限:切断拿到服务口令后直接登录机器的路径,明显缩小影响面。
改登录权限前先确认服务依赖:拒绝本地登录可能影响以该账号运行的老旧程序,先在小范围验证再推全量,并记录验证结论。
盘点结果定期复核:服务账号随系统上线不断增加,半年不盘就会重新长出无人认领的账号,建议纳入季度例行清单。