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, 安全运营, 扫描框架, 无后门, 机器学习, 网络安全, 访问控制, 逆向工具, 隐私保护