C0oki3s/veilgate
GitHub: C0oki3s/veilgate
一个开源的欺骗性反向代理,通过多维请求评分将 AI 红队代理和自动化扫描器引导至按 IP 一致的伪造应用,以非对称方式提高攻击的经济成本。
Stars: 10 | Forks: 1
# VeilGate
VeilGate 是一个开源的欺骗性代理,旨在为希望提高自动化安全探测成本,同时又不希望在真实用户面前设置脆弱封禁规则的团队提供服务。
它位于 Web 应用程序的前端,对每个请求进行评分,并选择以下三种结果之一:
- **Real (真实)**:将干净的流量转发到上游应用。
- **Challenge (挑战)**:要求可疑但尚不明确的客户端解决浏览器工作量证明。
- **Tarpit (陷阱)**:将高置信度的自动化代理流量转移到确定性的伪造应用中。
其目标并非神奇的不可侵犯性,而是实现更好的经济效益:在保持人类和正常自动化程序畅通无阻的同时,让 AI 辅助的扫描器将时间、token 和注意力浪费在逼真的死胡同上。
## 功能特性
- 具有 `observe`(观察)、`challenge`(挑战)、`tarpit`(陷阱)以及由阈值驱动的 `auto`(自动)模式的反向代理。
- 针对可疑 User-Agent、稀疏的浏览器标头、蜜罐路径、时间规律性、扫描器路径、SQLi/XSS/OOB 标记、IP/UA 轮换、Cookie 行为、请求图形状、JA3/JA4 TLS 指纹、HTTP/2 指纹、金丝雀重放以及在线 ML 评分的检测信号。
- 通过稳定的逐客户端伪造配置文件来影蔽应用程序的响应。
- 针对陷阱响应的 Prompt 注入和诱饵 Payload 注入。
- 使用 SQLite 持久化存储事件、特征汇总、审计日志和金丝雀。
- 在 metrics 监听器上提供 Prometheus 指标和轻量级仪表板。
- 支持热重载的 YAML 规则文件。
## 快速开始
前置条件:Go `1.25.10` 或更新版本。
```
git clone https://github.com/C0oki3s/veilgate.git
cd veilgate
make build
./veilgate -config configs/veilgate.yaml
```
默认情况下,VeilGate 监听 `:8080`,代理到 `http://localhost:3000`,并在 `:9090` 上暴露指标/仪表板。
然后进行测试:
```
curl http://localhost:8080/
curl -A "python-requests/2.31.0" http://localhost:8080/.git/config
curl http://localhost:9090/metrics | grep veilgate
```
默认配置以 `observe` 模式启动。这是有意为之的:在启用 challenge 或 tarpit 行为之前,您应该先建立正常流量的基线。
## 操作模式
| 模式 | 使用时机 | 行为 |
| --- | --- | --- |
| `observe` | 初始推出和调整 | 对流量进行评分和记录,始终转发至上游 |
| `challenge` | 您已准备好中断可疑客户端时 | 中等评分的流量需完成工作量证明 |
| `tarpit` | 您准备好欺骗高置信度代理时 | 高评分流量收到伪造的应用响应 |
| `auto` | 您希望由阈值驱动每个请求的执行策略时 | 低于阈值的流量放行,中等评分进行 challenge,高评分进行 tarpit |
推荐的推出步骤:
1. 运行 `observe` 模式至少数天。
2. 检查指标和事件样本以确认是否存在误报。
3. 对模棱两可的流量启用 `challenge`。
4. 在阈值适应您的环境后启用 `tarpit`。
## 配置
从 [configs/veilgate.yaml](configs/veilgate.yaml) 开始:
```
listen: ":8080"
upstream: "http://localhost:3000"
mode: "observe"
rules_dir: "./rules"
detector:
score_challenge_threshold: 40
score_tarpit_threshold: 70
trusted_ips: []
trusted_proxies: []
metrics:
listen: ":9090"
```
完整参考:[docs/CONFIG_REFERENCE.md](docs/CONFIG_REFERENCE.md)。
## 文档
- [入门指南](docs/GETTING_STARTED.md):本地运行与初步检查。
- [配置参考](docs/CONFIG_REFERENCE.md):`veilgate.yaml` 与规则文件。
- [部署](docs/DEPLOYMENT.md):Linux/systemd 安装。
- [架构](docs/ARCHITECTURE.md):请求流程与子系统设计。
- [运维](docs/OPERATIONS.md):指标、仪表板、警报与例行检查。
- [模型卡](docs/MODEL_CARD.md):ML 信号行为与局限性。
- [威胁模型](THREAT_MODEL.md):VeilGate 能防护与不能防护的内容。
## 安全说明
- 仅将 VeilGate 部署在您拥有或运营的系统前面。
- 不要将 metrics 监听器直接暴露在公共互联网上。
- 在使用 `challenge` 或 `tarpit` 模式之前,请设置 `VEILGATE_SECRET` 或 `challenge.secret`。如果使用默认的 challenge 密钥,VeilGate 将拒绝在 `observe` 模式之外启动。
- 将 `rules/` 目录下的文件视为安全策略。对它们进行审查和版本控制。
- 从保守的阈值开始,并根据观察到的流量进行调整。
## 开发
```
make test
make fmt
make build
```
顶层的 [tests](tests) 文件夹包含黑盒集成测试。
包私有的单元测试位于其相应的包旁边,因为它们验证的是未导出的 detector、TLS 指纹、tarpit 和 ML 辅助程序。
## 许可证
Apache-2.0。详见 [LICENSE](LICENSE)。
标签:AI安全, Apex, API安全, BOF, Chat Copilot, CISA项目, DNS解析, EVTX分析, Go语言, HTTP/2指纹, JA3指纹, JA4指纹, JSON输出, SQLi防御, Web安全, XSS防御, 反向代理, 威胁情报, 安全代理, 安全评分, 密码管理, 开发者工具, 开源项目, 异常检测, 成本施加, 插件系统, 日志审计, 机器人检测, 机器学习, 欺骗技术, 欺骗防御, 流量清洗, 浏览器指纹, 程序破解, 红队防御, 网络安全, 自动化攻击防御, 自定义请求头, 蓝队分析, 蜜罐, 蜜饵, 证书利用, 请求响应过滤, 隐私保护