Primary Source
OWASP API Security Top 10 — 2023 · API4:2023 Unrestricted Resource Consumption
OWASP Foundation · owasp.org · 2023
The authoritative source for the definition, vulnerable patterns, example attack scenarios, and prevention guidance in this module. The three attack scenarios on slides 14–16 are drawn directly from the OWASP API4 page (unbounded pagination, AI cost amplification, SMS OTP flooding). CWE references: CWE-770 (Allocation of Resources Without Limits or Throttling), CWE-400 (Uncontrolled Resource Consumption). This course is an independent study companion — not affiliated with or endorsed by OWASP.
Real Incidents
Venmo Public API Scrape — 207 Million Transactions
Dan Salmon (security researcher) · 2019
Researcher Dan Salmon scraped 207,984,218 public Venmo transactions over approximately one month using Venmo's public transaction API. The endpoint required no authentication and had no rate limiting. Salmon published aggregate findings on his blog to demonstrate the privacy implications of combining public transaction data (which included real names, amounts, and payment messages) with unthrottled bulk access. Venmo subsequently added rate limiting to the endpoint. The incident prompted broader discussion about whether "public by default" and "accessible in bulk" are the same threat model. Referenced in slides 1, 11, 26.
Twitter Phone/Email Lookup API — 5.4 Million Accounts Scraped
Twitter (now X) disclosure · August 2022
Twitter's "find your contacts" feature included an API endpoint that accepted phone numbers or email addresses and returned associated Twitter accounts. The endpoint had a logic vulnerability (it returned data for phone numbers not belonging to the requesting user) combined with insufficient rate limiting. Attackers automated lookups against phone number ranges, collecting 5.4 million account-to-phone-number mappings. The dataset was posted for sale in July 2022 and made freely available online. Twitter disclosed the breach in August 2022. The original vulnerability report was submitted via their bug bounty program in January 2022 — six months before the breach disclosure. Referenced in slides 13, 26.
Technical References
OWASP API Security Cheat Sheet — Rate Limiting
OWASP Foundation · owasp.org/cheatsheets
Implementation guidance on rate limiting strategies for REST APIs, including token bucket vs. sliding window algorithms, per-IP vs. per-user vs. per-resource limiting, and HTTP response conventions (429 Too Many Requests, Retry-After header). Directly informs MIT 01 in this module.
GraphQL Security — Query Complexity and Depth Limiting
graphql-depth-limit (npm), graphene-django complexity (PyPI)
Technical background on GraphQL's N+1 query problem and how deeply nested queries can generate exponential database calls from a single HTTP request. Covers depth limiting (reject queries beyond N levels) and complexity scoring (assign costs to fields, reject when total exceeds threshold). Referenced in MIT 05 on slide 23.
AWS Well-Architected Framework — Cost Optimization
Amazon Web Services · aws.amazon.com
AWS guidance on setting billing alerts, budget caps, and per-resource spending thresholds. Context for the "billing alerts are a fallback, not a defense" argument in MIT 06 — alerts report after spending occurs; API-layer rate limits prevent spending from occurring.
Further Reading
PortSwigger Web Security Academy — API Testing
PortSwigger · portswigger.net/web-security/api-testing
Interactive labs for testing API vulnerabilities including rate limit bypass techniques and resource consumption patterns. Recommended hands-on practice after completing this module.
"Scraping the Web for Fun and Profit" — Dan Salmon
Dan Salmon · 2019 blog post
Salmon's original write-up of the Venmo scraping experiment, including methodology, what was found in the data, and his recommendations for Venmo. A clear first-person account of how a public API with no rate limiting exposes the entire dataset to anyone willing to write a loop. Search for "Dan Salmon Venmo scraping" to find archived copies.