TI-2026-046C โ The Reconnaissance Industrial Complex
๐ Series: The Web Siege
Letter C of The Web Siege โ a forensic series documenting multi-vector attacks at our Traefik ingress during June 2026.
In Letter A, we documented Google Cloudโs .env credential harvesters. In Letter B, Microsoft Azureโs ghost WordPress shell checkers. Both were clearly criminal operations.
This letter asks a harder question: Where does โlegitimate scanningโ end and โcriminal reconnaissanceโ begin? The answer, it turns out, is nowhere. There is no line. There is only a spectrum โ and the spectrum is measured in one number: the 404 error rate.
Data: 4,459 unique IPs, 87,883 requests, 7-day observation window. Cross-referenced with SSH honeypot (1,751 multi-vector overlap), CrowdSec intelligence, and OSINT vector library (15,392 entity crosslinks).
โ The Question No One Wants to Answer
The cybersecurity industry has constructed a careful taxonomy. โAttack Surface Managementโ is a legitimate product category. Multi-billion-dollar companies sell it:
- Palo Alto (Cortex Xpanse) โ continuous internet-wide scanning
- Censys โ $75M funding, scans entire IPv4 every 24 hours
- Shodan โ the โsearch engine for the internet of thingsโ
- SEMrush โ $2.7 billion market cap, systematic web enumeration
And somewhere in the same IP address space, criminal operators run the exact same tools against the exact same targets to build the exact same maps.
๐ก The uncomfortable question: If you cannot distinguish the traffic of a $50 million โattack surface managementโ platform from a $500 criminal reconnaissance script at the packet level โ what exactly is the customer paying for?
We observed the answer at our ingress point. They are paying for the branding.
๐ The Observation Window
111 scanner IPs checked robots.txt โ the file that defines what crawlers should not access. Some honored what they found. Most did not. Checking robots.txt while ignoring its contents is the digital equivalent of reading a โNo Trespassingโ sign, nodding thoughtfully, and climbing the fence anyway.
๐ญ The Five Archetypes of Scanning
Every IP that touched our ingress falls into one of five behavioral categories. The categories arenโt about who is scanning. Theyโre about how. And the โhowโ is disturbingly similar across all five.
๐ Archetype 1: The Legitimate Crawler
Apple ยท Internet Archive โ The control group
| Actor | ASN | IPs | Requests | 404 Rate | UA |
|---|---|---|---|---|---|
| ๐ Apple Applebot | AS714 | 214 | 1,673 | 0% | โ Safari (honest) |
| ๐ Internet Archive | AS399784 | 1 | 162 | 0% | โ archive.org_bot |
Zero errors. These crawlers access pages that exist. They donโt probe for pages that might exist. They donโt test for vulnerabilities. They donโt hunt credentials. They visit whatโs published and move on.
๐ This is the empirical baseline. Any scanner that generates 404 errors is, by mathematical definition, probing for content that doesnโt exist. Thatโs not crawling. Thatโs reconnaissance. The error rate is the intent signal.
๐ฐ Archetype 2: The Commercial Intelligence Bot
SEMrush โ The $2.7B gray zone
| Actor | ASN | IPs Observed | Paths/IP | User-Agent | Cadence |
|---|---|---|---|---|---|
| ๐ฐ SEMrush | AS209366 | 3+ | 39โ53 | SemrushBot/7~bl | Steady, non-burst |
SEMrush is transparent. It identifies itself. Its corporate website explains what it does. It has a published bot page with opt-out instructions. It files SEC reports. It pays taxes (presumably).
And yet: it probes 53 unique paths per IP, including paths that donโt exist on the target. It requests /robots.txt and then proceeds to ignore the restrictions it finds. It enumerates sitemap.xml variants, common CMS paths, API endpoints โ content that might exist but doesnโt.
By any behavioral definition, this is systematic reconnaissance. The only difference from a criminal scanner:
Criminal: Mozilla/5.0 (compatible; totally-legit-browser/1.0) โ /admin/config.php SEMrush: Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html) โ /admin/config.php โ Same request. Same path. Same 404. Different User-Agent header. And a $2.7 billion quarterly earnings report.
๐จ๐ณ Archetype 3: The State Internet Census
Chinese Go-http-client Fleet โ CHINANET-IDC-BJ-AP โ The three-probe fingerprint
| ASN | Primary UA | Secondary UA | IPs | Pattern |
|---|---|---|---|---|
| AS23724 | Go-http-client/1.1 | Spoofed (impossible versions) | 75+ | /, /robots.txt, /favicon.ico |
State telecom infrastructure. CHINANET-IDC-BJ-AP. Each IP performs exactly three requests:
Server headers
Technology ID
Site structure
Hidden paths
Favicon hash
Framework fingerprint
This is exactly the methodology that Censys, Shodan, and every โinternet measurementโ platform uses. Three probes. Maximum intelligence. Minimal footprint. The commercial products just have a nicer dashboard.
The secondary UAs betray the operation: AppleWebKit/591.52 (no such version has ever existed), Chrome/74 paired with impossible WebKit builds. Perfunctory spoofing โ enough to bypass naive filtering, not enough to pass scrutiny. They donโt need stealth. They have 75 IPs. Block one, another appears.
๐ Archetype 4: The Criminal Credential Hunter
Google Cloud Fleet โ 575 IPs โ AS396982 โ Dead phones requesting Spring Boot secrets
| IP | User-Agent | Target | Device | Status |
|---|---|---|---|---|
34.77.83.98 | SonyEricssonS500i/R6BC | /private/credentials.json | ๐ฑ Slider phone | Discontinued 2008 |
34.32.47.181 | ELinks; Linux 2.6.10-ac7 | /server/application.yml | ๐ง Terminal browser | Kernel from Dec 2004 |
34.74.20.6 | NetPositive/2.1.1; BeOS | /server/application.yml | ๐ Dead OS | Bankrupt 2001 |
34.179.203.150 | Mac OS X 10_13_6/WebKit/563 | /server/application.yml | โ ๏ธ Fake version | WebKit 563 never existed |
34.155.174.174 | Windows Phone OS 7.0 | /private/credentials.json | ๐ฑ Dead platform | EOL 2014 |
These are not crawlers. These are not researchers. These are credential thieves operating from Google Cloud Platform infrastructure.
The User-Agent randomization library tells its own story:
/private/credentials.json in 2026.-ac7 suffix references Alan Coxโs personal patch tree. This 21-year-old configuration is visiting Spring Boot credential files on modern servers.๐ฏ The absurdity is the signature. No human browses with a BeOS machine. No legitimate service identifies as a Sony Ericsson from 2007. The dead-device UA is the criminal fingerprint โ as distinctive as a calling card left at the scene.
The targets are explicit: /server/application.yml (Spring Boot config containing database credentials, API keys, service passwords) and /private/credentials.json (application credential stores). Not speculative probes. They know exactly what theyโre looking for.
โ ๏ธ 77% of these Google Cloud IPs also appear in our SSH honeypot. Same infrastructure. Both protocols. Simultaneously.
๐ป Archetype 5: The Empty-UA Botnet (Microsoft Azure)
Covered in 046B: The WordPress Ghosts. 269 IPs from AS8075, empty User-Agent, checking for pre-planted WordPress shells. Included here for taxonomic completeness.
๐ The Spectrum: Error Rate as Intent Signal
Line them up by error rate. The pattern is unmistakable:
| Actor | 404 Rate | SSH Overlap | Intent | Industry Label | |
|---|---|---|---|---|---|
| ๐ข | Apple | 0% | 37% | Crawling | โLegitimateโ |
| ๐ข | Internet Archive | 0% | โ | Archiving | โLegitimateโ |
| ๐ก | SEMrush | ~15% | โ | Competitive Intel | โLegitimateโ |
| ๐ | Chinese Fleet | ~30% | โ | Census | โState Actorโ |
| ๐ด | Google Cloud | ~60% | 77% | Credential Theft | โCriminalโ |
| ๐ด | Azure Botnet | 64% | 61% | Shell Upload | โCriminalโ |
The gradient tells everything. Legitimate crawlers generate 0% errors because they only access published content. As you move up the spectrum toward criminal behavior, the error rate increases because the actor is probing for content that might exist but doesnโt โ credential files, admin panels, upload forms, backup databases.
๐ค SEMrush occupies the gray zone. It generates errors probing for paths common on typical websites โ sitemap variants, CMS paths, API endpoints. Not credentials specifically. But still: content that doesnโt exist on the target. The behavior is reconnaissance. The product pitch is โcompetitive intelligence.โ The 10-K filing is the only difference.
๐ The OSINT Library Confirms: One Market, Two Brands
โCommercial surveillance tools (phonesnoops, edgetrack, monitordog) operate from the same infrastructure as SSH scanning. No technical distinction between lawful intercept and criminal surveillance. Same tools, same techniques, different branding. The surveillance market and the criminal market are one market.โโ OSINT Library, entity_crosslinks collection (observed at SSH/telnet layer)
This was documented at the SSH layer. We now independently confirm it at HTTP. Commercial reconnaissance platforms and criminal scanning operations use identical techniques, from adjacent or overlapping IP ranges, targeting the same endpoints.
Palo Alto Cortex Xpanse scans your network to show you whatโs exposed. A criminal scanner does the same scan to show someone else whatโs exposed. The packets on the wire are byte-for-byte identical. The difference is purely: who pays for the report.
โก The Multi-Vector Proof
The honeypot overlap statistics demolish the โthese are just scannersโ narrative:
If these were โjust crawlersโ or โjust ASM products,โ they would not simultaneously attempt SSH brute-force attacks. The 77% Google Cloud overlap means: for every 4 GCP IPs scanning your web server, 3 are also trying to brute-force your SSH.
Appleโs 37% is instructive: likely false positives from shared cloud ranges, since HTTP behavior is perfectly clean (0% errors). The correlation decreases with legitimacy โ yet another confirmation of the error-rate-as-intent thesis.
๐ธ The Economics of the Complex
๐ข Legitimate ASM ($50M+ companies)
- Censys โ $75M funding
- SEMrush โ $2.7B market cap
- Palo Alto โ Internet-wide scanning
- Shodan โ API access revenue
Product: โWe scanned everything โ hereโs whatโs exposed.โ
Price: $50,000โ500,000/year
๐ Criminal Scanning (negligible cost)
- Cloud VPS: $5โ50/month per node
- Scanning tools: Free (open source)
- Revenue: Credentials, access, ransomware
- GCP fleet: ~$3,000โ6,000/month total
Same scan, same results, same packets.
Different invoice. Different buyer.
โ ๏ธ The market feature: Every โlegitimate scanโ trains your IDS to ignore the same patterns criminals use. Commercial ASM normalizes reconnaissance. This is not a coincidence. Itโs a business model.
๐ฆด Digital Archaeology: The Dead Device Library
The UA randomization library tells us when this operation was built:
2008 โ Phone discontinued
2010 โ Windows Phone 7.0 released (last UA added)
2011 โ Library frozen. Never updated again.
2012-2025 โ 14 years of operation. Nobody checks UA plausibility.
2026 โ Still working. Still undetected by most WAFs.
The tooling is older than most analysts trying to detect it. It hasnโt been updated because it doesnโt need to be. Most WAFs filter by known-bad signatures, not by temporal impossibility. Nobody asks: โIs it physically possible for this device to be making this request?โ
Implication: this scanning infrastructure has been continuously operational for 15+ years. Same tools. Same scripts. Same campaign. Running since the Obama administration, migrated through whatever cloud providers offered the cheapest VPS, now on Google Cloud. The operators probably donโt even remember why the library has BeOS in it.
๐ค The Robots.txt Paradox
111 IPs requested /robots.txt. What each did with it reveals everything:
Read it. Honored it. Respected boundaries.
Read it. Selectively ignored restrictions.
Read it as intelligence. Maps your site structure.
Didnโt request it. Already know what they want.
๐ก Robots.txt is not a security mechanism. Itโs an intelligence goldmine for scanners. It tells them which paths exist and which you donโt want indexed โ which is often exactly which paths contain sensitive content. Disallow: /admin is a neon sign.
๐ก๏ธ Implications for Defenders: The Error Rate Rule
The industryโs insistence on distinguishing โlegitimate ASMโ from โcriminal scanningโ serves the ASM vendorsโ marketing departments. It does not serve you. If an entity probes for content that doesnโt exist, their corporate valuation is irrelevant to your security posture.
๐๏ธ Conclusion: The Industrial Complex
We call it the Reconnaissance Industrial Complex because thatโs what it is:
An ecosystem where legitimate companies, state actors, and criminals all perform the same activity (systematic internet scanning) for the same purpose (mapping whatโs exposed) using the same tools (HTTP requests to predictable paths) โ and the only distinction is the business model attached to the output.
- Censys sells the map to defenders
- Palo Alto sells it to enterprises
- SEMrush sells it to marketers
- Chinese state telecom builds it for national intelligence
- Google Cloud criminals build it for credential theft
Same reconnaissance. Same infrastructure. Same techniques.
Different invoice.
For the defender, there is one useful signal: the error rate. Everything that probes for content that doesnโt exist is performing reconnaissance. Whether that reconnaissance is โlegitimateโ depends entirely on whoโs asking.
Whatโs not above our pay grade: blocking anything with 30%+ error rate, regardless of User-Agent string, corporate valuation, or published privacy policy.
Series: TI-2026-046 โThe Web Siegeโ ยท Letter: C ยท Classification: TLP:WHITE
Data Sources: Traefik access logs (7-day window) ยท CrowdSec intelligence ยท SSH honeypot (8,000+ IPs) ยท Qdrant OSINT library (15,392 crosslinks) ยท web-threats behavioral database (4,459 IPs)
Investigation: TI-2026-046C ยท 5 actors ยท 6 evidence ยท 6 findings ยท 4 connections
โ 046B: The WordPress Ghosts ยท 046D: The Multi-Vector Operators โ