执行服务账户审计
概述
审计企业基础设施中的服务账户,识别孤立账户、过度特权账户和不合规账户。本技能涵盖在 Active Directory、云平台、数据库和应用程序中发现服务账户,评估权限级别,识别缺失负责人,执行生命周期策略。
目标
- 跨 AD、云、数据库和应用程序发现所有服务账户
- 识别没有有效负责人或关联应用程序的孤立账户
- 评估权限级别并标记过度特权的服务账户
- 检查未轮换密码和弱认证
- 映射服务账户依赖关系以便安全整改
- 为 SOX、PCI DSS 和 HIPAA 审计生成合规报告
核心概念
服务账户类型
- AD 服务账户:Windows 服务、计划任务、IIS 应用程序池
- 托管服务账户(gMSA):AD 托管的自动密码轮换
- 云 IAM 服务账户:AWS IAM 角色/用户、Azure 服务主体、GCP 服务账户
- 数据库服务账户:应用程序连接账户、复制账户
- 应用程序服务账户:API 密钥、机器人账户、集成账户
审计维度
- 所有权:谁负责这个账户?
- 用途:哪个应用程序/服务使用这个账户?
- 权限:这个账户有哪些权限?
- 认证:这个账户如何认证(密码、密钥、证书)?
- 轮换:凭据最后一次更改是什么时候?
- 活动:这个账户最后一次使用是什么时候?
实施步骤
步骤 1:发现 - Active Directory
- 查询 AD 中的所有服务账户(按描述、OU、命名约定过滤)
- 识别设置了
ServicePrincipalName的账户 - 列出特权组中的账户(Domain Admins、Enterprise Admins)
- 检查 gMSA 与传统服务账户
- 识别设置了
PasswordNeverExpires标志的账户
步骤 2:发现 - 云平台
- AWS:列出带访问密钥的 IAM 用户,检查最后使用日期,识别未使用的角色
- Azure:枚举服务主体、应用注册、托管标识
- GCP:列出服务账户,检查密钥年龄,识别未使用的权限
步骤 3:评估
- 标记具有管理员/特权组成员资格的账户
- 根据轮换策略检查密码年龄(最多 90 天)
- 识别 90 天以上无登录活动的账户
- 对照 CMDB/资产清单验证账户所有权
- 检查共享凭据(多个账户具有相同密码哈希)
步骤 4:风险分类
- 严重:域/云管理员权限,无密码轮换
- 高危:访问敏感数据,无已识别负责人
- 中危:标准服务权限,密码超过 90 天
- 低危:只读访问,托管凭据(gMSA、托管标识)
步骤 5:整改
- 与应用程序团队验证后禁用孤立账户
- 在可能的情况下将传统服务账户转换为 gMSA
- 轮换超过策略阈值的凭据
- 将权限减少到最低要求
- 分配负责人并记录依赖关系
安全控制
| 控制项 | NIST 800-53 | 描述 |
|---|---|---|
| 账户管理 | AC-2 | 服务账户生命周期 |
| 账户审查 | AC-2(3) | 账户定期审查 |
| 最小权限 | AC-6 | 最低服务账户权限 |
| 认证器管理 | IA-5 | 服务凭据轮换 |
| 审计审查 | AU-6 | 审查服务账户活动 |
常见陷阱
- 在未验证应用程序依赖关系的情况下禁用服务账户
- 未发现 Active Directory 之外的服务账户
- 遗漏云服务主体和托管标识
- 未检查服务账户的交互式登录权限
- 在整改前未记录依赖关系
验证
- 跨所有平台建立服务账户清单
- 每个账户都分配了负责人
- 特权服务账户已记录并说明理由
- 密码轮换合规性已检查
- 孤立账户已标记待整改
- 已识别 gMSA 迁移候选账户
- 已生成合规报告