Symon510/Ransomware-attack-and-mitigation-project
GitHub: Symon510/Ransomware-attack-and-mitigation-project
北德克萨斯大学网络安全课程的一个学术项目,通过在隔离环境中构建完整的勒索软件行为检测与事件响应流水线,研究加密攻击的防御机制。
Stars: 0 | Forks: 0
# 勒索软件行为与防御响应
这是一项学术项目的论文,该项目旨在研究勒索软件的攻击机制,并在隔离的实验室环境中构建完整的检测和事件响应流水线。
**课程:** CSCE 5550 — Introduction to Cyber Security
**院校:** University of North Texas
**学期:** 2025年秋季
## 项目目标
分配该项目的目的是为了加深对勒索软件实际运作方式(在文件系统、进程和加密级别)的理解,以便能够针对真实的攻击者行为而非抽象的教科书描述来设计防御工具。
交付成果是一项包含三个相互关联部分的完整生命周期研究:
1. **攻击模型** — 文件加密攻击的沙箱实现,以重现真实勒索软件留下的特征和行为。
2. **检测** — 一个行为检测引擎,可以在未知特定恶意软件的情况下,根据这些特征识别勒索软件活动。
3. **响应** — 一个自动化缓解流水线,以 SOC 分析师的方式对已确认的检测做出响应:遏制、保留证据、恢复服务。
本论文的重点在于防御组件。
## 架构
```
┌──────────────────────┐
│ File System Events │
│ (monitored dir) │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ SQLite Event Log │
│ (monitor.db) │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Detection Engine │
│ │
│ • Rapid mod bursts │
│ • Extension pattern │
│ • Ransom note scan │
└──────────┬───────────┘
│ (detection confirmed)
▼
┌──────────────────────┐
│ Response Pipeline │
│ │
│ 1. Emergency backup │
│ 2. Kill processes │
│ 3. Quarantine │
│ 4. Alert │
│ 5. Restore │
└──────────────────────┘
```
每个阶段都映射了真实 SOC 工具会执行的行为——文件完整性监控(FIM)、行为分析以及基于主机的事件响应。
## 检测引擎
检测器监控目录并寻找三个独立的指标类别。真实的攻击通常会在几秒钟内触发多个指标,这就是警报阈值的基础。
### 指标 1 — 快速文件修改激增
勒索软件会快速加密用户文件。合法的用户活动很少会在一分钟内修改大量文件。检测器会标记超过可配置阈值(默认:60秒内修改5次)的活动。
这是一个行为指标——它不依赖于特定的勒索软件家族就能起作用,因为*所有*文件加密恶意软件都必须在极短的时间窗口内写入大量文件。
### 指标 2 — 可疑的文件扩展名
一旦加密完成,勒索软件通常会使用一个独特的扩展名重命名文件(如 `.encrypted`、`.locked`、`.crypt`,或特定家族的名称如 `.wcry` 等)。检测器会扫描近期事件中批量出现的异常扩展名。
该阈值(默认:5分钟窗口内出现3个文件)被设置得很低,因为合法进程几乎从不会一次性生成多个 `.encrypted` 文件。
### 指标 3 — 勒索信特征
勒索软件会在受影响的目录中释放一个勒索信文件——例如 `README.txt`、`RANSOM_NOTE.txt` 或特定家族的名称。检测器会遍历目录树以查找这些文件名。
这是可信度最高的指标,因为合法软件不会创建具有这些名称的文件。
### 检测逻辑
每个指标都会返回一个带有严重级别(`HIGH` 或 `CRITICAL`)的结构化结果。在持续监控模式下运行时,任何已确认的检测都会立即触发响应流水线,而无需等待额外的确认——对于勒索软件而言,几秒钟的延迟可能意味着会有数百个文件被加密。
```
# 简化的 detection orchestrator
def run_detection(self, watch_dir):
detections = []
for method in [
self.detect_rapid_modifications(),
self.detect_encryption_pattern(),
self.detect_ransom_note(watch_dir),
]:
if method['detected']:
detections.append(method)
return detections
```
## 响应流水线
一旦确认检测,缓解系统将运行包含五个步骤的响应。步骤的顺序至关重要,并遵循事件响应的最佳实践。
### 步骤 1 — 在执行任何操作之前进行紧急备份
首要行动是对受影响的目录进行快照。这有悖于直觉——您可能认为第一步应该是阻止攻击——但事实并非如此。如果勒索软件正处于加密过程中,您会希望在造成进一步破坏之前捕获状态,并且您也希望在终止进程之前保留取证证据。
### 步骤 2 — 终止恶意进程
使用 `pgrep` 识别与已知攻击签名匹配的进程,然后使用 `kill -9` 终止它们。在真实环境中,此步骤将涉及更仔细的进程识别(父/子进程树、命令行参数匹配)而不是固定的签名,但原理是相同的。
### 步骤 3 — 隔离特征
将勒索信、加密文件和任何其他攻击特征移动到带有时间戳名称的隔离目录中。这起到两个作用: 防止这些特征在受影响的目录中引起进一步的混乱,以及 保留它们以供分析。
### 步骤 4 — 生成警报
写入一个包含时间、位置、触发的指标、采取的缓解措施和恢复选项的结构化警报。在生产系统中,这将会被推送到 SIEM、PagerDuty、电子邮件或这三者。
### 步骤 5 — 从干净的备份中恢复
如果存在已知完好的备份,则从中恢复受影响的目录。系统专门使用了在步骤 1 中进行的备份——这意味着即使在最坏的情况下(之前不存在备份),也有可能进行一定程度的恢复。
## 我的收获
相比于仅仅通过阅读了解,在亲自完成这个端到端的过程中,有几件事让我印象深刻。
**对于新型变种,行为检测优于签名检测。** 我不需要知道正在运行的是哪种特定的勒索软件就能检测到它——*行为模式*就足够了。真实的 EDR/XDR 产品严重依赖于此,也是出于同样的原因。
**响应的顺序并非显而易见。** 我的直觉是“先阻止攻击”。但是先进行备份可以保留取证证据并捕获状态,而且当存在良好备份时,多出这几秒的加密时间通常很少会改变恢复的结果。正确的顺序来自于阅读真实的 IR playbook,而不是出于直觉。
**密码学是勒索软件中最微不足道的部分。** 加密本身只是使用标准库的几行代码。勒索软件之所以难以防御,原因在于加密*周围*的所有事情——投递、持久化、密钥管理、勒索基础设施。理解这一点改变了我对防御优先级的看法。
**日志记录是基础。** 几乎本项目中所有的防御能力最终都依赖于拥有干净的事件日志以供查询。如果没有 SQLite 事件存储,任何行为检测都无法工作。真实的安全工具也是如此——遥测数据收集是一项并不光鲜,但却是万物基石的工作。
## 映射至 MITRE ATT&CK
供参考,该攻击模型涉及了以下 ATT&CK 技术:
| 技术 | ID | 位置 |
|---|---|---|
| Data Encrypted for Impact | T1486 | 核心加密行为 |
| File and Directory Discovery | T1083 | 遍历目标目录 |
| Inhibit System Recovery | (部分) T1490 | 已讨论但未实现 |
防御方面则通过文件完整性监控和行为分析来映射这些技术的检测。
## 工具和库
- **Python 3** — 所有组件的主要开发语言
- **SQLite** — 检测引擎的事件存储
- **cryptography (Fernet)** — 攻击模型的对称加密原语(AES-128-CBC + HMAC-SHA256)
- **标准库** — `os.walk`、`subprocess`、`shutil`、`datetime`,用于文件操作、进程控制和备份/恢复
- **Kali Linux / Ubuntu VMs** — 隔离的实验室环境
## 范围与安全性
这是一份学术课程的公开论文。**本项目的攻击性组件(文件加密器、感染向量 shell 脚本和解密工具)已故意从本仓库中移除。** 它们仅在无网络访问的隔离虚拟机中进行开发和测试,并出于学术目的予以私下保留。
此处展示的防御性代码仅作说明之用,并已从完整的实现中进行了简化。
如果您正在学习勒索软件防御,最好的学习资源是:
- MITRE ATT&CK 框架
- CISA 的 StopRansomware 指南
- 年度 Verizon DBIR
如果您是在寻找可运行的勒索软件时发现了这个 repo——您在这里找不到它的,我建议您转而学习防御知识。
## 关于我
我是 University of North Texas 的一名网络安全专业研究生。
- LinkedIn: [Simon Richards](https://www.linkedin.com/in/simon-richards-0a65b216a/)
- 电子邮件: symon.510@gmail.com
标签:AMSI绕过, Cloudflare, DAST, EDR, MITRE ATT&CK, x64dbg, 勒索软件, 威胁检测, 子域名变形, 学术项目, 安全架构, 安全运营中心, 密码学, 库, 应急响应, 恶意软件分析, 手动系统调用, 搜索语句(dork), 数据恢复, 文件系统监控, 检测与响应, 沙箱环境, 端点安全, 缓解措施, 网络安全, 网络映射, 脆弱性评估, 蜜罐/沙箱, 补丁管理, 隐私保护