Skip to main content
Skip to content

扫描拉取请求的 AI 应用程序

在 AI 应用程序和代理(例如间接提示注入)中捕获风险数据流,在进入生产环境之前。

谁可以使用此功能?

AI applications scanning 可在 GitHub Enterprise Cloud 上以 GitHub Advanced Security 许可证提供,包括 带有数据驻留权的 GitHub Enterprise Cloud。

注意

AI applications scanning 当前处于 公开预览 且可能会发生更改。

什么是 AI applications scanning?

AI applications scanning 是一个检测器,用于查找特定于 AI 应用程序和代理的安全风险。 它检测:

  • 间接提示注入: 嵌入在外部内容(如文档、网站或 API 响应)中的恶意指令可能会影响模型的行为。
  • 敏感信息泄漏: 当 AI 应用程序可以公开敏感信息(例如凭据、个人数据或机密业务数据)时。
  • 过度代理: 当 AI 应用程序或代理具有过多的功能、权限或自治性时,可以允许它执行意外或有害的操作。

此检测器独立于基于 CodeQL 的代码扫描,以及用于拉取请求的 AI Scan,即 GitHub 的另一种用于拉取请求的基于 AI 的代码扫描检测器。 针对拉取请求的 AI 扫描侧重于传统的代码安全漏洞,同时 AI applications scanning 侧重于 AI 应用程序和代理特有的漏洞,例如提示注入和过度自主性。 如果组织构建 AI 应用程序或代理,请评估这两者。 有关拉取请求的 AI 扫描的详细信息,请参阅 用于拉取请求的 AI 扫描。

工作原理

AI applications scanning 使用基于 LLM 的检测方法,而不是 CodeQL. 因为它不依赖于为特定语言构建的静态分析,因此它没有语言或框架限制。

检测器分析拉取请求中的代码模式和数据流,这些模式和数据流可使 AI 应用程序面临间接提示注入、敏感信息泄露或过度自主性的风险。

扫描会在创建拉取请求时以及每次有新提交后运行。

拉取请求上的发现结果显示方式

来自 AI applications scanning 的扫描结果会显示为拉取请求注释,就像其他代码扫描结果一样。 每个发现项包括:

  • 与 AI 扫描中针对拉取请求的发现结果相同的“AI”标签和拇指向上/向下反馈控件
  • 关闭按钮

与 AI 扫描一样,这些发现仅供参考。 它们不会阻止拉取请求被合并。

Copilot Autofix 为此检测器中的发现自动生成建议。 此行为独立于代码扫描自动修复设置,该设置控制针对 CodeQL 结果的 Copilot Autofix。

检测覆盖范围

在此期间 公开预览, AI applications scanning 仅检测 AI 代理中的间接提示注入(XPIA)漏洞。

此检测器仅涵盖拉取请求。 它不会扫描完整的代码库或现有积压工作,以发现 AI 应用程序风险。

与 AI 扫描拉取请求一样,此检测器不会针对来自派生仓库的拉取请求,或由 Dependabot 创建的拉取请求运行,并且其发现不能用于规则集来强制实施合并要求。

如何启用 AI applications scanning

AI applications scanning 默认情况下,在企业、组织和存储库级别处于关闭状态。

  • 企业:是否启用由共享的 AI 扫描 企业策略控制。 企业所有者可以允许组织启用 AI 支持的代码扫描功能,包括 AI applications scanning。 请参阅“强制实施企业的代码安全性和分析策略”。
  • 组织:组织所有者可以为允许的符合条件的存储库启用 扫描 AI 应用程序。 请参阅“配置组织的全局安全设置”。
  • 存储库:存储库管理员可以在其组织允许此设置后为单个存储库选择退出。

如果组织已为拉取请求启用 AI 扫描,或者要从 AI applications scanning 的专用预览版迁移,则仍需要在组织级别单独启用 扫描 AI 应用程序。 为拉取请求启用 AI 扫描不会启用 AI applications scanning,反过来也一样。 这两个功能共享相同的企业级策略,但组织必须分别启用每个功能。

Billing

使用 AI applications scanning 需要 GitHub Advanced Security 许可证,并在该许可证的基础上消耗 AI credits。 符合条件的公共存储库也包含在此计费范围内。 有关详细信息,请参阅“GitHub Advanced Security 许可证计费”。