AWS assume role 角色链后门
AWS assume role 角色链后门

AWS assume role 角色链后门

作为云平台安全团队,在安全巡检过程后可能会用到云服务商提供的一些安全服务能力,如 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 中所有角色的信任关系链,自动分析潜在的安全风险。