4. 身份攻击面建模
身份攻击面建模的目标,是把散落在目录、云平台、业务系统和运维工具中的账号、凭据、权限与信任关系,整理成一张可分析、可验证、可更新的“身份攻击路径图”。它回答的不是“有多少个账号”,而是“攻击者从哪个低权限身份出发,经过哪些跳板,最终能触达哪些高价值资源”。
与网络攻击面不同,身份攻击面的核心对象是“身份—凭据—权限—资源”四元关系。一个账号本身不构成风险,真正危险的是它同时具备三个条件:可被外部或低信任主体控制、拥有可横向移动的权限、能访问高价值目标。因此建模时应先定义高价值目标,再反向梳理可达路径,而不是从账号清单正向罗列。
下面这张图展示了一个典型企业环境中的身份攻击路径。左侧是攻击者可能控制的低信任入口,中间是四类关键账号及其权限跳板,右侧是高价值资源。箭头表示“可获取凭据或权限继承”的方向,虚线表示需要额外条件(如密码复用、未启用 MFA、ACL 配置错误)才能成立。
图中四类账号的风险特征差异明显,识别方法也各不相同。
特权账号是攻击路径的终点,也是建模的锚点。识别时不能只看“Domain Admins”这类显式组,还要关注间接特权:对域控拥有 WriteDACL 权限的普通账号、云平台上被授予 Owner 但未纳入 PAM 的账号、数据库中以 sysadmin 身份运行的应用账号。建议以“能否直接或间接修改高价值资源的访问控制”为判据,而不是以账号名称是否含 admin 为准。
服务账号是横向移动最常用的跳板。它们通常具有三个危险属性:密码长期不变、权限范围过大、以交互式登录方式运行。识别时应从三个数据源交叉比对:目录中设置了 SPN 的账号、应用配置文件中出现的连接字符串、以及计划任务和服务中配置的登录身份。一个典型示例是:某备份服务账号在 12 台服务器上拥有本地管理员权限,且密码三年未轮换,一旦该账号被读取,攻击者即可批量控制服务器。
外部账号的风险在于信任边界模糊。供应商账号、B2B 来宾、测试合作方往往被授予了超出必要范围的访问权,且离职或合作结束后未及时清理。识别时应重点检查:来宾账号是否被加入了内部安全组、外部应用注册是否拥有 Graph API 的读写权限、以及跨租户信任是否允许外部主体访问内部资源。
影子账号是最容易被忽略的一类。它们不在正式账号清单中,却真实存在并可登录。常见来源包括:本地管理员账号在多台机器上使用相同密码、离职员工账号被禁用但未删除且仍保留权限、测试环境遗留的数据库账号、以及云平台上由个人创建但未登记的服务主体。识别影子账号不能依赖人工申报,而应通过“账号清单与实际登录日志、权限分配记录”的差集来发现。
完成路径图后,应将其转化为可执行的治理动作。对于图中每条边,标注其成立条件,并给出对应的收敛措施:若边依赖“密码复用”,则推动服务账号密码轮换与唯一化;若边依赖“未启用 MFA”,则对特权账号和外部账号强制 MFA;若边依赖“ACL 配置错误”,则修正目录对象的访问控制;若边依赖“影子账号未纳管”,则建立账号发现与登记流程。路径图不是一次性交付物,而应随账号变更、权限调整和人员流动持续更新。
最后需要强调,身份攻击面建模的产出不是一张静态图片,而是一份可查询的关系数据。建议至少保留以下字段:主体标识、主体类型、控制条件、可访问资源、权限级别、获取凭据方式、监控状态、收敛措施、责任人、复核时间。这样在发生安全事件时,才能快速回答“这个账号能到哪里”以及“切断哪条边最有效”。