Skip to content

jestasecurity/thumper

Thumper

Plant fake-but-realistic credentials where the Shai-Hulud npm supply-chain worm scans - and get alerted the instant one is read.
The tokens authenticate to nothing. A read is the signal.

Wesbite | Get started Β»

PRs welcome License PRs welcome

Thumper is your self-hosted honeytoken platform for trapping attackers inside your environment. You create tripwires, distribute them across your fleet, and each machine plants unique bait. When an attacker-controlled process touches the bait, Thumper immediately triggers an alert.
It's built and maintained by Jesta under the Apache 2.0 license.

πŸš€ Getting Started

The whole stack comes as one Docker image:
docker compose up --build        # β†’ http://localhost:8000

That's it. Open the dashboard, create a tripwire, and ship it.

Run it from source instead (dev mode)
# backend (Python 3.10+)
pip install -e .
uvicorn thumper.main:app --reload --app-dir server     # β†’ http://localhost:8000

# UI (separate terminal) - Vite proxies /api to the backend
cd ui && npm install && npm run dev                     # β†’ http://localhost:5173
Deploy on Kubernetes (Helm)

A Helm chart lives in deploy/helm/thumper. Build and push the image from the Dockerfile first, then:

helm install thumper ./deploy/helm/thumper \
  --set image.repository=ghcr.io/jestasecurity/thumper \
  --set secrets.enrollToken=$(openssl rand -hex 24) \
  --set secrets.installToken=$(openssl rand -hex 24) \
  --set config.baseUrl=https://thumper.example.com

Defaults to SQLite on a PVC (single replica). Set externalDatabase.url for Postgres/MySQL. See values.yaml for all options.

Architecture

Thumper has three components - a server, a dashboard, and an endpoint agent - shipped as a single Docker image. You create tripwires, deploy them to endpoints, and each machine plants unique bait. When a credential is read, the agent sends a signed callback and the server fans out to your configured alert plugins.

See docs/architecture.md for the full architecture reference.

Plugins

Alerting and deployment are pluggable - drop a directory under plugins/{alert,deploy}/ with a manifest.yaml and a plugin.py, restart the server, and it shows up in the dashboard with a generated config form.

  • Alert plugins deliver fired-tripwire events to external systems
  • Deploy plugins distribute the install command to machines

See docs/plugins.md for the full guide.

🌱 Contributing

Refer to CONTRIBUTING.md

πŸ’« Contributors

contributors

About

Thumper is an open-source tripwire for the Shai-Hulud npm worm. Plant fake-but-realistic credentials where the worm scans - the instant one is read, you know the box might be breached. Free and built in the open by Jesta.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors