LatensSyN/vespera
GitHub: LatensSyN/vespera
Vespera 是基于 Wazuh 与本地 LLM 的 AI 驱动 SOC 告警管道,解决安全事件富化与研判的自动化与隐私问题。
Stars: 0 | Forks: 0
# Vespera
**版本 0.3.0** · AI 驱动的 Wazuh SOC 告警管道 — 本地 LLM 分析、威胁情报丰富化,以及富 HTML 邮件报告。
## 这是什么?
`vespera` 将 Wazuh 告警转化为**可操作、经过丰富化的安全报告**,直接发送到你的收件箱 —— 无需外部 AI SaaS,完全掌控数据与模型。
源自拉丁语 *vesper*,意为“晚间的守望”。
**因为你的 SOC 从不休息。**
### 流水线概览
```
Wazuh Alert (JSON)
│
├─► Active Response: ip-enrich.py ──► AbuseIPDB
│ └─► Score / country / ISP ──► chains to ollama-alert.py
│
├─► Integration: custom-vt-check ──► vt-check.py ──► VirusTotal (FIM "added")
│ └─► Detection score ──► ollama-alert.py when hot
│
├─► wazuh_to_opencti.py ──► OpenCTI (optional)
│
└─► alert-watcher.py (vespera-watcher systemd service)
└─► ollama-alert.py ──► Ollama (local LLM)
└─► HTML email report → SOC inbox
```
### 功能特性
- **按告警类型自适应布局**:Suricata、SSH、FIM、Windows、通配
- **威胁情报**:AbuseIPDB + VirusTotal(SQLite 缓存,去重)
- **AI 判决**:通过 Ollama 提供;强制判决(若 VT ≥ 5/76 或 AbuseIPDB ≥ 80/100)
- **多语言支持**:`LOCALE=en|fr|es` — HTML 报告字符串、Ollama 提示词与富化判决行
- **HTML 附件**:便于归档或导出 PDF
- **一键安装**:交互式向导、自动修复与流水线测试
## 截图
**安装**
**设置**
**设置 Ollama 报告**
**验证步骤**
**输出电子邮件报告测试**
**最终报告的局部预览**
## 系统要求
| 组件 | 版本 | 说明 |
|------|------|------|
| Wazuh 管理器 | 4.x | Docker(推荐)或裸机 |
| Ollama | 当前版本 | 默认 `llama3.2:3b`;内存 ≥ 16 GB 时使用 `llama3.1:8b` |
| Python | 3.9+ | 包含在 Wazuh 管理器镜像中 |
| OpenCTI | 5.x+ | 可选 |
**免费 API 密钥**:[VirusTotal](https://www.virustotal.com/gui/join-us) · [AbuseIPDB](https://www.abuseipdb.com/register)
## 快速安装
```
git clone https://github.com/LatensSyN/vespera.git
cd vespera
./install.sh # interactive wizard + auto-deploy
```
如果已有 `config/config.py`:
```
./install.sh --quick
```
`--quick` 会自动检测 Wazuh 管理器容器,部署所有文件,将 Vespera XML 合并到 `ossec.conf`(幂等操作),安装可选规则,部署 `alert-watcher.py` 与 `vespera-watcher` systemd 服务,并重启 Wazuh。
如需覆盖容器名称:
```
WAZUH_CONTAINER=single-node-wazuh.manager-1 ./install.sh --quick
```
## 安装后操作
```
# 验证一切是否正常工作
./install.sh --validate
# 运行真实的端到端流水线测试(注入警报,等待邮件)
./install.sh --test-mail
# 修复损坏的安装而无需完全重新部署(dovecot、ossec.conf、watcher 服务)
./install.sh --repair
```
## install.sh 参数
| 参数 | 操作 |
|------|------|
| *(无)* | 交互式向导 + 自动部署 |
| `--quick` | 使用已有 `config.py` 部署(自动检测容器、合并、规则、启动 watcher 并重启) |
| `--setup` | 仅重新运行配置向导 |
| `--validate` | 安装后健康检查(integratord、Ollama、SMTP、配置、watcher、ossec.conf) |
| `--test-mail` | 注入 Level-12 测试告警,等待 Ollama,确认邮件投递 |
| `--repair` | 自动修复 Dovecot 邮件目录、ossec.conf 双重锁定,并部署 watcher 服务 |
| `--docker-only` | 仅将文件复制到管理器容器 |
| `--bare-only` | 仅将文件复制到本地 `/var/ossec` |
| `--merge-ossec` | 将 Vespera XML 块合并到 `ossec.conf` |
| `--install-rules` | 安装 `config/custom-rules.xml` → `etc/rules/0_vespera.xml` |
| `--restart-wazuh` | 在容器中重启 Wazuh |
| `--locale en\|fr\|es` | 在复制前设置 `LOCALE` 到 `config/config.py` |
| `DRY_RUN=1` | 打印命令但不执行 |
## 配置
所有管理器端 Python 模块读取 **`/var/ossec/integrations/config.py`**(从 `config/config.example.py` 部署)。
| 设置 | 说明 |
|------|------|
| `OLLAMA_MODEL` | 例如 `llama3.2:3b` 或 `llama3.1:8b`;向导自动检测已安装模型 |
| `OLLAMA_URL` | 指向 `/api/generate` 的完整 URL;Docker 中请使用 `http://host-gateway:11434/api/generate` |
| `SMTP_HOST` | 若 Postfix 在 Docker 主机运行,请使用 `host-gateway` |
| `MAIL_TO` | SOC 收件人;向导自动检测 Postfix 的 `mydomain` |
| `LOCALE` | `en`、`fr` 或 `es` |
| `MIN_ALERT_LEVEL` | 处理的最小 Wazuh 告警等级(默认:10) |
| `DB_PATH` | SQLite 缓存路径(`/var/ossec/var/vespera-cache.db`) |
完整参考:[docs/configuration.md](docs/configuration.md)
## 项目结构
```
vespera/
├── VERSION
├── install.sh # wizard, deploy, validate, repair, test-mail
├── setup.sh # shortcut → install.sh --setup
├── scripts/
│ ├── vespera-merge-ossec.py # idempotent XML merge into ossec.conf
│ └── apply-postfix.sh # deploy config/postfix-main.cf → /etc/postfix/main.cf
├── config/
│ ├── config.example.py # template — copy to config.py and fill secrets
│ ├── ossec-integration.xml # custom-ollama, custom-vt-check integration blocks
│ ├── ossec-active-response.xml # vespera-ip-enrich active response
│ ├── custom-rules.xml # optional Suricata + FIM rules (IDs 100200–100300)
│ └── postfix-main.cf.example # Postfix template for local lab delivery
├── integrations/
│ ├── ollama-alert.py # main pipeline: enrich → Ollama → HTML email
│ ├── alert-watcher.py # tails alerts.json, drives pipeline (Wazuh 4.14+ workaround)
│ ├── custom-ollama # Wazuh integrator wrapper
│ ├── custom-vt-check # Wazuh integrator wrapper → vt-check.py
│ └── locales/ # i18n strings (en, fr, es)
├── active-response/
│ ├── ip-enrich.py # AbuseIPDB enrichment (active response)
│ └── vt-check.py # VirusTotal hash check (FIM active response)
├── bridge/
│ └── wazuh_to_opencti.py # optional OpenCTI forwarding service
└── docs/
├── installation.md
├── configuration.md
├── smtp.md
├── smtp-lan-linux.md
├── thunderbird.md
├── tutorial.md
├── logo.svg
├── vespera-bridge.service
├── test-alerts/ # 7 sample JSON alerts for testing
└── screenshots/
```
## 路线图
- [ ] 本地 YARA 扫描集成
- [ ] Slack / Teams / Telegram 通知
- [ ] 告警历史 UI
- [ ] URLhaus URL 信誉
- [ ] 更丰富的 MITRE 映射(针对自定义规则)
- [ ] 可选 Docker Compose 栈
## 支持
## 许可证
MIT — 参见 [LICENSE](LICENSE)。
## 免责声明
按原样提供,仅用于教育与家庭实验室用途。请遵守第三方 API 条款。在生产环境部署前务必测试规则。
标签:AbuseIPDB, AI安全分析, AI风险缓解, Ask搜索, FIM监控, FTP漏洞扫描, HTML报告, i18n多语言, IP信誉, LLM评估, Ollama, OpenCTI, PB级数据处理, SOC告警, SOC工具, SQLite缓存, SSH监控, Suricata, VirusTotal, Wazuh集成, Windows监控, 主动响应, 去重, 威胁情报, 安全可视化, 安全报告, 安全管道, 安全编排, 安全运维, 开发者工具, 本地AI推理, 本地大模型, 漏洞发现, 现代安全运营, 网络威胁检测, 自动化响应, 自适应布局, 逆向工具, 邮件告警