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

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

> [!NOTE]
> 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 扫描](/zh/code-security/concepts/code-scanning/ai-powered-security-detections)。

## 工作原理

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。 请参阅“[强制实施企业的代码安全性和分析策略](/zh/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise#enforcing-a-policy-to-manage-ai-scan-in-your-enterprises-repositories)”。
* **组织**：组织所有者可以为允许的符合条件的存储库启用 **扫描 AI 应用程序**。 请参阅“[配置组织的全局安全设置](/zh/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/configure-global-settings#enabling-ai-applications-scanning)”。
* **存储库**：存储库管理员可以在其组织允许此设置后为单个存储库选择退出。

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

## Billing

使用 AI applications scanning 需要 GitHub Advanced Security 许可证，并在该许可证的基础上消耗 AI credits。 符合条件的公共存储库也包含在此计费范围内。 有关详细信息，请参阅“[GitHub Advanced Security 许可证计费](/zh/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed)”。