The 54 breaches and supply-chain attacks of the last 30 days, 21 confirmed by the company itself, grouped by the mistake that let them happen. The check under each cause is the lesson for your own company.
Last 30 days, share of 54
A token, key, password or app secret leaked or was guessed, and it still worked.
So it doesn’t happen to you
List your long-lived credentials (GitHub tokens, cloud keys, app and service-principal secrets, CI secrets) with their last rotation; rotate anything older than 90 days or without an owner, and set expiry where it is offered.
A flaw with a public advisory, exploited before the fix went in.
So it doesn’t happen to you
Your board lists the advisories that are in range for your stack, with the fix version.
The victim itself installed or auto-updated attacker code.
So it doesn’t happen to you
Pin dependencies and images (lock files, digests), turn install scripts off in CI, and know which extensions and updaters can run code on your machines.
A secret sat where the internet could read it: an .env file, a public repo, a bucket.
So it doesn’t happen to you
Check that no deployed app serves .env files or env bundles, and scan your repos and their history for keys; rotate what you find, do not just delete the line.
An internal tool, archive or test environment answered from the internet.
So it doesn’t happen to you
List internal apps with a public hostname and check none still accepts a development or default credential; make sure test environments cannot reach production.
The victim has not said how the attacker got in. Pages update when they do.
Causes are assigned by a model from each record’s sources, two fields per record: how the attacker got in, and how it reached others. “Confirmed by” lists the companies whose own page, status post or filing says it happened. The victim’s own words win where they exist.
A person was tricked
A person at the victim was tricked.
So it doesn’t happen to you
Use phishing-resistant second factors on the accounts that matter, and never reset a factor on a phone call alone.