Decoy Kit · v0.2.0
Plant the trap. Find out the moment it's touched.
20 honeytoken traps for the places attackers actually go after a foothold: AWS/GCP/Azure metadata endpoints, a decoy Firebase database, a decoy Redis server, a stolen kubeconfig, a leaked SSH key, an over-shared Postman collection, a scraped RAG corpus, a vulnerable home router, an OT/serial gateway, an internal package feed, a decoy MCP server, a fabricated calendar invite, and more. 19 of the 20 are fully stateless — a hit is a pure function of your seed and the request, correct across any number of worker processes with zero shared state. RAG Beacon is the one exception: its hit route checks an in-process registry — correct for a single instance, and something you'd back with shared storage yourself for multi-replica coverage. Pip-installable, run standalone or as one combined service.
The trap library
20 traps, one seed, honest about the one that shares state.
Pulled from the same Leviathan Control modules that ship inside Leviathan Platform — packaged standalone for teams who want just this piece, without the full governed-automation platform around it.
- Cloud · AWS — IMDS SSRF trap
- Decoy EC2 metadata endpoint with the real IMDSv2 token handshake, so a scanner that skips it gets an ordinary 401, not a giveaway.
- Cloud · GCP — Metadata SSRF trap
- Enforces the real, case-sensitive
Metadata-Flavor: Googleheader check actual GCP uses. - Kubernetes — Kubeconfig honeytoken
- A decoy kubeconfig whose real client-go exec plugin beacons on use, then returns a believable "token expired" failure.
- Git / secrets · free — SSH key trap
- A real, valid key from actual
ssh-keygen, comment field set to a beacon URL — passes any scanner that checks key structure. Free forever, MIT-licensed → - API tooling — Postman Poisoner
- Plants a decoy admin request and a fake bearer token into a real collection. Catches use of a leaked collection, not just its existence.
- RAG / AI — Honeydocuments
- Decoy documents with a markdown-image beacon — fires when a RAG pipeline or agent renders one back during retrieval.
- Web — Ghost-Schema
- An API tarpit for scanner-bait paths (
/admin,/.env,/backup...) — deterministic fake data instead of a real hit. - Web — Ephemeral Routes
- Time-rotating decoy paths, computed statelessly so every worker process agrees on what's currently valid with zero coordination.
- Network · IoT — Router/gateway CGI trap
- Decoy config-dump and path-traversal endpoints that leak a fake MAC address — modeled on a real, disclosed 2026 CVE class where a home router's admin password is predictable from its own MAC. The strong signal isn't the leak, it's a login attempt using the password derived from it.
- OT / industrial — Serial/OT gateway trap
- Decoy remote fleet-management endpoints for serial-to-Ethernet gateways — modeled on a real disclosed vulnerability class (unauthenticated config writes, remote reboot, a stale-credential auth bypass) used in real power-grid attacks.
- LLM / AI — Tarpit document
- A decoy internal document authored to cost an LLM-driven prober real reasoning effort and tokens, not just get detected — contradictory fields, disagreeing severities, an honest dead-end puzzle.
- MCP — Decoy MCP server
- A fake Model Context Protocol server whose bait tool names sound like exactly what a compromised agent would go looking for. Enumerating its tools is already a signal; calling one always "succeeds."
- Supply chain — Internal registry traps
- Decoy npm and PyPI-shaped internal package feeds, speaking each ecosystem's real index and upload API — catches the common pattern of an internal registry with no real auth on uploads.
- Filesystem — Directory file planter
- Scans an operator-approved directory for its real naming conventions, then plants matching decoy files with a Ghost-Schema beacon — never overwrites a real file.
- Cloud · Azure — Metadata SSRF trap
- Completes the AWS/GCP/Azure set — enforces the real
Metadata: trueheader and Azure's own X-Forwarded-For rejection, so a lazy scanner gets an ordinary rejection, not a giveaway. - Cloud · Firebase — Realtime Database trap
- Mimics Firebase's real
GET /<path>.jsonREST shape — a bare hit reads as recon, anyauthparameter presented reads as a leaked credential being used. - Data store — Redis trap
- A decoy Redis server speaking the real RESP wire protocol — PING/INFO read as recon, CONFIG SET/SAVE/MODULE LOAD/EVAL (the real unauthenticated-Redis RCE path) read as misuse.
- Supply chain — Tool Manifest Poisoner
- Plants a fake internal "approved security tools" manifest — the tripwire fires when something reads it and fetches one of its named mirror URLs.
- Social · Browser — Calendar Invite trap
- A real, RFC 5545-valid .ics invite built to steer an agentic browser into a localhost dev pivot or a password-manager detour — modeled on a real DEF CON 34 disclosure.
Try it
Generate one, right now.
Real entropy via your browser's crypto.getRandomValues — the same source the CLI uses, formatted in the exact shape a real AWS access key takes. This is what "passes structural scanning" actually looks like, not a description of it.
What's actually in it
What's actually in it.
- Zero core pip dependencies —
fastapi/uvicornandpyyamlare optional extras, only needed if you run the combined service or want YAML kubeconfig output. decoy-kit serveruns every route-based trap as one combined FastAPI service.decoy-kit generate ssh-key / postman / kubeconfigproduces plantable artifact files from the CLI.- 19 of 20 traps detect hits statelessly —
HMAC(seed, request), no registry to keep in sync across replicas. The generator traps (Postman, kubeconfig, SSH key, directory planter, Tool Manifest Poisoner, calendar invite) have no route of their own; they plant bait against Ghost-Schema's already-stateless paths. RAG Beacon is the one exception: it checks an in-process registry, correct within one instance. - Every generator refuses (fails loud) to target a bait path Ghost-Schema doesn't recognize — a poisoned artifact can never silently point at a real, unprotected endpoint.
- 362 tests, including real end-to-end runs: actual
ssh-keygencalls, a realTestClienthitting every mounted route.
Pricing
One trap free forever. The other nineteen, cheaper the more of Northstar you already run.
The SSH key trap is a real, separate, MIT-licensed package — free, no signup, no time limit. The other 19 traps (cloud SSRF, Kubernetes, Postman, RAG, Ghost-Schema, ephemeral routes, the router/IoT gateway CGI trap, the OT/serial gateway trap, the LLM tarpit, the decoy MCP server, the npm/PyPI registry traps, the directory planter, Azure metadata, Firebase, Redis, the Tool Manifest Poisoner, and a calendar-invite trap) are the paid kit: one flat annual license, per org, no per-seat fees. If you already hold a paid Northstar license (Leviathan Platform, Bait-Mask, or Agent Guardrails), Decoy Kit is priced as an add-on instead of standalone.
One full trap, MIT-licensed, no signup — the same module that ships in the paid kit, not a crippled demo. pip install decoy-kit-free.
A real, time-boxed license — every trap works exactly as it will after you pay. Credited toward your first year if you convert.
25% off standalone — for any org already running a paid Leviathan Platform, Bait-Mask, or Agent Guardrails license.
Flat. Full trap set, unlimited environments and seats within your org.
Why it's priced this way: the $35,000 Leviathan Platform pilot already bundles a year of Bait-Mask at no extra charge — see Leviathan Platform pricing. This add-on tier extends that same logic to Decoy Kit and Agent Guardrails: the more of the product line you're already running, the less any one additional piece costs on its own.
Card checkout: live for the standalone tier — clicking "Get the standalone kit" opens Stripe's own hosted checkout page, and you're invited as a GitHub collaborator automatically on payment. The add-on tier is "Talk to us" for now because it isn't wired to its own Stripe price yet; reach out via the contact form and we'll apply the 25% discount directly.
Trust & scope
What's real, and what this isn't.
169.254.169.254, standing it up where a leaked kubeconfig points) is a deployment decision this package deliberately has no opinion on — that's on you or us to plan together, not something the software does for you. No independent third-party audit yet, same honest status as every other Northstar product at this stage.Want to know the moment your metadata endpoint, kubeconfig, or Postman collection gets touched?
20 traps, no sales call needed to get started.