GitHub 在 Copilot 桌面应用中推出了一个斜杠命令(slash-command)扫描器,可以在你提交代码之前检查未提交代码中的五种常见安全漏洞。该功能面向所有 Copilot 用户开放,包括免费层级的用户,只需将应用更新至 7 月 14 日的版本即可使用。

AI 生成的代码片段是隐藏的 Bug 来源。最近的一项研究发现,生成式模型产生的代码中,有 45% 至少包含一个漏洞,从简单的注入 Bug 到弱加密算法不等。通过在本地发现这些问题,GitHub 希望开发者可以在几秒钟内修复它们,而不是在之后的 CI 流水线中,甚至是在生产环境中才发现它们。

为什么这在当下很重要

开发者长期以来一直依赖于分层安全栈:Dependabot 提醒易受攻击的依赖项,CodeQL 在 CI/CD 中运行深度静态分析,而人工代码审查则用于捕捉逻辑错误。Copilot 的新扫描器增加了一道在开发者本地机器上运行的第一道防线,在代码离开编辑器之前就捕捉到那些“容易发现的问题”(low-hanging fruit)。

该工具的范围经过刻意设计,非常明确。它主要查找:

  • Injection(注入) – SQL、shell 或类似的命令注入模式。
  • Cross-site scripting (XSS)(跨站脚本) – 在 Web 环境中对用户提供的数据处理不当。
  • Insecure data handling(不安全的数据处理) – 意外记录日志或泄露密钥(secrets)。
  • Path traversal(路径遍历) – 试图访问预期目录之外的文件。
  • Weak cryptography(弱加密) – 使用过时的算法或硬编码的密钥。

GitHub 的内部分析显示,AI 辅助编程会重复这些错误。通过及早标记这些错误,该扫描器充当了一个快速过滤器,让开发者能够解决显而易见的问题,而将更深层次的架构审查留给现有的工具。

它如何融入现有的安全工作流

可以将安全栈视为一个层级结构:

  • Copilot slash command – 用于检查明显模式的本地、即时检查。
  • CodeQL – 在 CI/CD 中对整个代码库运行的全面静态分析。
  • Dependabot – 专注于依赖项的扫描器,用于监控已知的库漏洞。

新的 Copilot 命令并不会取代 CodeQL 或 Dependabot;它将部分检测工作量提前到了上游。当开发者运行该命令时,应用会打包当前的 diff,将其发送到远程模型进行分析,并返回一份简洁的发现列表。处理时间仅需几秒钟,允许开发者立即进行编辑并重新提交。

如何使用该功能

  1. 将 Copilot 桌面客户端更新至 7 月 14 日版本。
  2. 照常进行代码更改。
  3. 打开 Copilot 聊天面板并输入斜杠命令(具体语法显示在 UI 中)。
  4. 查看返回的潜在漏洞列表。
  5. 修改代码并提交。

该工作流类似于快速运行 lint 检查:无需单独的安全仪表板,也