janahassan8/SOC-Ransomware-Simulator
GitHub: janahassan8/SOC-Ransomware-Simulator
该工具是一个用 Python 编写的教育型勒索软件模拟器,帮助 SOC 分析师在隔离环境中学习勒索软件行为、检测方法和防御策略。
Stars: 0 | Forks: 0
# SOC 勒索软件模拟器
## 概述
本项目是一个教育性质的勒索软件模拟程序,专为 SOC 分析师培训以及在隔离的虚拟实验室环境中进行恶意软件分析实践而设计。
该模拟程序演示了勒索软件攻击的核心阶段,包括文件发现、加密、勒索信投放以及通过解密进行数据恢复。其目的是帮助网络安全学生和分析师更好地理解勒索软件的行为、检测机会和防御策略。
# 功能
## 文件扫描
该模拟器会扫描指定的目标目录,查找通常受攻击的文件类型,包括:
* `.txt`
* `.jpg`
* `.png`
* `.pdf`
* `.docx`
## 文件加密
* 使用带有 Fernet (AES-128) 的 Python Cryptography 库
* 为每次执行生成唯一的加密密钥
* 对目标文件进行加密并附加 `.locked` 扩展名
* 成功加密后删除原始文件
## 勒索信模拟
程序会在目标目录中创建一封模拟的勒索信,其中包含:
* 虚假的加密货币支付说明
* 模拟的钱包地址
* 模拟的支付截止日期
此行为复制了真实勒索软件家族常用的技术。
## 文件解密
包含一个单独的解密工具,用于恢复加密的文件。
该解密器:
* 使用本地存储的 `encryption.key`
* 将 `.locked` 文件解密回其原始格式
* 恢复后删除加密副本
# 真实勒索软件对比
真实勒索软件家族的示例:
* WannaCry
* LockBit
* REvil
| 特性 | 模拟程序 | 真实勒索软件 |
| ----------------- | ------------- | ------------------- |
| AES 加密 | 是 | 是 |
| 文件目标 | 是 | 是 |
| 勒索信 | 是 | 是 |
| 密钥管理 | 本地存储 | 远程 C2 服务器 |
| 网络传播 | 否 | 通常使用漏洞利用 |
# SOC 分析师的检测机会
## 入侵指标
* 短时间内的大量文件重命名
* 突然出现 `.locked` 文件扩展名
* 单个进程的高磁盘写入活动
* 创建勒索信文件
* 本地存储的加密密钥文件
## 建议的 SIEM 检测规则
* 检测快速的文件扩展名更改
* 监控过度的文件删除和重建活动
* 对已知的勒索信文件名发出告警
* 识别与加密相关的异常进程行为
# 防御措施
针对勒索软件攻击的推荐安全控制措施:
1. 维护离线和不可变的备份(3-2-1 策略)
2. 部署 EDR/XDR 解决方案以进行行为监控
3. 实施最小权限访问控制
4. 落实网络隔离
5. 禁用不必要的远程访问服务(例如 RDP)
6. 定期修补和更新操作系统及软件
# 使用技术
* Python 3
* Cryptography 库 (Fernet / AES-128)
* Kali Linux 虚拟机
* VMware Workstation
# 实验环境
本项目只能在以下环境中运行:
* 隔离的虚拟机
* 受控的网络安全实验室
* 离线测试环境
请勿在生产系统或个人设备上执行。
# 免责声明
本项目严格仅用于教育和防御性网络安全目的。