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, 云安全监控, 智能合约审计, 机器学习, 足迹探测, 逆向工具, 静态分析