The Threat Ledger
What actually attacks a small website
Every request to a path this site does not have and never had, logged and classified in public. Nobody is targeting us specifically, which is exactly what makes it useful: this is the internet's ambient hostile background, the stuff that hits every business with a domain name. The threat briefings talk about AI. The traffic mostly talks about WordPress.
How small is this, really?
One website is not a threat intelligence programme, and we would rather say so than let a chart imply otherwise. Here is our volume next to an internet-wide sensor network, and next to what is actually being exploited. Both reference points are public, free, and refreshed daily.
Who's driving
Everything hostile is a bot, so that is not the useful question. The useful questions are whether there is a model in the loop, and whose infrastructure is being used. We score each request on things that require comprehension rather than a wordlist.
Channel canaries
Five unguessable paths, each seeded into exactly one discovery surface and linked from nowhere. A request attributes deterministically to whichever surface was read. The llms.txt canary is the sharp one: a conventional scanner has no concept of that file, so a hit there is near-conclusive evidence of a model in the loop. The robots.txt one answers a different question entirely — does the client obey Disallow, or read it as a treasure map?
Read this before quoting the coercion numbers. A user-agent is one line to forge, so we check the source IP against the crawler ranges each provider publishes. That gives three separate verdicts, and they mean very different things. Verified: the request genuinely came from that company's network. Impostor: the company publishes ranges and this address is in none of them, so somebody is wearing their name. Unverified: we hold no ranges for them, so we can neither confirm nor refute it, and we never report that as impersonation. Crucially, a verified coercion is not a finding against the company. It means their infrastructure was pointed at us by somebody else, which is the entire phenomenon we are trying to measure. Nothing here is an accusation against any named company.
What they want
Every probe classified by intent. Two ambitions dominate and they are not equally dangerous: CMS exploitation is the loudest, credential hunting is the one that ends your week.
What they think you're running
Scanners announce their assumptions. Every probe is a bet about your stack, so this breakdown is a live picture of what attackers believe is exploitable at scale. It is consistently years behind the security conversation, and that gap is the point.
A confounder we should declare. This site used to run on WordPress. It does not any more, and the current site is static, but that history is an obvious alternative explanation for why so much of the traffic hunts WordPress paths — so we checked. The evidence says no. The scanners guess at subdirectories (/shop/wp-includes/, /cms/, /test/, /2019/) rather than going to the paths a real installation here would have used, and there is no meaningful public archive of the old site to work from. They are not remembering us. They sweep every domain identically, which is the more useful finding: you are not being targeted, you are being enumerated.
Why publish this at all? Because most security content is written for enterprises with a SOC, and most businesses are not that. If you run a site, a shop or a client's CMS, this is your actual threat model on an average Tuesday. The controls that stop nearly all of it are unglamorous and cheap: patch the thing, do not commit the .env, do not expose the admin panel, rotate the keys. Read the honest take on AI cyber defence for where this goes next.
The most-tried doors
Top paths by volume across the window, with what each one is after.
Do they admit what they are?
A scanner either names its tool in the user-agent, impersonates a browser, or sends nothing at all. Honesty here is not virtue, it is usually laziness or research infrastructure. The impersonators are the ones deliberately trying not to be filtered.
New this week
Paths seen for the first time in the last seven days. Not proof of a new campaign, but the cheapest early signal we have that a technique is spreading.
This is public JSON
/threat-ledger/data.json — categories, implied stacks, top paths, agents and the daily series. Aggregates only, never raw logs. Free to cite, attribution to projectwrecked.com is all we ask.
Sibling datasets: the Bot Ledger for AI crawlers, the Platform Ledger for model deprecations, and the Adoption Ledger for what the market runs.
Free, and staying free. If your company gets commercial value from this dataset, sponsoring it keeps it running — and buys no influence whatsoever over what it says.