keshi-17/ThreatScope-Malware-Threat-Intelligence-Platform

GitHub: keshi-17/ThreatScope-Malware-Threat-Intelligence-Platform

基于 CAPEv2 沙盒动态行为分析与 LightGBM、BiLSTM 双模型评分的恶意软件威胁情报平台,可将样本行为精准映射至 MITRE ATT&CK 框架。

Stars: 0 | Forks: 0

# ThreatScope:恶意软件威胁情报平台 毕业设计软件开发项目。构建了一个恶意软件检测系统,它在沙盒虚拟机(基于 VMware 的 CAPEv2)中实际执行可疑文件,记录它们进行的每一个 API 调用,使用训练好的 LightGBM 和 BiLSTM 模型对行为进行评分,并将结果映射到 MITRE ATT&CK 技术。整个过程通过 Web 控制面板运行,用户只需上传文件即可获得详细的威胁报告。 ## 背景 大多数防病毒工具是将文件与特征码数据库进行匹配。这对于已经被编录的恶意软件很有效,但一旦出现新的变种或现有样本被稍微修改,这种方法就会失效。本项目采用了一种不同的方法:它不关注文件包含什么内容,而是关注文件运行时实际执行了什么操作。 核心理念是行为分析。用户将文件投入系统后,该文件会在沙盒化的 Windows 虚拟机中执行,其执行的每一个动作都会被记录下来,包括 API 调用、网络连接、文件操作和注册表更改。然后,系统使用训练好的模型对这些行为进行评分,并将可疑活动映射到 MITRE ATT&CK 技术,这样不仅能判断出某物是否为恶意软件,还能了解它代表的是何种威胁。 ## 工作原理 ![系统架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b622c1a2db193257.png) 处理流程如下: 首先,VMware 快照会被恢复到干净的基线状态,以便每个样本都在完全相同且未被污染的环境中运行。然后,文件被提交给 CAPEv2,后者会在虚拟机中运行该文件并记录所有操作。这个过程大约需要一到五分钟,具体取决于样本的活跃程度。 一旦 CAPEv2 完成,报告将随所有的行为数据返回。系统提取 API 调用序列,将其输入 BODMAS LightGBM 模型和 MALAPI BiLSTM 模型,并将这两个置信度得分融合。此外,原始的 CAPEv2 malscore 也会被纳入计算,因为它运行着独立于我们模型之外的 YARA 规则和行为特征签名。 评分之后,API 调用将被映射到 MITRE ATT&CK 技术。例如,如果样本调用了 CreateRemoteThread,则映射为 T1055 进程注入。如果它写入 Run 键,那就是 T1547 启动自动运行。这些技术检测结果也会作为增益反馈到置信度得分中,因为某些技术具有明显的恶意特征,即使沙盒得分较低,也应提升其威胁等级。 最终结果将发送到 ThreatScope 控制面板。判定结果和置信度得分显示在顶部,并配有一个威胁评分仪表盘,结果分为五个标签页展示:MITRE ATT&CK(按战术分类的技术细分)、API 流程(观察到的 API 调用完整列表)、网络(TCP 连接、目标 IP)和分析日志(原始 CAPEv2 执行日志)。 ## 项目结构 ``` ThreatScope/ | |-- main.py # Start here |-- run_pipeline.py # Runs training and evaluation pipeline |-- requirements.txt | |-- src/ | |-- malware_detection/ | |-- config.py # All paths and settings via env variables | | | |-- api/ | | |-- behavioral_scanner.py # Core: submits to CAPEv2, scores, returns verdict | | |-- mitre_mapper.py # Maps API calls to ATT&CK techniques | | |-- feature_bridge.py # Parses CAPEv2 report into model features | | |-- vmware_manager.py # Reverts VMware snapshot before each scan | | | |-- dashboard/ | | |-- app.py # FastAPI routes | | |-- templates/index.html # Single page dashboard UI | | |-- static/style.css | | |-- static/app.js | | | |-- models/ | | |-- lightgbm_model.py # BODMAS LightGBM (behavioral features) | | |-- sequence_model.py # MALAPI BiLSTM (API call sequences) | | |-- xgboost_model.py | | |-- deep_model.py | | |-- ensemble.py | | | |-- data/ | | |-- bodmas_loader.py | | |-- malapi_loader.py | | |-- ember_loader.py | | |-- andmal_loader.py | | |-- cicflow_loader.py | | | |-- preprocessing/ | | |-- feature_engineering.py | | |-- temporal_split.py | | | |-- training/train.py | |-- evaluation/ | | |-- evaluate.py | | |-- temporal_analysis.py | | |-- concept_drift.py | | | |-- explainability/shap_explainer.py | |-- results/ | |-- models/ | |-- plots/ | |-- reports/ | |-- scripts/ | |-- auto_processor.sh # Installs custom CAPEv2 processor on the VM | |-- fix_cape_processor.sh # Repairs CAPEv2 processor when it breaks | |-- docs/ |-- architecture_flowchart.png ``` ## 数据集 | 数据集 | 用途 | |---|---| | BODMAS | 基于行为特征向量训练 LightGBM 模型(5.7万样本,2019年8月至2020年9月) | | Mal-API-2019 | 基于 8 个恶意软件家族的 API 调用序列训练 BiLSTM 模型 | | EMBER2024 | 用于扩大覆盖范围的附加训练数据 | 这些数据集不包含在此代码库中。请单独下载它们,并更新 config.py 中的路径或设置环境变量。 ## 技术栈 | 层级 | 技术组件 | |---|---| | 沙盒 | VMware Workstation 上的 CAPEv2 | | ML 模型 | LightGBM(BODMAS 特征)+ 双向 LSTM(API 序列) | | 评分融合 | CAPEv2 malscore + 模型置信度 + MITRE 技术增益 | | 威胁情报 | MITRE ATT&CK 框架 | | 后端 | FastAPI + Uvicorn | | 前端 | HTML、CSS、原生 JavaScript | | 隧道 | Cloudflare Tunnel(用于远程访问) | ## 设置 ### 前置条件 - Python 3.10 或更新版本 - Windows 宿主机 - 已安装 VMware Workstation,且 CAPEv2 客户虚拟机已设置并运行 ### 安装 ``` git clone https://github.com/YOUR_USERNAME/ThreatScope.git cd ThreatScope python -m venv venv .\venv\Scripts\activate pip install -r requirements.txt ``` ### 配置路径 设置环境变量或直接编辑 config.py: ``` $env:THREATSCOPE_ROOT = "E:\SDP" $env:THREATSCOPE_DATA = "G:\SDP\datasets" $env:CUCKOO_API_URL = "http://192.168.64.130:8090" ``` ### 启动控制面板 ``` python main.py ``` 访问地址为 http://127.0.0.1:8000 ### 运行训练流水线 ``` python run_pipeline.py # full run python run_pipeline.py --quick # small subset for testing python run_pipeline.py --dashboard-only # skip training, just open dashboard ``` ### CAPEv2 处理器 在 CAPEv2 虚拟机上,运行自定义处理器设置: ``` bash scripts/auto_processor.sh ``` 这将安装相应的处理器,用于格式化 CAPEv2 报告,以便我们的特征桥接程序能正确解析它们。 ## API | 方法 | 路径 | 描述 | |---|---|---| | GET | / | 控制面板 | | POST | /scan/behavioral | 提交文件进行沙盒扫描 | | GET | /scan/status/{job_id} | 轮询扫描进度 | | GET | /scan/cuckoo-status | 检查 CAPEv2 是否可达 | | GET | /api/metrics | 模型评估指标 | | GET | /api/shap | SHAP 特征重要性 | | GET | /api/drift | 概念漂移报告 | | GET | /api/mitre | 完整的 MITRE ATT&CK 技术库 | | GET | /docs | Swagger 文档 | ## 模型设计 训练采用了时间序列划分。来自早期时间窗口的数据用于训练,而较晚时间窗口的数据则留作测试。这一点非常重要,因为随机划分会导致未来样本泄露到训练集中,从而不切实际地夸大准确率数值。 AUT 指标(时间曲线下面积)用于跟踪模型在多个时间段内的准确率维持情况。概念漂移检测则会在模型性能开始下降时发出警告,以便用户知道何时需要重新训练。 ## 局限性 从零开始在 VMware 中配置运行 CAPEv2 并非易事。虚拟机需要限制网络访问,以防止恶意软件实际连接到互联网。BiLSTM 只能看到 API 调用的名称,而看不到参数,这会丢失一些细节信息。此外,如果某些恶意软件检测到自身运行在虚拟机中并改变其行为,其得分将会低于实际情况。 ## 许可证 学术项目,可自由使用。 ## 致谢 - Kevin O'Reilly 开发的 [CAPEv2](https://github.com/kevoreilly/CAPEv2) - [BODMAS 数据集](https://whyisyoung.github.io/BODMAS/) - [Mal-API-2019](https://github.com/ocatak/malware_api_class) - [MITRE ATT&CK](https://attack.mitre.org/) - Scott Lundberg 开发的 [SHAP](https://github.com/slundberg/shap)
标签:Apex, API调用分析, ATT&CK映射, Beacon Object File, BiLSTM, CAPEv2, DAST, DNS 反向解析, IP 地址批量处理, LightGBM, Python, SDP项目, VMware, Web仪表盘, Windows虚拟机, 可视化报告, 多模态安全, 威胁情报, 安全开发项目, 序列模型, 开发者工具, 恶意样本, 恶意软件分析, 数据包嗅探, 数据可视化, 文件上传分析, 无后门, 无线安全, 机器学习, 毕设项目, 沙箱分析, 深度学习, 特征提取, 网络信息收集, 网络安全, 网络安全审计, 自动化分析平台, 行为评分, 规避传统反病毒, 逆向工具, 速率限制处理, 隐私保护