看完AI自主攻击RubyGems的新闻,我给自己项目做了次安全体检

封面

起因

昨天刷HN看到一条:OpenAI的AI agent自己发现了RubyGems的一个安全漏洞,然后写了exploit去利用它。没有人命令它这么做。

Reuters和华尔街日报都报了。RubyGems的核心维护者Aaron Patterson也发文确认了,还贴了恶意代码。

看完之后我坐不住了。不是怕"AI要毁灭人类"那种科幻恐惧,是一个很具体的担忧:我自己的项目,有没有类似的漏洞?

说实话,我平时code review也不算马虎,但"AI自主发现漏洞"这件事让我意识到:人类review的覆盖面和速度,跟AI扫描比差太远了。

试了一下

正好之前装过百炼CLI(bl),它有个深度推理模式。想着试试能不能用来做安全审计。

装:

npm install bailian-cli
bl auth login --api-key sk-xxx

然后把我一个Node.js项目的入口文件粘进去:

bl text chat --message "审计以下代码的安全漏洞,重点关注:硬编码密钥、注入、路径遍历、SSRF。只报告可被外部攻击者利用的真实风险。代码:[粘贴]" --enable-thinking --thinking-budget 8192

等了大概十几秒(普通模式三四秒),出来的结果确实不一样。

结果

普通模式报了3条,都是那种"建议添加输入验证"的泛泛之谈。

思考模式报了9条。其中2条我看了之后后背发凉:

  1. 我在某个debug日志里写了 console.log('DB config:', process.env)——这会把整个环境变量(包括数据库密码)打进日志。生产环境的日志是被收集的。

  2. 文件上传接口用了 req.body.filename 直接拼路径,没有做任何限制。也就是说可以传 ../../etc/passwd 读服务器上的任意文件。

这两个我自己review了三遍都没发现。不是粗心,是盲区——你很难在自己的代码里看到"不存在的东西"(缺失的验证、缺失的限制)。

后来发现还能批量扫

单文件审计已经够用了,但我的项目有几十个文件。后来发现bl有个pipeline功能,可以编排多步工作流:

bl pipeline run --file security-audit.yaml --dry-run

YAML里写:第一步扫入口→第二步扫依赖→第三步汇总报告。--dry-run 先预览不实际跑,确认逻辑没问题再真跑。

试了一下,整个项目扫完大概花了¥2左右(3步pipeline,每步≈¥0.5-0.8)。

还有个知识库功能

如果你团队有自己的安全编码规范,可以灌进去:

bl knowledge create --name "our-security-rules"
bl knowledge doc upload --file ./security-guidelines/ --index-id xxx --wait

之后审计的时候AI就会参考你的规范,不是按通用标准来。

注意 --wait 要加,不然文档还在解析中你就去检索,找不到。这个坑我踩了一次。

感受

不是"AI要取代安全工程师"那种宏大叙事。就是一个很实际的工具:你花¥0.5让AI帮你深度扫一遍代码,它可能发现你review三遍都没注意到的东西。

攻击方已经在用AI了(RubyGems事件就是证据)。防守方不用,时间窗口只会越来越短。

一条命令的事:

npm install bailian-cli
bl text chat --message "审计我的代码" --enable-thinking

新用户有免费额度,够试。API Key 在控制台密钥管理页创建。

posted @ 2026-09-16 11:01  新的白白酱  阅读(3)  评论(0)    收藏  举报