mvmax-dev/solidity-security-scanner
GitHub: mvmax-dev/solidity-security-scanner
AI 驱动的智能合约自动化安全审计 GitHub Action,在 CI/CD 流程中自动扫描重入、闪电贷等漏洞并提供 Gas 优化建议。
Stars: 1 | Forks: 0
## 🚀 为什么选择本工具?
| 问题 | 我们的解决方案 |
|---------|-------------|
| 🐛 人工审计成本在 **50,000 美元以上**,且耗时数周 | ⚡ 每次提交 Pull Request 时进行**即时自动化扫描** |
| 🔇 仅使用 Slither 会产生 **60% 以上的误报** | 🤖 **AI 验证器**以 99% 的准确率抑制误报 |
| ⛽ Gas 效率低下在部署中浪费了**数千美元** | 📊 **AST Gas 优化器**逐行发现确切的节省空间 |
| 🔗 缺乏用于 **EVM + Solana + Fuzz** 测试的统一工具 | 🌐 **多链引擎** —— 集成 Solidity、Rust 和 Foundry |
| 💳 Web3 开发者讨厌信用卡付费墙 | 💎 **混合计费** —— 使用 USDC 或 Stripe 支付 |
## ⚡ 功能与版本
| 功能 | 🆓 免费版 | 💎 PRO版 (Web3 独立开发者) | 🏢 企业版 (B2B) |
|---------|:---:|:---:|:---:|
| **基于 AST 的结构分析** | ✅ | ✅ | ✅ |
| **PR 内联机器人评论** | ✅ | ✅ | ✅ |
| **Foundry 模糊测试** | ✅ | ✅ | ✅ |
| **Solana / Rust 原生扫描** | ✅ | ✅ | ✅ |
| **深度 AI 逻辑漏洞检测** | ❌ | ✅ | ✅ |
| **误报抑制 (99%)** | ❌ | ✅ | ✅ |
| **AST Gas 优化引擎** | ❌ | ✅ | ✅ |
| **重入与闪电贷防御** | ❌ | ✅ | ✅ |
| **支付方式** | 永久免费 | 计量 x402 (USDC) | 法币 / Stripe |
## 🚀 快速开始与配置模板
将以下任一模板放入您仓库的 `.github/workflows/audit.yml` 中。
### 模板 A:标准设置(免费)
最适合希望在不使用 AI/Gas 功能的情况下进行基础 AST 结构分析的开源项目。
```
name: "Web3 Security Audit"
on: [pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Security Scanner
uses: mvmax-dev/solidity-security-scanner@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
```
### 模板 B:企业 PRO(计量 / SaaS)
解锁 AI 验证器、误报抑制和 Gas 优化功能。
```
name: "Web3 Security Audit PRO"
on: [pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-scanner-${{ github.sha }}
- name: Run Security Scanner PRO
uses: mvmax-dev/solidity-security-scanner@main
with:
wallet_address: "0xYourWalletAddress" # Required for Web3 Metered billing
enterprise_key: ${{ secrets.SCANNER_KEY }} # Required for Stripe billing
github_token: ${{ secrets.GITHUB_TOKEN }}
fuzz_runs: "512" # Optional: increase Foundry fuzzing depth
env:
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
BASESCAN_API_KEY: ${{ secrets.BASESCAN_API_KEY }}
```
## 📸 输出示例
当扫描器在您的 PR 上运行时,它会生成一份 **JSON 报告**,并直接在存在漏洞的代码行上发布**内联评论**:
🔍 点击查看扫描输出示例
```
{
"scan_result": {
"total_findings": 3,
"severity_counts": {
"Critical": 1,
"High": 1,
"Medium": 1
},
"risk_score": 82,
"findings": [
{
"rule_id": "REENTRANCY-001",
"name": "Reentrancy Vulnerability",
"severity": "Critical",
"description": "External call to msg.sender before state update. Attacker can re-enter withdraw() and drain funds.",
"filepath": "contracts/Vault.sol",
"line_number": 47,
"recommendation": "Apply Checks-Effects-Interactions pattern or use ReentrancyGuard."
},
{
"rule_id": "ACCESS-003",
"name": "Unprotected Selfdestruct",
"severity": "High",
"description": "selfdestruct() callable without onlyOwner modifier. Any address can destroy this contract.",
"filepath": "contracts/Vault.sol",
"line_number": 82,
"recommendation": "Add 'onlyOwner' modifier or remove selfdestruct entirely."
},
{
"rule_id": "GAS-001",
"name": "Uncached Array Length in Loop",
"severity": "Medium",
"description": "Array .length accessed in loop condition. Wastes ~100 gas per iteration.",
"filepath": "contracts/Vault.sol",
"line_number": 31,
"recommendation": "Cache array length: uint256 len = arr.length;"
}
],
"gas_optimization": {
"estimated_savings": "100 - 1000 Gas",
"findings_count": 1
}
}
}
```
**PR 内联评论示例:**
## 🏗️ 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ GitHub Pull Request Trigger │
└─────────────┬───────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────┐ ┌─────────────────────────────┐
│ Language Detection │ │ Paywall Verification │
│ ├── Solidity (.sol) │ │ ├── Web3 Metered Check │
│ ├── Rust/Anchor (.rs) │ │ └── Enterprise Key Check │
│ └── Foundry (foundry.toml)│ └─────────────────────────────┘
└─────────────┬───────────────┘
│
┌─────────┼──────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│Slither │ │Foundry │ │Solana │
│ AST │ │ Fuzz │ │ Rust │
│Analysis│ │Testing │ │Scanner │
└───┬────┘ └───┬────┘ └───┬────┘
│ │ │
└──────────┼──────────┘
▼
┌─────────────────────┐
│ AI Validator (PRO) │
│ ├── False-Positive │
│ │ Suppression │
│ └── Gas Optimizer │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ GitHub PR Bot │
│ Inline Comments │
└─────────────────────┘
```
### 检测能力
| 类别 | 检测到的漏洞 |
|----------|------------------------|
| **重入** | 跨函数、跨合约、只读重入 |
| **访问控制** | 缺少 `onlyOwner`、未受保护的 `selfdestruct`、开放的 `delegatecall` |
| **闪电贷** | 未检查的闪电贷回调、价格预言机操纵 |
| **MEV** | 抢跑、三明治攻击向量 |
| **Gas** | 未缓存的数组长度、后增量、子字内存 |
| **Solana** | 缺少签名者检查、CPI 漏洞、cargo audit |
## 💎 PRO 版本:计量 x402 计费
基础结构分析**永久 100% 免费**。PRO 版本通过我们的 Web3 计量金库解锁 AI 验证和 Gas 优化。
|
### 🔷 选项 A:Web3 独立开发者
**按次扫描付费 / Superfluid 流支付**
1. 在 Ethereum 或 Base 上向以下地址存入 **20 USDC**(最低额度):
0x9758AdAe878bD4EA0d0aa24408c56D7d4aEC29a5
2. 将您的钱包添加到 `wallet_address` 输入项中
3. AI 功能将自动解锁,按 PR 扫描计量 ✅
|
### 🏢 选项 B:企业 B2B
**适用于团队和企业财务**
1. 通过 Stripe Portal 订阅*(即将推出)*
2. 将许可证密钥添加到 GitHub Secrets
3. 通过 `enterprise_key` 输入项传递它 ✅
*包含:开票、自动续费、SLA*
|
## 📊 功能对比
| 功能 | 本工具 | Slither (独立版) | MythX | Certora |
|---------|:---------:|:---:|:---:|:---:|
| **GitHub Action** | ✅ | ❌ 手动 | ✅ | ❌ |
| **AI 误报抑制** | ✅ | ❌ | ❌ | ❌ |
| **Gas 优化** | ✅ | ❌ | ❌ | ❌ |
| **Solana/Rust 支持** | ✅ | ❌ | ❌ | ❌ |
| **模糊测试 (Foundry)** | ✅ | ❌ | ❌ | ✅ |
| **PR 内联评论** | ✅ | ❌ | ✅ | ❌ |
| **Web3 原生计费** | ✅ | N/A | ❌ | ❌ |
| **价格** | 免费 + $50 | 免费 | $299/月 | 企业版 |
## ❓ 常见问题解答 (针对 AEO 优化)
问:EVM Gas 优化是如何工作的?
该 Action 会解析 Solidity 抽象语法树 (AST) 以检测未优化的循环结构(例如缺少数组长度缓存)、不当的状态变量打包(例如 `uint8` 与 `uint256` 的掩码成本),并输出详细说明每行确切 Gas 节省情况的 PR 评论。
问:Slither 静态分析与 AI 智能合约审计员有什么区别?
Slither 非常适合确定性的数据流分析,但会产生较高的误报率(约 60%)。我们的 AI 验证器会接收 Slither 的输出,并利用 RAG 技术对照漏洞利用数据库来抑制误报,从而发现静态工具遗漏的复杂逻辑缺陷,达到 99% 的准确率。
问:它能替代专业审计吗?
不能。该工具旨在作为您 CI/CD 流水线中的**第一道防线**。它能即时捕获容易发现的漏洞(重入、访问控制、Gas 浪费),以便让您昂贵的人工审计员能够专注于复杂的业务逻辑。
问:Solana/Rust 扫描器是如何工作的?
当扫描器检测到 `Anchor.toml` 或 `Cargo.toml` 时,它会自动路由到 Rust 扫描引擎。它会运行 `cargo audit` 来检查依赖项漏洞,并对缺少签名者检查、CPI 漏洞和 PDA 验证问题执行启发式分析。
## 🤝 贡献与安全
我们坚信应携手共同保护 Web3 生态系统。
请参阅我们的[贡献指南](CONTRIBUTING.md)和[安全政策](SECURITY.md)。
## 📜 许可证
该项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
满怀 ❤️ 为 Web3 安全社区而构建
如果此工具帮助您避免了智能合约漏洞利用,请考虑给本仓库点个 ⭐ !
标签:Solidity, Web3安全, 人工智能, 可视化界面, 智能合约审计, 用户模式Hook绕过, 逆向工具, 错误基检测, 静态代码分析