LatensSyN/vespera

GitHub: LatensSyN/vespera

Vespera 是基于 Wazuh 与本地 LLM 的 AI 驱动 SOC 告警管道,解决安全事件富化与研判的自动化与隐私问题。

Stars: 0 | Forks: 0

# Vespera vespera_logo **版本 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 - **一键安装**:交互式向导、自动修复与流水线测试 ## 截图 **安装** Capture d'écran 2026-04-17 130830 **设置** Capture d'écran 2026-04-17 130923 **设置 Ollama 报告** Capture d'écran 2026-04-17 130942 **验证步骤** Capture d'écran 2026-04-17 131005 **输出电子邮件报告测试** Capture d'écran 2026-04-17 131014 **最终报告的局部预览** Capture d'écran 2026-04-17 133224 ## 系统要求 | 组件 | 版本 | 说明 | |------|------|------| | 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推理, 本地大模型, 漏洞发现, 现代安全运营, 网络威胁检测, 自动化响应, 自适应布局, 逆向工具, 邮件告警