2026年10月期间,我们识别出一个行为体,其使用与ARTEX(一个自主AI渗透测试代理)相关的工具,针对多家IT和软件供应商。该活动聚焦于身份提供商(Okta、Entra、Cognito)以及对Microsoft 365集成的滥用。我们观察到在多个环境中反复尝试发现身份验证绕过、枚举API并访问(目标供应商的)客户数据。
我们的观察与微软近期关于Storm-0940的报告存在重叠,后者是一个与中国国家有关联的行为体,与近期涉及被盗供应商凭据和下游Microsoft 365租户的供应链攻击有关。
然而,我们还额外观察到相同的基础设施、工具和攻击模式针对整个行业。基于已识别的TTP和IOC进行关联分析,我们还发现同一行为体将其尝试的供应链入侵扩展到其他软件行业。
在本文中,我们将描述使用ARTEX的行为体在多个环境和云提供商中应用的可重复模式和方法,并附上取自真实世界攻击的示例。
什么是ARTEX?
ARTEX是一个开源自主渗透测试框架。一名中国开发者于2026年7月在GitHub上发布了它,并于当年9月赢得了百度的“Agent+”红队挑战赛。在实践中,操作员提供目标和任务目标。规划代理随后选择下一步,工作代理运行nmap、curl和Impacket等工具,每个结果都会汇入共享的资产和发现图谱。
攻击者在数周内就采用了它。ARTEX相关痕迹出现在9月下旬对韩国银行的攻击和10月对日本公司的攻击中。微软和Zscaler此后将其与两个不同的行为体联系起来。开发者于10月8日将该工具转为闭源。截至那时,该代码已有超过12,000个fork。
一套可重复的剧本
在调查的环境中,我们观察到一致的侦察和攻击尝试序列:
测绘应用:下载JavaScript包、暴露的源映射、运行时配置以及Swagger/OpenAPI文档,以发现内部API路由和应用功能。
探测身份验证:反复发起登录流程,操纵OAuth回调和state参数,测试未签名的JWT,并探测SSO和Microsoft 365专用端点。
攻击身份提供商和登录流程:对企业Okta和Entra ID环境进行密码喷洒,并针对内部和专有应用的登录页面。
滥用账户恢复:反复调用密码重置、用户名恢复、激活和重置令牌端点。
测试租户隔离:尽可能使用一次性电子邮件地址注册账户,然后操纵可预测的标识符,以探测失效的访问控制以及未经授权的跨租户数据访问。
适应防御机制:在被封禁时轮换IP地址,并不断轮换用户代理。
日志中的表现
我们使用通过 Wiz Agentless Workload Detection收集的HTTP访问日志,以及身份提供商日志(如AWS Cognito事件、Entra登录活动和Okta身份验证日志)来分析这些攻击模式。
在所有观察到的攻击实例中,该代理的第一步始终是读取应用本身。首次接触后几分钟内就出现了如下请求:
不久之后,它开始按名称调用内部API路由。这些路由名称唯一出现的地方就是它刚刚下载的源映射。
账户恢复也受到了同样的对待。该代理检查了哪些用户名存在,然后反复冲击重置端点:
在可以注册的地方,它就注册了,使用的是免费临时电子邮件服务的一次性邮箱。然后,它立即尝试查看他人的数据:
在每次模糊测试运行之前,它都会检查基线“未找到”响应是什么样子:
在探测Microsoft OAuth流程时,该代理通过注入伪造的授权码和格式错误的state参数直接操纵回调端点,同时还尝试使用未签名的JWT绕过身份验证:
第二个令牌解码后仅为{"alg":"none"}和{"email":"test@test.com"}。该代理在短短两分钟内用此载荷轰炸了60多种SSO路由变体。
在AWS Cognito上,我们观察到与专有应用中看到的账户恢复滥用相类似的模式。此活动体现在InitiateAuth、ForgotPassword和ResendConfirmationCode等事件中。这些请求源自与早期攻击中观察到的相同的用户代理组合,包括看起来无害的编程客户端,如boto和python-urllib。
该代理还尝试直接配置新身份,在轮换其用户代理池的同时调用AWS Cognito SignUp API。
我们也追踪到一场针对许多已观察目标的大规模密码喷洒活动。该活动不依赖特定 IDP,同时针对 Entra 和 Okta,并展现出若干独特的、AI 驱动的特征。
这些攻击针对数百名用户,并以高度协同的突发批次执行。每个批次都具有以下特征:
- 专用用户代理:每个批次都分配了唯一的用户代理字符串,与之前波次使用的不同。
- 精确计时:认证尝试之间的中位间隔严格为 1 秒。
- 持续执行:单个批次持续 20 到 60 分钟不等。
- 基于角色的定向:该智能体主要聚焦于软件工程师所属的账户。
- 重复尝试:部分单个用户遭遇了十多次登录尝试。
设计使然的不懈
该活动具有持续性且高度自动化。部分会话持续 24–30 小时,当 IP 被封禁时,新地址会在几分钟内出现。
在一次会话中,该智能体循环遍历同一 SSO 端点 (/sso、/sso/、/sso/login、/sso/jwt、/jwt/sso……)的十几种变体,每种变体都分别携带和不携带同一伪造令牌进行尝试,速率约为每秒一次请求。当登录页面开始对该活动进行限速时,该智能体只是切换到同一主机上的另一个端点并继续进行。
我们在受害者中观察到了 15 种以上不同的用户代理字符串:
基于 Python 的客户端和 curl;
截断的 Chrome 字符串以及版本号看似随机的无头浏览器。
更具辨识度的自描述标识符,例如 ReconProbe/1.0。
这种多样性,结合一致的攻击模式以及与 ARTEX 相关的指标,帮助我们将跨多个组织的活动关联起来。
尽管这些尝试大多失败了,但真正的威胁在于其方法。人类攻击者受限于时间和疲劳,而自主智能体不会放弃。它只会继续迭代,直到找到一个薄弱点。
一次明确的智能体攻击
观察到的单项技术都不新颖。然而,将它们结合起来,就能看清这次攻击背后的智能体。有几个明确信号:
步骤被自动串联:当注册开放时,它使用一次性邮箱注册、确认账户,并立即请求另一家公司的数据。
每个自动化步骤都使用上一步的输出:在拉取源映射几分钟后,内部 API 路由会按名称被调用
适应是自动的:当登录页面开始限速时,该智能体转移到同一主机上的另一个端点。当某个 IP 被封禁时,几分钟内就会出现一个新 IP。
并非所有攻击都合乎逻辑:具备这种技能水平的人类攻击者不太可能花时间在受到严格审视的 Microsoft OAuth 流程上测试通用载荷。
保持领先于 AI 驱动的攻击
随着 AI 使侦察和漏洞利用尝试变得更快、更容易扩展,防御者需要缩短暴露与修复之间的差距。进一步了解如何借助 Wiz 的 AI Threat Readiness Framework 做好准备。
此外,Wiz 的 AI Red Agent 持续自主开展攻击性测试,帮助以 AI 的速度减少暴露——从而拉平差距。
Wiz 客户可参考我们的威胁情报中心警报:ARTEX:智能体 AI 活动导致云和供应链失陷
现有检测规则也可以有效识别该活动,例如:
多个用户出现大量失败登录尝试,随后管理员用户成功登录
来自单一 IP 的潜在密码喷洒攻击
Okta 用户密码喷洒
这种不懈行为还会产生可预测的模式,也可以通过诸如“异常大规模访问被拒绝活动”之类的规则检测到。
妥协指标
注:提供的许多用户代理并非该行为者独有,若单独狩猎,预计会产生大量噪声。