baties/solidity-audit-assistant
GitHub: baties/solidity-audit-assistant
基于 Claude AI 的 Solidity 智能合约安全分析平台,结合静态检测与大模型语义分析发现漏洞并给出修复建议。
Stars: 0 | Forks: 0
# SolidityGuard AI
## 功能介绍
SolidityGuard AI 帮助 Solidity 开发者、审计人员和 DeFi 团队在漏洞被利用之前发现它们:
- **提交** GitHub 仓库 URL 或已验证的合约地址(Ethereum、Polygon、Arbitrum、Optimism、Base、BSC)
- **分析** — 静态模式检查 + 深度 Claude AI 分析,覆盖 12+ 种漏洞类别
- **获取** 0–100 风险评分、按严重程度排序的发现以及具体的修复建议
## 快速开始
```
# 1. Clone
git clone https://github.com/your-org/solidityguard.git
cd solidityguard
# 2. 配置环境
cp .env.example .env
# 编辑 .env — 至少设置:ANTHROPIC_API_KEY, ETHERSCAN_API_KEY
# 3. 启动 Full Stack
docker-compose up
# App: http://localhost (通过 Nginx)
# API: http://localhost/api/health
# Postgres: localhost:5432
```
## 环境变量
| 变量 | 必需 | 描述 |
|----------|----------|-------------|
| `ANTHROPIC_API_KEY` | ✅ | Claude API 密钥 — 从 [console.anthropic.com](https://console.anthropic.com) 获取 |
| `ETHERSCAN_API_KEY` | ✅ | 用于获取合约源代码的 Etherscan API 密钥 |
| `DATABASE_URL` | ✅ | PostgreSQL 连接字符串 |
| `GITHUB_TOKEN` | 可选 | GitHub PAT — 将速率限制从 60 → 5000 请求/小时 |
| `PORT` | 可选 | Express API 端口(默认值:`3001`) |
| `LOG_LEVEL` | 可选 | `debug`(开发)或 `info`(生产),默认值:`info` |
| `NEXTAUTH_SECRET` | 阶段 3 | 启用身份验证时必需 |
| `GITHUB_CLIENT_ID` | 阶段 3 | GitHub OAuth App 客户端 ID |
| `GITHUB_CLIENT_SECRET` | 阶段 3 | GitHub OAuth App 客户端密钥 |
完整列表及说明请参阅 `.env.example`。
## 架构
```
Browser
│
▼
Nginx :80
├── /api/* ──► Express API :3001
│ │
│ ┌───▼────────────────────┐
│ │ Scan Pipeline │
│ │ orchestrator.ts │
│ │ ├── fetcher.ts │ ◄── GitHub (Octokit)
│ │ │ │ ◄── Etherscan / Sourcify
│ │ ├── analyzer.ts │ (static checks)
│ │ └── llm.ts │ ◄── Claude claude-sonnet-4-20250514
│ └────────────────────────┘
│ │
│ PostgreSQL :5432
│
└── /* ──────► Next.js :3000
```
**关键决策:**
- **Raw SQL** 优于 ORM — 显式迁移,更易于审计追踪 ([ADR-001](docs/adr/001-raw-sql.md))
- **Claude `tool_use`** 优于自由格式输出 — 类型安全的结构化结果,无需正则解析 ([ADR-002](docs/adr/002-tool-use.md))
- **Express + Next.js** 共存 — Next.js 在开发环境中将 `/api/*` 重写到 Express;生产环境中通过 Nginx 路由
## 开发
```
# 安装依赖
pnpm install
# 启动 dev servers (Next.js :3000 + Express :3001)
pnpm dev
# 类型检查
pnpm typecheck
# Lint
pnpm lint
# 测试
pnpm test
```
要求:Node.js 20+、pnpm 8+、PostgreSQL 16(或使用 Docker)。
## 项目状态
当前阶段及后续工作请参阅 [ROADMAP.md](ROADMAP.md)。
| 阶段 | 状态 |
|-------|--------|
| 0 — 脚手架 | 🔄 进行中 |
| 1 — MVP | ⬜ 下一步 |
| 2 — 深度 | ⬜ 已计划 |
| 3 — 认证与历史 | ⬜ 已计划 |
| 4 — 生产 | ⬜ 已计划 |
## 贡献
仓库设置、分支命名、PR 检查清单和代码规范请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
MIT — 欢迎通过向 `main` 分支提交 PR 进行贡献。
标签:CISA项目, Claude API, CVE, DeFi安全, Docker, Ethereum, MITM代理, Nginx, PostgreSQL, Solidity, Solidity安全, Web3安全, 云安全监控, 人工智能, 代码安全, 以太坊开发, 区块链安全, 去中心化金融, 反取证, 安全评估, 安全防御评估, 对称加密, 数字签名, 智能合约分析, 智能合约审计, 测试用例, 漏洞枚举, 用户模式Hook绕过, 自动化审计, 自动化攻击, 请求拦截, 足迹探测, 静态分析