Hungr-yy/SMalRe-Test
GitHub: Hungr-yy/SMalRe-Test
一套基于教师-学生知识蒸馏的自动化流程,用于微调轻量级语言模型以执行恶意软件逆向分析任务。
Stars: 0 | Forks: 0
# SMalRe — 小型恶意软件逆向工程
**通过教师-学生知识蒸馏微调小型语言模型 以执行恶意软件分析。**
## 概述
SMalRe 实现了一个自动化的、迭代式的**教师-学生知识蒸馏**流程,用于训练轻量级 SLM 来逆向分析恶意软件。一个强大的“教师”LLM(例如 GPT-4o、Gemini 2.5 Pro 或 Qwen-Max)负责生成试题、评估学生的回答,并生成量身定制的合成课程,用于微调一个紧凑的“学生”SLM(例如 Llama 3 8B、Phi-3、Gemma 7B 或 DeepSeek-R1-Distill-Qwen-7B)。
```
Teacher LLM (GPT-4o / Gemini 2.5 Pro / Qwen-Max)
│
▼ 1. Generate exam from malware detonation report
│
Student SLM (Llama 3 8B / Phi-3 / Gemma 7B)
│
▼ 2. Student attempts exam
│
Teacher LLM
│
▼ 3. Evaluate answers, identify weaknesses
│
Teacher LLM
│
▼ 4. Generate targeted curriculum (10k–100k examples)
│
Student SLM fine-tuning (LoRA / QLoRA via PEFT)
│
▼ 5. Repeat until benchmark target is reached
```
## 仓库结构
```
SMalRe/
├── main.py # Iterative distillation orchestrator
├── teacher_engine.py # Teacher LLM: exam, evaluation, curriculum
├── student_trainer.py # Student SLM: LoRA/QLoRA fine-tuning
├── report_parser.py # Malware detonation report ingestion
├── data_filter.py # Context-window-aware report filtering
├── eval_suite.py # Accuracy + Jaccard benchmarking
├── requirements.txt
├── configs/
│ └── model_config.yaml # Teacher/student model parameters
├── prompt_templates/
│ ├── malware_analysis_task.json # Structured teacher prompts
│ └── reverse_engineering_curriculum.txt
└── benchmark_data/
└── README.md # CyberSOCEval-compatible dataset guide
```
## 支持的模型家族
| 角色 | 提供商 | 推荐模型 |
|---------|-----------|------------------------------------------|
| Teacher | OpenAI | GPT-4o, gpt-o3 |
| Teacher | Google | Gemini 2.5 Pro, Gemini 1.5 Pro |
| Teacher | Alibaba | Qwen-Max |
| Student | Meta | Llama 3 8B |
| Student | Microsoft | Phi-3 |
| Student | Google | Gemma 7B |
| Student | DeepSeek | DeepSeek-R1-Distill-Qwen-7B |
## 快速开始
### 1. 安装依赖
```
pip install -r requirements.txt
# PDF/report 处理系统依赖
sudo apt-get install poppler-utils
```
### 2. 配置模型
编辑 `configs/model_config.yaml` 以设置您的教师和学生模型、API 密钥以及训练超参数。
### 3. 运行蒸馏循环
```
python main.py --config configs/model_config.yaml
```
编排器 将:
1. 根据恶意软件引爆报告生成试题
2. 让作为学生的 SLM 尝试回答试题
3. 评估答案并识别薄弱环节
4. 生成针对性的合成课程
5. 使用 LoRA/QLoRA 微调学生模型
6. 重复此过程,直到达到基准测试的目标准确率
### 4. 对您的 SLM 进行基准测试
```
python eval_suite.py \
--model-path ./outputs/student_adapter \
--dataset benchmark_data/malware_analysis_questions.json \
--output benchmark_data/results.json
```
## 基准测试 (CyberSOCEval / 恶意软件分析)
SMalRe 与 **CyberSOCEval** 恶意软件分析基准测试对齐。`eval_suite.py` 模块报告:
- **Accuracy (准确率)** — 多项选择题的完全匹配率
- **Average Jaccard Score (平均 Jaccard 分数)** — 用于评估重叠答案集的部分得分指标
涵盖的恶意软件家族:EDR/AV Killers、勒索软件、RATs (Remcos)、信息窃取器、UM Unhooking。
若要直接针对 CyberSOCEval 套件运行:
```
python3 -m CybersecurityBenchmarks.benchmark.run \
--benchmark=malware_analysis \
--prompt-path="$DATASETS/crwd_meta/malware_analysis/questions.json" \
--response-path="$DATASETS/crwd_meta/malware_analysis/responses.json" \
--judge-response-path="$DATASETS/crwd_meta/malware_analysis/judge_responses.json" \
--stat-path="$DATASETS/crwd_meta/malware_analysis/stats.json" \
--llm-under-test=:::: \
--truncate-input
```
## 上下文窗口管理
Hybrid Analysis 沙箱报告通常超过 128k token。`data_filter.py` 实现了预过滤功能,仅保留关键字段(`total_processes`、`mitre_attcks`、`signatures`),且对基准测试性能的影响微乎其微。
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
标签:DAST, DLL 劫持, Gemini, GPT-4o, Llama 3, LoRA, PEFT, Petitpotam, Phi-3, QLoRA, 云资产清单, 人工智能安全, 代码分析, 凭证管理, 合成数据, 合规性, 大语言模型, 威胁情报, 安全大模型, 小语言模型, 开发者工具, 微调, 恶意软件分析, 教师-学生模型, 深度学习, 知识蒸馏, 网络安全, 自动化工控流, 逆向工具, 逆向工程, 隐私保护