AnythingIP/RocketLogAI

GitHub: AnythingIP/RocketLogAI

RocketLogAI 是一个完全离线运行的本地 syslog SIEM 平台,利用本地大模型进行实时威胁检测并与智能家居深度集成。

Stars: 0 | Forks: 0

# RocketLogAI v2.0 (由 AnythingIP 提供) **本地优先安全平台 (个人爱好 / 家庭实验室)** — syslog 监控、AI 威胁检测、防护性修复、WAF/AV 防护盾以及移动助手。[MIT 许可证](LICENSE) · [免责声明](DISCLAIMER.md) — 无任何担保,使用风险自负。 **网站:** [anythingip.github.io/RocketLogAI](https://anythingip.github.io/RocketLogAI/) · **最新版本:** [v2.0.0](https://github.com/AnythingIP/RocketLogAI/releases/tag/v2.0.0) ## v2 生态系统 | 产品 | 描述 | |---------|-------------| | **RocketLogAI** | 核心 syslog 服务器、AI 助手、设备管理、每日简报、配置 | | **RocketRemediate** | 模拟运行修复、审批工作流、备份、回滚 | | **RocketShield** | 针对解密流量的 WAF + AV、家长控制 (串联/SPAN) | | **RocketAI Mobile** | iOS/Android/TV API — 二维码配对、同步、远程 PC/Mac 控制 | **v2 新特性:** 统一的 AI 大脑 (MCP + 向量 RAG)、UEBA 异常检测、完整的审计日志、Prometheus 指标、组织任务、分区块保存配置、Helm chart、pytest CI、pfSense/OPNsense/Wazuh 集成。 有关完整的架构,请参阅 [docs/architecture.md](docs/architecture.md)。 **AI 驱动的本地 syslog 服务器 + 安全分析器**,使用离线 LLM (LM Studio、Ollama 等) 实时检测威胁和异常。 - 接收 syslog (UDP + TCP) - 用于常见攻击的快速确定性规则引擎 - 将可疑日志发送到您的本地 LLM 进行深度分析 - 将所有内容存储在 SQLite 中 - 零云端,零数据泄露 - **完全离线的 IP 地理定位** (可选免费的 MaxMind GeoLite2 数据库) - **深度的 Home Assistant 集成** — 利用您的实际设备丰富威胁详情,并能够在 HA 内部触发丰富的告警 - **主动心跳监控** — 不仅仅是端口检查。验证是否运行了*正确*的网站版本、SSH 是否为最新等。过期或宕机的服务会成为第一类威胁,进入 LLM 分析、告警和 HA 自动化流程。安全修复操作(例如“更新 SSH”)可以在人工确认后触发。 - **对话式设备操作器 (AI 助手中的第三阶段)** — 像使用 Grok Build 或 Open Interpreter 一样,使用自然英语与 🤖 助手对话: - "使用此 token ghp_xxx 连接到 GitHub 并创建一个总结今天日志的 issue" - "下载最新的 Wireshark 并将其部署到这 3 台计算机上" - "创建一个 PowerPoint 演示文稿,为高管总结网络活动" - "使用此密码连接到我的 Home Assistant 并打开灯" - "分析为什么防火墙管理员在凌晨 3 点登录" 在严格的安全控制器 (`logsentinel/ai_assistant/controller.py`) 内部由 Open Interpreter (主要后端) 提供支持。始终先展示详细的操作计划,任何更改都需要明确确认,接受并安全存储来自对话的凭据,支持动态工具、操作系统适配、自动备份、回滚指导和完整的审计日志。安装 `open-interpreter` (以及可选的 `python-pptx`) 以获得最大能力。每一层都将安全放在首位。 - 修复钩子虽然存在,但在默认情况下是**禁用且受到严密保护的** ## 理念 大多数“SIEM + AI”产品都会回传数据或需要昂贵的许可证。 RocketLogAI 则完全相反:一切都在您的机器上运行,针对您的本地模型,具有完全的透明度,并在任何自动化响应周围设有强大的安全防护。(来自 AnythingIP) ## 快速开始 **最简单的方法:** 克隆并运行设置向导 — 它会处理安装、升级、Docker、备份和 Python 3.12 选择: ``` git clone https://github.com/AnythingIP/RocketLogAI.git && cd RocketLogAI && ./scripts/setup.sh ``` ``` git clone https://github.com/AnythingIP/RocketLogAI.git; cd RocketLogAI; .\scripts\setup.ps1 ``` ### 1. 安装 (手动) ``` pip install -e ".[web,v2]" # core v2 (recommended; add open-interpreter on Python 3.10-3.12) # 或最小化: pip install -e ".[web]" # dashboard + core (no vector DB / open-interpreter) # 或仅安装绝对最简核心 pip install -e . # 或(如果您无法使用 editable install) pip install -r requirements.txt ``` ### 2. 启动 LM Studio (或兼容 OpenAI 的 Ollama) - LM Studio:加载一个具备良好安全意识的模型 (Qwen2.5-14B、Llama-3.1-8B、Command-R 等) - 启用本地服务器 (通常是 `http://localhost:1234/v1`) ### 3. 使用默认配置运行 (非特权端口) ``` logsentinel run ``` 它将监听 UDP/TCP 5140 端口,并使用在 LM Studio 中加载的任何模型。 ### 4. 向其发送一些测试日志 ``` # 在另一个终端中 echo '<13>Mar 5 12:34:56 myserver sshd[1234]: Failed password for root from 10.0.0.55 port 22' | nc -u -w1 127.0.0.1 5140 ``` 观察分析机制的启动。 ## 进阶:完全离线的地理定位 + Home Assistant 集成 (杀手级功能) RocketLogAI 现在可以深入理解您的实际环境: - **离线地理定位** — 将免费的 MaxMind GeoLite2-City.mmdb 放置在任何合理的路径下,每个威胁都会自动获得国家/城市/纬度/经度信息,且无需任何互联网调用。 - **Home Assistant 超能力** — 拉取您的设备注册表,将日志中的 IP/MAC 与真实的灯泡、传感器、开关等匹配,并在威胁旁边显示“🏠 卧室温度传感器”。 - 当您点击 **“确认威胁”** 时,它可以: - 在 HA 中创建 persistent_notification - 触发自定义 `logsentinel.major_threat` 事件 (构建您想要的任何自动化) - 调用您的移动通知服务 - 更新实时传感器 (`sensor.logsentinel_last_threat` 等) 有关完整的 `home_assistant:` 配置块,请参阅 `example-config.yaml`。 这使得 RocketLogAI 成为完美的本地“有人正在暴力破解我的 IoT 设备”的看门狗,它能够真正与您的智能家居进行交互。 ## 转发 Home Assistant 日志 (插件、核心、Supervisor、传感器) RocketLogAI 的深度 HA 集成会从 HA 拉取设备信息,并可以将告警推回 HA。对于另一个方向 — 获取 HA 及其插件产生的日志 (传感器错误、插件崩溃、zigbee/zwave/mqtt 噪音、supervisor 事件、更新消息等) — 请使用以下方法: 对于 Home Assistant OS / Supervised 来说,最好的解决方案是专用的 **Syslog 插件**: 1. 在您的 HA UI 中:**设置 → 插件 → 插件商店** → 点击右上角的三个点 (⋮) → **仓库**。 2. 添加仓库:`https://github.com/mib1185/ha-addon-syslog` 3. 安装名为 **“Syslog”** 的插件 (作者 mib1185)。 4. 打开其 **配置** 标签页并设置: syslog_host: "192.168.20.138" # ← 运行 RocketLogAI 的主机的局域网 IP (可通过 5140 访问) syslog_port: 5140 syslog_protocol: udp # 建议大流量使用 udp;tcp 和 tls 也可以 syslog_ssl: false syslog_ssl_verify: false 5. **启动**插件。(通常不需要切换保护模式开关。) 一旦运行,来自以下位置的日志: - Home Assistant Core - Supervisor - 所有插件 (包括那些发出传感器数据、错误、状态的插件) - 主机系统日志 (docker、kernel 等) ...将作为标准的 syslog 消息转发到 RocketLogAI。 您将看到它们带有以下特征: - `hostname`:通常是 `homeassistant`、`hassio` 或插件容器名称 - `appname` / `tag`:`homeassistant`、`supervisor`、`addon_` 等 在 `config.yaml` 的 `rules.custom_patterns` 下创建自定义规则,用于处理诸如插件更新失败、频繁的传感器错误或来自特定插件的身份验证问题等情况。 **关于您的 IP 的说明**:当 RocketLogAI 通过 `docker compose` (或原生) 在此主机上运行时,请使用机器的局域网 IP (不要使用 localhost 或 docker bridge)。在当前数据卷所在的主机上,通常是 `192.168.20.138:5140` (UDP)。请根据您的网络进行调整。确保在 docker-compose.yml 中发布了该端口。确保在 docker-compose.yml 中发布了该端口。 对于纯容器化 (非 HAOS) 的 HA 安装,您也可以使用指向相同地址的 Docker `log-driver: syslog` 选项。 这加上配置中现有的 `home_assistant:` 区块,可以为您的智能家居提供全方位的可观测性和响应能力。 **设置后的快速验证**:运行 `python scripts/test_ha_forward.py --host YOUR-ROCKET-IP --port 5140` (它会发送带有标记的逼真插件/核心日志)。然后检查 Web UI **/logs**,在 `data/logsentinel.log` 中查看带有该标记或 `homeassistant/addon_` 的内容,或者 (最佳方式) 询问 AI 助手“你最近看到了哪些 Home Assistant 插件日志或 GROK 测试消息?”。当您重启任何 HA 插件时,真实流量也会出现。有关完整的 HA 部分和验证步骤,请参阅 docs/USAGE.md。(我们已经确认 mib1185 插件 + 您的 HA 实例已经成功交付了日志 — 例如,`homeassistant/addon_a0d7b954_nut` UPS 消息已被解析并进行了实时 LLM 分析。) ## 配置 复制示例文件: ``` logsentinel example-config -o config.yaml ``` 编辑 `config.yaml`: - 如果您想要真正的 syslog,请将端口更改为 514 (需要 root / `sudo` / launchd socket) - 将 `llm.base_url` 指向您的本地服务器 - 调整分析频率和严重性阈值 - **在您进行广泛测试之前,请保持 `remediation.enabled: false`** ## 架构 ``` Syslog UDP/TCP ↓ Parser (RFC3164 + RFC5424 + best-effort) ↓ Storage (SQLite) ↓ Rule Engine (fast regex + heuristics) ↓ Analyzer (periodic) ├── High-value logs → Local LLM (structured JSON) └── Rule matches → Threat store ↓ Alerting (console + webhooks) ↓ Remediation Engine (stub, disabled by default) ``` ## 命令 | 命令 | 描述 | |--------------------|------------------------------------------| | `logsentinel run` | 完整守护进程 (服务器 + 持续分析) | | `logsentinel analyze` | 对最近的日志进行一次性分析 | | `logsentinel logs` | 显示最近的原始日志 | | `logsentinel threats` | 显示 AI + 规则检测结果 | | `logsentinel status` | 数据库统计 + 健康检查 | | `logsentinel example-config` | 生成带注释的配置文件 | ## 安全性与注意事项 **修复 / “自动修复”** “连接到设备并进行修复”的功能目前有意**尚未**以可用的方式实现。 - `remediation.enabled` 默认为 `false` - 即使启用,它也默认为 `dry_run: true` - 第三个安全措施:`require_confirmation: true` 任何真正的自动化响应系统都必须具备: - 明确的主机 + 操作白名单 - 完整的审计追踪 - 熔断机制 - 人工审批工作流 - 经过测试的回滚程序 在实现这些功能并且您亲自审查了代码之前,**请勿启用修复功能**。 ## 支持的模型 (LM Studio / Ollama) 以下模型表现良好: - Qwen2.5 14B / 32B (出色的结构化输出) - Llama-3.1 8B / 70B - Command-R / Command-R+ - DeepSeek-R1 (蒸馏版) 较小的 7B 模型可以工作,但生成的 JSON 噪音较多。 ## 在真实的 Syslog 端口 (514) 上运行 在 macOS/Linux 上,您通常需要 root 或特定权限: ``` sudo logsentinel run -c /etc/logsentinel/config.yaml ``` 在 macOS 上,考虑使用 launchd plist 来保持进程活跃并绑定特权端口。 替代方案 (推荐给大多数人使用):将其保留在 5140 端口,并让您的网络设备或 `rsyslog`/`syslog-ng` 转发给它。 ## Docker (推荐用于生产环境 / 轻松部署) ### 使用 Docker Compose 快速开始 (最简单) ``` cd logsentinel docker compose up -d --build ``` 然后打开 http://localhost:8787 数据 (数据库、黑名单、学习到的设备特征、SSL 证书等) 存储在一个命名的 Docker 数据卷 (`rocketlogai_data`) 中。 ### 手动构建并运行 ``` # Build the image docker build -t rocketlogai:1.0-beta . # Run with persistent data docker run -d \ --name rocketlogai \ -p 8787:8787 \ -p 5140:5140/udp \ -p 5140:5140/tcp \ -v rocketlogai_data:/app/data \ rocketlogai:1.0-beta ``` ### 使用您自己的配置 ``` docker run -d \ -v $(pwd)/config.yaml:/app/config.yaml:ro \ -v rocketlogai_data:/app/data \ -p 8787:8787 \ rocketlogai:1.0-beta run --web ``` **注意事项:** - Web UI 默认运行在 8787 端口。 - 对于真正的 syslog 端口 514,您可能需要 `--privileged` 或 `--cap-add=NET_BIND_SERVICE` (或者只需从另一个 syslog 守护进程转发到 5140)。 - 所有学习到的数据、黑名单和生成的 SSL 证书都保存在挂载的数据卷中。 ## 未来工作 (欢迎贡献) - 正规的 Web 仪表板 (FastAPI + HTMX 或 React) - Webhook + 邮件 + Slack 告警 - 更好的结构化输出强制执行 + 少样本示例 - 响应器插件 (SSH、API、agent) - 跨时间窗口的威胁关联 - GeoIP / 丰富 (可选的离线数据库) - 导出为 STIX / MISP / Wazuh 格式 ## 许可证 MIT ## 此版本的新功能 (第 1-4 阶段已完成) **第 1-2 阶段快速修复 + 对话操作器** - 修复了侧边栏折叠 (完全向左滑动,持久化状态,更好的箭头 + 顶栏显示按钮)。 - 更好的设备图标 (感知操作系统: Windows 🪟 Linux 🐧 路由器 📡 等) + 修复了 MAC 供应商查询 (现在可以可靠地填充制造商并持久化保存)。 - 每日简报聊天移至顶部。 - AI 助手转变为安全的自然语言操作器 (通过计划 + 明确确认执行 ping/nmap/SSH/部署等操作)。 **第 3 阶段 - 极其强大的自然语言 AI 助手** - 使用 **Open Interpreter** 作为主要执行后端 (封装在位于 `logsentinel/ai_assistant/controller.py` 的严格安全控制器中)。 - 接受高级英语指令,如查询中的示例 (使用聊天中的 token 控制 HA、处理 GitHub issue、生成 PowerPoint、异常分析、软件部署等)。 - 动态工具安装 (提议将 `ensure_tool python-pptx` 等作为计划步骤)。 - 从对话中提取凭据 → 加密存储 + 复用。 - 始终先展示详细的操作计划;风险操作需要确认;自动备份 + 回滚说明;全面审计。 - 操作系统检测/适配,多步骤编排。 **第 4 阶段 - 高级身份验证与 RBAC (企业级就绪)** - 完整的 Active Directory / LDAPS 支持,带有专用的服务账户用于组查找 (不再需要赋予用户广泛的搜索权限)。 - 通过 OAuth2 + Microsoft Graph (用户 + 组成员身份) 支持 Microsoft Entra ID (Azure AD)。 - 真正的 4 级 RBAC:**查看者** (只读) → **分析师** → **操作员** (已确认的操作) → **管理员**。 - 来自 AD/Entra 的组在配置 (或 UI) 中映射到角色。最高匹配项优先。存储在会话中并进行审计。 - 为服务账户密码和 Entra 客户端密钥提供安全的加密存储。 - 显著改进的“测试域连接性” (服务绑定 + 组 + 可选的完整用户身份验证 + 已解析的角色)。 - 在敏感端点上实施 RBAC 强制执行 (操作员执行助手操作,管理员执行配置)。 - 始终提供本地管理员回退 (带有 CLI 后门 `logsentinel enable-local-login`)。 - 正确的会话登出 + 登录审计日志。 **安装程序已更新**,可拉取 `open-interpreter` + `cryptography` (用于完全加密)。 **快速完整安装:** ``` pip install -e ".[web,ai]" # includes Open Interpreter for the conversational AI Operator + crypto for new auth # 或使用更新后的 scripts/install.sh | install.ps1 | Docker ``` ### 在此版本中您应该测试的内容 **高优先级 (第 4 阶段新功能):** - AD/LDAP:服务账户绑定、组成员身份解析、角色映射、LDAPS。 - Entra ID:token/Graph 路径 + 组到角色的映射。 - RBAC:以不同组成员的身份登录并验证权限 (例如,非操作员无法确认操作;非管理员无法保存配置)。 - /config 上增强的“测试域 + 组 + 角色”按钮 (带有和不带有测试用户的情况)。 - 新密钥的加密 (通过 UI 保存后检查 config.yaml — 应该显示为 fernet:... 或类似内容)。 - /activity 中的登录审计。 **高优先级 (第 3 阶段 AI 操作器):** - /assistant 中的自然语言命令:“ping 8.8.8.8”、“显示使用 22 端口的设备”、“创建总结最近威胁的 PowerPoint”、“使用此 token ghp_xxx 登录 github 并创建一个 issue...”。 - 完整流程:查看计划 → 审查 → 确认并执行 (或模拟运行) → 结果 + 回滚提示 + 活动日志条目。 - 来自聊天的凭据被存储并可重复使用。 - 如果未安装 open-interpreter,它应该优雅地回退,但仍然显示计划。 **回归测试 / 现有功能:** - 侧边栏切换 (折叠/展开,持久化,移动端)。 - 设备页面图标 + 供应商名称。 - 每日简报布局和聊天。 - 基本的域登录仍然有效。 - 本地管理员 + TOTP + API token。 - 之前第 1-2 阶段的所有修复。 **Docker / 安装程序:** - 在 Linux/Windows 上全新安装时,使用更新后的脚本应该会拉取 open-interpreter + cryptography。 - `pip install -e ".[web,ai]"` 或 ".[full]" 应该可以正常工作。 - 带有额外扩展的 Docker 镜像构建。 在进行任何手动编辑后,请运行 `python -m py_compile logsentinel/*.py logsentinel/ai_assistant/*.py`。 ## 免责声明 **业余爱好 / 教育类软件 — 使用风险自负。** 本项目出于**娱乐目的**在 [MIT 许可证](LICENSE) 下共享。它在适用法律范围内按**“原样”**提供,**无任何担保**,AnythingIP 或贡献者**不承担任何责任**。您需对部署、安全性、合规性、备份以及任何损坏或数据丢失承担全部责任。 本内容**不**代表专业的安全、法律或 IT 建议。AI 和自动化的输出可能是错误或不安全的。切勿盲目信任检测结果或操作员计划。始终保持人工介入 (Human in the loop) — 尤其是在启用修复、远程命令或投入生产环境之前。请首先在实验室环境中进行测试。 完整法律条款:**[DISCLAIMER.md](DISCLAIMER.md)** · 安全报告:**[SECURITY.md](SECURITY.md)**
标签:AI风险缓解, AMSI绕过, DLL 劫持, WAF, 大语言模型, 威胁检测, 安全运营, 扫描框架, 本地化部署, 自定义请求头, 请求拦截, 逆向工具