Afraz1a/solana-smart-contract-auditor
GitHub: Afraz1a/solana-smart-contract-auditor
一个基于AI的Solana智能合约漏洞扫描器,使用XGBoost和CodeBERT检测漏洞,并将审计记录存储在区块链上。
Stars: 0 | Forks: 0
# Solana 智能合约审计器
### 由人工智能驱动的漏洞扫描器与链上审计记录
一个开源安全工具,能够使用经过训练的机器学习集成模型(XGBoost + CodeBERT)自动扫描 Solana 智能合约的漏洞,将永久审计记录存储在 Solana 区块链上,并为开发者提供完整的网络仪表板。
## 现场演示
在本地启动应用,然后打开 http://localhost:5000
```
git clone https://github.com/yourusername/solana-auditor
cd solana-auditor
pip install -r requirements.txt
python app.py
```
## 功能
| 功能 | 描述 |
|---------|-------------|
| 人工智能扫描器 | XGBoost + CodeBERT 集成模型可检测 9 种漏洞类型 |
| 报告编辑级别 | 公开 / 内部 / 完整报告隐私控制 |
| 实时排行榜 | 按风险评分对已扫描合约进行实时排名 |
| 链上记录 | 永久审计记录存储在 Solana Devnet 上 |
| Squads 集成 | 针对多重签名提案的升级前漏洞防护 |
| 反馈系统 | 社区误报标记功能,数据保存在本地磁盘 |
| VSCode 扩展 | 在编辑器中保存文件时实时进行代码检查 |
## 检测到的漏洞
| 编号 | 名称 | 严重程度 |
|----|------|----------|
| 1 | 缺少签名者检查 | 关键 |
| 2 | 缺少所有者检查 | 关键 |
| 3 | 整数溢出 | 高 |
| 4 | 任意 CPI | 关键 |
| 5 | 重复的可变账户 | 高 |
| 6 | 不当的账户关闭 | 高 |
| 7 | 账户数据匹配 | 中 |
| 8 | 类型伪装 | 中 |
| 9 | Bump Seed 规范化 | 中 |
## 项目结构
```
solana-auditor/
├── app.py # Flask web app (frontend + API)
├── requirements.txt
│
├── ml/
│ ├── features.py # Feature extractor (20 signals per function)
│ ├── train_xgb.py # XGBoost training pipeline
│ ├── train_codebert.py # CodeBERT fine-tuning (GPU accelerated)
│ ├── scanner.py # Ensemble inference (XGBoost + CodeBERT)
│ ├── onchain.py # Solana blockchain record writer
│ └── models/ # Saved trained models
│ ├── xgb_binary.pkl
│ ├── xgb_type.pkl
│ ├── label_encoder.pkl
│ └── codebert/
│
└── vscode-extension/ # VSCode linting extension
├── package.json
├── .vscode/launch.json
└── src/extension.js
```
## 设置
### 要求
- Python 3.10+
- Rust + Solana CLI(用于链上功能)
- 建议使用 NVIDIA GPU 进行 CodeBERT 训练
### 安装
```
pip install -r requirements.txt
```
## 训练模型
训练 XGBoost(快速,大约需要 2 分钟):
```
python ml/train_xgb.py
```
微调 CodeBERT(建议使用 GPU,大约需要 10 分钟):
```
python ml/train_codebert.py
```
测试扫描器:
```
python ml/scanner.py
```
## 运行应用
```
python app.py
```
在浏览器中打开 http://localhost:5000。
## 区块链设置
要启用链上审计记录,您需要一个拥有 Devnet SOL 的 Solana 钱包。
```
solana config set --url devnet
solana-keygen new --outfile ~/.config/solana/id.json
```
在 https://faucet.solana.com 获取免费的测试 SOL。
然后测试链上集成:
```
python ml/onchain.py
```
每次扫描都会在 Solana Devnet 上存储一笔真实的交易,可在 https://explorer.solana.com 查看。
## VSCode 扩展
```
cd vscode-extension
vsce package --no-dependencies
code --install-extension solana-auditor-1.0.0.vsix
```
该扩展会在保存时自动扫描 .rs 文件并显示内联警告。
## 模型性能
| 模型 | 任务 | 准确率 | F1 分数 |
|-------|------|----------|----------|
| XGBoost | 安全 vs 易受攻击 | 61% | 0.464 |
| XGBoost | 漏洞类型分类 | 48% | 0.412 |
| CodeBERT | 安全 vs 易受攻击 | 75% | 0.627 |
## 路线图
- 通过 Metaplex 颁发 NFT 审计证书
- 用于误报处理的链上 DAO 投票
- 自动化重训练流水线
- GitHub Actions 集成
- 主网部署
- 多链支持(NEAR, CosmWasm)
## 参考资料
- sealevel-attacks - github.com/coral-xyz/sealevel-attacks
- CodeBERT - Microsoft Research, arxiv.org/abs/2002.08155
- Anchor Framework - anchor-lang.com
- OtterSec 审计报告 - osec.io/reports
## 许可证
MIT 许可证
标签:AI漏洞扫描, CodeBERT模型, GraphQL安全矩阵, Solana开发, Squads多签防护, VSCode扩展, Web仪表板, XGBoost算法, 区块链安全, 区块链开发工具, 可视化界面, 合约漏洞检测, 安全扫描器, 实时风险评分, 审计记录上链, 开源安全工具, 数据可视化, 智能合约审计, 机器学习集成, 社区反馈系统, 逆向工具, 逆向工程平台, 隐私控制