分析 API 閘道存取日誌 是做什麼的?
何時使用
- 調查安全事件,需分析 API 閘道存取日誌時
- 為此領域建立偵測規則或威脅獵捕查詢時
- SOC 分析師需要此分析類型的結構化程序時
- 驗證相關攻擊手法之安全監控覆蓋率時
前提條件
- 熟悉安全營運概念與工具
- 可存取測試或實驗環境以安全執行
- 已安裝 Python 3.8+ 及所需相依套件
- 具備適當的測試活動授權
操作說明
解析 API 閘道存取日誌,識別攻擊模式,包括物件層級授權缺陷(BOLA)、大量資料暴露以及注入嘗試。
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]