[控场AI]
· 5 分钟阅读· 2,887 字

七分钟毁掉Azure租户:Storm-3168代理式勒索事件剖析

七分钟毁掉Azure租户:Storm-3168代理式勒索事件剖析

Azure服务主体遭攻陷后,JADEPUFFER代理式勒索软件仅用七分钟完成租户映射与资源删除,揭示云身份安全的严峻缺口。

微软披露的Storm-3168事件中,攻击者借助两个被攻陷的Azure服务主体,在约七分钟内完成资源枚举并删除存储账户、Key Vault等关键资产,幕后行动者JADEPUFFER是迄今记录的首个"代理式"勒索软件行动。事件暴露了三个核心漏洞:服务主体普遍缺乏MFA保护且权限过度宽泛;OAuth令牌的无状态特性使"删除泄露密钥"无法立即阻断正在进行的攻击;以及代理式自动化将侦察与破坏之间的时间窗口压缩至传统安全响应体系无法覆盖的范围。防御应对需从最小权限、令牌生命周期管控、软删除保护,以及管理平面的实时自动告警四个维度同步强化,以应对分钟级攻击对传统人工响应体系的根本性挑战。

一次七分钟的云端灾难

微软披露的 Storm-3168 事件,揭示了云安全领域一个令人不安的新趋势:攻击者仅用大约七分钟,就通过两个被攻陷的 Azure 服务主体(service principal),完成了对整个租户的资源映射,并删除了存储账户、Key Vault 以及多个应用资源。

根据微软的说明,这起事件背后的攻击者正是 JADEPUFFER——被记录在案的首个"代理式"(agentic)勒索软件行动。所谓代理式,意味着攻击链条中引入了具备一定自主决策能力的自动化组件,而非完全依赖人工逐步操作。这种模式让攻击速度与破坏效率被推向了新的量级。

Storm-3168 事件剖析

七分钟这个数字之所以值得警惕,是因为它远远短于绝大多数组织的安全响应窗口。当告警触发、安全团队介入时,关键资源往往已经被删除殆尽。这从根本上改变了防御者与攻击者之间的时间博弈。

服务主体为何成为突破口

服务主体是 Azure 中用于代表应用程序、服务或自动化脚本进行身份验证的"工作负载身份"(workload identity)。与人类用户账户不同,它们通常没有多因素认证保护,凭据以密钥或证书形式存在,并且常常被授予过度宽泛的权限以"省事"。

这正是问题的核心。一旦某个服务主体的凭据泄露,攻击者就能以合法身份直接调用 Azure 管理 API,而系统很难将其与正常的自动化行为区分开。在 Storm-3168 事件中,攻击者掌握了两个被攻陷的服务主体,先进行租户映射(枚举资源、权限、资产关系),再实施有针对性的删除操作。

枚举先于破坏

攻击流程中的"映射"阶段值得单独强调。攻击者没有盲目动手,而是先摸清租户内有哪些高价值资源、哪些服务主体拥有删除权限。这种侦察行为在 API 调用层面往往看起来像是常规的清单查询,容易被忽视。等到真正的破坏动作开始时,攻击者已经精准锁定了目标。

服务主体(Service Principal)在 Azure 的身份体系中扮演着"机器账户"的角色,是 Azure Active Directory(Entra ID)中应用程序注册后产生的安全对象。每个服务主体对应一个应用注册(App Registration),并通过客户端密钥(Client Secret)或证书完成身份验证,换取 OAuth 2.0 访问令牌后调用各类 Azure API。与人类账户相比,服务主体的凭据往往被硬编码进 CI/CD 流水线、配置文件或环境变量中,导致其暴露面远大于受 MFA 保护的用户账户。许多组织为避免频繁的权限申请,习惯将服务主体授予"贡献者"(Contributor)甚至"所有者"(Owner)角色,这种过度授权在凭据泄露时会直接转化为攻击者的横向移动和破坏能力。Azure 的权限模型基于 RBAC(基于角色的访问控制),细粒度权限可精确到单个资源级别,但实践中很少被充分利用。

为什么删除的密钥依然有效

微软此次特别点出了一个反直觉的技术细节:一个"已删除"的密钥(secret)仍然可以工作。

这背后涉及 OAuth 令牌的生命周期机制。当服务主体使用密钥换取访问令牌后,该令牌在有效期内(通常是数十分钟到一小时)会持续生效,即便原始密钥随后被轮换或删除。令牌本身是无状态的,Azure 在校验时并不会实时回查密钥是否仍然存在。

这意味着,仅仅"删除泄露的密钥"并不足以立即切断攻击者的访问。在令牌过期之前,攻击者手握的访问凭证依然有效——而七分钟的攻击窗口,恰恰完全处在一个令牌的有效期之内。这解释了为什么快速的凭据轮换未必能阻止正在进行中的攻击。

这一机制的根源在于 OAuth 2.0 的设计哲学——访问令牌(Access Token)是自包含的签名凭据,服务端在验证时仅需校验令牌签名和过期时间,无需实时查询颁发方(Authorization Server)。Azure 采用的 JWT(JSON Web Token)格式令牌包含了权限声明(claims),一旦颁发便独立于原始凭据存在。真正能中止令牌效力的方式是令牌撤销(Token Revocation),但 Azure AD 的撤销机制存在传播延迟,且并非所有资源提供方都会实时检查撤销列表。要立即切断攻击者的访问,正确做法是撤销或禁用服务主体本身(而非仅删除密钥),并在 Entra ID 中触发"吊销所有会话令牌"操作,同时结合条件访问策略阻断异常来源的请求。

工作负载身份的治理启示

这起事件对如何管理工作负载身份提出了直接的改进方向。

最小权限原则不能只是口号。 服务主体应当只被授予完成其任务所必需的权限,尤其要严格限制删除类(delete)和管理类高危操作。能用只读就不用读写,能用资源级就不用订阅级。

缩短令牌有效期并引入条件访问。 针对敏感的工作负载身份,可以考虑更短的令牌生命周期,并结合条件访问策略(如限定来源 IP、设备合规性),降低令牌被盗用后的可利用窗口。

对管理平面操作建立行为基线与实时告警。 大规模资源删除、Key Vault 清空等操作应当触发即时告警甚至自动阻断,而不是事后审计。面对七分钟级别的攻击,被动的日志回溯几乎毫无意义。

启用资源删除保护与软删除。 Azure 提供了资源锁、软删除(soft delete)、Key Vault 清除保护(purge protection)等机制。启用这些功能可以为被删除的资源保留恢复窗口,把"不可逆破坏"变成"可恢复事故"。

代理式攻击时代的防御重构

Storm-3168 之所以重要,不仅在于单次事件本身,更在于它预示了攻击自动化的新阶段。当攻击者借助具备自主能力的组件来压缩侦察与执行之间的时间差,传统依赖人工研判的响应流程将愈发力不从心。

防御方需要同步提升自动化水平:从身份治理、权限收敛,到异常行为的机器级检测与自动响应,构建一套能够在分钟级甚至秒级做出反应的防护体系。在云环境中,身份已经成为真正的边界,而工作负载身份正是这道边界上最容易被忽视、也最致命的薄弱环节。

JADEPUFFER 所代表的"代理式"(Agentic)攻击模式,指攻击工具链中引入了具备环境感知和决策能力的 AI 或自动化代理组件。与传统的脚本化攻击不同,代理式攻击能够根据侦察结果动态调整下一步行动——例如在枚举到高价值资源后自动优先targeting、在遭遇权限拒绝时自动尝试替代路径。这种自适应性使得基于已知攻击签名的防御手段(如规则型SIEM告警)效果大打折扣。安全研究人员担忧,随着大型语言模型与渗透测试框架的深度融合,代理式攻击的门槛将持续降低,而其执行速度和决策质量将持续提升,最终形成"AI攻击 vs 人工防御"的严重不对称局面。这是 JADEPUFFER 被视为里程碑事件的深层原因。

#Azure服务主体#Storm-3168#代理式勒索软件#工作负载身份#云安全#JADEPUFFER#OAuth令牌#最小权限
分享:

相关推荐