正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

エージェント型SAST脆弱性の修正

  • プラン: Ultimate
  • アドオン: GitLab Duo Core、Pro、またはEnterprise
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLab Duoは、SAST脆弱性を自動的に分析し、コンテキスト認識型のコード修正を含むマージリクエストを生成します。このエージェント型アプローチでは、マルチショット推論を使用して、人間の介入を最小限に抑えながら脆弱性を解決し、修正時間を短縮し、セキュリティの成果を向上させます。

シングルショットの脆弱性の修正とは異なり、エージェント型脆弱性の修正では、反復的な推論を使用して以下を行います:

  • コードベース全体の脆弱性のコンテキストを分析する
  • 根本原因に対処する高品質な修正を生成する
  • 自動テストを通じて修正を検証する
  • 提案されたソリューションの信頼性スコアリングを提供する

エージェント型SAST脆弱性の修正は自動的に実行することも、手動で実行することもできます。

クリックスルーデモについては、エージェント型SAST脆弱性の修正を参照してください。

自動解決

メインブランチでSASTセキュリティスキャンが完了すると、GitLab Duoは次のアクションを自動的に完了します:

  1. 高および重大度の各SAST脆弱性を分析します。
  2. 誤検出判定が実行されたかどうかを確認します。
  3. 脆弱性が可能性のある誤検出でない場合、GitLab Duoは提案された修正を含むマージリクエストを作成します。
  4. 修正が脆弱性を解決することを検証するためにパイプラインを実行します。

このプロセスはバックグラウンドで実行され、手動でのトリガーは不要です。処理が完了すると、脆弱性レポートに結果が表示されます。

手動解決

重大度に関係なく、既存のSAST脆弱性に対して、いつでもエージェント型脆弱性の修正を手動でトリガーできます。手順については、手動トリガーを参照してください。

自動解決の条件

次のすべての条件が満たされると、自動エージェント型脆弱性の修正が実行されます:

  • メインブランチでSASTセキュリティスキャンが正常に完了している。
  • スキャンで、高または重大度の重大度の脆弱性が検出されている。
  • 誤検出判定が実行され、その脆弱性は誤検出ではないと判断されました。
  • プロジェクトでエージェント型SAST脆弱性の修正フローが有効になっています。
  • GitLab Duo機能がプロジェクトで有効になっている。
  • 脆弱性が、サポートされているSASTアナライザーからのものである。

分析はバックグラウンドで行われ、処理が完了した後、脆弱性レポートに結果が表示されます。

手動トリガー

既存のSAST脆弱性に対してエージェント型脆弱性の修正を手動で実行するには、以下の手順に従います:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. セキュリティ > 脆弱性レポートを選択します。
  3. 修正する脆弱性を選択します。
  4. 右上隅で、AI脆弱性管理 > AIを使用して解決するを選択します。

GitLab Duoは脆弱性を分析し、修正を作成できる場合はマージリクエストを生成します。手動による解決は、重大度に関係なく、すべてのSAST脆弱性で機能します。

設定

エージェント型脆弱性の修正を使用するには、次の要件が設定されている必要があります:

  • GitLab Duoアドオンのサブスクリプション(GitLab Duo Core、Pro、またはEnterprise)。
  • ユーザー設定でデフォルトのGitLab Duoのネームスペースが設定されている
  • GitLab 18.9以降。
  • GitLab Duoの実験的機能とベータ版機能を有効にするは、トップレベルグループで有効になっています。
  • エージェント型脆弱性の修正はグループで許可され、プロジェクトで有効になっています。
  • トップレベルグループとプロジェクトで、SAST誤検出判定フローが有効になっています。

グループの基本フローを許可する

トップレベルグループ内のすべてのプロジェクトで、基本フローを使用できるように許可できます。各プロジェクトでは、プロジェクトの設定でこの機能を有効にする必要があります。

トップレベルグループ内のすべてのプロジェクトでエージェント型脆弱性の修正を許可するには:

  1. 左サイドバーで、検索または移動先を選択し、トップレベルグループを見つけます。
  2. 設定 > GitLab Duoを選択します。
  3. フロー実行を許可切替をオンにします(デフォルトで有効)。
  4. 基本フローを許可で、SAST脆弱性を解決チェックボックスを選択します。
  5. 変更を保存を選択します。

プロジェクトでオンにする

特定のプロジェクトで機能を有効にするには:

  1. 左サイドバーで、検索または移動先を選択し、プロジェクトを見つけます。
  2. 設定 > 一般を選択します。
  3. GitLab Duoを展開します。
  4. SAST脆弱性修正ワークフローを有効にする切替をオンにします。
  5. 変更を保存を選択します。

トップレベルグループでエージェント型脆弱性の修正を許可し、プロジェクトでそれを有効にすると、この機能は既存のSASTスキャナーと自動的に連携します。

生成されたマージリクエストのレビュー

GitLab Duoが脆弱性のマージリクエストを生成すると、次のようになります:

  1. 提案された修正を含むマージリクエストが作成されます。
  2. 説明には以下が含まれます:
    • 脆弱性の詳細と重大度
    • 修正アプローチの説明
    • 関連するセキュリティリソースへのリンク
    • 提案されたソリューションの信頼性スコア
  3. 修正を検証するためにパイプラインが自動的に実行されます。
  4. レビュアーは、変更とパイプラインの結果をレビューします。
  5. マージリクエストをマージする権限を持つユーザーは、ワークフローに従ってレビューします。

トラブルシューティング

エージェント型脆弱性の修正では、提案された修正を生成できない場合があります。一般的な原因は次のとおりです:

  • コンテキストが不十分: 脆弱性は、追加のコンテキストまたは手動による介入を必要とする複雑なコードパターンで発生します。
  • 誤検出がある: AIモデルは、脆弱性が有効かどうかを評価します。モデルは、脆弱性が真の脆弱性ではない、または修正する価値がないと判断する場合があります。
  • 一時的または予期しないエラー: エラーメッセージには、an unexpected error has occurredthe upstream AI provider request timed outsomething went wrong、または同様の原因が記載されている場合があります。
    • これらのエラーは、AIプロバイダーまたはGitLab Duoの一時的な問題が原因である可能性があります。
    • 新しいリクエストが成功する可能性があるため、脆弱性の解決をもう一度試すことができます。
    • これらのエラーが引き続き表示される場合は、GitLabにお問い合わせください。

フィードバックの提供

エージェント型脆弱性の修正に関するフィードバックを歓迎します。問題が発生した場合、または改善のための提案がある場合は、イシュー585626にフィードバックをお寄せください。