softwacar/soc-monitor

GitHub: softwacar/soc-monitor

一个基于Python和Flask的实时安全运营中心仪表板,通过模拟服务器日志和基于规则的威胁检测引擎,为安全培训和演示提供直观的可视化监控体验。

Stars: 0 | Forks: 0

# ⚡ SOC Monitor — 安全运营中心仪表板 ![Python](https://img.shields.io/badge/Python-3.10+-blue?style=flat-square&logo=python) ![Flask](https://img.shields.io/badge/Flask-2.x-black?style=flat-square&logo=flask) ![Real-Time](https://img.shields.io/badge/Real--Time-Live%20Dashboard-red?style=flat-square) ![Threat Detection](https://img.shields.io/badge/Threat%20Detection-Active-orange?style=flat-square) SOC Monitor 是一个实时安全运营中心仪表板,可模拟实时威胁检测、攻击监控和事件响应。它生成逼真的服务器日志,使用基于规则的检测规则识别攻击模式,并在全球攻击热力图上可视化威胁态势。 ## 🚀 功能特性 - 📡 **实时事件流** — 包含 AUTH_FAIL、AUTH_SUCCESS、PORT_SCAN、SUSPICIOUS_TIME 事件的实时日志流 - 🚨 **威胁检测引擎** — 自动检测暴力破解和端口扫描 - 🌍 **攻击源热力图** — 带有实时攻击源标记和弹窗的世界地图 - 🚫 **手动 IP 封禁** — 直接从仪表板中封禁或加白 IP - ✓ **告警确认** — 关闭并确认活动告警 - 👤 **高频被攻击用户名** — 最常受攻击用户名的条形图 - 📊 **成功与失败比例** — 认证结果的实时饼图 - 📋 **会话日志** — 所有登录会话和管理员操作的实时日志 - 📈 **事件时间轴** — 随时间变化的事件频率实时图表 - ⬇ **导出 CSV** — 将 IP 报告和告警日志导出为 CSV - 🔴 **严重告警闪烁** — CRITICAL 告警时全屏红光闪烁 - 🔊 **声音告警** — 针对 CRITICAL 和 HIGH 告警的区分音效 - 🔔 **浏览器通知** — 即使在标签页未激活时也能接收桌面通知 - 🌙 **暗黑 / 白天模式** — 在主题之间切换 - ⛶ **全屏模式** — 专为 SOC 展示屏幕设计 - ⚡ **每 60 秒攻击计数器** — 实时攻击频率计数器 ## 📸 屏幕截图 ### 仪表板概览 — 严重威胁级别 ![Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/9c212e629c114524.png) ### IP 威胁追踪器与会话日志 ![IP Tracker](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/55ec6a4ccf114530.png) ## 🧠 工作原理 ``` Background Engine (runs every 0.8–2s) ↓ Log Generator → Simulates realistic server events ↓ Threat Detection Engine ↓ ┌─────────────────────────────────┐ │ Brute Force Detection │ 5+ failed logins from same IP │ Port Scan Detection │ 8+ requests in 30 seconds │ Suspicious Time Detection │ Login at unusual hours └─────────────────────────────────┘ ↓ REST API → Frontend Dashboard (updates every 2s) ``` ## 🗂️ 项目结构 ``` soc-monitor/ │ ├── app.py # Flask backend, log generator, threat detection engine │ ├── templates/ │ └── index.html # Dashboard UI │ ├── static/ │ ├── style.css # Styling (Light + Dark mode) │ └── script.js # Frontend logic, charts, map, real-time updates │ └── README.md ``` ## ⚙️ 安装与设置 ``` # Clone 仓库 git clone https://github.com/softwacar/soc-monitor.git cd soc-monitor # 创建 virtual environment python -m venv venv venv\Scripts\activate # Windows # 安装 dependencies pip install flask flask-cors # 运行 application python app.py ``` 在浏览器中打开 `http://127.0.0.1:5000` ## 🔍 威胁检测规则 | 规则 | 条件 | 严重性 | |------|-----------|----------| | 暴力破解 | 同一 IP 5 次以上登录失败 | CRITICAL | | 端口扫描 | 30 秒内 8 次以上连接尝试 | HIGH | | 可疑时间 | 在 22:00–06:00 之间登录 | HIGH | | 认证失败 | 单次登录失败尝试 | MEDIUM | ## 🌍 模拟攻击源 | IP | 国家/地区 | 类型 | |----|---------|------| | 185.220.101.45 | 🇷🇺 俄罗斯 | 攻击 | | 103.21.244.0 | 🇨🇳 中国 | 攻击 | | 45.33.32.156 | 🇺🇸 美国 | 攻击 | | 91.108.4.0 | 🇩🇪 德国 | 攻击 | | 89.248.167.0 | 🇺🇦 乌克兰 | 攻击 | | 198.51.100.0 | 🇳🇱 荷兰 | 正常 | | 203.0.113.0 | 🇰🇷 韩国 | 正常 | ## 🛡️ API 端点 | 端点 | 方法 | 描述 | |----------|--------|-------------| | `/api/logs` | GET | 实时事件日志 | | `/api/alerts` | GET | 活动安全告警 | | `/api/stats` | GET | 仪表板统计数据 | | `/api/ip-summary` | GET | IP 威胁追踪器数据 | | `/api/heatmap` | GET | 攻击源坐标 | | `/api/usernames` | GET | 高频被攻击用户名 | | `/api/session-log` | GET | 会话活动日志 | | `/api/block` | POST | 封禁 IP 地址 | | `/api/whitelist` | POST | 将 IP 地址加入白名单 | | `/api/acknowledge` | POST | 确认告警 | | `/api/export/csv` | GET | 将 IP 报告导出为 CSV | | `/api/export/alerts-csv` | GET | 将告警导出为 CSV | ## 🏗️ 技术栈 - **后端:** Python, Flask, Flask-CORS - **前端:** HTML5, CSS3, 原生 JavaScript - **地图:** Leaflet.js (OpenStreetMap + CARTO 图块) - **图表:** 自定义 Canvas API - **通知:** Web Notifications API - **音频:** Web Audio API ## 📄 许可证 MIT License — 可自由使用和修改。
标签:AMSI绕过, Flask, IP封堵, Python, SOC大屏, Syscall, Web开发, 免杀技术, 告警管理, 威胁检测, 安全仪表盘, 安全分析与可视化, 安全态势感知, 安全运营中心, 安全运营工具, 插件系统, 攻击模拟, 攻击溯源, 数据可视化, 无后门, 暴力破解检测, 热力图, 端口扫描检测, 网络安全, 网络安全项目, 网络映射, 自定义脚本, 逆向工具, 隐私保护, 驱动签名利用