ankit-kumar-cmd/Mini-SOC-Lab

GitHub: ankit-kumar-cmd/Mini-SOC-Lab

一个基于 Flask 和 SQLite 构建的轻量级 SOC 仪表板,通过模拟安全事件日志和威胁检测规则来提供安全监控、告警管理与合规报告功能。

Stars: 0 | Forks: 0

# Mini SOC 实验室 – 安全运营中心仪表板 这是一个企业级风格的网络安全仪表板,提供实时安全事件监控、自动化威胁检测规则解析、结构化日志查询、可视化分析仪表板以及合规性报告工具。 本仪表板采用高级的玻璃拟态暗黑网络安全主题设计,模拟了一个完全集成的安全信息和事件管理 (SIEM) 控制台。 ## 项目概述 Mini SOC Lab 旨在分析端点威胁特征、主机端口扫描、登录尝试和身份验证异常。 在初始化时,后端会自动生成**精确的 5000 条真实网络安全事件**,并通过集成的威胁关联引擎处理这些事件,以根据自定义检测规则生成高保真告警。 ### 主要功能 * **身份验证哨兵**:保护所有会话路由的标准化身份验证门户。 * **概览指挥中心**:提供高管 KPI 卡片、安全事件分布图、时间线计数器以及最近的告警/日志摘要。 * **分析深潜**:可视化图表展示了按严重程度划分的告警、按类别划分的事件、攻击者来源分布,以及一个交互式的周一至周日活动强度热力图矩阵。 * **威胁告警中心**:告警数据库管理网格,使分析师能够实时对原始 payload 详情进行排序、过滤、调查,并更新告警状态(新建、调查中、已关闭)。 * **原始审计日志查看器**:所有审计记录的详细视图,支持全文搜索、分页和多条件过滤。 * **合规报告中心**:自定义报告生成工具,允许将查询结果编译并下载为 **CSV**、**JSON**、**Excel (.xls)** 格式,或打印为整洁的 **PDF** 格式。 * **诊断设置**:动态参数配置(主题、自动刷新率、声音警告)以及原始系统健康指标(平台 OS 详情、数据库文件大小、Python/Flask 版本)。 ## 架构图 ``` +-------------------------------------------------+ | Browser Frontend | | (HTML5, Vanilla CSS, JS, Chart.js) | +--------+-------------------------------+---------+ | AJAX | File Downloads v v +---------------------------------------------------------+ | Flask Core | | (Python Backend) | +---+------------------------+------------------------+---+ | | | | Ingest | Detection | Query v v v +------------+------------+ +--------+------------+ +--------+------------+ | Log Generator | | Detection Engine | | Database | | (5000 Realistic Logs) | | (7 Correlation Rules)| | (SQLite - soc.db) | +-------------------------+ +---------------------+ +---------------------+ | Sync v +--------+------------+ | alerts.json | +---------------------+ ``` ## 文件夹结构 ``` Mini_SOC_Lab/ │ ├── main.py # Flask server and web routes controller ├── database.py # SQLite database connection setup and table schemas ├── log_generator.py # Generates exactly 5000 realistic audit events ├── detector.py # Executes threat detection rules on database records ├── soc.db # SQLite database file (generated on startup) ├── alerts.json # Export-compliant JSON copy of threat alerts ├── requirements.txt # Python environment dependencies ├── README.md # Project guide and portfolio summary │ ├── static/ │ ├── style.css # Premium dark theme and glassmorphism styling │ └── script.js # Chart.js configs, AJAX filters, and export logic │ └── templates/ ├── layout.html # Shared master template (sidebar, header, modal) ├── login.html # Standalone authorized access portal ├── overview.html # Command center dashboard ├── analytics.html # Charts layout and heatmap matrix ├── alerts.html # Security incidents management interface ├── logs.html # Raw event audit database viewer ├── reports.html # Compliance reports exporter configuration └── pdf_report.html # Print-friendly audit template (window.print() trigger) ``` ## 安装指南 ### 前置条件 * Python 3.8 或更高版本 * 标准的现代 Web 浏览器 ### 设置步骤 1. **安装依赖项**: pip install -r requirements.txt 2. **运行应用程序**: python main.py * *注意:* 启动时,脚本将自动初始化 SQLite 表,为其填充精确的 5000 条日志,处理检测规则,生成告警,启动 Flask 服务,并在 `http://127.0.0.1:5000/` 启动 Web 浏览器界面。 ## 使用指南 ### 1. 授权 使用默认的管理员凭据登录界面: * **安全 ID(用户名):** `admin` * **访问代码(密码):** `admin123` ### 2. 监控威胁 * 查看**概览**仪表板以分析当前的企业威胁评分。 * 导航至**分析**以过滤日志并检查活动趋势。 * 打开**安全告警**以对传入的威胁进行分类处理。直接从列表下拉菜单中将告警状态更新为*调查中*或*已关闭*。点击**眼睛图标**以打开 payload 详情模态框。 ### 3. 合规性导出 * 导航至**下载报告**。 * 选择报告类型(预设按钮)或构建自定义过滤结构。 * 选择导出格式:**CSV**、**PDF**、**Excel** 或 **JSON**。 * 点击**下载报告**。 ## 威胁检测规则 | 规则 ID | 名称 / 触发条件 | 目标严重程度 | 事件描述 | | :--- | :--- | :--- | :--- | | **Rule 1** | 登录失败激增 | `HIGH` | 当源 IP 记录到超过 5 次登录失败时触发。 | | **Rule 2** | 暴力破解攻击 | `CRITICAL` | 当源 IP 记录到超过 20 次尝试(成功+失败)时触发。 | | **Rule 3** | 午夜登录 | `MEDIUM` | 由凌晨 12 点至 5 点之间的任何身份验证事件触发。 | | **Rule 4** | 防火墙端口扫描 | `HIGH` | 由任何匹配的 PORT_SCAN 日志特征触发。 | | **Rule 5** | 端点恶意软件 | `CRITICAL` | 在检测到木马或反向 shell 活动时触发。 | | **Rule 6** | 权限提升 | `HIGH` | 在未经授权转换到 root (UID 0) 或发生 sudo 错误时触发。 | | **Rule 7** | 可疑位置 | `MEDIUM` | 由异常的管理地理位置登录触发。 | ## 简历与作品集描述 ### 简历描述(适用于网络安全/全栈工程师) ### GitHub 描述
标签:Flask, 后端开发, 安全运营, 扫描框架, 数据可视化, 网络安全, 逆向工具, 隐私保护