GitHub 扩大 PR 的 AI Scan 范围:安全审计代理代码

软件变更通过 AI 安全扫描拱门后进入全球互联网代理网关

GitHub 于 2026 年 9 月 16 日宣布,即使仓库没有启用 CodeQL 默认设置,AI Scan 也可在符合条件的 Pull Request 中查找安全漏洞。此前,PR 的 AI Scan 只在配置了 CodeQL 默认设置的仓库运行。

这项变化不会自动开启扫描。仓库、组织或企业层仍须启用 code scanning 与 AI Scan,原有权限层级继续生效。GitHub 表示不需要新的设置步骤:已经为组织启用 AI Scan 的客户,可能会看到它覆盖更多符合条件的仓库。该功能仍处于公开预览,仅适用于 github.com 上符合条件的组织或个人仓库,并要求 GitHub Advanced Security;本次发布不支持 GitHub Enterprise Server。

对于代理客户端、网关和浏览器自动化仓库,关键问题不是“AI 是否发现了全部问题”,而是扩大后的覆盖是否触达目标 PR、是否产生可用证据,以及能否在不暴露凭据、不制造虚假安全感的前提下进入分层审查流程。

盘点新纳入范围的仓库

找出已启用 AI Scan、但没有 CodeQL 默认设置的仓库,优先关注包含以下逻辑的代码:

  • 代理 URL 与凭据解析;
  • HTTP 407 与源站 401 的区分;
  • 重定向与头转发策略;
  • TLS 验证、SNI 与证书选项;
  • 重试、轮换与直连回退;
  • 浏览器上下文、Cookie 与存储隔离;
  • 日志脱敏与诊断导出;
  • 网关配置与部署工作流。

记录仓库负责人、语言、部署目标、AI Scan 启用层级和现有安全控制。归档仓库如果仍发布可复用包或工作流,也应纳入。

使用企业安全配置强制审计保持配置责任一致,并结合代理凭据编码指南定位需要明确测试的敏感构造路径。

验证启用状态,不要假设覆盖

在每类仓库中选择一个非生产 PR,确认:

  1. 仓库、组织与企业权限层级允许 AI Scan。
  2. 扫描确实在该 PR 上运行。
  3. 预期审阅者能看到结果。
  4. 必需检查和合并策略按文档处理结果。
  5. 已禁用或不符合条件的仓库显示为覆盖缺口,而不是静默计为干净。

记录仓库别名、PR ID、提交哈希、扫描开始与结束时间、结果类型和分流负责人。不要把含秘密的源码片段复制到普通分析系统。

使用受控的代理安全测试样例

只用合成示例验证检测与分流,绝不使用真实凭据。可在自有测试环境中准备:未脱敏写入日志的合成代理 URL、把源站授权转发到未批准重定向主机、关闭 TLS 证书验证、错误后直连回退、跨信任域复用 Cookie Jar,以及把合成密码放入进程参数。

目标是证明工作流行为,而不是假设扫描器能发现每种缺陷的所有实现。测试样例应保持私有、清晰标记且不可部署,完成后移除或失效。

AI Scan 不能替代确定性控制

AI 辅助结果应作为补充,而不是替代:编译与类型检查、单元和集成测试、依赖与密钥扫描、已配置的 CodeQL 或其他静态分析、分支保护、运行时脱敏、出口控制和明确的代理验收测试。

干净的 AI Scan 结果不能证明凭据安全、证书验证已开启或流量无法绕过代理。部分属性必须在受控环境中运行验证。可用代理绕过审计验证失败关闭路由,并以HTTPS 代理 TLS 审计验证证书与隧道边界。

建立告警分流合同

明确谁负责审阅、响应时限、严重性标准、关闭理由和升级路径。仓库负责人不能仅因测试通过就关闭告警;应判断它是可达路径、纵深防御缺口还是误报。

每条结果至少记录仓库别名、提交哈希、结果类型、受影响组件、负责人、决定、证据引用、修复提交和复测状态。不得在记录中粘贴代理密码、会话 Cookie、私钥或客户数据。

使用可量化门槛分批上线

先选择少量代表性仓库,建立扫描完成率、结果耗时、有效发现率、误报率和分流中位时间基线。只有负责人能够处理告警量后才扩大范围。

门槛可包括:每个目标 PR 都有可归因结果;禁用或不符合条件的仓库不能算作已覆盖;严重发现按策略阻止合并;合成样例进入预期审查流程;正常代理构建与测试继续完成;关闭结果包含证据;修复后必须重新扫描。

功能仍处于公开预览,应保留回退计划并监控行为变化。不能为了预览版不稳定而削弱确定性检查。

审计清单

  • 已盘点符合条件的代理相关仓库。
  • 已验证仓库、组织与企业层启用状态。
  • 已确认 PR 扫描实际执行,而非推断。
  • 合成样例不含真实凭据。
  • 结果有负责人和响应目标。
  • 密钥、依赖与确定性代码扫描仍保持启用。
  • 代理绕过和 TLS 运行时控制单独测试。
  • 覆盖缺口可见,不能显示为干净结果。
  • 关闭结果需要证据与复核。
  • 修复代码在发布前重新扫描。
  • 已记录公开预览限制和 GHES 不支持范围。

常见问题

不启用 code scanning 也能使用 AI Scan 吗?

不能。GitHub 明确表示仍需在对应仓库、组织或企业层启用 code scanning 与 AI Scan。

CodeQL 默认设置已经没有用了吗?

本次更新只是取消它作为符合条件 PR 的 AI Scan 前置条件,并不表示应移除 CodeQL 或确定性分析。

GitHub Enterprise Server 支持吗?

本次不支持。公开预览适用于 github.com 上符合条件并使用 GitHub Advanced Security 的组织与个人仓库。

干净扫描能替代代理验收测试吗?

不能。路由、直连回退、区域选择、认证与 TLS 结果仍需受控运行证据。

合规说明

只扫描获授权访问的仓库与 PR。按组织政策保护源码、凭据、个人数据与漏洞细节。不得利用发现结果或代理基础设施攻击第三方系统、绕过访问控制或隐藏未授权行为。