GodwillFoka/ransomwatch
GitHub: GodwillFoka/ransomwatch
RansomWatch 是一个通过 Tor 自动抓取勒索软件泄露网站数据并提供 CLI、REST API、仪表板和告警通知的威胁情报监控平台。
Stars: 0 | Forks: 0
# 🚨 RansomWatch
**RansomWatch** 通过监控数据泄露网站 (DLS),汇总公开披露的数据,并以结构化、可操作的格式呈现,从而追踪勒索软件团伙及其受害者。
由 **Godwill FOKA / CYBERILL** —— 网络安全工程师(柏林)创建。
## ✨ 功能
| 模块 | 状态 | 描述 |
|--------|--------|-------------|
| **CLI** | ✅ | 完整的命令行界面 (`ransomwatch`) |
| **抓取** | ✅ | 通过 Tor 从已知的 DLS 站点收集数据 |
| **REST API** | ✅ | 基于 FastAPI 构建,在 `/docs` 自动生成文档 |
| **仪表板** | ✅ | 带有统计、表格和图表的 Web UI |
| **通知** | ✅ | 邮件 (SMTP) + Telegram 机器人告警 |
| **CI/CD** | ✅ | GitHub Actions(定时抓取任务)+ GitLab 镜像 |
| **存储** | ✅ | 基于 JSON 文件(便携,可对比差异) |
## 🚀 快速开始
```
# 1. 安装
pip install -r requirements.txt
# 2. 运行抓取
ransomwatch scrape
# 3. 查看数据
ransomwatch list groups
ransomwatch list victims
ransomwatch stats
# 4. 启动 dashboard
ransomwatch serve
# → http://localhost:8000/dashboard
# → http://localhost:8000/docs
```
## 📋 CLI 用法
```
Usage: ransomwatch [OPTIONS] COMMAND [ARGS]...
🚨 RansomWatch — Ransomware monitoring & threat intelligence.
Commands:
scrape 🔍 Run a full scraping cycle
list 📋 List tracked data (groups, victims, IOCs)
stats 📊 Show aggregated statistics
serve 🌐 Start the API + Dashboard web server
version Show version information
```
### 示例
```
# 抓取所有已知 groups
ransomwatch scrape
# Dry run(模拟而不保存)
ransomwatch scrape --dry-run
# 列出活跃的 groups
ransomwatch list groups --active
# 以 JSON 格式显示 groups
ransomwatch list groups --json
# 以 JSON 格式显示统计信息
ransomwatch stats --json
# 按 group 过滤 victims
ransomwatch list victims --group LockBit
# 带自动重载启动(开发)
ransomwatch serve --reload
```
## 🌐 API 端点
| 方法 | 路径 | 描述 |
|--------|------|-------------|
| GET | `/api/v1/groups` | 列出所有勒索软件团伙 |
| GET | `/api/v1/groups/{name}` | 获取团伙详情 |
| GET | `/api/v1/victims` | 列出受害者(带过滤器) |
| GET | `/api/v1/victims/recent` | 近期受害者(7 天内) |
| GET | `/api/v1/iocs` | 列出 IOC |
| GET | `/api/v1/stats` | 完整统计数据 |
| GET | `/api/v1/stats/summary` | 快速统计摘要 |
| GET | `/api/v1/search?q=term` | 搜索所有数据 |
| GET | `/health` | 健康检查 |
交互式文档:`http://localhost:8000/docs`
## 🏗️ 项目结构
```
ransomwatch/
├── ransomware_watch/
│ ├── cli.py # CLI entry point
│ ├── models.py # Pydantic data models
│ ├── config.py # Environment config
│ ├── scrapers/ # DLS scraping engines
│ │ ├── sources.py # Known group URLs
│ │ ├── base.py # Base scraper class
│ │ └── dls.py # DLS scraper implementation
│ ├── storage/ # JSON file storage
│ │ └── store.py
│ ├── server/ # FastAPI + Dashboard
│ │ ├── app.py
│ │ ├── api.py
│ │ ├── dashboard.py
│ │ ├── templates/ # Jinja2 HTML templates
│ │ └── static/ # CSS, JS
│ └── notifications/ # Alerts
│ ├── email.py
│ └── telegram.py
├── data/ # Scraped JSON data
├── tests/ # Pytest tests
└── .github/workflows/ # CI/CD
```
## 🔧 配置
将 `.env.example` 复制为 `.env` 并填写以下内容:
```
# 用于 .onion 抓取的 Tor proxy
TOR_PROXY=socks5://127.0.0.1:9050
# Notifications — Email
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
# Notifications — Telegram
TELEGRAM_BOT_TOKEN=your-bot-token
TELEGRAM_CHAT_ID=your-chat-id
# Server
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
```
## 📊 数据模型
### RansomwareGroup
| 字段 | 类型 | 描述 |
|-------|------|-------------|
| name | str | 团伙名称 |
| aliases | list[str] | 已知别名 |
| dls_urls | list[str] | 泄露网站 URL (.onion) |
| active | bool | 当前是否活跃? |
| first_seen | date | 首次发现时间 |
| victims | list[Victim] | 已知受害者 |
| iocs | list[IOC] | 攻陷指标 |
### Victim
| 字段 | 类型 | 描述 |
|-------|------|-------------|
| group_name | str | 负责的团伙 |
| name | str | 组织名称 |
| country | str \| None | 国家 |
| sector | str \| None | 行业部门 |
| published_date | date | 发布到 DLS 的日期 |
### IOC
| 字段 | 类型 | 描述 |
|-------|------|-------------|
| type | str | ip, domain, hash, url |
| value | str | 指标值 |
| group_name | str | 关联的团伙 |
## 🧪 运行测试
```
pytest tests/ -v
pytest tests/ --cov=ransomware_watch --cov-report=term
```
## 🔄 自动抓取 (GitHub Actions)
该项目包含一个每 6 小时运行一次的 GitHub Actions 工作流:
1. 检出仓库
2. 安装 Tor + 依赖
3. 运行抓取器
4. 提交任何新数据
5. 将更新推送回仓库
数据目录 (`data/`) 充当 **基于 Git 的 CTI 订阅源** —— 每次抓取都会创建一个包含新受害者的提交。
## 🪞 GitLab 镜像
该仓库会在每次推送时通过 GitHub Actions 自动镜像到 GitLab(参见 `.github/workflows/mirror.yml`)。
## 📄 许可证
MIT — 可自由使用、修改和分发。
## 👤 作者
**Godwill FOKA** —— 网络安全工程师,柏林
🚨 **CYBERILL** —— 守护数字安全,塑造未来
🔗 [GitHub](https://github.com/GodwillFoka) | [LinkedIn](https://linkedin.com/in/godwillfoka) | [CYBERILL](https://cyberill.onrender.com)
标签:AV绕过, FastAPI, Web仪表盘, 勒索软件监控, 威胁情报, 实时处理, 开发者工具, 暗网数据采集, 逆向工具