The-Black-Needles/case02-reveal-dfir-volatility3-aml
GitHub: The-Black-Needles/case02-reveal-dfir-volatility3-aml
一个结合Volatility 3内存取证与Pandas/SQL反洗钱规则设计的防御性网络安全实战作品集,展示从内存镜像分析到交易异常检测的完整调查流程。
Stars: 0 | Forks: 0
# Reveal DFIR Volatility3 AML
## 1) 执行摘要
**背景**
一台可访问财务数据的 Windows 工作站被 SIEM 标记为可能存在异常活动。为了确认是否遭到入侵并指导遏制措施,我们提取了该机器的**内存 dump**。
**范围**
识别**进程/命令行**、**外部连接**、**注入/持久化**迹象,并构建事件的**时间线**。
**Reveal Lab 范围与方法(摘要)**
- **目标:** 了解**事件性质**、**受影响系统**、**时间线**和**影响**,以缓解风险并解决**根本原因**。
- **范围:** 针对 SIEM 在包含财务数据的工作站上发出的警报;分析的**工件**:来自 **Windows 10** 的内存 dump(约 2 GB)。
- **工具:** **Volatility 3**(插件架构 + 符号表),用于解释操作系统结构并提取证据。
**完整报告:**
➡️ [reports/IR_Reveal.md](https://github.com/The-Black-Needles/case02-reveal-dfir-volatility3-aml/blob/main/reports/IR_Reveal.md)
## 2) 关于此仓库
专注于防御性网络安全的实战作品集,涵盖**反欺诈/AML**、用于检测的 **Pandas/SQL** 以及 **DFIR** (Volatility 3)。
**目标:** 展示**规则设计**、**基于数据的调优**以及具备**高管级汇报**能力的**数字取证调查**。
### 🔎 亮点(本仓库证明的内容)
- **使用 Pandas/SQL 的 AML 规则:** 滑动窗口、聚合、数据富化以及**告警合并**。
- **内存 DFIR (Volatility 3):** 识别 **LOLBAS**(隐蔽的 PowerShell + WebDAV + rundll32)、**外部连接**及可疑的**持久化**。
- **高管汇报:** 简明且**可复现**的报告;实现版本控制的工件。
- **工程规范:** 结构清晰,本地运行简单,随时准备**演进规则和指标**。
## 3) 技术栈与 Pipeline
**技术栈:** Volatility 3 (DFIR),Python **Pandas/SQL** (AML 规则),Jupyter Notebooks,SQLite。
**Pipeline(高层架构):**
1. 收集/工件(内存 dump)
2. **DFIR 检测**(命令行,网络,模块)
3. **AML 检测**(基于 CPF/时间的突发规则)
4. **调查与关联**(时间线,IoCs)
5. **文档记录与调优**(报告,版本,测试)
## 4) 仓库内容
```
.
├── data/ # dados (ex.: paysim.parquet)
├── notebooks/ # notebooks (EDA, regras, tuning)
│ └── 01_eda.ipynb
├── reports/
│ ├── alerts/ # CSVs de alertas gerados (A/B/C + consolidado)
│ ├── dfir/ # artefatos do Volatility (cmdline, netscan, dlllist...)
│ └── IR_Reveal.md # relatório completo do lab Reveal (DFIR)
├── tests/ # amostras mínimas p/ testar regras A/B
├── SECURITY.md
└── README.md
```
## 5) 🧪 可复现性 - GitHub Codespaces
在 GitHub 打开仓库 → Code → Create codespace on main。
在 Codespaces 的终端中:
```
pip install -r requirements.txt
python scripts/run_rules_min.py
```
通过 Codespaces 的 Jupyter 打开 notebooks/01_eda.ipynb。
- **Notebooks** 位于 `notebooks/`(分步操作指南)
- **CSVs** 位于 `reports/`(可作为表格打开的结果)
- 在 GitHub 上进行**版本控制**(变更历史)
- 位于 `tests/` 的**测试框架**(合成样本),用于在**不更改**真实证据的情况下验证检测。
## 6) 🧠 规则包 (v1) — AML 与 DFIR
**A) DFIR — WebDAV + rundll32 + 隐蔽的 PowerShell(扩展版)**
- **思路:** 检测 **LOLBAS**(Living-off-the-Land 执行)。
- **来源:** \`reports/dfir/cmdline.txt\` + \`tests/dfir_cmdline_samples.txt\` 中的样本。
- **状态:** 原始工件中命中 0 次(会话可能未被捕获);在测试样本中**命中 1 次**(**概念验证**)。
- **输出:** \`reports/alerts/dayX_ruleA_webdav_rundll32_ext.csv\`。
**B) DFIR — svchost.exe → 外部 HTTP (80/81/8000/8080/8888)**
- **思路:** 标记在 HTTP 端口上与**公网 IP** 通信的 \`svchost.exe\`(常见的滥用模式)。
- **来源:** \`reports/dfir/netscan.txt\` + \`tests/dfir_netscan_samples.txt\` 中的样本。
- **状态:** 原始切片中命中 0 次;在测试样本中**命中 1 次**(概念验证)。
- **输出:** \`reports/alerts/dayX_ruleB_svchost_http_like_external.csv\`。
**C) AML — 基于 CPF 的 1 小时突发(主动交付)**
- **思路:** 标记在 **60 分钟**窗口内**交易量/金额异常**的客户。
- **逻辑(示例):** \`tx_count_60m >= 4\` **或** \`amount_sum_60m >= 1000\`。
- **输出:** \`reports/alerts/dayX_ruleC_aml_burst_1h.csv\`(示例数据集包含 ≥1 行)。
- **教学用途:** 展示**时间聚合**、**客户画像**及**可复现的告警**。
## 7) 🕵️ DFIR (Reveal / Volatility 3)
- **完整报告:** ➡️ [reports/IR_Reveal.md](https://github.com/The-Black-Needles/case02-reveal-dfir-volatility3-aml/blob/main/reports/IR_Reveal.md)`
- **工件:** \`reports/dfir/\`(cmdline,netscan,dlllist,timeliner,提取内容)
**调查结果摘要**
- **确认 LOLBAS:** \`powershell.exe -windowstyle hidden\` + \`net use\` WebDAV + 远程 DLL 的 \`rundll32\` 调用。
- **外部网络:** \`svchost.exe\` (PID 1260) 发起 HTTP 请求 → \`196.204.4.8:80\`。
- **可能的持久化:** **Scheduled Task** \`{ED77AEE0-EAFB-4133-B544-9E7C5632D902}\`。
**建议**
拦截 IOCs;启用 **Script Block Logging**;使用 **ASR** 防御 \`rundll32\`/WebDAV 滥用;部署 **WDAC/AppLocker**。
标签:JARM, Volatility3, Windows 调试器, 代码示例, 内存分析, 反洗钱, 多线程, 库, 应急响应, 数字取证, 数据分析, 知识库安全, 自动化脚本, 逆向工具