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, 后端开发, 安全运营, 扫描框架, 数据可视化, 网络安全, 逆向工具, 隐私保护