Investigation training, in your browser.

Ghost in the Bit is a notebook and a workbench. Field notes on scraping, abuse, and rate-limit research — paired with a browser-based SQL console where you can practice the same investigations on realistic synthetic traffic, no install required.

Open the console Read the blog

Realistic data

Synthetic HTTP traffic with believable JA4 fingerprints, ASN distributions, partner integrations, and noise. Designed to mislead investigators who lean on a single signal.

Runs in your browser

SQLite via WebAssembly. No server, no account, no install. Load a scenario, write SQL, run it. All data stays on your device.

Progressive difficulty

Each scenario ships with instructions, progressive hints, and sample queries — so you can think through the problem, get unstuck, and ground your answer in real SQL.

Available scenarios

Logged-Out Web Scrape

beginner scraping

A web property sees unusual logged-out traffic. Determine whether scraping is occurring, who is responsible, and what they're targeting. Stacks cookie state, JA4, and ASN reputation signals.

Logged-In Mobile API Abuse

intermediate scraping

A mobile API integration shows odd behavior. Identify the bad actor, attribute their infrastructure, and explain how they're enumerating partner-scoped graph endpoints across thousands of user accounts.

Insider Data Exfiltration

intermediate insider threat

An employee may be exfiltrating data before leaving for a competitor. Five-table dataset. Build per-employee baselines, detect within-person deviation, and rule out two documented false-positive distractors (a role change and PTO catch-up).

The Living Investigation

hard scraping

Thirty days of an evolving attack. Reconstruct eight distinct phases of attacker tactics and defensive responses from the data alone — naïve scrape → proxies → JA4 swap → cookie bypass → fake accounts → CAPTCHA-solving. The capstone.

Powered by Buttondown.

Recent writing

Notes from research, with identifying details changed and/or redacted for confidentiality.