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 を構成できます。 「Copilot からの出力を確認する」を参照してください。
- プル要求の作成を Copilot クラウドエージェント に要求したユーザーが、それを承認できないようにします。 これにより、"必須の承認" ルールとブランチ保護での望ましい制御が維持されます。 「ルールセットで使用できるルール」を参照してください。
Copilot クラウドエージェント 機密情報にアクセスできる
Copilot クラウドエージェント はコードやその他の機密情報にアクセスでき、誤って、または悪意のあるユーザー入力が原因で漏洩する可能性があります。
このリスクを軽減するために、GitHubCopilot クラウドエージェントインターネットへのアクセスを制限します。 「GitHub Copilot クラウド エージェントのファイアウォールのカスタマイズまたは無効化」を参照してください。
AI プロンプトはインジェクションに対して脆弱になる可能性がある
ユーザーは、Copilot クラウドエージェントに割り当てられた問題や、Copilot クラウドエージェントの形式としてに残されたコメントに非表示のメッセージを含めることができます。
このリスクを軽減するために、GitHubユーザー入力をCopilot クラウドエージェントに渡す前に非表示の文字をフィルター処理します。たとえば、問題に HTML コメントとして入力されたテキストや pull request コメントはCopilot クラウドエージェントに渡されません。
管理者はエージェントの作業を見失う可能性があります
このリスクを軽減するために、 Copilot クラウドエージェント は監査可能で追跡可能に設計されています。
- Copilot クラウドエージェントのコミットはCopilotによって作成され、タスクを割り当てた開発者またはプルリクエストへの変更を要求した開発者が共同作成者としてマークされます。 これにより、 Copilot クラウドエージェント によって生成されたコードと、タスクを開始したユーザーを簡単に識別できます。
- Copilot クラウドエージェントのコミットは署名されているため、 GitHubでは "検証済み" として表示されます。 これにより、コミットが Copilot クラウドエージェント によって行われ、変更されていないことが確実になります。
- セッション ログと監査ログ イベントは、管理者が使用できます。
- 各エージェントが作成したコミットのコミット メッセージには、コード レビューと監査のためのエージェント セッション ログへのリンクが含まれています。 「GitHub Copilotのセッションの追跡」を参照してください。