API Gateway アクセスログ分析 は何をしますか?
使用タイミング
- セキュリティインシデント調査で API Gateway アクセスログの分析が必要な場合
- このドメインに関する検知ルールや脅威ハンティングクエリを作成する場合
- SOC アナリストがこの分析タイプの構造化された手順を必要とする場合
- 関連する攻撃手法に対するセキュリティ監視のカバレッジを検証する場合
前提条件
- セキュリティ運用の概念とツールに関する知識
- 安全な実行のためのテスト環境またはラボ環境へのアクセス
- Python 3.8 以上と必要な依存関係のインストール済み
- テスト活動に対する適切な認可
手順
API Gateway アクセスログを解析し、BOLA(Broken Object Level Authorization / 過剰なデータ露出)やインジェクション攻撃を含む攻撃パターンを特定します。
import pandas as pd
df = pd.read_json("api_gateway_logs.json", lines=True)
# BOLA の検出:同一ユーザーが多数の異なるリソース ID にアクセス
bola = df.groupby(["user_id", "endpoint"]).agg(
unique_ids=("resource_id", "nunique")).reset_index()
suspicious = bola[bola["unique_ids"] > 50]
主要な検出パターン:
- BOLA/IDOR:シーケンシャルなリソース ID の列挙
- ヘッダー操作によるレート制限のバイパス
- クレデンシャルスキャン(単一ソースからの 401 急増)
- クエリパラメータへの SQL/NoSQL インジェクション
- 読み取り専用エンドポイントへの異常な HTTP メソッド(DELETE、PATCH)
例
# クレデンシャルスキャンを示す 401 急増を検出
auth_failures = df[df["status_code"] == 401]
scanner_ips = auth_failures.groupby("source_ip").size()
scanners = scanner_ips[scanner_ips > 100]