分析 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 枚举
- 通过标头操纵绕过速率限制
- 凭据扫描(单一源 IP 引发的 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]