AI未开源软件工具

Semgrep 把安全审查提前到「Agent 写完那一行」:错一行就当场改,不再等 PR

2026年11月14日2 次阅读
Semgrep 把安全审查提前到「Agent 写完那一行」:错一行就当场改,不再等 PR

先讲结论:这次到底发布了什么

2026 年 11 月 12 日,代码安全公司 Semgrep 一次性放出了三样东西:

  • Semgrep Agentic AppSec Platform:一个面向 AI Agent 的商业平台,把「找漏洞、判断真假、动手修」三件事交给 Agent 自己做。
  • Semgrep Mandoline:一个新的程序分析引擎,研究预览版(research preview)。它不给 Agent 报「第 128 行有问题」,而是回答「这个函数的脏数据从哪来、能流到哪去」。
  • Guardian 的组织级策略:管理员在一处写好规则,全公司每个开发者的编码 Agent 立刻按同一套标准检查,不用每个人自己配。

一句话概括它的主张:别等代码提交了再查,在 Agent 刚写完那一行的时候就拦住。

本文基于多家媒体转述整理:一手信息取自 Semgrep 官方博客与文档,时间与关键数字另经通讯社通稿(BusinessWire 11 月 12 日稿)及 TLDR 等多家行业媒体交叉核对,核心事实一致。

为什么这件事值得看

过去两年,写代码的成本被 Agent 打得很低,但审查代码的成本几乎没降。

Semgrep 在公告里引了一组行业数据:49% 的开发者每周要花 4 小时以上去审查 AI 产出的代码、修正提示词。JetBrains 在同一周的 Air 发布文里也引了同一个数字——这不是巧合,而是整个行业的共同痛点。

于是出现一个很别扭的局面:

  • Agent 十分钟生成 300 行,人看一眼要半小时;
  • 人看不完,就只看 diff 里「像有问题」的几行;
  • 剩下的直接进 PR,PR 又堆着没人审;
  • 最后漏洞在线上被发现。

Semgrep 的判断是:人工审查这一层正在消失,而传统安全工具全部装在 CI/CD 里,位置太靠后。

关键不是「更快」,是「位置换了」

这是本次发布里最值得理解的一点。

传统 SAST 的流程是:写完 → 提交 → 推分支 → CI 跑 → 出报告 → 提 PR 评论 → 人来看 → 改 → 再跑一遍。一轮下来按天算。

Guardian 的流程是:Agent 写文件 → 钩子(hook)当场触发扫描 → 发现问题直接回给 Agent → Agent 自己决定要不要重写 → 重写完再扫一次。

代码还没 commit,问题就已经被处理掉了。

Semgrep 给出的一组自家客户数据(注意:是厂商自测,不是第三方独立测评):

  • 在编码 Agent 内部提出的问题,修复率 36%;作为 PR 评论提出的,只有 10%。
  • 修复耗时中位数(p75):Agent 内 33 分钟,PR 上 21 小时,全量扫描约 30 天。
  • 95% 的扫描在 2 分钟内完成。
  • 已经铺到 1 万多名开发者,平均每人每周拦下约 4 个问题。

「33 分钟对 21 小时」这个对比,比任何「AI 很强」的说法都更能说明问题:不是工具变聪明了,是反馈回路被缩短了两个数量级。

Mandoline:给 Agent 的是「代码事实」,不是「漏洞告警」

Mandoline 是这次技术上最有意思的部分,也是最容易被忽略的部分。

Semgrep 的解释很直白:把一个大模型丢进几十万行的仓库里找漏洞,它实际在做的事是——写一个看不懂的正则、翻出一堆命中文件、凭感觉猜结构、有时真挖到漏洞、有时烧掉几千美元 token 什么也没找到。

Semgrep 自己统计,纯靠大模型给出的发现里,最终被修掉的只有 0.5%。

所以 Mandoline 换了个思路:不输出结论,输出事实。

它把代码切成「跟当前问题相关的那一块」——从入口点开始,把调用链、数据流、污点路径、可达依赖全部算出来,用毫秒级的速度交给 Agent 去推理。

几个可以核对的硬指标:

  • 支持 50 种语言,含 Fortran、COBOL、Scala、Rust、Swift、Kotlin,以及 Terraform、Docker、Ansible 和多方言 SQL。
  • 比 Semgrep Pro 引擎在「Agent 常用分析」上快 约 50 倍。
  • OWASP Benchmark:Java 100%,Python 98.28%(官方评分器,单次运行,不消耗 AI token)。
  • 通过 NIST Juliet 测试集的 36,000+ 个 C++/Java 用例,覆盖 22 类漏洞。
  • 在 Meta 的 PySA、Mariana Trench 和 CodeQL 的污点测试集上约 90% 通过率。

它的设计原则写得很清楚:偏向召回(recall),不确定就老实说「我算不出来」,把证据和局限性一起交给模型。 这和「宁可误报也要报」的传统 SAST 是相反的产品哲学。

配套的 Context layer 给 Agent 提供持久化的仓库与组织理解,官方称能让 Agent 多找到 2 到 7 倍的真实漏洞;目前是私有 beta。

怎么用:三条命令,十分钟内跑起来

Guardian 是插件形态,装在你已有的编码 Agent 里,不需要单独开一个 IDE。官方推荐三条路径,都用 Semgrep 托管服务器 + OAuth 登录,本地不用装 Semgrep CLI。

Claude Code:

claude plugin install semgrep@claude-plugins-official

然后开一个新的 claude 会话,浏览器里登录一次 Semgrep 即可。

Codex:

codex plugin marketplace add https://github.com/semgrep/guardian --sparse .claude-plugin --sparse plugin
codex plugin add semgrep@semgrep-marketplace

Copilot(需要 macOS 或 Linux,Windows 暂不支持):

copilot plugin marketplace add https://github.com/semgrep/guardian
copilot plugin install guardian-copilot@semgrep-marketplace

装完的验证动作很朴素:问一句「Who am I logged in as in Semgrep Guardian?」,或者跑 codex plugin list --json、copilot plugin list --json 看插件在不在列表里。

最小验证建议:装好后故意让 Agent 写一段把 API key 硬编码进源码的代码,看它会不会被当场拦下并自动改成读环境变量。这一步比看任何宣传页都直接。

适用场景:谁真的需要它

  • 个人开发者,但项目要上线:尤其是一个人用 Claude Code / Codex / Cursor 写后端服务,没人给你 review,Guardian 相当于一个不会疲倦的初审。
  • 小团队没有专职安全:把「不许用某个废弃的认证库」写成一条策略,所有人(和所有人的 Agent)自动遵守。
  • 被合规推着走的团队:支付类要满足 PCI DSS 4.0 的「生产前代码审查」要求,医疗类要证明数据处理的护栏一致执行——「策略在一处定义、全公司生效、每次扫描有记录」这件事本身就是审计材料。
  • 供应链紧张的项目:Agent 会照着幻觉装包,Guardian 在 lockfile 被改动、且引入的是恶意包或可达漏洞时直接拦下,不让它进构建系统。

不适用场景:什么人先别急

  • 只想让代码跑起来、不打算上线的原型:多一层扫描就是多一层摩擦,收益接近于零。
  • 完全离线的内网环境:推荐的插件路径依赖 Semgrep 托管服务器做 OAuth 与扫描,本地 CLI 路径才有离线可能,需要先和安全团队确认。
  • 期望「装上就零误报」的人:它偏向召回,意味着会多报。真正的价值在于「报得早、改得快」,而不是「报得少」。
  • 想用 Mandoline 直接做产品:它目前只是 research preview,没有可依赖的 SLA。
  • Windows + GitHub Copilot 的用户:官方明确写 Copilot 插件暂不支持 Windows。

避坑:几个容易踩的点

  1. 别把它当成 CI 的替代品。 官方原话是「complements rather than replaces」。它管的是「写的时候」,仓库级、历史级的扫描还得靠 CI 和平台扫描。
  2. 所有漂亮的倍数都来自厂商自己的客户数据。 3.6 倍、38 倍、65% token 节省、4 个问题/人/周,都出自 Semgrep 自家样本,没有第三方复现。看趋势可以,别当基准。
  3. 「10,000 名开发者」不等于「10,000 个付费客户」。 这是灰度铺开的开发者数量,不能换算成收入或市场份额。
  4. 策略写错比不写更危险。 一条过严的组织策略会让所有 Agent 在每个文件写入时都被卡住,开发者第一天就会要求关掉它。建议先在单个仓库试跑一周。
  5. 锁文件拦截会真的挡住安装。 如果你的团队常有「先装上再说」的临时依赖,需要预留一个白名单流程,否则会被投诉。
  6. Mandoline 与 Context layer 的成熟度不同。 前者 research preview,后者 private beta,都别写进生产依赖链。

成本与时间:大概要花多少

  • Guardian 有 30 天免费试用(官网横幅写明 "Free for 30 days")。
  • Free Edition:0 美元,最多 10 个仓库、10 名贡献者,含 60 个 AI credits,够小团队先跑通流程。
  • Teams:Code 或 Supply Chain 每人每月 30 美元起,Secrets 每人每月 15 美元,每月 20 个 AI credits。
  • Enterprise:定制报价,每月 50 个 AI credits,支持本地代码托管与专属部署。
  • 时间成本:三条命令安装 + 一次浏览器登录,个人环境十分钟内能跑通;组织级策略下发官方称「一个下午」。

注意:Guardian 的 AI 检测、Agentic Workflows 都会消耗 AI credits,credits 用完后按套餐叠加,这部分费用要单独估算。

另一点要说清:Guardian 和 Agentic Workflows 是闭源的商业 SaaS,要按订阅付费使用;Semgrep 真正开源的只有社区版(Community Edition)扫描引擎。想纯自建、不订阅,只能走社区版 + 自己搭 CI,拿不到本文说的这套 Agent 内实时拦截和组织级策略。

行动建议:这周可以做的一件事

第一步,先用 Free Edition 在一个你最不放心 Agent 去改的仓库上装 Guardian,只开默认规则,不加自定义策略,跑三天。

第二步,看三个数字:拦下了什么、Agent 有没有自己改对、有没有让你想直接关掉它的误报。

第三步,如果误报率可接受,再加第一条组织策略——建议从「禁止硬编码凭证」开始,因为它误报最低、收益最直观。

第四步,再考虑 Agentic Workflows 和 Mandoline。它们是这轮发布里更远期的那一半。

参考来源

评论

0 条已公开
登录或注册后可以参与评论。

正在加载评论...