rahx-cyber/Zytrap
GitHub: rahx-cyber/Zytrap
Zytrap 是一个融合蜜罐欺骗、Snort 入侵检测与 SOC 自动化的轻量级内网安全平台,用于检测和响应局域网内部威胁。
Stars: 0 | Forks: 0
# ⚡ Zytrap — 基于欺骗的安全与 SOC 自动化平台
[](https://www.python.org/)
[](https://flask.palletsprojects.com/)
[](LICENSE)
[]()
Zytrap 是一个轻量级的混合网络安全平台,它结合了**欺骗技术**、**网络入侵检测 (Snort)** 和 **SOC 式事件自动化**,用于检测局域网 (LAN) 内部的威胁——这正是传统纯边界安全工具很大程度上忽视的领域。
它的构建是为了展示实用的、集成的安全工程:不仅是一个单一的工具,而是一个小型平台,其模块像真实的 SOC 技术栈一样协同工作。
## 🖥️ 截图
| SOC 仪表盘 | 诱饵管理员登录(攻击者视角) | Snort 警报 |
|---|---|---|
| 实时事件、严重程度分类、IP 追踪 | 捕获凭据的逼真假登录页面 | 与应用层事件关联的网络层检测 |
*(完整截图请参见 `docs/screenshots/`)*
## 🎯 为什么选择 Zytrap
大多数 LAN 环境默认信任内部流量。一旦攻击者——或受感染/内部的设备——已经进入网络,防火墙和边界 IDS 几乎什么也看不到。Zytrap 通过**混合检测模型**解决了这个盲点:
- **欺骗层** — 合法用户永远不应触碰的诱饵登录门户和敏感文件陷阱。根据定义,任何交互都是可疑的。
- **网络层** — 针对暴力破解、端口扫描、SQLi 和扫描工具指纹调整的 Snort IDS 规则。
- **关联层** — 两种信号流汇入同一个 SOC 仪表盘,因此分析师可以看到全貌,而不是两个互不相连的工具。
## 🧩 架构
```
+----------------------+
| Zytrap |
|-----------------------|
| Dashboard | Detection |
| Engine | Alerting |
+----------+-----------+
|
---------------------------------------------------
| | | |
Deception SOC Module Threat Intel Alert/Email
Module (Snort+SIEM) Module Module
```
### 模块
| 模块 | 职责 |
|---|---|
| **欺骗** | 诱饵登录页面 (`/admin`, `/wp-admin` 等),凭据捕获,虚假敏感文件 (`.env`),自定义 404 防指纹识别 |
| **SOC** | Snort 警报日志解析,事件创建,SOC 团队邮件派发 |
| **威胁情报** | GeoIP 查询,VirusTotal + AbuseIPDB 富化查询,带有 6 小时缓存 |
| **警报** | 实时邮件通知(HTML 格式),严重程度分类 |
| **仪表盘** | 实时 SOC 视图 — 事件、Snort 警报、登录尝试、统计数据 — 每 10 秒轮询一次 |
## 🛠️ 技术栈
**后端:** Python 3, Flask, SQLite
**网络检测:** Snort IDS(包含自定义规则集)
**威胁情报:** VirusTotal API, AbuseIPDB API, ip-api.com (GeoIP)
**前端:** HTML5, CSS3, Vanilla JS, Bootstrap 5
**警报:** SMTP(HTML 邮件)
**远程演示访问:** ngrok
## ✨ 核心功能
- 🪤 逼真的诱饵管理员/登录门户,可捕获攻击者的 IP、凭据和行为
- 🚨 基于阈值的暴力破解检测(可配置尝试次数/时间窗口)
- 🌐 对每个事件自动进行 GeoIP + 威胁情报富化查询(VirusTotal / AbuseIPDB)
- 🔗 Snort 日志摄取 — 网络层警报与应用层事件在一处进行关联
- 📊 带有严重程度编码事件(严重/高/中)的实时 SOC 仪表盘
- 📧 一键“发送给 SOC 团队” — 将格式化的事件报告通过邮件发送给任意收件人列表
- 🕵️ 防指纹识别:自定义 404 页面,虚假的 `.env` / 配置文件响应
- 🗄️ 结构化的 SQLite 存储(而非扁平的 JSON)— 支持取证查询和扩展
## 🚀 快速开始
### 前置条件
- Python 3.10+
- (可选)安装 Snort IDS 用于网络层检测
- (可选)用于邮件警报的 Gmail/SMTP 账户
- (可选)用于威胁情报的 VirusTotal / AbuseIPDB API 密钥(免费版即可)
### 安装
```
git clone https://github.com/yourusername/zytrap.git
cd zytrap
pip install -r requirements.txt
```
### 配置
设置环境变量(或直接编辑 `config.py`):
```
export SMTP_USER="your_email@gmail.com"
export SMTP_PASS="your_app_password"
export ALERT_EMAIL="soc-team@yourcompany.com"
export VT_API_KEY="your_virustotal_key" # optional
export ABUSE_API_KEY="your_abuseipdb_key" # optional
```
### 运行
```
# 加载 demo 数据(可选,对截图/测试有用)
python scripts/seed_demo_data.py
# 启动 platform
python app.py
```
访问:
- **SOC 仪表盘:** http://localhost:5002/
- **蜜罐(诱饵登录):** http://localhost:5002/admin
### 暴露用于远程 LAN 测试(可选)
```
pip install pyngrok
python scripts/ngrok_launcher.py
```
### 启用 Snort 集成(可选)
```
sudo cp scripts/zytrap.rules /etc/snort/rules/
# 添加至 /etc/snort/snort.conf:
# include $RULE_PATH/zytrap.rules
sudo snort -A fast -c /etc/snort/snort.conf -i eth0
```
## 📁 项目结构
```
zytrap/
├── app.py # Flask application entry point
├── config.py # Central configuration
├── requirements.txt
│
├── database/
│ └── db.py # SQLite schema + all queries
│
├── modules/
│ ├── deception/
│ │ └── routes.py # Decoy pages, credential capture, brute-force logic
│ ├── soc/
│ │ └── routes.py # Snort log parsing, incident mgmt, SOC email
│ ├── threat_intel/
│ │ ├── geoip.py # IP geolocation
│ │ ├── enrichment.py # VirusTotal + AbuseIPDB enrichment
│ │ └── routes.py
│ ├── alerts/
│ │ ├── email_alert.py # HTML email alert system
│ │ └── routes.py
│ └── dashboard/
│ └── routes.py # Dashboard rendering + API
│
├── frontend/
│ ├── templates/
│ │ ├── dashboard.html # Main SOC dashboard
│ │ ├── decoy_login.html # Honeypot login page
│ │ └── 404.html
│ └── static/
│
├── scripts/
│ ├── zytrap.rules # Custom Snort detection rules
│ ├── ngrok_launcher.py # Public demo tunnel
│ └── seed_demo_data.py # Sample data generator
│
└── docs/
├── Zytrap_Documentation.pdf
├── ARCHITECTURE.md
└── screenshots/
```
## 🔍 检测工作原理
1. 用户或攻击者访问诱饵路由(`/admin`、`/wp-admin`、`.env` 等)
2. **请求监控层**捕获 IP、凭据、时间戳、路由和 user-agent
3. **检测引擎**检查:每个 IP 的尝试频率、已知的扫描工具特征、SQLi/凭据填充模式
4. 如果超过阈值,将创建并分类(严重/高/中)**SOC 事件**
5. **GeoIP + 威胁情报富化**针对攻击者的 IP 异步运行
6. 包含攻击者详细信息和推荐应对措施的 **HTML 邮件警报**将被发出
7. **仪表盘**实时更新,分析师可以一键将事件转发给 SOC 团队
与此同时,**Snort** 独立检查原始网络流量,并将其警报输入到同一个仪表盘,从而提供关联的网络 + 应用可见性。
## 🧪 测试
该项目包含黑盒和白盒测试文档(参见 `docs/Zytrap_Documentation.pdf`,第 8 章)。已验证的核心流程:
- 正常与失败的登录尝试被正确记录
- 暴力破解阈值触发警报 + 事件创建
- 诱饵页面访问被立即标记
- 仪表盘反映实时更新
- Snort 警报关联
在本地模拟攻击:
```
# 需要 apache2-utils 或类似工具以进行快速的 brute-force 测试
for i in {1..6}; do curl -s -X POST http://localhost:5002/admin \
-d "username=admin&password=test$i" > /dev/null; done
```
## 🗺️ 路线图
- [ ] 基于 AI/ML 的异常检测以实现自适应阈值
- [ ] 通过防火墙 API 集成自动封锁 IP
- [ ] 基于角色的访问控制(管理员 / 分析师 / 查看者)
- [ ] 每个事件的 MITRE ATT&CK 技术映射
- [ ] 用于更大规模部署的 PostgreSQL 后端选项
- [ ] REST API 文档(OpenAPI/Swagger)
## 📄 许可证
MIT 许可证 — 见 [LICENSE](LICENSE)
## 👤 作者
本项目作为一个独立的安全工程项目构建,结合了入侵检测、欺骗技术和 SOC 自动化概念。完整的技术说明、文献调查、UML 图和测试方法可在 [项目文档](docs/Zytrap_Documentation.pdf) 中查看。
标签:BOF, CISA项目, Flask, FOFA, Python, SOC自动化, 威胁情报, 安全运营中心, 开发者工具, 插件系统, 无后门, 欺骗防御, 红队行动, 网络映射, 蜜罐, 证书利用, 逆向工具