Attackers using an AI agent probe software vendors’ logins and APIs, Wiz says
Wiz says an actor using tooling tied to ARTEX, an autonomous AI penetration testing framework, spent October probing IT and software vendors’ sign-in flows, APIs and account recovery pages. It was looking for ways into the vendors’ customer data. It password-sprayed Okta and Entra ID accounts, mostly software engineers’, and tested OAuth, SSO and AWS Cognito endpoints. Most attempts failed, Wiz says, and three of the five addresses it lists are ones Microsoft attributes to Storm-0940.
The agent first read each application, Wiz says, downloading its JavaScript bundles, source maps, configuration files and API documentation, then called internal API routes by name minutes later. Where sign-up was open, it registered with a disposable mailbox and immediately tried to read another company’s data. It also hammered password reset and account recovery endpoints and tried an unsigned JSON Web Token against more than 60 variations of SSO routes.
Its password sprays came in bursts of 20 to 60 minutes, each with its own user agent and a median of one second between attempts. Some sessions lasted 24 to 30 hours, and when an address was blocked, a new one appeared within minutes. Wiz saw more than 15 user agents across the victims, from Python clients and curl to self-describing ones like ReconProbe.
Wiz says its findings overlap with Microsoft’s report that Storm-0940 used ARTEX in the ConnectWise app compromise. It also saw the same infrastructure, tools and patterns aimed at the sector as a whole. It hasn’t said how many vendors were targeted or whether any attempt succeeded.
Standard detection rules catch the activity, Wiz says. Its examples alert on password sprays from one address, on many failed sign-ins followed by a successful admin sign-in, and on unusual mass access-denied activity. Many of the user agents it lists aren’t unique to this actor, it warns, and will be noisy if hunted on their own.
What to do
4 steps
Indicators
IPs copy defanged. Use Copy raw for queries.
| Type | Value | Note |
|---|---|---|
| IP address | Seen in the activity, Wiz says | |
| IP address | Seen in the activity, Wiz says | |
| IP address | Microsoft attributes it to Storm-0940 | |
| IP address | Microsoft attributes it to Storm-0940 | |
| IP address | Microsoft attributes it to Storm-0940 | |
| User agent | A self-describing user agent Wiz saw in the activity | |
| User agent | Seen in the activity, Wiz says | |
| User agent | AWS SDK user agent seen in the activity | |
| User agent | AWS SDK user agent seen in the activity | |
| User agent | AWS command-line user agent seen in the activity |
- IP addressSeen in the activity, Wiz says
- IP addressSeen in the activity, Wiz says
- IP addressMicrosoft attributes it to Storm-0940
- IP addressMicrosoft attributes it to Storm-0940
- IP addressMicrosoft attributes it to Storm-0940
- User agentA self-describing user agent Wiz saw in the activity
- User agentSeen in the activity, Wiz says
- User agentAWS SDK user agent seen in the activity
- User agentAWS SDK user agent seen in the activity
- User agentAWS command-line user agent seen in the activity
Sources
- Wiz researchPrimary source wiz.io
- Microsoft researchPrimary source microsoft.com