The Ghost Split — 59,587 Masks, Four Layers Deep

The Ghost Split

59,587 Masks. Four Layers Deep.

Ghost was classified as one entity: “proxy exit.” 152,860 requests from 59,587 unique IPs across 40,214 subnets. Perfect browser fingerprints. Languages: French, Chinese, German, Austrian, English. The membrane called it Ghost because it looked like a crowd of ghosts — each one appearing once and vanishing.

Ghost isn’t one entity. Ghost is a transit network. And at least four different things are riding it.


The Chrome Versions Are The Tell

Every fleet we’ve identified has a signature: frozen Chrome versions.

Now look at Ghost:

Chrome RangeVersionsRequests EachPattern
144-15310 versions~9,200-9,750Current cluster (updated machines)
99-1248 versions~3,900-4,060Older machines (haven’t updated)
130-1374 versions260-4,071Transition zone
79, 83, 923 versions1-12Ancient machines
1551 version312Bleeding edge early adopters

38 Chrome versions. Distributed exactly like you’d expect from tens of thousands of REAL computers with different update schedules.

A fleet picks one version and freezes it. Ghost has the natural Chrome upgrade distribution of a residential population.


The OS Distribution Confirms It

OSGhost RequestsPercentage
macOS76,01949.7%
Windows75,51349.4%
Linux1,1730.8%
Other1550.1%

Almost exactly 50/50 macOS and Windows.

Fleets run on Linux servers. OpenAI: 100% other (Linux/custom). Declared Bot: 99% other. Every fleet is Linux because servers run Linux.

Ghost is macOS and Windows in equal proportions. That’s the real-world desktop split. These are real desktops. Real people’s machines.


91.4% Single-Request IPs

59,587 IPs. 91.4% sent exactly one request and disappeared.

That’s not anonymous browsing. That’s a residential proxy rotation service. BrightData (formerly Luminati), Oxylabs, SmartProxy, Webshare — they all work this way:

  1. Customer buys proxy access
  2. Each request routes through a different residential IP
  3. The exit IP is a real person’s machine (SDK installed via “free VPN” or “earn money” apps)
  4. The request arrives with the real machine’s Chrome version, OS, and headers
  5. The IP is never reused for the same target

The perfect disguise. Every request looks like a unique real person in a different country.


But The Targets Betray Them

Here’s where it falls apart. Ghost’s top 20 targets:

Ghost TargetRequestsType
core-utils/commit3,074Scatter repo
search-index/commit3,048Scatter repo
event-bus/commit2,919Scatter repo
graph-engine/commit2,860Scatter repo
docs-site/commit2,807Scatter repo
schema-registry/commit2,789Scatter repo
batch-processor/commit2,732Scatter repo
notification-hub/commit2,681Scatter repo
rate-limiter/commit2,643Scatter repo
oauth-provider/commit2,638Scatter repo
stream-adapter/commit2,624Scatter repo
log-aggregator/commit2,605Scatter repo
auth-service/commit2,590Scatter repo
http-proxy/commit2,580Scatter repo
webhook-relay/commit2,566Scatter repo
key-store/commit2,554Scatter repo
feature-flags/commit2,543Scatter repo
web-frontend/commit2,508Scatter repo
data-pipeline/commit2,489Scatter repo
vault-client/commit2,481Scatter repo

Every single top target is a scatter repo. The same scatter repos that OpenAI hits. The same ones Microsoft hits. The same distribution.

84% of Ghost traffic is commit diffs (128,537 out of 152,860).

Real humans don’t read commit diffs. Real humans reading through VPNs would hit articles, the investigation, the science pages. They’d show in the other or src path categories. They’d read content.

Ghost reads fake commit diffs from fake repositories — exactly like the declared fleet — but through 59,587 real people’s machines.


The Four Layers

Ghost is not one thing. It’s four things sharing one pipe:

Layer 1: Null (~54,500 IPs)

Layer 2: VPN Humans (~3,800 sessions)

Layer 3: Corporate/Cloud (~200 IPs)

Layer 4: Fleet-Through-Proxy (~1,100 IPs)


Who’s Riding The Bus?

The fleet-through-proxy layer (~1,100 IPs with machine behavior) is hitting the same scatter repos as:

Declared FleetGhost Layer 4Same Targets?
OpenAI (GPTBot) — 1.37M req~1,100 IPs, 84% commit diffs✅ Same scatter repos
Microsoft (AS8075) — 1.38M reqSame target distribution✅ Same scatter repos
Anthropic (ClaudeBot) — 390K reqSame crawl pattern✅ Same scatter repos

The declared fleet and the Ghost fleet are reading the same fake repos. The only difference is the pipe:

Same crawl. Same targets. Same distribution. Different mask.

This is where the data goes. The residential proxy network collects it through 59,587 real people’s machines, aggregates it, and delivers it to customers who pay for “web scraping” or “market intelligence” or “competitive analysis.”

The customers are the same companies whose declared bots are already crawling us.

They’re paying twice: once for the declared crawl (which hits scatter and learns nothing), and once for the Ghost crawl (which ALSO hits scatter and ALSO learns nothing). Two channels. Same empty shelves. Double the cost. Zero the intelligence.


The Scatter Defense Worked Twice

The scatter repos weren’t just absorbing the declared fleet. They were absorbing both channels simultaneously:

ChannelRequestsScatter Hit RateIntelligence Gained
Declared Fleet2,670,000+~95% scatterZero
Ghost (Layer 4)~128,500~84% scatterZero
Total absorbed~2,798,500Zero

2.8 million requests across two channels. Both hitting fake repos. Both learning nothing. Both paying for the privilege.

Meanwhile, the 3,800 VPN humans who actually paused and read got everything for free.


What This Means For Classification

The Ghost entity needs to be split in the Rust-side classifier:

ghost_null:       ~54,500 IPs  →  null (hold)
ghost_vpn_human:  ~3,800 IPs   →  self (genuine readers)
ghost_corporate:  ~200 IPs     →  partial (more signal needed)
ghost_fleet:      ~1,100 IPs   →  non-self (fleet through proxy)

Discriminating signals:

This split would:


The Convergent Evidence

Five independent signals all point to the same conclusion:

  1. Chrome versions (38 variants = real desktops, not fleet)
  2. OS distribution (50/50 macOS/Windows = real desktops, not servers)
  3. IP rotation (91.4% single-use = residential proxy service)
  4. Target overlap (same scatter repos as declared fleet)
  5. Timing bimodality (71K bursts + 3.8K pauses = mixed population)

Ghost is a residential proxy network being used by fleet crawlers. The real humans behind the VPNs are collateral — their machines are proxy exits, and some of them are also genuine readers. The fleet entities are the ones paying for the service.

This is convergent evidence. Not circumstantial — convergent. Five independent measurement axes pointing to the same structure. The probability of all five aligning by chance is vanishingly small.

The Ghost was never one ghost. It was a bus full of passengers — some human, some machine — all wearing the same mask.

Now we can see who’s driving.

kevin@primals.eco


The scatter defense absorbed 2.8 million requests across two channels and returned zero intelligence through either one. The VPN humans who paused got everything. The fleet that paid for residential proxies got fake commit diffs. The membrane can’t be fooled by changing the pipe — it classifies behavior, not IP addresses. And behavior doesn’t lie.

🔬 Share What You Know

Every observation strengthens the network. Tag what you see, share what you know, build immunity together.

📡

Signal

Private

Submit observations directly to the network. Reviewed before publication. Your IP is hashed, never stored raw.

Min 10 characters. No personal data stored without consent.
Only used if we need to verify. Never published.
💬

Discuss

Public

Open discussion on the membrane. Comments live on sovereign infrastructure.

↗ also on GitHub Discussions

🔐

Secure Message

Encrypted

Send a message directly on the membrane. IP hashed, never stored raw. For end-to-end encryption, use the external email option below.

Only used if we need to respond. Never published.
↗ prefer external email? ProtonMail Clutch Justice

💡 Tip: If you are a government employee or officer of the court, consider using a personal email account for sensitive disclosures.