jestasecurity/thumper
GitHub: jestasecurity/thumper
Thumper 是一个自托管蜜标平台,通过在环境中植入虚假凭据来检测 Shai-Hulud npm 蠕虫等供应链攻击行为。
Stars: 54 | Forks: 1
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.
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.
🚀 快速开始
整个技术栈被打包为 单个 Docker 镜像:
```
docker compose up --build # → http://localhost:8000
```
就是这样。打开 dashboard,创建一个 tripwire,然后部署即可。
从源码运行(开发模式)
```
# backend (Python 3.10+)
pip install -e .
uvicorn thumper.main:app --reload --app-dir server # → http://localhost:8000
# UI (单独的终端) - Vite 将 /api 代理到 backend
cd ui && npm install && npm run dev # → http://localhost:5173
```
在 Kubernetes 上部署(Helm)
Helm chart 位于 [`deploy/helm/thumper`](deploy/helm/thumper)。首先从 `Dockerfile` 构建并推送镜像,然后执行:
```
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
```
默认在 PVC 上使用 SQLite(单副本)。设置 `externalDatabase.url` 以使用 Postgres/MySQL。查看 [`values.yaml`](deploy/helm/thumper/values.yaml) 了解所有选项。
架构
Thumper 包含三个组件——一个 **server**、一个 **dashboard** 和一个 **endpoint agent**——打包为一个单独的 Docker 镜像。你创建 tripwire,将它们部署到各个 endpoint,每台机器都会植入独特的诱饵。当凭据被读取时,agent 会发送一个签名的 callback,server 随后将其分发到你配置的告警插件。
有关完整的架构参考,请参阅 [docs/architecture.md](docs/architecture.md)。
插件
告警和部署都是可插拔的——在 `plugins/{alert,deploy}/` 下放置一个包含 `manifest.yaml` 和 `plugin.py` 的目录,重启 server,它就会连同生成的配置表单一起显示在 dashboard 中。
- **Alert 插件** 将触发的 tripwire 事件传递给外部系统
- **Deploy 插件** 将安装命令分发到各个机器
有关完整指南,请参阅 [docs/plugins.md](docs/plugins.md)。
从源码运行(开发模式)
``` # backend (Python 3.10+) pip install -e . uvicorn thumper.main:app --reload --app-dir server # → http://localhost:8000 # UI (单独的终端) - Vite 将 /api 代理到 backend cd ui && npm install && npm run dev # → http://localhost:5173 ```在 Kubernetes 上部署(Helm)
Helm chart 位于 [`deploy/helm/thumper`](deploy/helm/thumper)。首先从 `Dockerfile` 构建并推送镜像,然后执行: ``` 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 ``` 默认在 PVC 上使用 SQLite(单副本)。设置 `externalDatabase.url` 以使用 Postgres/MySQL。查看 [`values.yaml`](deploy/helm/thumper/values.yaml) 了解所有选项。
🌱 贡献
请参阅 CONTRIBUTING.md💫 贡献者
标签:Docker, StruQ, 子域名突变, 安全告警, 安全防御评估, 时间线生成, 暗色界面, 测试用例, 蜜标, 蜜罐, 证书利用, 请求拦截, 逆向工具