前提条件
前提条件
スキャンを実行するには、次の条件を満たしている必要があります。
- スキャン対象のリポジトリに、あなたの組織がアクセスできる必要があります。
- Devin セッションの利用が許可されている必要があります。
- Use code scans 権限が必要です。
- Auto Scan のスケジュールを設定するには、Manage code scans と、自動化を管理する権限も必要です。
最初のスキャンを実行する
- 左側のサイドバーでセキュリティを開き、Start scanをクリックします。
- Single repoで、スキャン対象のリポジトリを選択します。
- Interactive modeが有効になっていることを確認します。
- Run Scanをクリックします。
- 提案された脅威モデルの準備ができたら内容を確認し、Looks good, start scanningをクリックするか、フィードバックを送信します。
- 検出事項が表示されたら、証拠を確認し、対応が必要な検出事項に対処します。
findings を確認して対応する
- Open — 対応が必要です。
- Reviewed — レビュー済みで、追加の対応は不要です。
- Dismissed — 誤検知または重複と判断されました。
検出事項に含まれる内容
- 重大度、ステータス、悪用可能性、確信度、カテゴリ。
- 影響を受けるファイルパスとコードスニペット。
- 問題の説明と対処方法の推奨事項。
- ランタイム検証結果、裏付けとなる証拠、および検証アーティファクト。
- 関連するプルリクエストと、それらのオープン、マージ済み、またはクローズ済みの状態。
- 利用可能な場合は、コードオーナーとメモ。
検出結果に対応する
- Devin に割り当て
- フィードバック
- 調整
- ステータスメニュー
問題を修正してプルリクエストを作成するための Devin セッションを開始します。セッションと作成されたプルリクエストは、この検出結果に紐づけて追跡されます。
スキャンプロファイル
プロファイルを作成する
- Devin で生成 — アプリケーション、脅威、スコープ、除外事項、重大度の基準を自然言語で記述します。Devin がプロファイルのドラフトを作成します。
- 手動で作成 — プロファイルの各入力項目を自分で入力します。
基本情報
- プロファイル名 — スキャンを実行するチーム名ではなく、アプリケーションの対象領域や脅威カテゴリを表す名前にします。例:
Multi-tenant API authorization. - 説明 — プロファイルの対象範囲とセキュリティ上の目的を簡潔にまとめます。例:
Find authentication, authorization, and tenant-isolation vulnerabilities in the public API.
脅威モデル
調査ガイダンス
トリアージの指針
ランタイム検証
レポート
修正ガイダンス
詳細入力
- Include globs — マッチするファイルのみにスキャンを限定します。たとえば、
apps/api/**やpackages/auth/**です。 - Exclude globs — 選択した対象範囲から無関係なファイルを除外します。たとえば、
**/generated/**、**/vendor/**、**/fixtures/**です。 - Batch size — シグナルがあるファイルを、各調査バッチにいくつずつまとめるかを設定します。スキャンの挙動を意図的に調整するのでなければ、デフォルトのままにしてください。設定可能な範囲は 1~500 で、デフォルトは 5 です。
組織プロファイルとEnterpriseプロファイル
インタラクティブモード
- Looks good, start scanning — 脅威モデルを承認して調査を開始します。
- Provide feedback on the threat model — 追加・削除したい点や、特に重視したい点を指定し、修正後のモデルを確認します。
ランタイム検証を設定する
スキャンを拡張する
複数のリポジトリをスキャンする
- 必要に応じてリポジトリ名フィルターを入力します。
- 必要に応じてスキャンプロファイルを選択します。
- 選択したプロファイルですでにスキャンされているリポジトリを除外するには、すでにスキャン済みのリポジトリをスキップを有効のままにします。
- プレビューをクリックします。
- 条件に一致したリポジトリを確認し、スキャンしたくないものは選択を解除して確定します。
自動スキャン
- 単一リポジトリのスキャンを開始するときに、日次、週次、月次、またはカスタムのスケジュールを選択する。
- 既存のスキャンで、スケジュールを追加、編集、無効化、またはすぐに実行する。
自動スキャンは、自動化が組織で有効になっている場合にのみ利用できます。設定するには、コードスキャンの管理権限と、自動化を管理する権限の両方が必要です。
自動スキャンは増分方式です。各実行では、前回完了したスキャン以降に追加されたコミットのみを調査します。代わりに スキャンを開始 をクリックすると、既定ではリポジトリ全体をフルスキャンします。
新しいコミットをスキャンする
スキャンの管理と監視
- レポート — スキャン用に生成されたレポートをダウンロードします。
- 使用量 — 消費したACU、セッション数、スキャン時間、PRの統計を閲覧します。
- セッション — スキャンを実行したメインのDevinセッションを開きます。
- CSVとしてエクスポート — スキャンの検出結果をエクスポートします。
- アーカイブ または アーカイブ解除 — スキャンをデフォルトの一覧から非表示にするか、一覧に戻します。
- 新しいコミットをスキャン — 増分スキャンを開始します。
セキュリティダッシュボード
- プルリクエストの統計 — 作成、マージ、オープン、クローズされたプルリクエスト数と、マージ率。
- 検出事項の推移 — 選択した期間内の検出事項を重要度別に表示します。
アクセスと権限
スキャンの開始、フィードバックの送信、検出結果のDevinへの割り当てには、Devinセッションを利用する権限も必要です。さらに、Auto Scanには自動化を管理する権限が必要です。
デフォルトでは、メンバーにはコードスキャン権限は付与されません。オーナーはすべての権限を持ち、管理者はカスタムロールを通じてメンバーに権限を付与できます。
Security Swarm を別のスキャナーと比較する
よくある質問
Security Swarm はどのように誤検知を減らしますか?
Security Swarm はどのように誤検知を減らしますか?
Security Swarm は、危険なパターンを個別に報告するのではなく、リポジトリの前提情報に照らして潜在的な脆弱性を調査します。Devin は関連するデータフローを追跡し、検証や認可の制御を確認したうえで、その問題に具体的なセキュリティ上の影響があるかどうかを評価します。各検出結果には、信頼度レベルと裏付けとなる証拠が含まれます。特に、検出結果が実行時に検証されていない場合は、対応する前にその証拠を確認してください。
検出結果ではどのような証拠を確認すべきですか?
検出結果ではどのような証拠を確認すべきですか?
影響を受けるコード、エントリーポイント、データフロー、既存の緩和策、記載された影響、信頼度、悪用可能性を確認してください。実行時検証が有効な場合は、検証結果とそれを裏付ける成果物も確認してください。証拠で制御が見落とされていたり、裏付けのない影響が示されていたりする場合は、Feedback を利用して、今後のスキャンに向けて不足している前提情報を与えてください。
実行時検証では何が追加されますか?
実行時検証では何が追加されますか?
実行時検証では、隔離された環境でアプリケーションをビルドして実行し、検出結果の再現を試みます。検証が成功すると悪用可能性についてより強い証拠が得られ、検証が成功しなかった場合は、追加の確認が必要な前提や環境上の制約を特定できます。実行時検証は任意であり、Devin がアプリケーションを安全にビルド、実行、シード、認証できるようにするための十分な validation guidance が必要です。
Security Swarm は複数のファイルにまたがる脆弱性をどのように見つけますか?
Security Swarm は複数のファイルにまたがる脆弱性をどのように見つけますか?
Security Swarm はリポジトリの各部分を並列に分析し、その結果をリポジトリ全体の観点に統合します。これにより、あるエンドポイントが別のエンドポイントを悪用するために必要な識別子を公開している、といったコンポーネント間の関係を特定できます。その結果として得られる連鎖的な検出結果でも、関連するコードパスを特定し、個々の条件がどのように組み合わさって具体的な影響につながるのかを説明する必要があります。
スキャンごとに結果が異なるのはなぜですか?
スキャンごとに結果が異なるのはなぜですか?
Security Swarm はエージェント型の分析を利用しているため、別々のスキャンで同一の検出結果や表現になるとは限りません。対象範囲を絞り込み、脅威モデルを明示し、重大度の基準を明確にし、具体的な調査ガイダンスを与えることで、カバレッジの一貫性を保ちやすくなります。これらの要件を再利用可能な scan profile に記録し、interactive mode を利用して提案された脅威モデルを確認し、結果が重要な前提情報を見落としている場合は Feedback を与えてください。
スキャンが完了したということは、リポジトリに他の脆弱性はないという意味ですか?
スキャンが完了したということは、リポジトリに他の脆弱性はないという意味ですか?
いいえ。完全なカバレッジを保証できるセキュリティスキャナーはありません。結果は、選択したスコープ、profile のガイダンス、利用可能なリポジトリの前提情報、そして設定された環境で検出結果を検証できるかどうかに左右されます。攻撃者モデルや脅威カテゴリごとに個別のスキャンを実行し、アプリケーションの変更に合わせて profiles を最新の状態に保ち、既存のセキュリティレビューやテストの実践とあわせて Security Swarm を利用してください。

