Skip to main content

GitHub Copilot クラウド エージェントのリスクと軽減策

          Copilotクラウドエージェントの組み込みのセキュリティ保護は、既知のリスクをどのように軽減しますか?
          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/cloud-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クラウドエージェント によって生成されたコードと、タスクを開始したユーザーを簡単に識別できます。
    
  •         Copilotクラウドエージェントのコミットは署名されているため、 GitHubでは "検証済み" として表示されます。 これにより、コミットが Copilotクラウドエージェント によって行われ、変更されていないことが確実になります。
    
  • セッション ログと監査ログ イベントは、管理者が使用できます。
  • 各エージェントが作成したコミットのコミット メッセージには、コード レビューと監査のためのエージェント セッション ログへのリンクが含まれています。 「GitHub Copilotのセッションの追跡」を参照してください。