CurrentStack
#security#api#observability#devops#reliability

ステートフルAPI脆弱性スキャン運用:検知から修正までつなぐ実装設計

API攻撃は、いまや単発のペイロード勝負ではありません。認証の弱点、ビジネスロジックの不整合、トークン運用ミスを複数リクエストで連鎖させる攻撃が主流です。1リクエスト単位のスキャンだけでは、本番リスクを取りこぼします。

最近のCloudflareのアクティブディフェンス系の発信が示す通り、実務は「危険な文字列を探す」から「攻撃者セッションを再現する」へ移行しています。

ステートフル化で何が変わるか

従来型はエンドポイント単位で検査します。ステートフル型はフロー単位で検査します。

  • 登録 → 検証 → 権限遷移
  • カート更新 → 決済直前の競合
  • トークン更新 → 再利用(replay)
  • 分散Gateway跨ぎのクォータ逸脱

分析単位が「リクエスト」から「シナリオ」に変わるのが本質です。

実運用アーキテクチャ(3つのループ)

ループ1:発見と契約抽出

  • OpenAPI仕様と実トラフィックから経路を同定
  • 未文書エンドポイントを抽出
  • ルートごとの認証方式・データ分類を付与

ループ2:状態遷移ベースの攻撃再現

  • 分岐を持つセッショングラフを生成
  • 実時間に近いタイミングで遷移を再生
  • 不変条件破壊(権限昇格、負残高、失効認可利用)を検知

ループ3:ランタイム相関

  • スキャン結果をWAF/API Gatewayログに突合
  • 実トラフィックから悪用可能性を再評価
  • 現在の構成では到達不能な検知を抑制

この相関がないと、理論上の検知だけが増えて現場が止まります。

優先度設計(4軸)

各検知を次の4軸でスコアリングします。

  1. 現行構成での悪用可能性
  2. 影響半径(テナント/財務/規制)
  3. 既存検知網の欠落度
  4. 修正容易性とオーナー明確性

その上で P0/P1/P2 に振り分けます。重要なのは、セキュリティ部門だけの台帳にしないことです。プロダクト・基盤・SREが同じキューを見る体制にしないと、修正が進みません。

45日導入プレイブック

  1. 重要APIジャーニーを2本選びシナリオ化
  2. 監視モードで誤検知傾向を把握
  3. request ID / session ID / identity claimでログ連結
  4. 抑制ルールに失効日を必須化
  5. Jira連携時にSLAラベルを自動付与
  6. 週次で攻撃経路レビュー会を開催
  7. 検知→修正完了の所要日数を計測

典型的な失敗

  • 品質調整前に「ゲート化」して開発を止める
  • ビジネスロジック脆弱性の責任者が不明
  • 期限なし抑制で恒久的死角を作る
  • AppSecとAPI運用の可観測性が分断

KPI

  • 実行可能な検知率(actionable / total)
  • 検知から修正までの平均日数
  • 再発(reopen)率
  • 高リスク経路のカバレッジ
  • 修正後に遮断できた攻撃試行数

まとめ

ステートフルAPIスキャンは、ツール導入より運用接続が勝負です。シナリオ設計、ランタイム相関、責任あるキュー運用をそろえると、検知はノイズではなく再発防止の資産になります。

おすすめ記事