Avinash-019/Blueeye-SOC

GitHub: Avinash-019/Blueeye-SOC

一个基于 Python 的轻量级 SOC 监控系统,集成实时流量捕获、多维威胁检测、机器学习异常分析和事件响应功能。

Stars: 0 | Forks: 0

# 🔵 Blue Eye — SOC 监控器 **Blue Eye** 是一个基于 Python 构建的、适用于真实生产环境的安全运营中心 (SOC) 工具。它能够捕获实时网络流量,使用基于规则和机器学习的技术检测威胁,发送 Telegram 告警,生成专业的 PDF 报告,并提供一个暗黑主题的 Web 仪表盘——所有功能均集成在单个文件中。 ## 🚀 功能特性 | 功能 | 详情 | |---|---| | **实时数据包捕获** | 使用 Scapy 捕获流量;支持 BPF 过滤器、接口选择、PCAP 重播 | | **20+ 威胁检测器** | 端口扫描、DDoS、ARP 欺骗、DNS 隧道、暴力破解、数据渗透、勒索软件、加密挖矿、横向移动、Tor/VPN、恶意 DHCP、WiFi 反认证、HTTP 注入、SSH 隧道 | | **ML 异常检测** | IsolationForest + OneClassSVM 集成模型;基于实时流量自动训练 | | **UEBA** | 用户与实体行为分析 — 基于单 IP 的行为基线,基于 Sigma 的异常评分 | | **Kill Chain 关联** | 将多阶段攻击关联为安全事件;检测 APT 攻击活动 | | **威胁情报** | 集成 AbuseIPDB + VirusTotal API;Tor 出口节点列表自动同步 | | **MITRE ATT&CK 映射** | 每条告警均附有战术 ID、技术 ID 和名称标签 | | **Telegram 告警** | 针对 CRITICAL/HIGH(严重/高危)威胁的实时告警;采用 WHO/WHAT/WHEN/WHERE/HOW/EVIDENCE 格式 | | **PDF 报告** | 包含 10 个部分的专业报告:执行摘要、图表、时间线、MITRE 映射、IR 剧本、攻击者画像、Kill Chain 事件 | | **Web 仪表盘** | Flask 暗黑 UI;受登录保护;实时统计、威胁表、IP 封禁/解封、狩猎触发器 | | **自动封禁** | 基于 iptables 的可选 IP 封禁,支持可配置的持续时间 | | **地理封禁** | 阻断来自特定国家的流量 | | **误报防护** | 白名单/CDN 抑制;针对单 IP 单威胁类型的冷却机制 | | **SQLite 数据库** | 为数据包、威胁、安全事件和被封禁的 IP 提供持久化存储 | ## 📋 环境要求 - **Python 3.9+** - **推荐使用 Linux**(用于实时捕获和自动封禁) - 实时数据包捕获需要 **Root / 管理员** 权限 ### 安装依赖 ``` pip install -r requirements.txt ``` 或手动安装: ``` pip install flask scapy rich scikit-learn matplotlib pandas numpy requests fpdf2 ``` ## ⚙️ 配置(环境变量) Blue Eye 从环境变量中读取敏感配置信息——请勿硬编码机密数据。 ### 通过命令行设置: ``` export TELEGRAM_ENABLED=true export TELEGRAM_BOT_TOKEN=your_token_here export TELEGRAM_CHAT_ID=your_chat_id export ABUSEIPDB_API_KEY=your_key export BLUEEYE_USERNAME=admin export BLUEEYE_PASSWORD=your_secure_password ``` 或者创建一个 `.env` 文件并加载它: ``` set -a && source .env && set +a python blueeye.py ``` ## 🖥️ 使用方法 ### 启动实时捕获 + 仪表盘 ``` sudo python blueeye.py ``` ### 在指定接口上捕获 10 分钟 ``` sudo python blueeye.py --iface eth0 --time 600 ``` ### 重播 PCAP 文件 ``` python blueeye.py --pcap capture.pcap ``` ### 从现有数据库生成 PDF 报告 ``` python blueeye.py --report-only ``` ### 仅启动仪表盘(不进行捕获) ``` python blueeye.py --dashboard-only --port 8080 ``` ### 启用自动封禁 + 地理封禁 ``` sudo python blueeye.py --block-on --geoblock --allowed-countries India ``` ### 所有选项 ``` --iface IFACE Network interface to capture on --time SECS Capture duration in seconds (0 = forever) --filter FILTER BPF capture filter expression --filter-ip IP Only process packets from/to this IP --filter-proto PROTO Only process this protocol --pcap FILE Replay a PCAP file instead of live capture --report-only Generate PDF from existing DB and exit --dashboard-only Start web dashboard only (no capture) --no-web Disable web dashboard --port PORT Dashboard port (default: 5000) --host HOST Dashboard bind address (default: 0.0.0.0) --block-on Enable auto-blocking of threats --block-dur SECS Auto-block duration (default: 3600) --geoblock Enable geo-blocking --allowed-countries Allowed countries for geo-blocking --ddos-thresh N DDoS packets/sec threshold --scan-thresh N Port scan unique ports threshold --brute-thresh N Brute force attempts threshold --sensitivity FLOAT Adaptive sensitivity sigma (default: 2.5) --terminal-dash Show rich terminal dashboard --debug Enable debug logging ``` ## 🌐 Web 仪表盘 访问地址:`http://localhost:5000` 默认登录凭据:xxxxxx / xxxxxxx(请通过环境变量进行更改) **仪表盘页面:** - 带严重性颜色标记的实时威胁源 - Top 攻击者 IP - 手动封禁 / 解封 IP - 触发威胁狩猎(信标通信、DGA、密码喷洒) - 会话和拓扑视图 - UEBA 异常画像 ## 📁 输出文件 所有输出均保存至 `output/` 目录: | 文件 | 描述 | |---|---| | `output/blueeye.db` | SQLite 数据库(数据包、威胁、安全事件、被封禁的 IP) | | `output/BlueEye_SOC_Report.pdf` | 自动生成的 PDF 报告 | | `output/blueeye_capture.pcap` | 原始数据包捕获 | | `output/blueeye.log` | 应用程序日志 | ## 📊 PDF 报告章节 1. 执行摘要 2. 可视化分析(图表:协议分布、威胁时间线、Top IP) 3. 威胁时间线 — 按时间顺序的日志 4. 详细威胁分析(逐事件卡片) 5. Top 攻击者 IP 画像 6. MITRE ATT&CK 覆盖图 7. 事件响应剧本 8. 被封禁的 IP 地址 9. 关联事件(Kill Chain 分析) 10. 建议与后续步骤 ## 🔒 安全注意事项 - **切勿**将您的 `.env` 文件或 API 密钥提交至 Git - 将 `.env` 和 `output/` 添加到 `.gitignore` 中 - 在部署前更改默认的仪表盘凭据 - 运行于防火墙之后;在未配置身份验证的情况下,请勿将端口 5000 暴露至互联网 ## 📦 项目结构 ``` blue-eye/ ├── blueeye.py # Main application (single-file) ├── requirements.txt # Python dependencies ├── README.md # This file ├── INTERVIEW_GUIDE.md # Technical guide for interviews ├── .env.example # Example environment variables ├── .gitignore # Git ignore rules └── output/ # Auto-created at runtime ├── blueeye.db ├── BlueEye_SOC_Report.pdf ├── blueeye_capture.pcap └── blueeye.log ``` ## 🛡️ 检测到的威胁类型与 MITRE 映射 | 威胁 | MITRE 战术 | 技术 | |---|---|---| | 端口扫描 / SYN 隐蔽扫描 | Discovery | T1046 | | DDoS / 洪水攻击 | Impact | T1499 | | ICMP 洪水 | Impact | T1499 | | ARP 欺骗 / 投毒 | Credential Access | T1557 | | DNS 隧道 | C2 / Exfiltration | T1071.004 / T1048 | | 暴力破解攻击 | Credential Access | T1110 | | 横向移动 | Lateral Movement | T1021 | | 数据渗透 | Exfiltration | T1041 | | 加密货币挖矿 | Impact | T1496 | | Tor/VPN/Proxy | C2 | T1090 | | SSH 隧道 | C2 | T1572 | | 勒索软件行为 | Impact | T1486 | | HTTP 注入 | Initial Access | T1190 | | 恶意 DHCP 服务器 | Credential Access | T1557 | | WiFi 反认证攻击 | Impact | T1499 | | 检测到 DGA 域名 | C2 | T1568.002 | | C2 信标通信 | C2 | T1071 | | 密码喷洒 | Credential Access | T1110.003 | | APT 攻击活动 | Reconnaissance | T1595 | | ML / UEBA 异常 | Reconnaissance | T1595 | ## 📄 许可证 MIT License — 可免费使用、修改和分发。 *基于 Python、Scapy、Flask、scikit-learn、fpdf2 和 Rich 构建。*
标签:Apex, APT攻击检测, ARP欺骗, CISA项目, Clean Code, Cloudflare, DDoS防护, DNS隧道, Flask, HTTP注入, IP 地址批量处理, IP封禁, MITRE ATT&CK, PDF报告生成, PE 加载器, PoC, Python, Scapy, SQLite, SSH隧道, Telegram机器人, Tor检测, UEBA, VPN检测, Web管理面板, 入侵检测系统, 勒索软件检测, 单文件应用, 告警系统, 地理封禁, 威胁情报, 孤立森林, 安全数据湖, 安全运营中心, 实时威胁检测, 开发者工具, 异常检测, 挖矿木马检测, 插件系统, 支持向量机, 无后门, 暗网流量检测, 暗黑模式, 暴力破解, 机器学习, 杀伤链, 横向移动, 用户与实体行为分析, 端口扫描检测, 编程规范, 网络安全, 网络攻击检测, 网络映射, 网络防护, 自动化防御, 蜜罐与防御, 逆向工具, 速率限制, 隐私保护