glantheman/Mini-SIEM

GitHub: glantheman/Mini-SIEM

一款基于 Streamlit 构建的本地隐私友好型轻量 SIEM 工具,支持多种日志格式的导入、筛选、透视和威胁狩猎调查。

Stars: 0 | Forks: 0

# Mini-SIEM 在浏览器中进行本地且友好的日志筛选与威胁狩猎。上传 **NDJSON**、**JSON**、**CSV/TSV** 或基于行的 **.txt/.log** 文件;通过过滤器、透视、时间线和详细信息面板来探索事件。 ## 功能 - **数据接入**:NDJSON(包含 Elasticsearch 风格的 `_source`)、JSON 数组、带有类似 ECS 列别名的 CSV/TSV、每行一个事件的纯文本 - **调查**:智能列透视、字段枢纽、包含/排除过滤器、IOC 粘贴、自由文本搜索(默认列或所有字段) - **UI**:事件流 + 可选的详细信息面板、概览/时间线(多关键字 OR 过滤器、去重计数)、调查标签页(信号、实体、案例笔记) - **图表**:带有双轴 **时间** 和 **日期** 的 Altair 时间线 ## 环境要求 - Python **3.10+** - 依赖项:参见 [`requirements.txt`](requirements.txt) ## 安装说明 ``` python -m venv .venv ``` **Windows (PowerShell)** ``` .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt ``` **macOS / Linux** ``` source .venv/bin/activate pip install -r requirements.txt ``` ## 运行 ``` streamlit run app.py ``` 然后打开终端中显示的 URL(通常为 `http://localhost:8501`)。 ## 配置 - **主题**:[`.streamlit/config.toml`](.streamlit/config.toml) — 深色主题和强调色 - **Streamlit 密钥**:如果你添加了 `st.secrets`,请在本地创建 `.streamlit/secrets.toml` — 它已被 **gitignored**;请勿提交密钥 ## 仓库结构 | 路径 | 用途 | |------|--------| | `app.py` | Streamlit 入口点 | | `siem/` | 解析、过滤器、扁平化、透视、图表 | | `.streamlit/config.toml` | 应用/主题默认值(可安全提交) | | `sample_logs.ndjson` | 用于冒烟测试的极小示例 | ## 安全与隐私 - **本仓库**仅旨在包含通用的 UI/主题设置和**虚构的**示例数据(`sample_logs.ndjson` 使用了 [RFC 5737 文档 IP](https://datatracker.ietf.org/doc/html/rfc5737) 以及占位符主机/用户名)。 - 请勿提交真实的事件导出数据、凭据、客户数据或 `.streamlit/secrets.toml`。 - 可选设置应放在**环境变量**或**本地** `secrets.toml` 中(两者均通过 `.gitignore` / `.env` 进行了 gitignored 处理)。 - 在推送到 GitHub 之前,请快速搜索意外的密钥,例如使用 `git grep -i password` 或使用你组织的密钥扫描工具。 ## 许可证 [MIT](LICENSE)
标签:Kubernetes, Python, Streamlit, 安全运营, 扫描框架, 无后门, 访问控制, 逆向工具