federicofantini/MalCluster
GitHub: federicofantini/MalCluster
这是一个结合静态与动态分析,对恶意软件样本进行聚类并提取核心共享特征产物的分析管道。
Stars: 25 | Forks: 2
# MalCluster
**MalCluster** 是一个使用 **Malcat** 和 **CAPEv2** 从恶意软件样本中提取静态和动态分析产物的 pipeline,并提供基于 **Flask 的 Web GUI** 以供交互使用。
## 安装
```
git clone https://github.com/federicofantini/malcluster.git
cd malcluster
python3 -m venv venv
source venv/bin/activate
python3 -m pip install -r requirements.txt
python3 app.py
```
## 概述
该工具通过结合静态分析、可选的动态分析以及每个聚类内部的渐进式比较,对恶意软件样本进行聚类并提取**核心共享产物**。
其目标是**理解**恶意软件家族:样本间真正的共同点是什么,以及哪些是样本特有的内容。
## Pipeline 工作原理:
### 聚类
样本使用**模糊哈希相似度**进行分组,可选择以下后端:
- **ssdeep**
- **TLSH**
- **sdhash**
相似度后端和阈值可在 GUI 中配置。
此外,聚类完全基于相似度。
### 静态分析
静态分析使用 **Malcat** 执行,并生成:
- **字符串** 和 **频率**
- **逐函数反汇编**
反汇编通过将以下内容抽象为占位符来进行归一化:
- 寄存器
- 立即数
- 内存引用
可以启用可选的**完全归一化**模式,以牺牲精度换取鲁棒性。
### 动态分析 (CAPEv2 - 可选)
如果启用,将从 **CAPEv2** 检索动态分析数据(SHA256 查找),而无需执行任何操作。
当可用时,将收集以下产物:
- **签名**
- **行为摘要**
- **API 调用**
- **释放的文件**
动态分析是完全可选的,可以在 GUI 中启用或禁用。
## 渐进式比较 (MalCluster 的核心)
渐进式比较在每个**聚类内部**进行。
结果通过两两合并来提取聚类中所有样本的**共享产物**。
该逻辑较为保守,因此只有始终能通过合并保留的产物才会被保留。
### 字符串
- 样本间的集合交集
- 在聚类级别维护一个**文档频率计数器**
### 函数
- 使用**归一化汇编**上的**最长公共子序列 (LCS)** 进行比较
- 如果 `LCS ≥ threshold`,则保留该函数
- 当归一化代码完全匹配时,函数被标记为**相同**
### 行为摘要
- 纯**交集**
- 只有所有样本共有的行为才会被保留
### 释放的文件
- 工作中...
### 签名 & API 调用
- 使用集合上的 **Jaccard 重叠度** 进行合并
- 使用计数器上的 **Hellinger 距离** 来比较分布
- 这避免了合并不相关的行为,同时仍能容忍噪声
## 图形可视化
左侧面板允许在不同数据集之间切换。
某些数据集还支持替代视图(例如,名称与类别)。
图形始终以聚类为中心:聚类是锚节点,产物围绕它们排列。
## 配置参数 (GUI)
Pipeline 完全通过 Web 界面进行配置。
### 路径
- **Malcat directory**
Malcat 二进制目录的路径
- **Output directory**
存储分析结果和聚类数据的位置
### 静态比较
- **Longest Common Substring threshold**
保留函数匹配所需的最小 LCS 长度(以归一化 ASM 行数为单位)
- **Fully normalize asm**
启用激进的汇编归一化
### 聚类
- **Similarity function**
`ssdeep`、`tlsh` 或 `sdhash`
- **Similarity threshold**
应用于所选相似度后端的阈值
(注:TLSH 使用距离,数值越低表示越相似)
### 动态分析
- **Enable dynamic analysis**
如果启用,将通过 SHA256 查询 CAPEv2
- **CAPEv2 base URL**
- **CAPEv2 API token**
标签:CAPEv2, DAST, Flask, Malcat, sdhash, ssdeep, TLSH, Wayback Machine, 云安全监控, 云资产清单, 反汇编, 威胁情报, 安全专业人员, 工件提取, 开发者工具, 开源安全, 恶意软件分析, 样本聚类, 模糊哈希, 网络安全, 自动化分析, 跨站脚本, 逆向工具, 逆向工程, 隐私保护, 静态分析