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, 安全运营, 扫描框架, 无后门, 访问控制, 逆向工具