Secret Scannerは、サポートされているApidogアセット内のAPIキー、アクセストークン、認証情報、Webhook URL、その他の機密情報の可能性を検出します。検出結果は、機密情報が出現する可能性のある場所を示しますが、その完全な値は表示しません。
このチュートリアルでは、検出結果の確認、実際の漏洩への対応、解決策の記録、およびチームが社内シークレット形式を使用する場合のカスタム検出パターンの追加方法について説明します。
始める前に
Secret Scannerは、Enterprise SaaSプランで利用できます。現在、Apidogオンプレミスでは利用できません。
アクセス権限はあなたの役割によって異なります:
| 役割 | 利用可能なアクション |
|---|---|
| 組織オーナーまたは管理者 | チーム全体の組織レベルのレポートを表示 |
| チームオーナーまたは管理者 | チームの検出結果の確認、検出結果の解決または再オープン、カスタムパターンの管理、分析の表示 |
| チームメンバーまたはゲスト | アクセス権を持つプロジェクトの検出結果のみを表示 |
テスト時には架空の値を使用してください。スキャンが機能することを確認するためだけに、実際の認証情報をリソースに貼り付けないでください。
ステップ1: 組織レポートを確認する
組織オーナーと管理者は、組織レポートを使用して、未解決の検出結果があるチームを特定できます。
- 組織レベルのSecret Scannerレポートを開きます。
- 未解決の検出結果と公開された漏洩の数をレビューします。
- 最終検出時刻とスキャンステータスを確認します。
- 影響を受けるチームを開くか、そのチームオーナーまたはチーム管理者に連絡します。
組織レポートは、管理者がどのチームにフォローアップが必要か特定するのに役立ちます。
このレポートはトリアージビューです。調査と解決は、影響を受けるチームのSecret Scannerページで行われます。
ステップ2: チームの検出結果を開いてフィルターする
チーム内で、Secret Scannerを開き、Secrets Detectedを選択します。
利用可能なフィルターを使用して、リストを以下で絞り込みます:
- ステータス
- プロジェクト
- パターン
- リソースタイプ
- キーワード
各検出結果は、その検出パターンと安全なフィンガープリントによってグループ化されます。検出された同じ値が複数の場所に出現する場合、1つの検出結果が複数の出現箇所を持つことがあります。
値はマスクされています。プロジェクト、リソースタイプ、出現回数、およびソースの場所を使用して検出結果を調査してください。
公開漏洩としてマークされた未解決の検出結果から始め、次に複数のリソースまたはプロジェクトに出現する検出結果を確認します。
ステップ3: すべての出現箇所を調査する
検出結果を開き、その出現箇所を確認します。各出現箇所について、以下を確認します:
- 値を含むプロジェクトとリソース
- リソースタイプとソースの場所
- 値が公開ドキュメントに出現しているか
- 最初と最後の検出時刻
- 値が実際の認証情報か誤検知か
値が本物であるかどうかを判断する際に、マスクされたスニペットのみに頼らないでください。ソースリソースを確認し、必要に応じて、認証情報をチケットやチャットメッセージにコピーせずに、リソース所有者に発行システムを特定するよう依頼してください。
ステップ4: 実際の漏洩に対応する
Secret Scannerは、漏洩の可能性を報告するものであり、認証情報を変更するものではありません。確認されたシークレットは、それが発行されたシステムで処理してください。
この順序で使用してください:
- 外部サービスで認証情報を失効、ローテーション、または無効化します。
- 予期せぬアクティビティがないか、利用可能な使用ログをレビューします。
- Apidogに表示されているすべてのソース出現箇所から値を削除します。
- ワークフローで認証情報が引き続き必要な場合は、生の値を適切な変数またはVault Secret参照に置き換えます。
- 変更された各リソースを保存して、非同期スキャンが再度実行できるようにします。
認証情報が公開ドキュメントに表示されている場合、不審な使用が見られなくても、外部に公開されているものとして扱ってください。
Apidogから値を削除しても、すでに他の場所に存在する可能性のあるコピーが無効になるわけではありません。ローテーションまたは失効は、実際の漏洩に対する主要な封じ込めアクションです。
ステップ5: 解決策を記録する
対応が完了したら、検出結果の解決理由を設定します。
| 解決理由 | 使用する状況 |
|---|---|
| 失効済み | その値は実際のシークレットであり、Apidog以外で失効、ローテーション、または無効化された場合 |
| 誤検知 | 検出された値がシークレットではない場合 |
| 修正しない | その値は実際のシークレットであるが、チームがリスクを受け入れ、変更しない場合 |
検出結果を解決済みとしてマークしても、Apidogでのステータスが変更されるだけです。基礎となる値の失効、ローテーション、無効化、削除、置き換えは行われません。
さらなるアクションが必要になった場合は、検出結果を再オープンしてください。
ステップ6: クリーンアップを確認する
Secret Scannerはリアルタイムではなく非同期的に実行されます。スキャンは、サポートされているリソースが追加されたとき、またはサポートされているリソースが変更された後に保存が選択されたときにトリガーされます。
修復後:
- 既知のすべてのソース出現箇所が変更されたことを確認します。
- 影響を受けるリソースを保存します。
- 非同期スキャンの時間を与えます。
- 検出結果とその最終検出時刻をレビューします。
- 発行サービスで古い認証情報が機能しなくなったことを別途確認します。
スキャナーのステータスは、認証情報の有効性テストではありません。外部サービスでの失効を確認してください。
ステップ7: カスタム検出パターンを追加する
チームオーナーとチーム管理者は、組織固有のシークレット形式に対応するカスタムパターンを作成できます。
- Secret Scanner > Patternsを開きます。
- カスタムパターンを作成するオプションを選択します。
- わかりやすい名前を入力します。
- 正規表現と役立つキーワードを追加します。
- 架空の値でテストします。
- パターンを有効にして保存します。
現在の制限は次のとおりです:
- チームごとに最大5つのカスタムパターン
- パターン名:最大128文字
- UIでの正規表現:最大256文字
- キーワード:最大10個
- 各キーワード:最大64文字
組み込みパターンは読み取り専用です。その内部正規表現は表示されず、編集、削除、有効化、または無効化することはできません。
ステップ8: チームアナリティクスをレビューする
チームオーナーとチーム管理者は、Analyticsを開いて、検出結果が集中している場所を確認できます。
アナリティクスを使用して、追加のレビューが必要なプロジェクト、パターン、およびアセットタイプを特定します。
アナリティクスは作業の優先順位付けに役立ちますが、各検出結果は依然としてソースレベルでの調査が必要です。
サポートされるアセットタイプ
Secret Scannerは現在、以下を含むサポートされているアセットをスキャンします:
- APIおよびAPIリクエスト
- APIケース
- プロジェクトモジュールおよびプロジェクトモジュール変数
- レスポンス例
- Markdownドキュメントおよびデータスキーマ
- 環境変数、グローバル変数、およびチーム変数
- 共通スクリプトおよび共通パラメータ
出現箇所で利用できるソースの詳細は、そのリソースタイプと閲覧者の権限によって異なります。
トラブルシューティング
| 問題 | 確認すべきこと |
|---|---|
| 最近の変更がまだ結果に反映されていない | スキャンは非同期です。リソースが保存されていることを確認し、後で再度レビューしてください。 |
| チームメンバーが検出結果を見ることができない | メンバーが関連するプロジェクトへのアクセス権を持っていることを確認してください。 |
| ユーザーがパターンやアナリティクスを管理できない | パターン管理とアナリティクスには、チームオーナーまたはチーム管理者権限が必要です。 |
| 解決済みの検出結果にまだ機能するシークレットが含まれている | 解決ステータスは認証情報を変更しません。発行サービスで失効またはローテーションしてください。 |
| 外部リポジトリがスキャンされていない | Secret Scannerは外部のGitHubまたはGitLabリポジトリをスキャンしません。リポジトリプロバイダーのスキャン制御も使用してください。 |
重要な制限事項
Secret Scannerは、ユーザーがシークレットを入力するのを防いだり、ドキュメントの公開をブロックしたり、外部リポジトリをスキャンしたり、すべてのシークレット形式の検出を保証したりするものではありません。また、ソース値を自動的に削除したり、変数やVault参照に置き換えたりすることもありません。
最小権限の発行、安全な保管、ローテーション、失効、利用状況の監視も含む認証情報管理プロセスの一部として使用してください。
関連するAPIガバナンスチュートリアル:
これらのチュートリアルは、エンタープライズAPIワークスペースを管理するための補完的な制御をカバーしています:
- APIガバナンスフレームワーク — 所有権、制御、証拠、ライフサイクル決定を結びつけます。
- Microsoft Entra IDとのSAMLグループマッピング — IDプロバイダーグループからチームアクセスを割り当てます。
- Secret Scanner — サポートされているApidogアセットにおける潜在的な公開認証情報をレビューします。
- 監査ログ — 管理組織のアクティビティを調査およびエクスポートします。
- SCIMプロビジョニング — IDライフサイクルを通じて組織ユーザーを管理します。
- エンタープライズポリシー — 認証情報、メンバーシップ、SSOセッション、招待の制御を設定します。
- セルフサービスAPIチーム — 所有権の監視を維持しつつ、メンバーが作成したチームを許可します。
- GitHub Enterprise Cloud連携 — OpenAPIワークフローのためにサポートされているGHE.comリポジトリを接続します。
関連する公式ドキュメント:
