[开源][Demo] 做了一个 GitHub 安全扫描器,也想听听大家对“基于 AI 可组合安全工具”的看法

1 月 14 日
 sucs66

刚才把一个 GitHub 仓库安全扫描器 开源了,发到 V2EX 想听听大家的真实意见。

在线体验: https://topflow.dev/builder?template=github-security-scanner

源码:github.com/csupenn/topflow

先说清楚一件事: 👉 现在这个只是 demo,用来验证思路和架构,并不是一个“已经做完的漏洞扫描器产品”。

之前做过 CISO ,这个 demo 目前主要做两件事:

  1. 30 秒内快速看一个 repo 的基础安全配置
  2. 实际跑一遍:AI 工作流如果从一开始就考虑安全和隐私,工程上应该怎么做

现在这个 demo 能做什么(比较基础):

在线体验: https://topflow.dev/builder?template=github-security-scanner

源码: github.com/csupenn/topflow

技术栈(给关心实现的同学):

一些当前已经落地的安全设计点:


接下来的方向(不是已经做完的)

如果继续沿着 scanner 这个方向往下走,核心思路不是把一个扫描器做大,而是:

TopFlow 变成一个让用户“自己搭安全工具”的平台

也可以理解成: build your own Snyk(用可视化 + 可组合的方式)

大概是这样一个路径:

TopFlow 的定位:

  1. 提供安全“原语节点”( scanner / analyzer / checker )
  2. 用户把节点组合成自己的安全工作流
  3. 用户可以定制逻辑、加集成( Slack / JIRA / Email 等)
  4. 最终可以导出、部署到自己的环境里跑

从这个角度讲,TopFlow GitHub Security Scanner 只是一个示例模板 / Template


一个比较现实的优化路线(如果真要做个扫描器产品出来 )

如果往“全部真实数据 + 可复用”方向推进,后面的路线大概会是:

1:NPM 漏洞扫描 Node

2:多语言 Scanner Nodes

3:升级 GitHub Scanner Workflow


为什么要做成 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

感谢!

1202 次点击
所在节点    程序员
5 条回复
sucs66
1 月 14 日
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 感谢!
jiangliqiang
1 月 14 日
要不看看 google osv scanner?
sucs66
1 月 15 日
@jiangliqiang 是的,OSV Scanner 很好用,感谢建议。尤其是 对于 npm / PyPI / Go / Rust 这类基于 manifest 的语言,其实前端解析依赖后直接调 OSV API 就够了,只有 C/C++ 这类才需要 server-side 执行。基于这个考虑,把 OSV 做成一个 TopFlow 的 node 是非常合理的方向。现在这个 demo 也正好在探索节点平台的“正确打开方式”。
sucs66
1 月 15 日
各位大佬,看在界面还算顺眼的份上,还请顺手给 GitHub repo 点个 Star , 对个人开源项目真的很有帮助 🙏

GitHub:github.com/csupenn/topflow
sucs66
1 月 15 日
各位大佬,看在界面还算顺眼的份上,还请顺手给 GitHub repo 点个 Star , 对个人开源项目真的很有帮助 🙏

GitHub:github.com/csupenn/topflow

感谢 Dendim0n ; she11s, coldwateryi, phi-325, @jiangliqiang

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1185628

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX