BarmaleiDB-infosec/ChainScout
GitHub: BarmaleiDB-infosec/ChainScout
ChainScout 是一个支持以太坊、Solana、BSC、Polygon 四条链的自动化智能合约安全扫描平台,结合 Slither 静态分析与 AI 报告生成,帮助开发者快速发现常见合约漏洞并评估 dApp 攻击面。
Stars: 0 | Forks: 0
# ChainScout — 自动化智能合约安全扫描器
## 功能介绍
1. **智能合约分析** — 粘贴合约地址,获取完整的安全报告
2. **Solana 程序扫描** — 分析链上程序的可升级性风险
3. **DApp / Web3 攻击面分析** — 检测钱包 SDK、签名提示、链上门控
4. **基于 AI 的报告** — 通过 OpenRouter (Claude GPT-4o-mini) 生成详细的审计报告
5. **Slither 集成** — 针对 Solidity 合约的基于 AST 的深度分析
6. **风险评分** — 0-100 权重漏洞评分
## 漏洞检测(7 大类别)
| # | 类别 | 严重程度 | 描述 |
|---|----------|----------|-------------|
| 1 | **重入攻击** | HIGH | 修改状态的外部调用(违反 CEI 模式) |
| 2 | **整数溢出/下溢** | MEDIUM | 未使用 SafeMath/Solidity 0.8+ 的算术运算 |
| 3 | **tx.origin 误用** | HIGH | 容易受到网络钓鱼攻击的授权 |
| 4 | **未检查的调用** | HIGH | 未验证返回值的低级调用 |
| 5 | **Delegatecall 误用** | CRITICAL | 通过 delegatecall 进行的代码注入 |
| 6 | **访问控制问题** | CRITICAL | 缺少权限检查 |
| 7 | **时间戳依赖** | LOW | 可被矿工操纵的时间戳 |
## 快速开始 (Docker Compose)
### 前置条件
- Docker & Docker Compose
- [Supabase](https://supabase.com) 项目(免费版)
- [Etherscan](https://etherscan.io/apis) API 密钥(免费)
- [OpenRouter](https://openrouter.ai) API 密钥(可选,用于 AI 报告)
### 1. 克隆与配置
```
git clone https://github.com/BarmaleiDB-infosec/ChainScout.git
cd ChainScout
cp .env.example .env
# 使用你的密钥编辑 .env
```
### 2. 启动
```
docker compose up -d
```
### 3. 验证
```
curl http://localhost/health
# → {"status":"ok","service":"chainscout-api"}
```
在浏览器中打开 **http://localhost**。
## 系统架构
```
┌─────────────────┐
│ React App │ Port 5173 (dev) / 80 (prod via Nginx)
│ (Vite + TS) │
└────────┬────────┘
│
┌────▼────┐
│ Nginx │ Reverse Proxy, Rate Limiting, Security Headers
│ :80/443 │
└────┬────┘
│
┌────▼─────────┐
│ Node.js API │ Express, JWT Auth, Scan Orchestration
│ :4000 │
└────┬─────────┘
│
┌────┴──────────────────────┐
│ │
┌───▼──────┐ ┌────────▼────────┐
│ Supabase │ │ Security Engine │
│ Auth + DB│ │ • 7 Detectors │
│ RLS │ │ • Slither (AST) │
└──────────┘ │ • Infura (RPC) │
│ • Solana Client │
│ • OpenRouter AI │
└─────────────────┘
```
## API 端点
### 身份验证
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/api/auth/register` | 创建账户 |
| POST | `/api/auth/login` | 登录,返回 JWT |
### 扫描
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/api/scans` | 发起新扫描 |
| GET | `/api/scans/:id` | 获取扫描状态/结果 |
| GET | `/api/scans/recent` | 列出最近的扫描 |
| POST | `/api/solana/scan` | 扫描 Solana 程序 |
### 健康检查
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/health` | 服务状态 |
## 安全机制
| 功能 | 实现 |
|---------|---------------|
| **行级安全** | Supabase RLS 策略 |
| **JWT 身份验证** | 所有端点使用 Bearer 令牌 |
| **速率限制** | Nginx 级别(身份验证 10 次/分钟,扫描 1 次/分钟) |
| **CORS** | 仅限白名单源 |
| **SSRF 防护** | 阻断私有 IP 段 |
| **输入验证** | 地址格式、文件类型检查 |
| **安全响应头** | CSP, HSTS, X-Frame-Options, X-Content-Type-Options |
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| Frontend | React 18, TypeScript, Vite, TailwindCSS, shadcn/ui |
| Backend | Node.js, Express |
| Database | PostgreSQL (Supabase) |
| Auth | Supabase Auth + JWT |
| AI | OpenRouter (Claude / GPT-4o-mini) |
| Analysis | Slither, Custom Heuristics, Etherscan V2 API, Infura RPC, Solana RPC |
| Infra | Docker, Nginx, GitHub Actions |
## 环境变量
| 变量 | 必需 | 描述 |
|----------|----------|-------------|
| `SUPABASE_URL` | 是 | Supabase 项目 URL |
| `SUPABASE_SERVICE_KEY` | 是 | Supabase 服务角色密钥 |
| `VITE_SUPABASE_PUBLISHABLE_KEY` | 是 | Supabase 匿名密钥 |
| `ETHERSCAN_API_KEY` | 是 | Etherscan API 密钥 |
| `OPENROUTER_API_KEY` | 否 | OpenRouter API 密钥(用于 AI 报告) |
| `INFURA_API_KEY` | 否 | Infura RPC 密钥 |
## 部署
生产环境检查清单:
- [ ] 用 Let's Encrypt 替换自签名 SSL 证书 (`certbot --nginx`)
- [ ] 设置 `NODE_ENV=production`
- [ ] 启用防火墙:`ufw allow 22 && ufw allow 80 && ufw allow 443 && ufw enable`
- [ ] 配置监控(CPU > 80%,RAM > 90%,磁盘 > 85%)
- [ ] 设置数据库备份
## ⚠️ 免责声明
ChainScout 是一款**自动化分析工具**,**不应**替代专业的安全审计。自动化扫描可能会遗漏复杂的漏洞。请务必:
- 由专业公司对关键合约进行审计
- 在主网部署前在测试网进行全面测试
- 结合安全专业知识审查生成的报告
## 许可证
MIT 许可证
**由 ChainScout 团队构建 | MVP 就绪 — 2026 年 5 月**
## 功能介绍
1. **智能合约分析** — 粘贴合约地址,获取完整的安全报告
2. **Solana 程序扫描** — 分析链上程序的可升级性风险
3. **DApp / Web3 攻击面分析** — 检测钱包 SDK、签名提示、链上门控
4. **基于 AI 的报告** — 通过 OpenRouter (Claude GPT-4o-mini) 生成详细的审计报告
5. **Slither 集成** — 针对 Solidity 合约的基于 AST 的深度分析
6. **风险评分** — 0-100 权重漏洞评分
## 漏洞检测(7 大类别)
| # | 类别 | 严重程度 | 描述 |
|---|----------|----------|-------------|
| 1 | **重入攻击** | HIGH | 修改状态的外部调用(违反 CEI 模式) |
| 2 | **整数溢出/下溢** | MEDIUM | 未使用 SafeMath/Solidity 0.8+ 的算术运算 |
| 3 | **tx.origin 误用** | HIGH | 容易受到网络钓鱼攻击的授权 |
| 4 | **未检查的调用** | HIGH | 未验证返回值的低级调用 |
| 5 | **Delegatecall 误用** | CRITICAL | 通过 delegatecall 进行的代码注入 |
| 6 | **访问控制问题** | CRITICAL | 缺少权限检查 |
| 7 | **时间戳依赖** | LOW | 可被矿工操纵的时间戳 |
## 快速开始 (Docker Compose)
### 前置条件
- Docker & Docker Compose
- [Supabase](https://supabase.com) 项目(免费版)
- [Etherscan](https://etherscan.io/apis) API 密钥(免费)
- [OpenRouter](https://openrouter.ai) API 密钥(可选,用于 AI 报告)
### 1. 克隆与配置
```
git clone https://github.com/BarmaleiDB-infosec/ChainScout.git
cd ChainScout
cp .env.example .env
# 使用你的密钥编辑 .env
```
### 2. 启动
```
docker compose up -d
```
### 3. 验证
```
curl http://localhost/health
# → {"status":"ok","service":"chainscout-api"}
```
在浏览器中打开 **http://localhost**。
## 系统架构
```
┌─────────────────┐
│ React App │ Port 5173 (dev) / 80 (prod via Nginx)
│ (Vite + TS) │
└────────┬────────┘
│
┌────▼────┐
│ Nginx │ Reverse Proxy, Rate Limiting, Security Headers
│ :80/443 │
└────┬────┘
│
┌────▼─────────┐
│ Node.js API │ Express, JWT Auth, Scan Orchestration
│ :4000 │
└────┬─────────┘
│
┌────┴──────────────────────┐
│ │
┌───▼──────┐ ┌────────▼────────┐
│ Supabase │ │ Security Engine │
│ Auth + DB│ │ • 7 Detectors │
│ RLS │ │ • Slither (AST) │
└──────────┘ │ • Infura (RPC) │
│ • Solana Client │
│ • OpenRouter AI │
└─────────────────┘
```
## API 端点
### 身份验证
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/api/auth/register` | 创建账户 |
| POST | `/api/auth/login` | 登录,返回 JWT |
### 扫描
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/api/scans` | 发起新扫描 |
| GET | `/api/scans/:id` | 获取扫描状态/结果 |
| GET | `/api/scans/recent` | 列出最近的扫描 |
| POST | `/api/solana/scan` | 扫描 Solana 程序 |
### 健康检查
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/health` | 服务状态 |
## 安全机制
| 功能 | 实现 |
|---------|---------------|
| **行级安全** | Supabase RLS 策略 |
| **JWT 身份验证** | 所有端点使用 Bearer 令牌 |
| **速率限制** | Nginx 级别(身份验证 10 次/分钟,扫描 1 次/分钟) |
| **CORS** | 仅限白名单源 |
| **SSRF 防护** | 阻断私有 IP 段 |
| **输入验证** | 地址格式、文件类型检查 |
| **安全响应头** | CSP, HSTS, X-Frame-Options, X-Content-Type-Options |
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| Frontend | React 18, TypeScript, Vite, TailwindCSS, shadcn/ui |
| Backend | Node.js, Express |
| Database | PostgreSQL (Supabase) |
| Auth | Supabase Auth + JWT |
| AI | OpenRouter (Claude / GPT-4o-mini) |
| Analysis | Slither, Custom Heuristics, Etherscan V2 API, Infura RPC, Solana RPC |
| Infra | Docker, Nginx, GitHub Actions |
## 环境变量
| 变量 | 必需 | 描述 |
|----------|----------|-------------|
| `SUPABASE_URL` | 是 | Supabase 项目 URL |
| `SUPABASE_SERVICE_KEY` | 是 | Supabase 服务角色密钥 |
| `VITE_SUPABASE_PUBLISHABLE_KEY` | 是 | Supabase 匿名密钥 |
| `ETHERSCAN_API_KEY` | 是 | Etherscan API 密钥 |
| `OPENROUTER_API_KEY` | 否 | OpenRouter API 密钥(用于 AI 报告) |
| `INFURA_API_KEY` | 否 | Infura RPC 密钥 |
## 部署
生产环境检查清单:
- [ ] 用 Let's Encrypt 替换自签名 SSL 证书 (`certbot --nginx`)
- [ ] 设置 `NODE_ENV=production`
- [ ] 启用防火墙:`ufw allow 22 && ufw allow 80 && ufw allow 443 && ufw enable`
- [ ] 配置监控(CPU > 80%,RAM > 90%,磁盘 > 85%)
- [ ] 设置数据库备份
## ⚠️ 免责声明
ChainScout 是一款**自动化分析工具**,**不应**替代专业的安全审计。自动化扫描可能会遗漏复杂的漏洞。请务必:
- 由专业公司对关键合约进行审计
- 在主网部署前在测试网进行全面测试
- 结合安全专业知识审查生成的报告
## 许可证
MIT 许可证
**由 ChainScout 团队构建 | MVP 就绪 — 2026 年 5 月**标签:AI安全报告, CISA项目, Claude, CVE检测, dApp安全, GPT-4o-mini, MITM代理, OpenRouter, Polygon, Slither, Solana, Solidity, Web3安全, Web3开发, 以太坊, 加密, 加密货币安全, 区块链安全, 去中心化应用, 合约地址分析, 实时处理, 币安智能链, 整数溢出, 智能合约审计, 测试用例, 漏洞扫描器, 网络安全, 自动化攻击, 自动化漏洞扫描, 请求拦截, 配置错误, 重入攻击检测, 链上程序分析, 错误基检测, 隐私保护, 静态代码分析, 风险评分