$npx -y skills add killvxk/cybersecurity-skills-zh --skill analyzing-api-gateway-access-logs解析 API 网关访问日志(AWS API Gateway、Kong、Nginx),检测 BOLA/IDOR 攻击、速率限制绕过、凭据扫描和注入尝试。使用 pandas 进行请求模式的统计分析和异常检测。适用于调查 API 滥用或构建 API 专项威胁检测规则。
| 1 | # 分析 API 网关访问日志 |
| 2 | |
| 3 | ## 使用说明 |
| 4 | |
| 5 | 解析 API 网关访问日志,识别攻击模式,包括对象级别授权缺失(BOLA)、过度数据暴露和注入尝试。 |
| 6 | |
| 7 | ```python |
| 8 | import pandas as pd |
| 9 | |
| 10 | df = pd.read_json("api_gateway_logs.json", lines=True) |
| 11 | # 检测 BOLA:同一用户访问大量不同资源 ID |
| 12 | bola = df.groupby(["user_id", "endpoint"]).agg( |
| 13 | unique_ids=("resource_id", "nunique")).reset_index() |
| 14 | suspicious = bola[bola["unique_ids"] > 50] |
| 15 | ``` |
| 16 | |
| 17 | 关键检测模式: |
| 18 | 1. BOLA/IDOR:顺序资源 ID 枚举 |
| 19 | 2. 通过 Header 操纵绕过速率限制 |
| 20 | 3. 凭据扫描(单一来源的 401 激增) |
| 21 | 4. 查询参数中的 SQL/NoSQL 注入 |
| 22 | 5. 只读端点上的异常 HTTP 方法(DELETE、PATCH) |
| 23 | |
| 24 | ## 示例 |
| 25 | |
| 26 | ```python |
| 27 | # 检测 401 激增,指示凭据扫描 |
| 28 | auth_failures = df[df["status_code"] == 401] |
| 29 | scanner_ips = auth_failures.groupby("source_ip").size() |
| 30 | scanners = scanner_ips[scanner_ips > 100] |
| 31 | ``` |