-
-
[推荐]试了一个冷门的 LLM 代码审计工具,居然比公司六位数的 SAST 好用
-
发表于: 2026-7-31 15:50 102
-
公司买的那套 SAST 又给我整破防了。
跑完扫出来 1400 多条告警,我一个一个看,看到第 200 条的时候已经麻木了——把密码校验正则当硬编码密码、把正常的 log 当信息泄露、把做了白名单校验的文件操作当路径穿越。全是误报。
真正要命的东西一个没扫出来。之前有个接口裸奔了快半年,还是被乙方渗透测试翻出来的。
那天我就在群里吐槽,朋友扔了个链接过来
「你试试这个,LLM 驱动的,我用了两周感觉还行。」
我打开一看,一个挺素的网页,下载页上挂着几个平台的二进制文件。没有花里胡哨的落地页,没有「重新定义」「颠覆行业」这种屁话。就一个命令行工具,单文件,不用装任何东西。
行吧试试就试试。
一行命令,五分钟,十个结果
下载解压直接跑:
chmod +x zncode-linux-amd64
sudo mv zncode-linux-amd64 /usr/local/bin/zncode
zncode audit .
第一次跑弹了个配置引导,问 LLM API 地址和 Key。我填了 DeepSeek 的,一分钟搞定。
然后就开始扫了。终端里刷刷地过进度,大概四五分钟跑完。
输出了一共 10 条。
我第一反应是「就这?」——被之前那个 SAST 的 1400 多条给惯坏了,看到 10 条下意识觉得是不是漏了。
但仔细一看我愣住了。
10 条里有 9 个是真实可验证的。有个 SSRF 我之前完全不知道存在,它把数据流从用户输入一路标到 HTTP 调用点,清清楚楚画出了攻击路径。还有个加密算法问题、两个端点未授权、一个序列化漏洞。
修复建议也给得挺实在,不是那种「建议加强安全意识」的废话,是直接告诉你这个地方用什么替代方案、代码怎么改。
回头看那个 1400 条告警的商业工具,心情复杂。
它和传统工具的差别
后来我认真比较了一下两者的工作方式,差别根本不在表面。
传统 SAST 就是做模式匹配——把代码转成 AST 语法树,然后用规则去套。看到 Runtime.exec() 就报警,至于这行代码的参数是谁传过来的、中间有没有过滤、最终会不会被执行,它不知道,也不在乎。所以你收到的那一千多条告警,大部分都是「危险函数存在」这种级别的,根本不是漏洞。
这个工具是用 LLM 去理解代码的语义。打个比方:传统工具像是一个只认识危险单词的质检员,看见「炸弹」两个字就拉警报,不管你这篇文章是在写犯罪小说还是在做安全培训。而 LLM 是真的把你这段代码读懂了,推演了攻击者可能怎么利用它。
还有一个我后来才注意到的东西:它内置了一套审计 Skill,在 LLM 推理之前先把项目里所有可疑的地方预扫一遍——SQL 拼接、文件操作、加密相关——标记好再交给大模型分析。所以不会出现大模型随机漏掉某个漏洞的情况。
不只是全量审计
用了一阵才发现它不止 audit 一个命令:
diff 命令——只审计变更代码。这个对我最重要,因为我把它挂到了 GitLab CI 上,PR 合入前自动跑一次:
zncode diff --base origin/main --yes --format json -o ./reports/
发现 Critical 漏洞直接流水线挂红,代码进不了主干。一开始团队有人嫌慢,后来有个哥们提交的 SSRF 被 diff 拦下来了,之后再也没人抱怨。
deps 命令——扫第三方依赖。支持 requirements.txt、package.json、pom.xml 这些,查有没有引入带已知漏洞的库。挺好用的,就是有时候网络不好的慢。
secrets 命令——扫 Git 历史里的泄露。跑了一下吓一跳,我们仓库历史里居然藏了一个两年前的测试环境数据库连接串,当年有人在代码里写死又删了,但 Git 历史忘了清理。这个真的救命。
knowledge 命令——记录每次审计结果,下次跑自动对比,告诉你哪些漏洞修了、哪些没动、哪些是新的。不用自己维护漏洞清单。
update——自动升级。每次启动检查一次新版本,有的话自己下载替换,不用手动管。
最让我放心的:代码不出机器
这个对我们来说太重要了。公司安全要求源码不能出内网,大部分 AI 工具压根没法用。
这个工具的处理是:代码在本地解析,只发脱敏过的片段给 LLM。而且它支持 Ollama 本地模型——装个 qwen3-coder,整个审计过程完全断网跑。代码解析、漏洞分析、报告生成全在本地完成。
除了 DeepSeek 和 Ollama,它还能接通义千问、OpenAI、或者公司内部的 LLM 网关,只要兼容 OpenAI API 格式就行。
也说说不太好的地方
用本地 Ollama 跑小模型(7B 那种)的时候,准确度明显不如 DeepSeek 这种大模型。有些复杂逻辑它分析得有点浅。
大项目跑起来慢,2000+ 文件的话要 5-10 分钟。对于 CI 流水线来说可以接受,但本地跑的时候等得有点着急。
还有就是这工具目前只在他们官网下载,没开源在 GitHub 上。想看源码是看不到的,介意的朋友注意一下。不过产品团队说开源计划已经提上日程了。
总结
解决了我一个很实际的痛点:以前要么用几十万的商业 SAST 忍受海量误报,要么人肉 code review。现在多了一个选项——跑一个命令行工具,让它用 LLM 帮你真真正正地把代码「读一遍」。
工具本身免费,费用是你用的 LLM 收的。用本地模型的话全程零成本。
反正下载就一个文件,一行命令就能跑。试试呗。
可以去官网下载:zncode.cc
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。