Files
Anthropic-Cybersecurity-Skills/skills/analyzing-api-gateway-access-logs/references/api-reference.md
T
mukul975 27c6414ca5 Add folder anatomy (scripts/agent.py + references/api-reference.md) for 648 cybersecurity skills
Complete skill folder anatomy across all cybersecurity skills:
- scripts/agent.py: 80-150 line Python agents using real libraries (impacket,
  boto3, azure-mgmt-*, kubernetes, pefile, yara, scapy, shodan, stix2, etc.)
- references/api-reference.md: real API documentation with method signatures
- LICENSE: MIT license for all skill folders
2026-03-10 21:02:12 +01:00

1.4 KiB

API Reference: Analyzing API Gateway Access Logs

AWS API Gateway Log Fields

{
  "requestId": "abc-123",
  "ip": "203.0.113.50",
  "httpMethod": "GET",
  "resourcePath": "/api/users/{id}",
  "status": 200,
  "requestTime": "2025-03-15T14:00:00Z",
  "responseLength": 1024
}

Pandas Log Analysis

import pandas as pd

df = pd.read_json("access_logs.json", lines=True)

# BOLA detection
df.groupby("user_id")["resource_id"].nunique()

# Auth failure surge
df[df["status_code"] == 401].groupby("source_ip").size()

# Request velocity
df.set_index("timestamp").resample("1min").size()

OWASP API Top 10 Patterns

Risk Detection Pattern
BOLA (API1) User accessing > 50 unique resource IDs
Broken Auth (API2) > 100 401/403 from single IP
Excessive Data (API3) Response size > 10x average
Rate Limit (API4) > 100 req/min from single IP
BFLA (API5) DELETE/PUT on read-only endpoints
Injection (API8) SQL/NoSQL patterns in params

Injection Regex Patterns

sql = r"union\s+select|drop\s+table|'\s*or\s+'1'"
nosql = r"\$ne|\$gt|\$regex|\$where"
xss = r"<script|javascript:|onerror="
path_traversal = r"\.\./\.\./|/etc/passwd"

References