SpaceTerran/homelab-vulnerability-scanner

GitHub: SpaceTerran/homelab-vulnerability-scanner

结合 Trivy 漏洞扫描与 Claude AI 风险评估的自动化工具,专为 Homelab Docker 容器设计,通过 GitHub Issue 输出优先级分明的安全建议。

Stars: 0 | Forks: 0

# Homelab 漏洞扫描器 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat)](https://opensource.org/licenses/MIT) 针对 Homelab Docker 容器的自动化每周漏洞扫描,具备 AI 驱动的风险评估功能。它会发现您所有的容器仓库,使用 [Trivy](https://github.com/aquasecurity/trivy) 扫描每个 Docker 镜像,并将结果结合您的环境上下文发送给 [Claude](https://claude.ai),从而生成按优先级排序的、可操作的建议——最终以 GitHub Issue 的形式呈现。 ## 工作原理 1. **发现 (Discover)** — 查询 GitHub API 以获取您组织内所有 `*-Containers` 仓库 2. **收集 (Collect)** — 从 docker-compose 文件中提取 `image:` 引用 3. **扫描 (Scan)** — 对每个镜像运行 Trivy HIGH/CRITICAL 级别扫描 4. **分析 (Analyze)** — 将结果和环境上下文提供给 Claude CLI 进行风险评估 5. **报告 (Report)** — 创建一个包含分类结果的 GitHub Issue ``` GitHub API ──> docker-compose files ──> image list │ ▼ Trivy scans (HIGH/CRITICAL) │ ▼ Environment context + findings │ ▼ Claude CLI analysis │ ▼ GitHub Issue (auto-closes previous) ``` ## 前置条件 - 拥有使用 docker-compose 的容器仓库的 **GitHub 组织 (org)** - 具有 Docker 访问权限的 **自托管 GitHub Actions runner** - 带有 OAuth token 的 **Claude CLI**(需要 [Claude Max 订阅](https://claude.ai)) - 具有 `repo` + `workflow` + `write:packages` 权限范围的 **GitHub PAT** ## 快速开始 1. **Fork 本仓库** 到您的 GitHub 组织中 2. **自定义 `context/environment.md`** — 填入您的基础设施详情,这是让 AI 分析有用的关键(例如哪些服务面向互联网,哪些在 SSO 后面等) 3. **更新 `scripts/collect-images.sh`** — 将 `ORG="your-org"` 改为您的 GitHub 组织名称 4. **添加组织级 Secrets:** | Secret | 用途 | |--------|---------| | `PAT_TOKEN` | GitHub API 访问 + GHCR 认证(用于私有镜像) | | `CLAUDE_CODE_OAUTH_TOKEN` | Claude CLI 认证 | 5. **启用工作流** — 每周运行(UTC 时间周日早上 6 点)或通过 Actions 标签页手动触发 ## 配置 ### 环境上下文 (`context/environment.md`) 此文件为 AI 分析师提供您基础设施的相关知识,以便其恰当地评估风险。面向互联网的服务中的 CVE 与仅在局域网(LAN)内且位于 SSO 之后的同名服务中的 CVE,处理方式是不同的。 根据以下内容进行自定义: - 您的网络架构(WAF、反向代理、防火墙区域) - 认证覆盖范围(哪些服务在 SSO 之后) - 服务暴露级别(面向互联网 vs 仅限 LAN) - 容器运行时注意事项(特权容器、socket 挂载) ### 仓库发现 容器仓库通过 GitHub API 动态发现。您组织中任何匹配 `*-Containers` 的非存档仓库都会被自动包含在内——当您添加新的容器仓库时,无需更改配置。 ### 所需 Secrets | Secret | 权限范围 (Scopes) | 用途 | |--------|--------|---------| | `PAT_TOKEN` | `repo`, `workflow`, `write:packages` | GitHub API + GHCR 认证 | | `CLAUDE_CODE_OAUTH_TOKEN` | — | Claude CLI (Max 订阅 OAuth) | ## 项目结构 ``` homelab-vulnerability-scanner/ ├── .github/workflows/ │ └── weekly-audit.yml # Workflow: schedule + orchestration ├── context/ │ └── environment.md # Your infrastructure context for AI ├── scripts/ │ ├── collect-images.sh # Discover repos + extract image refs │ └── generate-report.sh # Trivy scans + Claude analysis + report ├── LICENSE └── README.md ``` ## 输出示例 工作流会创建一个按风险分类显示结果的 GitHub Issue: ### 需要关注 (Needs Attention) 面向互联网的服务中的漏洞,或需要采取行动的关键严重性问题。 ### 信息参考 (Informational) 位于 SSO 之后且仅限 LAN 的服务中的漏洞,或者 Renovate 会自动更新的情况。 ### 干净 (Clean) 没有 HIGH/CRITICAL 发现的镜像。 每项发现均包含:通俗语言的 CVE 描述、修复可用性、基于您环境的风险评估,以及具体的建议操作。 ## 计划 | 触发器 | 时间 | |---------|------| | 定时触发 | UTC 时间每周日凌晨 6:00 | | 手动触发 | 通过 Actions 标签页使用 `workflow_dispatch` | 当创建新报告时,之前的报告会被自动关闭。原始扫描数据保存在 workflow artifacts 中。 ## 博客文章 若要了解关于此项目构建过程的详细演练,请查看博客文章:[Automated Vulnerability Scanning for Your Homelab Containers](https://spaceterran.com/posts/automated-vulnerability-scanning-homelab-containers-ai/) ## 贡献 欢迎贡献!如果您发现错误或有功能请求,请开启一个 issue 或提交 PR。 ## 许可证 [MIT](LICENSE)
标签:AI 风险评估, CI/CD 安全, Claude, CVE检测, CVE 检测, DevSecOps, DLL 劫持, Docker 容器, Docker部署, GitHub Actions, GitHub Issue, Homelab, Web截图, 上游代理, 大语言模型, 安全合规, 容器安全, 应用安全, 持续监控, 数据投毒防御, 结构化查询, 网络代理, 自动化安全, 自动化报告, 自动笔记, 请求拦截