Copilot クラウド エージェント は、コードにアクセスでき、リポジトリに変更をプッシュできる自律エージェントです。 これには特定のリスクが伴います。
可能であれば、 GitHub は適切な軽減策を適用しています。 これにより、 Copilot クラウド エージェント ベスト プラクティスガイダンスに従って補足できる組み込みのセキュリティ保護の強力な基盤が得られます。
未検証のコードによって脆弱性が発生する可能性があります
既定では、Copilot クラウド エージェント は、セキュリティの問題について生成されたコードをチェックし、Copilotコード レビュー を使用してコードに関する第二の意見を得ます。 プル要求を完了する前に特定された問題の解決を試みます。 これにより、コードの品質が向上し、ハードコーディングされたシークレット、安全でない依存関係、その他の脆弱性などの問題が Copilot クラウド エージェント によって生成される可能性が低くなります。
Copilot クラウド エージェントのセキュリティ検証は**ライセンスを必要としません**。
* ** CodeQL ** は、コードセキュリティの問題を特定するために使用されます。
- 新しく導入された依存関係は、GitHub Advisory Database を通じてマルウェアの勧告および CVSS によって高いまたは重大と評価された脆弱性についてチェックされます。
-
** Secret scanning ** は、API キー、トークン、その他のシークレットなどの機密情報を検出するために使用されます。 - 実行された分析と Copilot クラウド エージェント によって実行されたアクションの詳細は、セッション ログで確認できます。 「GitHub Copilot のセッションを追跡する」を参照してください。
必要に応じて、 Copilot クラウド エージェントで使用される 1 つ以上のコード品質およびセキュリティ検証ツールを無効にすることができます。 「GitHub Copilot クラウド エージェントの設定の構成」を参照してください。
Copilot クラウド エージェント コードの変更をリポジトリにプッシュできます
このリスクを軽減するには、次の GitHub。
-
**エージェントをトリガーできるユーザーを制限します。** リポジトリへの書き込みアクセス権を持つユーザーのみが、 Copilot クラウド エージェント の動作をトリガーできます。 書き込みaccessのないユーザーからのコメントは、エージェントには表示されません。 -
**エージェントがプッシュできるブランチを制限します。** Copilot クラウド エージェント には、単一のブランチにプッシュする機能しかありません。 既存のプル要求で `@copilot` をメンションすることによってエージェントがトリガーされると、 Copilot は pull request のブランチへの書き込みアクセス権を持っています。 それ以外の場合は、`copilot/`用に新しいCopilotブランチが作成され、エージェントはそのブランチにのみプッシュできます。 また、エージェントは、ブランチの保護と、作業リポジトリに必要なチェックの対象となります。 -
**エージェントの資格情報を制限します。** Copilot クラウド エージェント は、単純なプッシュ操作のみを実行できます。 `git push` や他の Git コマンドを直接実行することはできません。 -
**マージする前に人間によるレビューが必要です。** Copilot クラウド エージェントによって作成された下書きプル要求は、人間がレビューしてマージする必要があります。 Copilot クラウド エージェント では、プル要求を "確認の準備完了" としてマークできず、pull request を承認またはマージすることもできません。 -
**ワークフローの実行 GitHub Actions 制限します。** 既定では、 Copilot クラウド エージェントのコードが確認され、リポジトリへの書き込みアクセス権を持つユーザーが [ **ワークフローの承認と実行** ] ボタンをクリックするまで、ワークフローはトリガーされません。 必要に応じて、ワークフローを自動的に実行できるように Copilot を構成できます。 「[AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs#managing-github-actions-workflow-runs)」を参照してください。 -
**プル要求の作成を Copilot クラウド エージェント に要求したユーザーが、それを承認できないようにします。** これにより、"必須の承認" ルールとブランチ保護での望ましい制御が維持されます。 「[AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets)」を参照してください。
Copilot クラウド エージェント 機密情報にアクセスできる
Copilot クラウド エージェント はコードやその他の機密情報にアクセスでき、誤って、または悪意のあるユーザー入力が原因で漏洩する可能性があります。
このリスクを軽減するために、GitHubCopilot クラウド エージェントインターネットへのアクセスを制限します。 「GitHub Copilot クラウド エージェントのファイアウォールのカスタマイズまたは無効化」を参照してください。
AI プロンプトはインジェクションに対して脆弱になる可能性がある
ユーザーは、Copilot クラウド エージェントに割り当てられた問題や、Copilot クラウド エージェントの形式としてに残されたコメントに非表示のメッセージを含めることができます。
このリスクを軽減するために、GitHubユーザー入力をCopilot クラウド エージェントに渡す前に非表示の文字をフィルター処理します。たとえば、問題に HTML コメントとして入力されたテキストや pull request コメントはCopilot クラウド エージェントに渡されません。
管理者はエージェントの作業を見失う可能性があります
このリスクを軽減するために、 Copilot クラウド エージェント は監査可能で追跡可能に設計されています。
-
Copilot クラウド エージェントのコミットはCopilotによって作成され、タスクを割り当てた開発者またはプルリクエストへの変更を要求した開発者が共同作成者としてマークされます。 これにより、 Copilot クラウド エージェント によって生成されたコードと、タスクを開始したユーザーを簡単に識別できます。 - セッション ログと監査ログ イベントは、管理者が使用できます。
- 各エージェントが作成したコミットのコミット メッセージには、コード レビューと監査のためのエージェント セッション ログへのリンクが含まれています。 「GitHub Copilot のセッションを追跡する」を参照してください。
-
Copilot クラウド エージェントのコミットは署名されているため、 GitHubでは "検証済み" として表示されます。 これにより、コミットが Copilot クラウド エージェント によって行われ、変更されていないことが確実になります。