# プルリクエストのスキャンを行う AI アプリケーション

運用環境に到達する前に、間接プロンプトインジェクションなどの、AI アプリケーションやエージェントにおけるリスクの高いデータ フローを検出します。

> [!NOTE]
> AI applications scanning は現在 パブリック プレビュー 中であり、変更される可能性があります。

## AI applications scanning の概要

AI applications scanning は、AI アプリケーションとエージェントに固有のセキュリティ リスクを検出する検出器です。 次を検出します：

* **間接プロンプト挿入:** ドキュメント、Web サイト、API 応答などの外部コンテンツに埋め込まれた悪意のある命令が、モデルの動作に影響を与える可能性がある場合。
* **機密情報の開示:** AI アプリケーションが認証情報、個人データ、機密ビジネス データなどの機密情報を公開できる場合。
* **過剰な主体性:** AI アプリケーションまたはエージェントに過剰な機能、アクセス許可、または自律性があり、意図しないアクションや有害なアクションを実行できる可能性がある場合。

この検出機能は、CodeQLベースのコード スキャンおよびプル要求向けの AI スキャン（プル要求に対するもう 1 つの AI ベースのコード スキャン検出機能であるGitHub）とは別です。 プル リクエスト用の AI スキャンでは、従来のコード セキュリティの脆弱性に重点を置いていますが、AI applications scanning は、プロンプト インジェクションや過剰な権限など、AI アプリケーションやエージェントに固有の脆弱性に焦点を当てています。 組織が AI アプリケーションまたはエージェントを構築する場合は、両方を評価してください。 プル リクエストの AI スキャンの詳細については、[プル リクエスト向け AI スキャン](/ja/code-security/concepts/code-scanning/ai-powered-security-detections) を参照してください。

## どのように機能するのか

AI applications scanning では、 CodeQLではなく LLM ベースの検出アプローチが使用されます。 特定の言語用に構築された静的分析に依存しないため、言語やフレームワークの制限はありません。

検出機能は、AI アプリケーションを間接的なプロンプトインジェクション、機密情報の漏えい、または過剰なエージェンシーのリスクにさらす可能性があるコード パターンとデータ フローについて、プル要求を分析します。

プル要求が作成され、新しいコミットのたびにスキャンが実行されます。

## プル要求での結果の表示方法

AI applications scanningからの検出結果は、他のコード スキャンの検出結果と同じように、pull request コメントとして表示されます。 各検出結果には次のものが含まれます。

* プル リクエストに対する AI Scan からの検出結果と同じ "AI" ラベルと高評価/低評価のフィードバック コントロール
* 閉じるボタン

AI スキャンと同様に、これらの検出結果は参考情報です。 プルリクエストがマージされるのをブロックしません。

Copilot Autofix 提案は、この検出器からの検出結果に対して自動的に生成されます。 この動作は、Copilot Autofix の結果に対する CodeQL を制御するコード スキャンの自動修正設定とは無関係です。

## 検出範囲

パブリック プレビュー中、AI applications scanningは AI エージェントの間接的なプロンプトインジェクション (XPIA) の脆弱性のみを検出します。

この検出機能は、プル リクエストのみを対象としています。 AI アプリケーションのリスクを検出するために、リポジトリ全体や既存のバックログをスキャンするわけではありません。

プル要求の AI スキャンと同様に、この検出機能は、フォークからのプル要求または Dependabot によって作成されたプル要求では実行されません。また、その結果をルールセットで使用してマージ要件を適用することはできません。

## 有効にする方法 AI applications scanning

AI applications scanning は、エンタープライズ、組織、およびリポジトリ レベルで既定でオフになっています。

* **エンタープライズ**: 有効化は、共有 **AI スキャン** エンタープライズ ポリシーによって制御されます。 エンタープライズ所有者は、組織が AI を利用したコード スキャン機能 (AI applications scanning を含む) を有効にすることを許可できます。 「[エンタープライズのコード セキュリティと分析のためのポリシーの適用](/ja/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 アプリケーションをスキャン** を有効にすることができます。 「[組織のグローバル セキュリティ設定の構成](/ja/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 applications のスキャン** を個別に有効にする必要があります。 プル リクエストに対して AI スキャンを有効にしても、AI applications scanning は有効になりません。逆も同様です。 どちらの機能も同じエンタープライズ レベルのポリシーを共有しますが、組織ではそれぞれを個別に有効にする必要があります。

## Billing

AI applications scanningを使用するには、GitHub Advanced Security ライセンスが必要であり、そのライセンスに加えてさらにAI creditsを消費します。 この課金要件には、対象となるパブリック リポジトリも含まれています。 詳細については、「[GitHub Advanced Security ライセンス請求](/ja/billing/concepts/product-billing/github-advanced-security#how-ai-feature-usage-is-billed)」を参照してください。