OWASP API Top 10:2025 — checklist complet pentru API-uri RESTful
API-urile sunt diferite de aplicațiile web tradiționale. OWASP API Top 10:2025 enumeră categoriile cele mai critice de risc + cum le verificați.
Pe scurt
API-urile (REST, GraphQL) sunt diferite de aplicațiile web tradiționale: nu au UI care ascunde implementarea, expun direct logica business, prelucrează volum mare de date, depind de autentificare token-based. OWASP API Security Top 10:2025 clasifică cele 10 categorii cele mai critice de risc în lumea API.
În 2026, ~70% din breach-urile semnificative implică o vulnerabilitate API (Akamai 2024 report). API-urile expun zilnic credit cards, medical records, location data, credentials — fără UI care să “ascundă” datele, totul e accesibil dacă endpoint-ul nu e protejat corect.
Acest checklist e pentru echipa de dev + security care construiește sau audită API-uri RESTful sau GraphQL.
OWASP API Top 10:2025 — lista completă
API1:2025 — Broken Object Level Authorization (BOLA / IDOR)
Cea mai frecventă vulnerabilitate API. Endpoint-ul /api/v1/users/12345/profile returnează profilul user-ului cu ID 12345 — dar nu verifică dacă utilizatorul autentificat are dreptul să vadă acel profil.
Atacator trimite ?id=12346, ?id=12347 etc. → enumerează toate profilurile.
Verificare: pentru fiecare endpoint cu ID în URL, verificați:
- Sesiunea autentificată poate accesa OBIECT-ul cerut?
- Există check
if user.id != session.user_id and not user.is_admin → 403?
API2:2025 — Broken Authentication
Token-uri JWT predictibile, lipsă rate limiting pe /login, password reset cu link plain (fără TTL), session fixation, lipsă MFA pentru conturi sensibile.
Verificare: test cu hydra/burp suite pe endpoints /login, /reset, /refresh. Verificați TTL token, rate limit, MFA pentru admin.
API3:2025 — Broken Object Property Level Authorization (BOLA + Mass Assignment)
Endpoint PATCH /api/v1/users/12345 acceptă payload {role: "admin"} și actualizează direct DB. Utilizatorul își auto-promovează la admin.
Verificare: allowlist explicită câmpuri editabile per endpoint. Frameworks (Rails strong_params, Express express-validator) au pattern dedicat.
API4:2025 — Unrestricted Resource Consumption
Endpoint /api/v1/search?limit=999999 întoarce 999.999 rezultate. CPU + DB pe genunchi.
Verificare: limită hard pe pagination (limit ≤ 100), rate limiting per user/IP, timeout per request, queue prioritization.
API5:2025 — Broken Function Level Authorization (BFLA)
/api/v1/admin/users/12345/delete accesibil de utilizator cu rol user — nu doar admin. Privilege escalation.
Verificare: test sistematic toate endpoint-urile admin cu sesiune user. Folosiți role-based access control (RBAC) middleware nivel framework.
API6:2025 — Unrestricted Access to Sensitive Business Flows
/api/v1/cart/checkout acceptă reservation fără rate limit. Botul atacator face 10.000 reservation-uri pentru evenimente popular → DoS de business.
Verificare: identificați flow-uri business cheie + adăugați CAPTCHA / device fingerprinting / friction.
API7:2025 — Server Side Request Forgery (SSRF)
POST /api/v1/upload-from-url {"url": "http://evil.com/payload"} → server-ul vostru face GET la URL extern. Atacator trimite "url": "http://169.254.169.254/latest/meta-data/iam/credentials" → AWS metadata service → IAM credentials.
Verificare: allowlist domenii, deny localhost, 169.254.0.0/16 (cloud metadata), 10.0.0.0/8, 192.168.0.0/16 (intern).
API8:2025 — Security Misconfiguration
Verbose errors în production (stack trace cu DB schema), Access-Control-Allow-Origin: * cu Allow-Credentials: true, lipsă HSTS pe API endpoints, debug endpoints expuse.
Verificare: scan complet headers + response body pentru info disclosure.
API9:2025 — Improper Inventory Management
/api/v1/users deprecated dar încă activ; /api/v0/internal/admin rămas din testing; staging.api.firma.ro accesibil public cu date prod.
Verificare: inventar exhaustiv API-uri publice (incl. legacy + staging) + sunset clear pentru versiuni vechi.
API10:2025 — Unsafe Consumption of APIs
API-ul vostru consumă third-party API (Stripe, Twilio, etc.) și integrează datele în răspunsuri fără validare. Dacă third-party e compromis, payload-ul atacatorului ajunge la utilizatorii voștri.
Verificare: validate + sanitize toate datele venite din API-uri externe înainte de a le returna utilizatorilor.
Implementare audit API
Pas 1 — Inventarul endpoint-urilor
Listare completă endpoint-uri:
# OpenAPI / Swagger spec extraction
curl https://firma.ro/openapi.json | jq '.paths | keys'
# Discovery via crawl + Wayback
katana -u https://api.firma.ro -d 3
gau api.firma.ro
Pas 2 — Test fiecare endpoint cu sesiune utilizator + admin
Pentru fiecare combinație (endpoint, role):
- Test fără auth → trebuie 401 sau 403
- Test cu user role → verifică BOLA + BFLA
- Test cu admin role → verifică expected behavior
Pas 3 — Test schema validation
Trimiteți payload-uri malformed:
- Body extra fields (mass assignment test)
- Body missing fields (default values dangerous)
- Body type mismatch (string în loc de int)
- Body extreme values (
limit=1e9)
Pas 4 — Test rate limiting
# Bursting
for i in {1..1000}; do curl -X POST https://api.firma.ro/login -d 'user=admin&pass=test'; done
Așteptat: 429 Too Many Requests după N requests.
Pas 5 — Test SSRF
Pentru endpoint-uri cu input URL/file:
curl -X POST https://api.firma.ro/upload-from-url \
-d '{"url": "http://169.254.169.254/latest/meta-data/"}'
Așteptat: 400 Bad Request sau filtru explicit.
Tools recomandate pentru API testing
- Burp Suite Pro — manual testing exhaustiv
- OWASP ZAP — automated + manual, OSS
- Postman + Newman — collection-based testing in CI
- Dredd — contract testing OpenAPI vs implementation
- Scoutsuite (cloud) — pentru API-uri AWS/GCP/Azure misconfig
ARTEMIS API Audit (în roadmap 2026)
ARTEMIS extinde catalog audit_type cu api dedicat OWASP API Top 10 — disponibil Q3 2026. Până atunci, audit manual cu Burp + ZAP recomandat.
🔗 Soluții complementare CAI Technology
- ARTEMIS — Audit tehnic web + infrastructure. API audit_type dedicat în roadmap Q3 2026.
- Lexnomia — Evaluare conformitate API (NIS2 / GDPR / DORA — datele tranzitează API-urile voastre).
- BeLegal — Verificare gratuită 5 minute compliance UE.
- Auditope — Audit holistic web aplicație + API.
- AriaUnited — Consultanță fonduri europene pentru investiții API gateway / WAF dedicate.