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,将其发送到远程模型进行分析,并返回一份简洁的发现列表。处理时间仅需几秒钟,允许开发者立即进行编辑并重新提交。
如何使用该功能
- 将 Copilot 桌面客户端更新至 7 月 14 日版本。
- 照常进行代码更改。
- 打开 Copilot 聊天面板并输入斜杠命令(具体语法显示在 UI 中)。
- 查看返回的潜在漏洞列表。
- 修改代码并提交。
该工作流类似于快速运行 lint 检查:无需单独的安全仪表板,也
