pranavingle/Smart-Contract-Risk-Analyzer-with-ML-Assisted-Risk-Scoring
GitHub: pranavingle/Smart-Contract-Risk-Analyzer-with-ML-Assisted-Risk-Scoring
结合静态分析与机器学习的 Solidity 智能合约安全风险分析器,用于自动化检测合约漏洞并生成可下载的审计报告。
Stars: 0 | Forks: 0
# 具备 ML 辅助风险评分的智能合约风险分析器
使用 AST 特征提取、Slither、ML 预测和风险评分引擎分析 Solidity 智能合约的漏洞。提供包含上传、分析和报告下载端点的 FastAPI API。
## 功能
- 用于上传和分析的 FastAPI API
- AST 特征提取 + 启发式检测
- Slither 静态分析(可选但推荐)
- ML 预测和风险评分
- PDF 审计报告生成
- 结构化日志
## 项目布局
- 入口文件:[main.py](main.py)
- 配置:[config.py](config.py)
- API 路由:[routes/upload.py](routes/upload.py)
- ML 脚本:[scripts/train_model.py](scripts/train_model.py)
- 前端应用:[frontend](frontend)
- 数据集:[datasets/](datasets/)
- 模型:[models/](models/)
- 报告:[reports/](reports/)
- 日志:[logs/](logs/)
- 上传的合约:[uploads/](uploads/)
## 前置条件
- 推荐 Python 3.10+
- Windows PowerShell 或命令提示符
- 可选:Slither (`pip install slither-analyzer`) 用于静态分析
## 设置
在项目根目录下:
```
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
```
## 运行 API
```
uvicorn main:app --reload
```
API 文档:
- http://127.0.0.1:8000/docs
健康检查:
- http://127.0.0.1:8000/health
## 前端设置
在项目根目录下:
```
cd frontend
npm install
```
创建环境文件:
```
copy .env.example .env
```
## 运行前端
```
npm run dev
```
前端开发服务器:
- http://127.0.0.1:5173
## API 端点
- `POST /upload` - 上传 `.sol` 文件并运行完整的分析 pipeline
- `GET /download/{filename}` - 下载生成的 PDF 报告
- `GET /health` - 健康检查和模型状态
- `GET /model-info` - ML 模型信息(调试用)
- `GET /` - 基础服务信息
## 生成数据集(可选)
如果您想训练或刷新 ML 模型,请先生成数据集:
```
python -m scripts.generate_features_dataset
python -m scripts.generate_vulnerability_dataset
```
输出:
- [datasets/features_dataset.csv](datasets/features_dataset.csv)
- [datasets/vulnerability_dataset.csv](datasets/vulnerability_dataset.csv)
## 训练 ML 模型(可选)
```
python -m scripts.train_model
```
输出:
- [models/vulnerability_model.pkl](models/vulnerability_model.pkl)
- [models/label_encoder.pkl](models/label_encoder.pkl)
- [models/feature_columns.pkl](models/feature_columns.pkl)
## 配置
主要设置位于 [config.py](config.py) 中:
- `UPLOAD_DIR`, `REPORT_DIR`, `LOG_DIR`
- `SLITHER_ENABLED`
- `ML_ENABLED`, `ML_FALLBACK_ENABLED`
- `MAX_FILE_SIZE_MB`
## 注意事项
- 如果未安装 Slither,API 将继续运行,但会跳过静态分析。
- 上传的文件和生成的报告会持久化保存在 [uploads/](uploads/) 和 [reports/](reports/) 中。
标签:Apex, AV绕过, FastAPI, Solidity, 云安全监控, 智能合约审计, 机器学习, 足迹探测, 逆向工具, 静态分析