Sensei について (Pro)

注: Sensei は DefectDojo Pro 限定機能であり、現在 BETA(ベータ版)です。

Sensei は、ソースコードリポジトリ向けの DefectDojo の AI 搭載スキャンと修正機能です。リポジトリを(GitHub AppGitLabBitbucket、または Azure DevOps 経由で)接続すると、Sensei がそれをスキャンし、結果を DefectDojo の検出事項としてインポートし、その後大規模言語モデルを使用してプルリクエスト/マージリクエストを作成することでそれらの検出事項を修正します。これらはすべて DefectDojo から離れることなく行われます。

🔀 複数のプロバイダー: Sensei は GitHub(github.com および GitHub Enterprise Server)、GitLab(gitlab.com およびセルフマネージド)、Bitbucket(Cloud および Server/Data Center)、Azure DevOps をサポートしており、いずれも同じスキャンと修正のフローで動作します。このガイドで pull request と記載している箇所は、GitLab では マージリクエスト になります。PR の ステータスチェック は、GitLab/Azure では コミットステータス、Bitbucket では ビルドステータス として投稿されます。接続方法はプロバイダーによって異なりますが(Sensei のセットアップ を参照)、オンボーディング後の動作はすべて共通です。

  • 一元化されたスキャンと修正: リポジトリのスキャンと修正は、Sensei ページおよび検出事項から行われ、DefectDojo の他の部分と同じ正規化・重複排除された検出データが使用されます。
  • プレビューファースト: Sensei は修正の候補をレビュー用にステージングします。承認するまで LLM には何も送信されず、プルリクエストも作成されないため、予期しないコストや意図しない PR が発生することはありません。
  • 短命な認証情報: Sensei はすべて GitHub App を通じて動作し、短命なインストールトークンを使用します。貼り付けが必要なものも、ローテーションが必要なものもありません。
  • メータリングとライセンスによる制限: Sensei は Pro 機能であり、修正数とオンボーディング済みリポジトリ数についてインスタンスごとのクォータがあります。

🧠 コードが存在する前に: Sensei は、リポジトリを必要とせずに、機能の設計から脅威モデル、攻撃パス、セキュリティ要件を生成することもできます。詳細は 脅威モデリング を参照してください。

🔎 BETA: Sensei は現在活発に開発が進められており、UI 全体で BETA と表示されています。動作や画面はリリースごとに変更される可能性があります。

📍 場所: 左側のナビゲーションから Sensei を開いてください。

Sensei ハブ

DefectDojo ホスト型スキャンの仕組み

DefectDojo ホスト型スキャンは、Sensei を実行する際に推奨される方法です。スキャンはDefectDojo 内部で実行され、リポジトリには何も追加されません。

  1. GitHub App を接続し、リポジトリを所有する組織(またはアカウント)にインストールします。
  2. ホスト型スキャン用にリポジトリをオンボーディングし、検出事項の報告方法と(必要に応じて)自動修正の方法を選択します。
  3. Sensei がリポジトリをスキャンし(オンデマンド、またはプルリクエストが作成されたときに自動的に)、結果をブランチ名にちなんだエンゲージメントにインポートします。
  4. Sensei が検出事項を修正します。修正を生成し、リポジトリのデフォルトブランチに対してプルリクエストを作成します。

オンボーディングされた各リポジトリは DefectDojo のアセット(製品)にリンクされるため、その検出事項、エンゲージメント、修正は他のデータと一緒に保存されます。

修正が開始される3つの方法

Sensei は3つの方法で検出事項を修正できます。

  • 検出事項の Fix ボタン: 検出事項テーブルまたは検出事項の詳細ページから直接、単発の修正を実行します。詳細は Sensei で検出事項を修正する を参照してください。
  • 自動修正候補: 各スキャンの後、Sensei は条件に一致する検出事項を候補としてステージングします。それらをレビューし、修正する項目を承認します(または Sensei に自動的に修正させることもできます)。詳細は 自動修正候補 を参照してください。
  • プルリクエストへの /fix コメント: プルリクエストに /fix とコメントすると、Sensei がその PR に修正をプッシュします。

必要条件

  • Sensei 機能を含む DefectDojo Pro ライセンス。
  • 接続済みのソースコード管理プロバイダー(Sensei のセットアップ を参照): GitHub App(github.com または Enterprise Server)、GitLab プロジェクト/グループアクセストークン(gitlab.com またはセルフマネージド)、Bitbucket 接続(Cloud または Server/Data Center — OAuth、API トークン、またはアクセストークン)、または Azure DevOps の個人用アクセストークン。
  • Sensei を設定する(アプリの接続、リポジトリのオンボーディング)ためには: グローバルの Maintainer または Owner ロール。
  • 検出事項に対して修正をトリガーするためには: その検出事項の製品に対する少なくとも Writer アクセス権。

クォータ

Sensei はライセンスに対してメータリングされます。Sensei ハブのページ上部には、2つの使用量メーターが表示されます。

  • Fixes: 事前契約した上限に対して適用された修正の数。候補の承認または修正のトリガーは、このクォータを消費します。
  • Onboarded Repositories: リポジトリの上限に対してオンボーディングされたリポジトリの数。

クォータに達すると、上限が引き上げられるまで Sensei はそれ以上の修正(またはオンボーディング)をブロックします。詳細は リファレンス を参照してください。