ayu0811kr/Log-analysis-Intrusion-Detection-Tool
GitHub: ayu0811kr/Log-analysis-Intrusion-Detection-Tool
SENTINEL-X 是一个基于 Python 的 SOC 级日志分析与入侵检测系统,结合启发式规则和机器学习实现实时威胁检测与可视化告警。
Stars: 0 | Forks: 0
# SENTINEL-X SOC 指挥中心与 Intrusion Detection System (IDS)
SENTINEL-X 是一个生产就绪、高度模块化的网络安全日志分析与 Intrusion Detection System,采用强大的 **Python + Streamlit + SQLite** 后端构建,集成了实时 syslog 解析、启发式关联、Scikit-learn Machine Learning 事件分类以及自动化合规报告功能。
## 🚀 架构概述
```
+-----------------------------+
| Raw System Log Files (.log) |
+--------------+--------------+
|
v [Ingestion Stream]
+--------------+--------------+
| LogParser (parser.py) | <--- SQLite (soc_dashboard.db)
+--------------+--------------+
|
v [Structured Entities]
+--------------+--------------+
| IntrusionDetector |
| (detector.py) |
+-------+--------------+------+
| |
| [Heuristics] | [ML Isolation Forest]
v v
+-----------------------------+
| Real-Time Security Core |
+--------------+--------------+
|
v [Alert Packages]
+--------------+--------------+
| Streamlit SOC UI (app.py) | <--- ReportLab PDF Engines
+-----------------------------+
```
## 🛠️ 核心架构特性
1. **用户登录身份验证**:
- 集成的密码验证机制,与预置的 SQL 操作员表凭据匹配(`admin` / `admin123`)。
- 安全的操作员内存寄存器,用于跟踪当前活跃的时间线会话操作员呼号。
2. **持久化 SQLite 关系型数据库**:
- 高性能、低延迟的关系型 SQLite 引擎集成(`soc_dashboard.db`)。
- 安全地索引已解析的历史系统日志、告警注册源以及管理员会话列表。
3. **Machine Learning 异常检测引擎**:
- 内置的 **Scikit-learn Isolation Forest** 模型,映射多维参数:访问时间、事件类型分类、握手状态、字节大小长度以及 IP 密度得分。
- 无监督的异常评分机制,用于识别罕见的、在统计学上异常的黑客操作(例如,database SQL 扫描或凭据转储 payload)。
4. **实时日志摄取**:
- 自动化轮询周期。自动检测 syslog 文件中的新增行,并在不中断控制台的情况下重新计算全局注册的合规风险指数(0-100 分制)和指标。
5. **分析报告输出**:
- **ReportLab PDF 引擎**:构建包含元结构、风险态势和事件记录的自定义样式合规文件。
- **CSV 导出工具**:标准结构化的事件文件导出。
## 📁 工作区布局
```
├── app.py # Streamlit SOC primary visual layout dashboard
├── parser.py # Relational SQLite database parser & credentials manager
├── detector.py # Intrusion Engine rules & unsupervised Isolation Forest
├── utils.py # Posture calculators, CSV packers, & ReportLab PDF compiler
├── requirements.txt # Python runtime packages indices
└── logs/
└── sample.log # Active logs ingestion file parsed dynamically by SIEM core
```
## 💻 本地工作区安装(VS Code 指南)
### 前置条件
确保您的工作站上已安装 **Python 3.8+**。
### 步骤 1:在 VS Code 中打开工作区
打开 VS Code,选择 **File -> Open Folder**,然后加载此仓库目录。
### 步骤 2:建立虚拟环境
打开 VS Code 终端(`Ctrl + Shift + \``)并初始化一个隔离的虚拟环境:
```
# macOS/Linux
python3 -m venv .venv
source .venv/bin/activate
# Windows (Command Prompt)
python -m venv .venv
.venv\Scripts\activate.bat
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
```
### 步骤 3:安装所需的安全依赖包
从 `requirements.txt` 安装锁定的依赖项:
```
pip install -r requirements.txt
```
### 步骤 4:启动命令终端
执行 Streamlit 应用程序:
```
streamlit run app.py
```
*VS Code 将自动在 `http://localhost:8501` 开启一个本地服务器通道,以便在您的原生浏览器中显示 SOC Incident 工作区。*
## ☁️ 部署到 Streamlit Cloud
Streamlit Cloud 允许您免费部署并托管此 SOC 管理控制台。
### 步骤 1:将仓库推送到 GitHub
创建一个 GitHub 仓库并推送此项目工作区:
```
git init
git add .
git commit -m "feat: complete upgraded Sentinel-X SOC dashboard"
git branch -M main
git remote add origin https://github.com/YOUR_USER/sentinel-x-soc.git
git push -u origin main
```
### 步骤 2:访问 Streamlit Community Cloud
1. 前往 [share.streamlit.io](https://share.streamlit.io/) 并使用您的 GitHub 登录信息点击 **Sign In**。
2. 登录后,点击 **New app** 按钮。
### 步骤 3:配置云端参数
填写表单字段:
- **Repository**:`YOUR_USER/sentinel-x-soc`
- **Branch**:`main`
- **Main file path**:`app.py`
- 点击 **Deploy!**
*Streamlit Cloud 将自动扫描 `requirements.txt`,在托管的 Linux container 中安装 Scikit-learn、ReportLab 和 Plotly,在几分钟内创建您远程的 SOC command console。*
*根据 NIST SP 800-61 Computer Security Incident Handling Guide 指南的要求创建。*
标签:Apex, Kubernetes, Python, Streamlit, 安全运营, 扫描框架, 无后门, 机器学习, 网络安全, 访问控制, 逆向工具, 隐私保护