kryptologyst/Malware-Detection-System
GitHub: kryptologyst/Malware-Detection-System
一个研究级的恶意软件检测系统,演示如何通过静态与行为特征结合识别恶意软件。
Stars: 0 | Forks: 0
# 恶意软件检测系统
一个使用静态 PE 分析、API 调用模式和行为特征的研究级恶意软件检测系统。该系统展示了在受控的、可教育的环境中识别恶意软件的各种机器学习技术。
## ⚠️ 重要免责声明
**这是一个研究和教育演示系统。不用于生产安全操作或实际威胁检测。结果可能不准确,不应在没有适当验证和测试的情况下用于真实世界的安全决策。**
## 功能
### 检测能力
- **静态 PE 分析**:从可移植可执行文件(节区、导入表、字符串、熵值)中提取特征
- **API 调用分析**:分析 API 使用模式和 n-gram 序列
- **行为特征**:模拟动态分析特征(网络、文件、注册表操作)
- **多模型支持**:随机森林、梯度提升、逻辑回归、神经网络
- **集成方法**:组合多个模型以提升性能
### 评估指标
- **标准指标**:准确率、精确率、召回率、F1 分数
- **安全指标**:ROC AUC、精确率-召回率 AUC、假阳性率(FPR)
- **操作指标**:K 处的精确率、告警量、告警工作负载估计
- **阈值优化**:自动阈值调整以实现最佳性能
### 可解释性
- **SHAP 值**:使用 Shapley 加性解释(SHAP)进行特征级解释
- **LIME 解释**:局部可解释模型无关解释
- **特征重要性**:模型特定的特征排名与可视化
- **决策解释**:理解为何将特定样本分类为恶意软件
### 隐私与安全
- **数据清洗**:自动脱敏敏感信息
- **PII 保护**:对个人标识符进行哈希和匿名化
- **文件验证**:严格的文件类型和大小验证
- **安全默认值**:保守设置以防止意外暴露
## 快速开始
### 安装
1. **克隆仓库**:
git clone https://github.com/kryptologyst/Malware-Detection-System.git
cd Malware-Detection-System
2. **安装依赖**:
pip install -r requirements.txt
# 或开发模式:
pip install -e ".[dev]"
3. **运行演示**:
streamlit run demo/streamlit_app.py
### 基本用法
```
from src.data.generator import MalwareDataGenerator
from src.models.models import MalwareDetectionModel
from src.eval.evaluator import MalwareDetectionEvaluator
# 生成合成数据集
generator = MalwareDataGenerator(random_seed=42)
data = generator.generate_pe_features(n_samples=1000, malware_ratio=0.3)
# 训练模型
model = MalwareDetectionModel(model_type="random_forest")
model.fit(X_train, y_train)
# 评估
evaluator = MalwareDetectionEvaluator()
metrics = evaluator.evaluate_model(y_test, y_pred, y_proba)
```
## 项目结构
```
malware-detection-system/
├── src/ # Source code
│ ├── data/ # Data generation and management
│ ├── features/ # Feature extraction
│ ├── models/ # Machine learning models
│ ├── eval/ # Evaluation metrics
│ ├── explainability/ # Model explanations
│ └── utils/ # Utility functions
├── configs/ # Configuration files
├── demo/ # Demo applications
├── tests/ # Unit tests
├── assets/ # Generated assets
├── data/ # Data storage
└── logs/ # Log files
```
## 数据集架构
系统生成具有以下特征的合成数据集:
### PE 特征
- `FileSizeKB`:文件大小(KB)
- `Entropy`:文件内容的香农熵
- `NumAPIcalls`:API 调用数量
- `UsesNetwork`:网络使用指示器
- `UsesRegistry`:注册表使用指示器
- `FileOperations`:文件操作数量
- `ProcessOperations`:进程操作数量
- `SuspiciousImports`:可疑导入计数
- `PackedSections`:加壳节区指示器
- `DebugRemoved`:调试信息移除指示器
### API N-gram 特征
- `api_2gram_0` 到 `api_2gram_9`:2-gram API 调用模式
- `api_3gram_0` 到 `api_3gram_9`:3-gram API 调用模式
- `api_4gram_0` 到 `api_4gram_9`:4-gram API 调用模式
## 模型性能
在合成数据上的典型性能指标:
| 模型 | 准确率 | 精确率 | 召回率 | F1 分数 | ROC AUC |
|------|--------|--------|--------|---------|---------|
| 随机森林 | 0.85-0.92 | 0.82-0.90 | 0.80-0.88 | 0.81-0.89 | 0.90-0.95 |
| 神经网络 | 0.83-0.90 | 0.80-0.88 | 0.78-0.86 | 0.79-0.87 | 0.88-0.93 |
| 集成模型 | 0.86-0.93 | 0.84-0.91 | 0.82-0.89 | 0.83-0.90 | 0.91-0.96 |
## 配置
系统使用 YAML 配置文件。关键设置:
```
# 模型配置
model:
type: "random_forest" # or "neural_network", "gradient_boosting"
random_forest:
n_estimators: 100
max_depth: 10
# 评估设置
evaluation:
metrics: ["auc", "aucpr", "precision", "recall", "f1"]
k_values: [10, 50, 100]
# 安全设置
security:
sanitize_outputs: true
max_file_size_mb: 100
allowed_file_types: [".exe", ".dll", ".bin"]
```
## 演示应用
Streamlit 演示提供交互式界面,用于:
1. **数据生成**:创建合成恶意软件数据集
2. **模型训练**:使用各种算法训练检测模型
3. **检测**:在新样本上测试模型
4. **分析**:查看性能指标和可视化
5. **解释**:理解模型决策
### 运行演示
```
streamlit run demo/streamlit_app.py
```
访问演示地址:`http://localhost:8501`
## 开发
### 代码质量
项目采用现代 Python 开发实践:
- **类型提示**:完整的类型注解
- **文档**:Google 风格文档字符串
- **格式化**:Black 代码格式化
- **Linting**:Ruff 代码质量检查
- **测试**:Pytest 单元测试
### 运行测试
```
pytest tests/
```
### 代码格式化
```
black src/ tests/
ruff check src/ tests/
```
## 限制
- **合成数据**:使用生成的数据,而非真实恶意软件样本
- **有限特征**:与商业工具相比,特征提取较为简化
- **无实时检测**:不设计用于实时检测
- **仅研究用途**:未经验证用于生产环境
- **无更新**:无签名或威胁情报更新
## 许可证
MIT 许可证 - 详情见 LICENSE 文件。
## 引用
若在研究中使用本系统,请引用:
```
@software{malware_detection_system,
title={Malware Detection System: A Research-Grade Implementation},
author={Kryptologyst},
year={2026},
url={https://github.com/kryptologyst/Malware-Detection-System}
}
```
## 支持
如有疑问或问题:
- 在 GitHub 上创建问题
- 查看文档
- 查阅演示应用
- 参考恶意软件检测领域的研究文献
**注意**:这是教育软件。对实际威胁检测和事件响应,请始终使用适当的安全工具和最佳实践。
标签:Apex, API调用模式, F1分数, Kubernetes, LIME, PE文件分析, PII保护, ROC AUC, SHAP, 云安全监控, 反取证, 可解释性, 安全评估, 教育演示, 数据脱敏, 文件验证, 机器学习, 梯度提升, 特征重要性, 研究级系统, 神经网络, 精准检测, 精度前K, 精确率召回率, 行为特征, 误报率, 逆向工具, 逻辑回归, 阈值优化, 随机森林, 集成学习, 静态分析