jaydeepgandharva/malware-analysis-research
GitHub: jaydeepgandharva/malware-analysis-research
一份完整的恶意软件分析研究项目,提供从静态到动态的闭环方法论与可落地的检测规则。
Stars: 0 | Forks: 0
# 🦠 恶意软件分析研究




## 📌 概述
本项目记录了对来自公共威胁情报库(MalwareBazaar、VirusTotal)的真实恶意软件样本所应用的完整恶意软件分析工作流程。研究涵盖了 **静态** 与 **动态** 分析技术,最终完成完整的指标(IOC)提取以及 MITRE ATT&CK 技术映射。
## 🎯 目标
- 在不执行样本的情况下应用静态分析以识别恶意软件类型、打包器和可疑字符串
- 在受控沙箱中执行样本以观察运行时行为
- 提取指标(IOC)用于威胁情报共享
- 将对手行为映射到 MITRE ATT&CK 框架
- 生成可操作的检测规则(YARA + Sigma)
## 🛠️ 工具与技术
| 工具 | 阶段 | 用途 |
|------|-------|---------|
| **Ghidra** | 静态 | 逆向工程 / 反汇编 |
| **IDA Free** | 静态 | 二进制分析与控制流图 |
| **PEStudio** | 静态 | PE 头分析、熵、字符串 |
| **FLOSS** | 静态 | 提取混淆字符串 |
| **Cuckoo Sandbox** | 动态 | 自动行为分析 |
| **Wireshark** | 动态 | 网络流量捕获 |
| **Process Monitor** | 动态 | 文件系统与注册表活动 |
| **Process Hacker** | 动态 | 内存与进程检查 |
| **VirusTotal / MalwareBazaar** | 情报 | 样本来源与信誉评估 |
| **YARA** | 检测 | 自定义规则编写 |
## 🧪 分析方法论
### 环境搭建
- 隔离虚拟机:Windows 10(受害者) + Ubuntu 主机
- 网络:仅主机适配器 — 无互联网访问
- 在每次执行前拍摄快照,以便干净回滚
### 阶段 1 — 静态分析
**文件概况:**
- 计算 MD5、SHA1、SHA256 哈希 → 提交至 VirusTotal
- 使用 PEStudio 分析 PE 头(节、导入、导出、熵)
- 识别高熵节(>7.0)— 指示打包/加密
**字符串提取:**
- 使用 FLOSS 对编码字符串进行去混淆
- 恢复硬编码的 C2 服务器 URL、注册表键、互斥量名称
**反汇编:**
- 在 Ghidra 中加载二进制文件 — 识别 `WinExec`、`CreateRemoteThread`、`VirtualAllocEx` 等 API 调用
- 将函数调用映射到已知的注入技术
### 阶段 2 — 动态分析
**行为执行:**
- 在 Cuckoo 沙箱中执行样本 — 生成 5 分钟行为报告
- 监控文件系统变更:在 `%APPDATA%` 和 `%TEMP%` 中发现被丢弃的文件
- 注册表修改:通过 `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` 实现持久化
**网络分析:**
- 捕获 C2 信标流量 — 识别发往硬编码 IP 的 HTTP POST
- 对可疑域名(生成式 DGA 主机名模式)进行 DNS 查询
- 从 PCAP 中提取 C2 协议结构
**内存分析:**
- 观察到进程注入:代码注入至 `explorer.exe`
- 转储注入的 shellcode — 单独分析有效载荷
### 阶段 3 — IOC 提取与报告
- 编译完整 IOC 列表:文件哈希、C2 IP/域名、注册表键、互斥量名称
- 编写 YARA 检测规则,针对唯一字节序列
- 将所有 TTP 映射到 MITRE ATT&CK 框架
## 🔑 关键发现
| 指标 | 值 |
|------|-----|
| **恶意软件家族** | AsyncRAT 变种 |
| **打包器** | UPX(熵 7.8) |
| **持久化机制** | 注册表 Run 键 |
| **C2 协议** | 4449 端口上的加密 TCP |
| **进程注入** | 通过 `CreateRemoteThread` 注入 `explorer.exe` |
| **规避行为** | 反虚拟机检查、睡眠计时器、沙箱检测 |
## 🗺️ MITRE ATT&CK 映射
| 战术 | 技巧 | ID |
|------|------|-----|
| 执行 | 命令与脚本解释器 | T1059 |
| 持久化 | 注册表 Run 键 | T1547.001 |
| 防御规避 | 进程注入 | T1055 |
| 防御规避 | 虚拟机/沙箱规避 | T1497 |
| 命令控制 | 加密通道 | T1573 |
| 渗出 | 通过 C2 通道渗出 | T1041 |
## 📝 YARA 规则(示例)
```
rule AsyncRAT_Variant {
meta:
description = "Detects AsyncRAT variant based on behavioral artifacts"
author = "Jaydeep Gandharva"
date = "2025"
reference = "MalwareBazaar"
strings:
$mutex = "AsyncMutex_" ascii wide
$reg_key = "Software\\Microsoft\\Windows\\CurrentVersion\\Run" ascii
$string1 = "AsyncRAT" ascii wide nocase
condition:
2 of ($mutex, $reg_key, $string1)
}
```
## 📁 项目结构
```
malware-analysis-research/
├── README.md
├── reports/
│ ├── static-analysis-report.pdf
│ ├── dynamic-analysis-report.pdf
│ └── ioc-report.csv # Full IOC list
├── yara-rules/
│ └── asyncrat_variant.yar
├── screenshots/
│ ├── pestudio-entropy.png
│ ├── ghidra-disassembly.png
│ ├── cuckoo-behavioral.png
│ └── wireshark-c2-traffic.png
└── pcap/
└── c2_traffic_sample.pcap # Sanitized network capture
```
## 📚 参考与威胁情报来源
- [MalwareBazaar](https://bazaar.abuse.ch/) — 样本来源
- [VirusTotal](https://www.virustotal.com/) — 多引擎扫描
- [MITRE ATT&CK](https://attack.mitre.org/) — TTP 映射
- [Any.run](https://any.run/) — 补充沙箱分析
## 🎓 展示技能
`Malware Analysis` `Reverse Engineering` `Static Analysis` `Dynamic Analysis` `YARA Rules`
`MITRE ATT&CK` `IOC Extraction` `Threat Intelligence` `Sandbox Analysis` `Incident Response`
## 👤 作者
**Jaydeep Gandharva**
北卡罗来纳大学夏洛特分校 — 网络安全硕士
[LinkedIn](https://linkedin.com/in/jaydeepgandharva) | [GitHub](https://github.com/jaydeepgandharva)
标签:Ask搜索, Cloudflare, Cuckoo Sandbox, DAST, DNS信息、DNS暴力破解, DNS 反向解析, DNS 解析, FLOSS, Ghidra, HTTP工具, IDA Free, IOC提取, IP 地址批量处理, JARM, MalwareBazaar, MITRE ATT&CK, PEStudio, Process Hacker, Process Monitor, Sigma规则, VirusTotal, Wireshark, YARA规则, 云安全监控, 云资产清单, 内存分析, 句柄查看, 合规性检查, 威胁情报, 子域名变形, 开发者工具, 恶意软件分析, 文件系统监控, 无线安全, 样本分析, 检测规则, 沙箱, 注册表监控, 流量嗅探, 目标导入, 网络安全审计, 网络流量捕获, 网络资产发现, 逆向工程, 静态分析