Davinci-lab/BridgeGuard
GitHub: Davinci-lab/BridgeGuard
BridgeGuard 是一个面向跨链桥系统的运行时安全内核,提供模拟、风险评估和告警功能以增强安全性。
Stars: 0 | Forks: 0
# BridgeGuard 防护
**面向跨链桥系统的防御性运行时安全内核。**
BridgeGuard v2 是一个本地优先的运营者控制台与 API,用于模拟桥接事件、检查运行时不变量、评估风险以及生成可解释的决策。它保留了原始的 v1 模拟端点,同时新增了身份验证、项目隔离、事件监听器、告警、策略校准、连接器发现以及签名合规报告等功能。
## v2 功能集
- 基于 FastAPI v2 的身份验证 API,支持 JWT 登录/注册和 `/api/v2/auth/me` 端点。
- 项目范围的多租户支持,涵盖模拟、决策、告警、监听器、策略配置和报告。
- 项目仪表盘,包含近期决策、告警状态、监听器状态和 v2 模拟流程。
- 多链连接器框架,支持 EVM、Solana 和 Cosmos 连接器类型。
- EVM 自动发现端点,提供已验证 ABI 方法映射建议。
- 基于 Celery/Redis 的监听器基础架构,支持轮询或 WebSocket 连接器事件。
- 针对高风险决策的 Slack、邮件和 Webhook 告警规则。
- 支持风险权重和自定义表达式规则的策略校准。
- 生成带数字签名验证的 PDF 决策报告。
- TailwindCSS/shadcn 风格的前端组件。
- Docker Compose 部署栈,包含 PostgreSQL、Redis、后端、Celery 工作进程和 Nginx 前端。
- 用于后端 pytest 和前端类型检查/构建的 GitHub Actions 工作流。
## 向后兼容性
原始 v1 API 已被有意保留:
- 根 v1 端点仍然可用,包括 `/health`、`/simulate`、`/simulate-attack/{name}`、`/decisions`、`/metrics`、`/reason-codes` 和 `/connectors`。
- 同样的 v1 路由也可通过 `/api/v1` 访问。
- v2 路由位于 `/api/v2` 下,项目范围内的操作需要身份验证。
- 前端保留了一个 **v1 工具** 部分,用于历史回放、风险指标、旧连接器存储、近期 v1 决策以及原因代码参考。
- 现有的本地 `backend/connectors.json` 文件可继续与旧连接器端点配合使用。
## 快速开始
最快的方式是使用 Docker:
```
docker compose up --build
```
打开:
- 前端:`http://localhost:3000`
- 后端健康检查:`http://localhost:8000/health`
- API 文档:`http://localhost:8000/docs`
Alembic 种子数据迁移会创建一个演示账户:
```
Email: demo@bridgeguard.local
Password: bridgeguard-demo
Project: Demo Bridge Operations
```
有关引导式操作指南,请参阅 [快速入门指南](QUICKSTART.md)。
## Docker 配置
部署栈包含:
- `db`:PostgreSQL 16
- `redis`:Redis 7
- `backend`:启动时执行 Alembic 迁移的 FastAPI 应用
- `celery`:用于处理监听器和告警任务的 BridgeGuard 工作进程
- `frontend`:提供生产构建 React 应用并代理 API 路由的 Nginx 服务
常用命令:
```
docker compose up --build
docker compose ps
docker compose logs -f backend
docker compose down
```
重置数据库卷:
```
docker compose down -v
docker compose up --build
```
## 手动配置
后端:
```
cd backend
python -m pip install -r requirements.txt
alembic upgrade head
python -m pytest tests
python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
```
前端:
```
cd frontend
npm install
npm.cmd exec tsc -- --noEmit
npm.cmd run build
npm start
```
可选的本地服务,用于支持 v2 监听器/告警工作流:
```
redis-server
cd backend
celery -A app.tasks.celery_app worker --loglevel=info
```
环境变量:
```
DATABASE_URL=sqlite:///./bridgeguard.db
DATABASE_URL=postgresql://bridgeguard:bridgeguard@localhost:5432/bridgeguard
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/1
ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
SECRET_KEY=change-this-in-real-deployments
```
## API 概览
v1 示例:
```
curl http://127.0.0.1:8000/health
curl http://127.0.0.1:8000/attacks
curl -X POST "http://127.0.0.1:8000/simulate-attack/Ronin%20Bridge"
```
v2 身份验证:
```
curl -X POST http://127.0.0.1:8000/api/v2/auth/register `
-H "Content-Type: application/json" `
-d "{\"email\":\"operator@example.com\",\"password\":\"bridgeguard-demo\",\"project_name\":\"Ops\"}"
curl -X POST http://127.0.0.1:8000/api/v2/auth/login `
-H "Content-Type: application/x-www-form-urlencoded" `
-d "username=operator@example.com&password=bridgeguard-demo"
```
v2 项目范围请求使用:
```
Authorization: Bearer
X-Project-ID:
```
## 连接器
BridgeGuard 支持连接器注册表,包含:
- EVM 连接器
- Solana 连接器模拟
- Cosmos 连接器模拟
- 配置文件发现
- 通过 `POST /api/v2/connectors/discover` 进行 Etherscan ABI 发现
默认的演示连接器配置存储在:
```
backend/app/sample_data/default_connectors.json
```
用户创建的旧版连接器存储在:
```
backend/connectors.json
```
## 测试
后端:
```
cd backend
python -m pytest tests
```
前端:
```
cd frontend
npm.cmd exec tsc -- --noEmit
npm.cmd run build
```
CI 在推送和拉取请求时会运行相同的后端和前端检查。
## 谁在使用 BridgeGuard?
BridgeGuard 面向桥接运营者、审计方、保险公司以及评估运行时桥接监控的 DeFi 安全研究人员开放。
如果在试点项目、审计流程、研究项目或保险风险评估中使用了 BridgeGuard?请提交 issue 或讨论以在此处列出。
## 防御边界
BridgeGuard 是纯防御性的:
- 不涉及私钥
- 不进行交易签名
- 不包含漏洞利用载荷
- 不涉及实际资金移动
- 不保证绝对安全
- 不暴露内部的专有桥接逻辑
有关报告指南和安全使用须知,请参阅 [安全说明](SECURITY.md)。
## 风险模型
风险模型是确定且可解释的。v2 增加了项目级别的权重校准和自定义表达式规则,但运营者必须在使用真实操作数据进行校准后才能用于生产环境。
请参阅 [风险模型文档](RISK_MODEL.md)。
## 商业用途
如需托管服务、企业功能或定制集成,请通过 [邮箱/网站] 联系我们。
## 数据来源
历史事件库仅用于防御性模拟和产品演示。
| 事件 | 参考链接 |
| --- | --- |
| Ronin Bridge | https://nomoslabs.io/archive/ronin-bridge-2022 |
| Wormhole | https://www.halborn.com/blog/post/explained-the-wormhole-hack-february-2022 |
| Nomad | https://nomoslabs.io/archive/nomad-bridge-2022 |
| Harmony Horizon | https://techcrunch.com/2022/06/24/harmony-blockchain-crypto-hack/ |
| BNB Token Hub | https://www.nansen.ai/research/bnb-chains-cross-chain-bridge-exploit-explained |
| Poly Network | https://www.cnbc.com/2021/08/11/cryptocurrency-theft-hackers-steal-600-million-in-poly-network-hack.html |
| Multichain | https://www.coindesk.com/tech/2023/07/07/multichain-team-confirms-exploit-across-fantom-moonriver-and-dogechain-bridges |
| THORChain 近期事件 | https://blog.thorchain.org/post-mortem-eth-router-exploits-1-2-and-premature-return-to-trading-incident/ |
| Orbit Chain | https://rekt.news/orbit-chain-rekt/ |
| Socket/Bungee | https://rekt.news/socket-rekt/ |
| Heco Bridge (HTX) | https://rekt.news/htx-heco-bridge-rekt/ |
| Mixin Network | https://rekt.news/mixin-network-rekt/ |
| LI.FI 协议 | https://rekt.news/lifi-rekt/ |
| Celer cBridge DNS 劫持 | https://blog.celer.network/2023/08/18/celer-cbridge-dns-hijack-incident/ |
| Kelp DAO rsETH Bridge | https://rekt.news/kelp-dao-rekt/ |
| Shibarium Bridge | https://rekt.news/shibarium-bridge-rekt/ |
| Nervos Force Bridge | https://rekt.news/nervos-force-bridge-rekt/ |
| Verus Ethereum Bridge | https://blockchain.news/verus-ethereum-bridge-exploited |
| NoOnes Solana Bridge | https://www.gate.com/news/noones-8m-cross-chain-bridge-exploit |
## 状态
BridgeGuard v2.0.0 是一个稳定的开源防御性版本,适用于演示、内部评审、原型运营工作流和商业评估。它不能替代独立的审计、针对特定桥接的威胁建模或生产事件响应控制措施。
## 许可证
本项目基于 MIT 许可证授权 – 详情请参阅 LICENSE 文件。
标签:AV绕过, Celery, FastAPI, JWT, Nginx, PostgreSQL, Redis, TailwindCSS, 不变检查, 前端组件, 区块链安全, 合规报告, 后端API, 多链支持, 多链连接器, 安全内核, 安全决策, 开源安全工具, 搜索引擎查询, 模拟工具, 测试用例, 策略校准, 自动发现, 警报系统, 认证API, 请求拦截, 跨链桥安全, 跨链监控, 连接器框架, 逆向工程平台, 风险评分