Analyzing API Gateway Access Logs

SkillCloud & infra

'Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Analyzing API Gateway Access Logs skill

What this skill tells your AI

The instructions your AI receives, as published by costrict-plugins-repo/mukul975-anthropic-cybersecurity-skills-cybersecurity-skills in skills/analyzing-api-gateway-access-logs/SKILL.md and read by ahel’s review.

When to Use

  • When investigating security incidents that require analyzing api gateway access logs
  • When building detection rules or threat hunting queries for this domain
  • When SOC analysts need structured procedures for this analysis type
  • When validating security monitoring coverage for related attack techniques

Prerequisites

  • Familiarity with security operations concepts and tools
  • Access to a test or lab environment for safe execution
  • Python 3.8+ with required dependencies installed
  • Appropriate authorization for any testing activities

Instructions

Parse API gateway access logs to identify attack patterns including broken object level authorization (BOLA), excessive data exposure, and injection attempts.

import pandas as pd

df = pd.read_json("api_gateway_logs.json", lines=True)
# Detect BOLA: same user accessing many different resource IDs
bola = df.groupby(["user_id", "endpoint"]).agg(
    unique_ids=("resource_id", "nunique")).reset_index()
suspicious = bola[bola["unique_ids"] > 50]

Key detection patterns:

  1. BOLA/IDOR: sequential resource ID enumeration
  2. Rate limit bypass via header manipulation
  3. Credential scanning (401 surges from single source)
  4. SQL/NoSQL injection in query parameters
  5. Unusual HTTP methods (DELETE, PATCH) on read-only endpoints

Examples

# Detect 401 surges indicating credential scanning
auth_failures = df[df["status_code"] == 401]
scanner_ips = auth_failures.groupby("source_ip").size()
scanners = scanner_ips[scanner_ips > 100]

Signals

GitHub stars
68
Forks
11
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
analyzing-api-gateway-access-logs-costrict-plugins-repo
Source
github.com/costrict-plugins-repo/mukul975-anthropic-cybersecurity-skills-cybersecurity-skills