[开源][Demo] 做了一个 GitHub 安全扫描器,也想听听大家对“基于 AI 可组合安全工具”的看法
刚才把一个 GitHub 仓库安全扫描器 开源了,发到 V2EX 想听听大家的真实意见。
先说清楚一件事: 👉 现在这个只是 demo,用来验证思路和架构,并不是一个“已经做完的漏洞扫描器产品”。
之前做过 CISO ,这个 demo 目前主要做两件事:
- 30 秒内快速看一个 repo 的基础安全配置
- 实际跑一遍:AI 工作流如果从一开始就考虑安全和隐私,工程上应该怎么做
现在这个 demo 能做什么(比较基础):
- 检查 GitHub 的 Secret Scanning 、漏洞告警、分支保护等配置
- 用 LLM 给一些安全改进建议
- 生成一个可分享的安全报告
在线体验: https://topflow.dev/builder?template=github-security-scanner
源码: github.com/csupenn/topflow
技术栈(给关心实现的同学):
- Next.js 15 ( App Router )
- TypeScript ( strict )
- Vercel AI SDK ( OpenAI / Anthropic / Gemini )
- ReactFlow (可视化工作流)
- 服务端流式执行
一些当前已经落地的安全设计点:
- 不存 PII ,只用浏览器端 localStorage (从架构上避免数据合规问题)
- SSRF 防护:URL 校验 + 私有 IP / 元数据端点拦截
- 简单限流:每 IP 每分钟 10 次( Redis )
- 输入递归清洗 + Zod 校验
- 整体按纵深防御来设计,而不是单点防护
接下来的方向(不是已经做完的)
如果继续沿着 scanner 这个方向往下走,核心思路不是把一个扫描器做大,而是:
TopFlow 变成一个让用户“自己搭安全工具”的平台
也可以理解成: build your own Snyk(用可视化 + 可组合的方式)
大概是这样一个路径:
TopFlow 的定位:
- 提供安全“原语节点”( scanner / analyzer / checker )
- 用户把节点组合成自己的安全工作流
- 用户可以定制逻辑、加集成( Slack / JIRA / Email 等)
- 最终可以导出、部署到自己的环境里跑
从这个角度讲,TopFlow GitHub Security Scanner 只是一个示例模板 / Template。
一个比较现实的优化路线( Quick Wins )
如果往“全部真实数据 + 可复用”方向推进,后面的路线大概会是:
1:NPM 漏洞扫描 Node
- 跑
npm audit --json - 解析结果,直接拿到 CVE
- 这样,就可以立刻获得真实漏洞数据
2:多语言 Scanner Nodes
- Python:
pip-audit - Rust:
cargo audit - Go:
govulncheck - 这基本可以 覆盖大概 80% 的 GitHub 项目
3:升级 GitHub Scanner Workflow
- 自动识别 repo 语言
- 路由到对应 scanner node
- 合并结果,生成统一报告
- GitHub Security Scanner 从“配置检查 + AI 建议”升级到 真正的 OSS Scanner.
为什么要做成 Node ,而不是一个大而全的 Scanner
现在 demo 里,其实还是偏“单体 workflow”的:
GitHub Scanner Workflow
├─ Prompt
├─ GitHub API
├─ JS 逻辑
├─ Score 计算
└─ Report
问题很明显:
- 逻辑分散
- 很难复用
- 用户几乎没法改
- 也不太好扩展到别的场景
理想的设计应该是:
Security Node Library
├─ NPM Vulnerability Scanner
├─ Python Vulnerability Scanner
├─ License Checker
├─ Secret Scanner
├─ SBOM Generator
├─ Score Calculator
└─ Notification Nodes
然后由用户自己组合,比如:
GitHub Scanner / OSS Scanner:
Start → Detect Language → NPM Scanner → Score → End
用户自己做个 Pre-Commit Workflow:
Start → NPM Scanner → 过滤高危 → Slack 通知 → End
想听听大家的不同声音
也想借这个帖子,真诚地请教大家:
这个方向有没有明显“想当然”的地方?
从工程 / 使用角度看,有没有一看就不想用的点?
拿扫描器为例,如果是你,会更想要:
- 一个“拿来就用”的扫描器
- 还是一个可以自己搭的安全工具箱?
如果你觉得这个项目哪怕有一点点参考价值, 也欢迎顺手给 GitHub repo 点个 Star, 对个人开源项目真的很有帮助 🙏
GitHub: github.com/csupenn/topflow
感谢!
TL;DR
[开源][Demo] 做了个 GitHub 安全扫描器,想听听大家的意见
最近开源了一个 GitHub 仓库安全扫描 demo ( 30 秒左右)。 现在只是 demo ,用来验证 安全优先的 AI 工作流 思路。
目前做的事很基础:
检查 Secret Scanning / 漏洞告警 / 分支保护
AI 给安全建议,生成报告
后续更想把它做成 可组合的安全节点平台(类似 n8n ,build your own Snyk )。
Demo / 源码: https://topflow.dev/builder?template=github-security-scanner
github.com/csupenn/topflow
欢迎拍砖 🙏 如果觉得有用,也请帮忙点个 Star 感谢!