rahx-cyber/Zytrap

GitHub: rahx-cyber/Zytrap

Zytrap 是一个融合蜜罐欺骗、Snort 入侵检测与 SOC 自动化的轻量级内网安全平台,用于检测和响应局域网内部威胁。

Stars: 0 | Forks: 0

# ⚡ Zytrap — 基于欺骗的安全与 SOC 自动化平台 [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) [![Flask](https://img.shields.io/badge/Flask-3.0-black.svg)](https://flask.palletsprojects.com/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Status](https://img.shields.io/badge/Status-Active-success.svg)]() 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自动化, 威胁情报, 安全运营中心, 开发者工具, 插件系统, 无后门, 欺骗防御, 红队行动, 网络映射, 蜜罐, 证书利用, 逆向工具