vishal5589/jarvis-secops-assistant
GitHub: vishal5589/jarvis-secops-assistant
面向家庭 SOC 的自托管 AI 安全运营助手,自动化威胁情报收集、CVE 监控与安全简报生成,采用 fail-closed 设计并附带完整威胁模型。
Stars: 0 | Forks: 0
# J.A.R.V.I.S. — 自托管 AI 安全运营助手





## 为什么会有这个项目
SOC 分析师每天都会在重复性的信息收集上浪费数小时:浏览威胁情报 feed,检查供应商是否发布了关键的安全公告,以及重复总结相同的无用信息。我开发 J.A.R.V.I.S. 是为了**实现这些信息收集的自动化**,从而将人类的时间转移到分诊和响应上,而不是浪费在收集上。
它完全运行在我自己控制的硬件上 —— 没有第三方 SaaS 持有数据,除非得到明确许可,否则没有任何 agent 会向外发起连接。其设计理念反映了我在工作中的防御性工程方法:**最小权限、默认 fail-closed、将机密信息排除在代码之外,并记录每一个信任边界。**
## 它的功能
- **每日自动化威胁简报** — 从精选的网络安全 RSS 源(Krebs on Security、The Hacker News、Bleeping Computer、CISA 安全公告、Schneier on Security)中拉取内容进行总结,并按计划推送摘要。
- **关键产品监控** — 监控我关注的企业级安全产品(例如 PAM、网络安全、EDR/XDR、云端边缘、M365),并在 CVE 或安全公告的严重程度超过阈值(CVSS ≥ 7.0)时触发警报。
- **工具发布追踪** — 监控常见攻击/防御工具的上游发布,以便实验环境保持最新状态。
- **按需分析师助手** — 可通过聊天进行临时的内容总结、信息查找和报告撰写。
- **动态安全仪表板** — 一个自动重建的静态站点,将简报和警报呈现为一个轻量级的 SOC 门户。
## 架构
```
flowchart TD
subgraph Sources["Intel & Release Sources"]
RSS["Cybersecurity RSS feeds"]
GH["Upstream tool releases"]
ADV["Vendor advisories / CVEs"]
end
subgraph Core["Orchestration Core"]
ORCH["Agent orchestrator"]
LLM["LLM reasoning layer
(Anthropic API)"] SKILLS["Skill modules:
summarize · feed-watch · github"] end subgraph Interfaces["Interfaces"] CHAT["Chat bot"] DASH["Security dashboard
(static site)"] TUI["Terminal UI"] CRON["Scheduled jobs"] end Sources --> ORCH ORCH <--> LLM ORCH --> SKILLS Core --> Interfaces CRON --> ORCH classDef box fill:#0d1117,stroke:#30363d,color:#c9d1d9; class RSS,GH,ADV,ORCH,LLM,SKILLS,CHAT,DASH,TUI,CRON box; ``` | 层级 | 选择 | 备注 | |---|---|---| | 主机 | Dell OptiPlex 3090 Micro · Ubuntu 24.04 LTS | 本地、单租户、默认无入站暴露 | | 编排 | Agent 平台(自托管) | 协调 LLM、技能和接口 | | 推理 | Anthropic API | 专为总结工作负载选择的具有成本效益的模型 | | 交付 | 聊天机器人 · 静态仪表板 · TUI · cron | 多种读取路径,单一事实来源 | | 进程管理 | `systemd` **用户**服务配合 linger | 以非特权身份运行,注销后依然存活,无 root daemon | ## 安全工程 这是我最关心的部分,也是与防御角色最相关的部分。 **机密管理** - 源代码或配置文件中没有任何机密。所有凭证都存放在一个 `0600` 权限的 env 文件中,并在运行时通过 `systemd` drop-in override 加载到服务中。 - Token 会定期轮换并存储在所有受版本控制的文件之外。仓库提供了 `.gitignore` 和机密扫描步骤,确保永远不会提交任何敏感信息。 **最小权限** - 在 `systemd --user` 下以**非特权用户**身份运行;没有任何组件以 root 权限运行。 - 编排器的工具接口受到严格限制,具备写入能力的操作都受到显式策略的管控。 **Fail-closed 网络** - 默认姿态是不暴露任何入站端口。任何远程访问都通过带有 SSO 认证的隧道进行代理 —— 绝不使用裸露的开放端口。 **已记录的威胁模型** - Agent 最危险的信任边界是 *不受信任的输入 → 工具执行*(这是自主 Agent 固有的从 prompt injection 到 RCE 类别的风险)。它被视为首要威胁:输入源受到严格限制,工具执行受策略管控,并且该设计假设任何受外部影响的文本都可能是恶意的。 - 编排层中的供应链风险通过**优先进行版本更新**来管理,并保留一份文档完善且可重复的升级/回滚操作手册以及变更前备份。 ## 技术栈 `Python` · `systemd` · `Bash` · `MkDocs Material` · `Docker` · `Anthropic API` · `RSS/Atom` · `cron` · `Cloudflare Tunnel` ## 经验总结 - **Agent 安全本身就是一门独立的学科。** 赋予 LLM 工具执行能力重新定义了经典的注入风险:“用户输入”现在变成了 Agent 读取的任何内容,而“漏洞利用”则是一次工具调用。围绕这一点设计策略层是我学到的最有价值的经验。 - **自托管逼迫你进行诚实的运维。** 没有托管的仪表板意味着我必须自己负责备份、轮换、服务监督和升级安全 —— 这正是能够直接迁移到生产 SecOps 的核心能力。 - **自动化会产生复利效应。** 简报 pipeline 现在每天都在节省实实在在的分诊时间。 ## 路线图 - [ ] 针对每个工具的沙盒机制和基于白名单的执行策略 - [ ] 针对任何写入/破坏性操作的预执行拦截 hook - [ ] 扩展企业级产品安全公告的覆盖范围 - [ ] 每周工具发布摘要 - [ ] 通过 SSO 前置隧道强化远程访问安全性 ## 关于我 由 **Viki** ([@vishal5589](https://github.com/vishal5589)) 构建和维护 — IT 安全(SecOps)助理经理,马来西亚槟城。专注防御安全:检测工程 · SOC · 事件响应 · 威胁狩猎 · PAM · 安全自动化。
(Anthropic API)"] SKILLS["Skill modules:
summarize · feed-watch · github"] end subgraph Interfaces["Interfaces"] CHAT["Chat bot"] DASH["Security dashboard
(static site)"] TUI["Terminal UI"] CRON["Scheduled jobs"] end Sources --> ORCH ORCH <--> LLM ORCH --> SKILLS Core --> Interfaces CRON --> ORCH classDef box fill:#0d1117,stroke:#30363d,color:#c9d1d9; class RSS,GH,ADV,ORCH,LLM,SKILLS,CHAT,DASH,TUI,CRON box; ``` | 层级 | 选择 | 备注 | |---|---|---| | 主机 | Dell OptiPlex 3090 Micro · Ubuntu 24.04 LTS | 本地、单租户、默认无入站暴露 | | 编排 | Agent 平台(自托管) | 协调 LLM、技能和接口 | | 推理 | Anthropic API | 专为总结工作负载选择的具有成本效益的模型 | | 交付 | 聊天机器人 · 静态仪表板 · TUI · cron | 多种读取路径,单一事实来源 | | 进程管理 | `systemd` **用户**服务配合 linger | 以非特权身份运行,注销后依然存活,无 root daemon | ## 安全工程 这是我最关心的部分,也是与防御角色最相关的部分。 **机密管理** - 源代码或配置文件中没有任何机密。所有凭证都存放在一个 `0600` 权限的 env 文件中,并在运行时通过 `systemd` drop-in override 加载到服务中。 - Token 会定期轮换并存储在所有受版本控制的文件之外。仓库提供了 `.gitignore` 和机密扫描步骤,确保永远不会提交任何敏感信息。 **最小权限** - 在 `systemd --user` 下以**非特权用户**身份运行;没有任何组件以 root 权限运行。 - 编排器的工具接口受到严格限制,具备写入能力的操作都受到显式策略的管控。 **Fail-closed 网络** - 默认姿态是不暴露任何入站端口。任何远程访问都通过带有 SSO 认证的隧道进行代理 —— 绝不使用裸露的开放端口。 **已记录的威胁模型** - Agent 最危险的信任边界是 *不受信任的输入 → 工具执行*(这是自主 Agent 固有的从 prompt injection 到 RCE 类别的风险)。它被视为首要威胁:输入源受到严格限制,工具执行受策略管控,并且该设计假设任何受外部影响的文本都可能是恶意的。 - 编排层中的供应链风险通过**优先进行版本更新**来管理,并保留一份文档完善且可重复的升级/回滚操作手册以及变更前备份。 ## 技术栈 `Python` · `systemd` · `Bash` · `MkDocs Material` · `Docker` · `Anthropic API` · `RSS/Atom` · `cron` · `Cloudflare Tunnel` ## 经验总结 - **Agent 安全本身就是一门独立的学科。** 赋予 LLM 工具执行能力重新定义了经典的注入风险:“用户输入”现在变成了 Agent 读取的任何内容,而“漏洞利用”则是一次工具调用。围绕这一点设计策略层是我学到的最有价值的经验。 - **自托管逼迫你进行诚实的运维。** 没有托管的仪表板意味着我必须自己负责备份、轮换、服务监督和升级安全 —— 这正是能够直接迁移到生产 SecOps 的核心能力。 - **自动化会产生复利效应。** 简报 pipeline 现在每天都在节省实实在在的分诊时间。 ## 路线图 - [ ] 针对每个工具的沙盒机制和基于白名单的执行策略 - [ ] 针对任何写入/破坏性操作的预执行拦截 hook - [ ] 扩展企业级产品安全公告的覆盖范围 - [ ] 每周工具发布摘要 - [ ] 通过 SSO 前置隧道强化远程访问安全性 ## 关于我 由 **Viki** ([@vishal5589](https://github.com/vishal5589)) 构建和维护 — IT 安全(SecOps)助理经理,马来西亚槟城。专注防御安全:检测工程 · SOC · 事件响应 · 威胁狩猎 · PAM · 安全自动化。
标签:AI助手, Python, 威胁情报, 安全运营, 应用安全, 开发者工具, 扫描框架, 无后门, 漏洞监控, 自托管, 请求拦截, 逆向工具