nganthao240101/Hybrid-Rule-ML-System-for-Multi-Class-SQL-Injection-Detection

GitHub: nganthao240101/Hybrid-Rule-ML-System-for-Multi-Class-SQL-Injection-Detection

基于一致性置信度路由的混合 SQL 注入五分类检测系统,结合可解释规则与 Random Forest 以兼顾准确率和鲁棒性。

Stars: 0 | Forks: 0

# 混合 v4:基于一致性置信度路由的 SQL 注入检测 一个基于置信度的 5 类 SQL 注入检测混合系统,结合了**可解释规则检测器**(RobustRuleDetector v4)和在 TF-IDF 字符 n-grams 上训练的 **Random Forest**。 ## 快速开始 ### 1. 设置(一次性) **Windows(CMD 或 PowerShell):** ``` setup.bat ``` **Linux/Mac/Git Bash:** ``` bash setup.sh ``` 这将创建一个虚拟环境 `bert_env/` 并从 `requirements.txt` 安装依赖项。 ### 2. 激活环境 **Windows 上的 Git Bash:** ``` source bert_env/Scripts/activate ``` **Linux/Mac:** ``` source bert_env/bin/activate ``` ### 3. 运行完整 pipeline(28 个单元,约 7 分钟) ``` python CODE/pipeline_notebook.py ``` ### 4. 运行特定单元 ``` python CODE/pipeline_notebook.py 4 # EDA figures python CODE/pipeline_notebook.py 12 # Hybrid v4 inference python CODE/pipeline_notebook.py 24 # Final paper figures python CODE/pipeline_notebook.py 27 # Baseline comparison table ``` ## 功能说明 该 pipeline 执行 28 个连续单元: | 单元 | 用途 | |---|---| | 01-05 | 设置,加载 SQLiV6,EDA,可视化,训练/测试集划分 | | 06-09 | 基准测试:规则,Logistic Regression,SVM,Random Forest | | 10-12 | 比较基准,规则 v4 测试,混合 v4 推理 | | 13-17 | 交叉验证,对抗性测试,外部 OOD,多 DB,联合训练 | | 18-20 | 对比图表,权衡分析,摘要表 | | 21-25 | 保存产物,推理演示,v3v4 对比,结果图表,保存报告 | | 26-28 | 混淆矩阵,基准表,整理图表 | ## 结果(5 次评估) | 评估 | 规则 | RF | 混合 v4 | |---|---|---|---| | 交叉验证(5 折,26K) | 91.58% | 99.82% | 99.81% | | 对抗性(60 条 WAF-bypass 查询) | 90.00% | 73.33% | 76.67% | | 外部 OOD(4 个来源) | 92.57% | 77.73% | 81.88% | | 多 DB(MySQL/PG/MSSQL/Oracle) | 88.68% | 62.26% | 64.15% | | 联合训练(37K) | 92.51% | 99.81% | 99.79% | **主要发现:** - 对于此任务,Random Forest 的表现优于 BERT(99.77% 对 95.5%) - 在 OOD 场景中,混合 v4 比纯 RF 提高了 1.9-4.1% - 混合 v4 在保持可解释性的同时维持了 99.75% 的准确率 有关完整分析,请参阅 `REPORT_FINAL.md`。 ## 项目结构 ``` . ├── README.md ├── requirements.txt ├── setup.sh / setup.bat ├── REPORT_FINAL.md # Final paper report ├── PIPELINE.md # Detailed pipeline doc │ ├── DATASETS/ │ ├── SQLiV6.csv # Main dataset (26K, 5 classes) │ ├── SQLiV7.csv # OOD test (8K) │ ├── SQLiV8.csv # OOD test (12.5K) │ ├── SQLiGEN_full.csv # Generator output │ └── external/ │ ├── public_bench_test.csv # OWASP/sqlmap curated (67q) │ └── external_test.csv # Sanity check (32q) │ └── CODE/ ├── 01-28 cells (or pipeline_notebook.py) ├── detector.py # Rule detector ├── detector_v3_softconf.py # Soft confidence v3 ├── detector_v4_robust.py # RobustRuleDetector v4 (OOB/MSSQL/Oracle) ├── hybrid_v4_smart.py # Hybrid v4 main pipeline ├── cross_validation.py ├── adversarial_robustness.py ├── external_datasets_eval.py ├── multi_db_syntax.py ├── train_combined.py ├── visualize_data.py # EDA figures ├── visualize_results.py # Result figures ├── visualize_compare.py # Comparison figures ├── visualize_confusion.py # Confusion matrices ├── baseline_table.py # Baseline comparison ├── compare_with_baselines.py # vs LR/SVM/RF ├── full_benchmark.py # 4 baseline benchmark ├── baselines.py # LR/SVM/RF code │ └── figures/ # All generated PNGs (25 files) ``` ## 数据集 - **SQLiV6**(主要):26,335 条 SQL 查询,5 个类别(正常、恒真、联合、布尔盲注、基于时间) - **SQLiV7/V8**:相同的生成器,不同的参数(分布外测试) - **public_bench_test**:从 OWASP WebGoat、sqlmap、PortSwigger cheat sheets 精选而来 - **SQLiGEN_full**:我们的 `unified_generator.py` 工具的输出 ## 硬件 - **仅 CPU**(不需要 GPU) - 在 Windows 11,Python 3.10 上测试 - 内存:最低 4GB,推荐 8GB - 磁盘:1GB 用于存放代码 + 数据 + 图表 ## 许可证 本项目仅供学术/研究用途。数据集 SQLiV6 来源于公开资源(Kaggle、OWASP、sqlmap)。
标签:Apex, CISA项目, SQL注入检测, TF-IDF, 云计算, 机器学习, 规则引擎, 逆向工具, 随机森林