DEV Community

T.M. Gunderson
T.M. Gunderson

Posted on

Black October Hit Small Business Too: The 30-Minute Account Audit

A bad week got a name

Between Oct 19 and 22, 2026, a cluster of security disclosures landed close enough together that the industry gave the period a name: Black October. It wasn't one coordinated campaign. It was a flaw in the PHP interpreter (PHP2Shell) that could let unauthenticated attackers run code on vulnerable web servers — researchers demonstrated it against WordPress, Drupal, and Joomla, and the NSA issued an urgent patching advisory. It was a software supply-chain compromise of LiteLLM, an open-source gateway businesses use to route requests between AI providers, whose malicious release was built to steal browser credentials, cloud service secrets, developer tokens, and API keys used by AI services. And it was the recovery of weak certificate-authority keys that forced emergency responses from browser vendors.

Two numbers from the aftermath deserve an owner's attention:

  • 27 seconds. On the No Priors podcast, CrowdStrike CEO George Kurtz described the fastest "breakout time" the company has observed — the gap between a first compromised machine and movement toward the systems that matter. CrowdStrike's threat reporting puts the average at 29 minutes, down from 48 minutes; the fastest observed case is 27 seconds.
  • ~2,900 login attempts per minute. Microsoft Threat Intelligence recorded one October password-spraying campaign at more than 151,000 failed attempts against 327 accounts — the work of a group Microsoft tracks as Storm-0940, which it says used an open-source AI-powered penetration-testing framework. Honest footnote: Microsoft observed no successful logins in that specific campaign. Password spraying mostly fails. But it runs cheap, forever, against every account that exists — including the ones you've forgotten.

And the most small-business-flavored detail of the month: Fox News reported a startup founder waking up to roughly 50 billing notifications and $449 in OpenAI and Anthropic charges he didn't recognize, after stolen API keys were exploited during the wave. That's the modern version of finding strange charges on the company card — except the card was an AI account with an effectively unbounded spending limit.

None of this requires you to be a target. The LiteLLM malware harvested whatever credentials it found on the machines it landed on. Password sprayers work through whatever logins exist. The wave doesn't aim; it drifts. What determines your damage is what was lying around reachable.

The 30-minute account audit

One sitting. No security vendor, no new purchases. The goal is not to stop a breach — it's to shrink the blast radius, so that any single stolen credential is worth as little as possible.

1. Inventory every account a person OR an AI tool touches (10 min).
List everything with a login: email, banking, accounting, domain registrar, social media, team tools. Then the part everyone misses: the accounts your AI tools hold. Every assistant connected to your inbox, every agent with an API key, every automation with a saved password. These count double — they store credentials and carry sellable keys of their own. The October supply-chain attack went after exactly this layer.

2. Rotate anything stale (5 min).
Any password carried over from a previous job, a previous decade, or a vendor's default. Any API key created once and never rotated — the kind the LiteLLM malware was built to find. Modern practice is a named key per tool rather than one master key, so revoking one doesn't mean revoking everything.

3. Turn on MFA where it's missing (5 min).
Password spraying is defeated by the cheapest control that exists. Work the inventory from step 1 top-down: money first, email second (email resets everything else), everything else third.

4. Sweep your footprint (5 min).
Old accounts on services you stopped paying for, forgotten landing pages, test accounts, the personal email used on business tools years ago. Anything with a login that no one watches is a door with no one behind it.

5. Check what has standing access to money (5 min).
Confirm no AI tool or automation holds an unattended connection to anything that moves funds — payments, invoicing, banking. The $449 founder's problem wasn't that his key was stolen; it's that the stolen key could spend without asking. A key that can't spend is a nuisance. A key that can is an incident.

What this drill honestly is and isn't

This is hygiene, not defense. It will not stop a supply-chain compromise upstream of you, a zero-day in your web platform, or a determined attacker inside your walls. What it does is remove the easy paths: the forgotten login, the never-rotated key, the AI assistant with standing access to your payment stack. When the average attacker breakout takes 29 minutes and the fastest takes 27 seconds, response time is not a small business's strength — low value per breach is. The audit is how you lower it.

The cadence that makes it stick: run the full drill quarterly, and rerun just step 5 whenever you connect a new AI tool to anything.


Want the worksheets? The Boring Automation Pack includes the account-inventory and access-audit sheets that walk this drill end to end.

Top comments (0)