Fahad2129/RansomGuard
GitHub: Fahad2129/RansomGuard
一个通过模拟勒索软件攻击并利用熵分析进行实时检测的教育性安全项目。
Stars: 0 | Forks: 0
# RansomGuard
一个模拟勒索软件攻击并进行实时检测的工具。这是一个旨在帮助理解勒索软件运作原理以及安全软件如何捕获它们的教育性项目。
## 这是什么?
基本上,这个项目做两件事:
1. **攻击端** — 一个虚假的“勒索软件”,会快速重命名并加密文件(但仅限于一个测试文件夹内,绝对安全)
2. **防御端** — 一个监控当前动态并标记可疑行为的检测引擎
可以把它看作是针对安全软件进行的一次受控碰撞测试。
## 为什么要做这个?
我想了解:
- 勒索软件到底是如何运作的(它比你想象的要快得多,也系统得多)
- 像 CrowdStrike 或 Defender 这样的真实安全工具是如何捕获攻击的
- “entropy(熵)”意味着什么,以及为什么加密文件看起来与普通文件不同
这也是一个很棒的 portfolio 项目,可以展示你懂的是真正的安全工程,而不仅仅是理论。
## 如何运行
### 环境要求
- Python 3.11+
- Node.js 18+
- 10 分钟的时间
### 设置
**终端 1 — 启动 backend:**
```
cd backend
pip install -r requirements.txt
python server.py
```
你会看到:`🛡️ RansomGuard backend running on http://localhost:5000`
**终端 2 — 启动 frontend:**
```
cd frontend
npm install
npm start
```
这会打开一个浏览器标签页并访问带有 dashboard 的 `http://localhost:3000`。
## 使用 dashboard
1. 等待“● LIVE”标志出现(表示已连接)
2. 点击“▶ Launch Attack”按钮
3. 观察接下来发生的事情:
- 威胁评分在球体中攀升(左上角)
- entropy 图表出现峰值(中间)
- 文件被实时重命名(右侧)
- 威胁级别变高时会触发警报
- 当达到 CRITICAL 时,会弹出全屏警报
4. 点击“↺ Restore”撤销所有操作
整个过程从开始到“检测到威胁”大约需要 45 秒。
## 实际发生了什么
### 攻击
模拟器会:
- 对文件进行 XOR 加密(并非真正的加密,但会让文件看起来是随机的)
- 将它们全部重命名为 `.locked` 扩展名
- 投递一个虚假的勒索说明
它只会触动 `test_environment/` 文件夹。绝对不会碰其他任何东西。
### 检测
检测器会监控:
- **Entropy** — 加密文件具有很高的“随机性”(~7.5+)。普通的文本文件则没有。
- **速度** — 真正的勒索软件会在几秒钟内重命名 50 多个文件。这非常可疑。
- **扩展名更改** — 文件突然变成了 `.locked`、`.enc` 等。
当同时发生足够多这类事件时,它就会将其标记为威胁。
## 项目结构
```
backend/
- detector.py → entropy calculation + threat scoring
- simulator.py → fake ransomware (XOR + rename)
- server.py → Flask API + live event streaming
frontend/
- App.jsx → React dashboard
test_environment/
- dummy files that get "encrypted" during demo
```
## 技术栈
- **Backend:** Python, Flask, watchdog(文件监控)
- **Frontend:** React, Recharts(用于绘制图表)
- **Real-time:** Socket.IO(实时更新)
## 这安全吗?
是的。绝对安全。
- ✅ 仅触动 `test_environment/` 文件夹
- ✅ XOR 是可逆的(并非真正的加密)
- ✅ 没有网络传播
- ✅ 没有持久化
- ✅ 没有真正的恶意软件代码
- ✅ 点击“Restore”,一切都会恢复正常
## 开发过程中的收获
- 如何使用 entropy 分析来检测加密
- 实时文件系统监控(watchdog)
- 使用 WebSocket 构建 live dashboard
- 行为检测启发式算法(EDR 工具的实际工作原理)
- 勒索软件真的非常快。非常非常快。
## 使用 Docker 运行
如果你有 Docker:
```
docker-compose up --build
```
然后访问 `http://localhost:3000`
## 未来计划
- 添加进程追踪(看看是什么触发了攻击)
- 网络检测(勒索软件通常会尝试传播)
- 比较不同的加密方法
- 添加 YARA 规则集成
- 导出威胁数据
## 许可证
MIT — 随你怎么用
出于对安全的热爱而构建。不隶属于任何商业 EDR 供应商。
标签:EDR, GNU通用公共许可证, MITM代理, Node.js, Python, 勒索软件, 无后门, 熵分析, 脆弱性评估, 自定义脚本, 行为检测, 请求拦截, 逆向工具