作为云平台安全团队,在安全巡检过程后可能会用到云服务商提供的一些安全服务能力,如 security hub、guardduty,inspector 等,甚至有条件的安全团队会引入 container runtime monitor 能力,这些工具从平台安全基线合规检查,EC2 漏洞扫描、bucket 威胁监测、RAM 危险 API 调用、EKS API 安全监控、pod 安全威胁监控等方面监测云平台的安全威胁,但却很少去分析 role 信任关系带来的潜在安全风险。攻击者拿下云平台权限后,可在互信 role 信任关系链中插入一条信任语句即可实现对该账号的永久控制权限,这种方式也很难察觉。
下图是一个简单的示例,Role-A 和 Role-B 是一对互信的角色,所谓互信指的是角色 A 信任角色 B 的访问,角色 B 也信任 角色 A 的访问,即 A 可 assume role 到 B,B 也可 assume role 到 A。如果攻击者拿到的权限有 update role relationships 的权限,那么就可把当前 permission 的 ARN 插入这类互信的角色链中,从当前角色 assume role 到 A,再在 Role-A 和 Role-B 之间循环 assume,攻击者即可拿到永久的 STS 权限。

以上持久化思路以及监测方式已经更新到 CSW 最新的 backdoor 模块中,实际渗透测试中,获取到访问凭证后可尝试创建一个角色链后门,工具会自动每隔 15 分钟刷新一次凭证以获取对账号的永久控制权限。


对于该种攻击的监测方式,工具的 -f 参数也会自动扫描当前权限账号下,RAM 中所有角色的信任关系链,自动分析潜在的安全风险。
