ペネトレーションテストのカバレッジを理解する
カバレッジとは、ペネトレーションテストの実行中にAikidoが実際にテストした、発見済みエンドポイントの割合です。
発見(ディスカバリー)の段階では、Aikidoは見つけられるエンドポイント、機能、APIルートをマッピングします。攻撃(エクスプロイテーション)の段階では、自律エージェントが最も関連性の高いターゲットに対して実際の脆弱性をテストします。
カバレッジは、カバー済みエンドポイントを発見済みエンドポイント数で割った比率です。
これは実行中にAikidoが発見したエンドポイントを基にしています。これにはホワイトボックステスト、およびAPI仕様を提供した場合のグレーボックステストが含まれます。
何をもって「カバー済み」とみなすか
Section titled “何をもって「カバー済み」とみなすか”エンドポイントは、1つ以上のエージェントがそれに対して意味のあるセキュリティチェックを実行したときに「カバー済み」となります。
これらのチェックには以下が含まれます。
- インジェクションテスト
- 認証バイパスの試行
- 認可バイパスの試行
- ビジネスロジックの悪用
- その他エンドポイント固有のエクスプロイト経路
具体的なチェック内容は、エンドポイントの動作とリスクプロファイルによって異なります。これらの前提は、脅威モデルの**攻撃計画(Attack Plan)**で確認できます。
カバレッジは品質スコアではない
Section titled “カバレッジは品質スコアではない”カバレッジは、ペネトレーションテストの品質を測定するものではありません。
人間のペネトレーションテスターも、すべてのルートをテストするわけではありません。悪用可能な問題を含む可能性が最も高いエンドポイントを優先します。Aikidoも同様です。
パスワードリセットのフローは、静的アセットのルートよりも重要です。管理者操作は、ヘルスチェックエンドポイントよりも重要です。
なぜカバレッジは100%にならないのか
Section titled “なぜカバレッジは100%にならないのか”各ペネトレーションテストには固定のクレジット予算があります。この予算はエージェントの計算時間に変換されます。
エージェントはまず最も価値の高いターゲットにその時間を費やします。すべてのエンドポイントがテストされる前に予算が尽きた場合、残りのエンドポイントは通常最も優先度の低いものです。
その他の一般的な理由:
- 大規模なアプリケーションほど、探索・テストすべきエンドポイントが多くなります。
- 一部のエンドポイントは、特定の状態、連鎖的な操作、または稀な前提条件を必要とします。
- 一部のフローは、複雑なユーザージャーニーを経た後にしか到達できません。
- 実行中のサーバー状態の変化により、エージェントがアクセスできる範囲が変わることがあります。
リクエスト数のばらつき
Section titled “リクエスト数のばらつき”エンドポイントによっては数千件のリクエストが表示される一方、数件しか表示されないこともあります。これは正常です。
複雑なエンドポイントでは、インジェクションの種類、境界条件、エッジケースをテストするために多くのペイロードが必要です。単純な読み取り専用のエンドポイントでは、数件のリクエストだけで済むこともあります。
リクエスト数が多いことは通常、深いテストが行われたことを意味します。リクエスト数が少ないことは通常、そのエンドポイントの攻撃対象範囲が限定的だったことを意味します。
テスト間でのカバレッジの違い
Section titled “テスト間でのカバレッジの違い”同じアプリケーションに対する2回の実行でも、カバレッジは異なる場合があります。
Aikidoのエージェントは動的に判断を下します。エージェントは以下のような挙動を取ることがあります。
- 異なる探索経路をたどる
- 異なる順序でエンドポイントを発見する
- 有望に見える領域により多くの時間を費やす
- 前回の実行以降に変化したアプリケーションの状態に反応する
このばらつきは有用です。異なる実行によって、単一の決定論的なスキャンでは見逃してしまう問題を発見できることがあります。
コンプライアンスとカバレッジ
Section titled “コンプライアンスとカバレッジ”カバレッジスコアが100%未満であることは、コンプライアンス違反を意味するわけではありません。
SOC 2、ISO 27001、NIS2などのフレームワークは、アプリケーションのペネトレーションテストを要求していますが、100%のエンドポイントカバレッジは要求していません。
カバレッジの最低割合を定める一般的な標準はありません。これは、実際のペネトレーションテストがルート数ベースではなく、リスクベースで行われるためです。
監査担当者は、むしろ以下の点を重視します。
- 再現可能なテストプロセス
- 文書化された検出結果
- 是正措置の証跡
- 定期的な再評価
Aikidoのペネトレーションテストは、このワークフローをサポートします。
カバレッジと検出結果
Section titled “カバレッジと検出結果”カバレッジと検出結果の数との間に直接的な関連はありません。
例:
- セキュリティ対策が十分なアプリケーションでも、高いカバレッジで検出結果がゼロになることがあります。
- 小規模なアプリケーションでも、カバレッジが低いまま重大な検出結果を含むことがあります。
目標は、実際に悪用可能な脆弱性を発見することです。カバレッジ数値を最大化することではありません。
カバレッジを増やすことはできますか?
Section titled “カバレッジを増やすことはできますか?”近日中に、Coverage タブに表示される未カバーのエンドポイントに対して追加のエージェントを起動できるようになります。