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, 精确率召回率, 行为特征, 误报率, 逆向工具, 逻辑回归, 阈值优化, 随机森林, 集成学习, 静态分析