nuk3s/soc-ai

GitHub: nuk3s/soc-ai

一个自托管的 LLM 安全告警分诊系统,为 Security Onion 提供自动化告警调查、证据收集与带置信度的判定结论。

Stars: 0 | Forks: 0

soc-ai — self-hosted LLM triage for Security Onion

Apache 2.0 Python 3.12 Security Onion 3.0 1.0

soc-ai 会读取你 [Security Onion](https://securityonionsolutions.com/) 网格上的告警,并使用你自行托管的 LLM 对其进行分诊。对于每条告警,它会拉取相关事件,检查主机的其他行为,在本地威胁情报中比对指标,并在必要时从传感器解码数据包。然后,它会为你提供结论、置信度数值以及得出该结论的推理过程。 该模型运行在你自己的硬件上,处于 [LiteLLM](https://docs.litellm.ai/) 网关之后。你网络中的任何数据都不会外泄,并且除非有人类点击批准,否则 agent 绝不会更改网格上的任何内容。对于难以判定的告警,系统提供了一个可选的云端“Oracle”以获取第二意见;在你开启之前它始终处于关闭状态,并且其输入会先经过脱敏处理。
An investigation: verdict, confidence, the reasoning, recommended actions, and the timeline of how the agent got there
## 两种使用方式 **Web 控制台** 位于 `/app`,按规则显示你的告警队列,并在每条告警旁边内联展示 AI 的结论和置信度。你可以打开某个告警进行调查,或者通过自动分诊扫视整个未分诊的队列。每次调查都会生成一个可共享的永久链接。
The alerts console: a queue of detections with AI verdicts and confidence shown inline
**Security Onion 内部的按钮** —— 一个 Tampermonkey 用户脚本会在 SO 告警视图中直接植入一个“Hunt with AI”按钮,让你无需离开日常使用的网格即可进行分诊。 在底层,这两种方式运行的都是同一个 agent。对于单条告警,它会: - 读取告警上下文、相关事件(通过 OQL)以及该主机近期的告警历史; - 使用本地磁盘上的威胁情报(封锁列表、GeoIP/ASN、云前缀标记)来丰富指标; - 在 payload 至关重要时,从传感器拉取并解码原始 PCAP; - 权衡证据并写下结论,附带其置信度和判定理由; - 为你推荐可执行的写入操作(确认、升级为案例、添加评论),供你一键执行。 ## 它不会自行执行的操作 核心原则是,任何改变状态的操作都由你来掌控。 - **读取操作自由执行。** 拉取事件、上下文、丰富信息和数据包是安全的,因此 agent 无需询问即可执行。 - **写入操作需等待人类确认。** 确认告警、开启案例、留下评论 —— 这些操作只有在你点击批准后才会执行。agent 可以推荐写入操作,但无法自行执行。 - **未经你的同意,任何数据都不会离开你的网络。** 推理过程在你自己的硬件上、使用你自己的模型运行。Oracle —— 一个可选的云端第二意见 —— **默认关闭**:它是一项*按需启用*的云功能,即使你开启了它,内部主机名、用户名和 IP 也会在发送任何内容之前被脱敏。如果保持关闭,整个 pipeline 将完全留在你的网络中。 更多细节请参阅 [docs/SAFETY_MODEL.md](docs/SAFETY_MODEL.md)。 ## 快速开始 你需要一台安装了 `git` 和 `curl` 的 Linux 主机,能够连接到你的 SO 网格,以及一个至少提供一个模型的 LiteLLM 网关。`setup.sh` 会为你处理 Docker 相关操作。**首次安装者:请先浏览 [Security Onion 账户 + 防火墙前置条件](docs/SECURITY-ONION-SETUP.md)** —— 将 soc-ai 的 IP 穿透 SO 的防火墙以及授予审计日志角色,是两个最容易出问题的地方。 ``` git clone https://github.com/nuk3s/soc-ai.git && cd soc-ai ./setup.sh ``` `setup.sh` 会引导你完成连接设置,并在构建任何内容*之前*进行检查(密码错误或网关不可达会在几秒钟内报错,而不是在构建三分钟后),它允许你从网关的实时列表中选择你的模型(会通过身份验证来获取列表),生成密钥和 TLS 证书,启动整个技术栈,并打印出 URL 和管理员密码:
soc-ai install: git clone, guided ./setup.sh (SO + LiteLLM connection check, API-key + model pick, build), and the running banner with the URL and admin password
### 接下来在浏览器中处理告警 打开 `https://:8443/app`,接受自签名证书,并以 `admin` 身份登录。选择一个检测项,点击 **Hunt with AI**,观看 agent 实时进行调查 —— 它会拉取告警及其 Zeek/PCAP 上下文,丰富指标,并给出附带证据引用的结论。它推荐的任何向 Security Onion 回写的操作,都需要经过一键式的人类审批:
soc-ai web UI: sign in, open the alerts console, Hunt with AI on a detection, watch the live investigation stream, read the verdict, and approve the recommended action
完整的 Docker 选项 —— 必需的挂载、SELinux 重打标签、上游 TLS 信任 (`*_VERIFY_SSL`)、8443 端口与 SO nginx 的冲突、手动 + rsync/systemd 路径 —— 位于 **[docs/DOCKER.md](docs/DOCKER.md)** 中;SO 账户、角色和防火墙设置位于 **[docs/SECURITY-ONION-SETUP.md](docs/SECURITY-ONION-SETUP.md)** 中。 ## 工作原理
Architecture: the analyst drives soc-ai, which reads Security Onion and local intel, reasons with a local model, and writes only what a human approves
`ANALYST_MODEL` 是 agent 用于进行分诊的唯一模型 —— 可以是你的网关提供的任何模型(模型 ID 会变动,因此需要重新探测 `/v1/models`)。推理在本地进行。Oracle 路径是数据到达云 API 的唯一途径,它是可选的,并且它只能看到脱敏后的输入。 ## 文档 - [docs/WEBUI_GUIDE.md](docs/WEBUI_GUIDE.md) —— 控制台:分诊、自动分诊、调查、管理员配置页面 - [docs/AGENT_TOOLS.md](docs/AGENT_TOOLS.md) —— agent 可以调用的每个工具及其防护机制 - [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) —— 各个组件是如何协同工作的 - [docs/OQL_PRIMER.md](docs/OQL_PRIMER.md) —— agent 用于搜索的查询语言 - [docs/SAFETY_MODEL.md](docs/SAFETY_MODEL.md) —— 审批流程、审计 schema 和 Oracle 脱敏机制 - [docs/DOCKER.md](docs/DOCKER.md) · [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) —— 安装指南 - [CHANGELOG.md](CHANGELOG.md) · [CONTRIBUTING.md](.github/CONTRIBUTING.md) · [SECURITY.md](.github/SECURITY.md) ## 基于它进行开发 ``` uv sync # Python deps + dev tools uv run pytest --ignore=tests/browser # the test suite uv run mypy soc_ai # strict type check cd frontend && npm ci && npm run build # the React console ``` ## 未来规划 1.0 版本是分诊引擎加上常驻控制台。接下来:基于 RAG 的 runbook 查找、对每个分组进行多条告警分诊,以及更广泛的情报覆盖范围。进展和提案位于 issue 跟踪器中。 ## 许可证 Apache 2.0。详见 [LICENSE](LICENSE)。
标签:DLL 劫持, LLM网关, Security Onion, 告警分诊, 大语言模型, 威胁情报, 安全运营, 开发者工具, 扫描框架, 策略控制器, 自动化分析, 请求拦截, 跨站脚本