API Sızma Testi: Kimlikli Akışlar ve İş Mantığı

OpenAPI/Swagger, kimlik/claim analizi, rate limit ve IDOR testleri; otomasyon ve profil önerileri.

API sızma testi kapak görseli
Kimlik • Yetkilendirme • İş Mantığı

Kısaca

  • OpenAPI/Swagger keşfi ile kapsam netleştirilir, kör noktalar azalır.
  • Token/claim doğrulama ve yetki kontrolleri (IDOR, mass assignment) kritiktir.
  • Rate limit ve kötüye kullanım senaryoları iş mantığı zafiyetlerini ortaya çıkarır.

Özet Anlatım

API güvenliğinde amaç; kimliği doğrulanmış bir kullanıcının sahip olmaması gereken verilere veya işlemlere erişmesini engellemektir. Bunun için belgeleri (OpenAPI) doğru okumak, kimlik/claim kurallarını test etmek ve hız/limit mekanizmalarının suistimali engellediğini doğrulamak gerekir.

Kısaltmalar
  • OIDC/OAuth: Kimlik doğrulama/yetkilendirme standartları.
  • JWT: İmzalı token formatı (id, role gibi claim’ler taşır).
  • IDOR/BOLA: Nesne erişim denetimi zafiyetleri.

Keşif ve Dokümantasyon

  • Swagger/OpenAPI şemaları, Postman koleksiyonları ve gateway kuralları
  • Endpoint kategorileri, veri duyarlılığı ve giriş-çıkış şemaları

Kimlik ve Yetki

  • OAuth/OIDC akışları, JWT imza/expiration ve claim doğrulama
  • IDOR, mass assignment, BOLA ve veri sızıntıları

İş Mantığı ve Kötüye Kullanım

  • Rate limit, kaynak tüketim ve yarış koşulları
  • Finansal/puan bazlı işlemlerde doğrulama ve denge kontrolleri

Pratik Rehber

API’lerde en yaygın sorunlar, kimliği doğrulanmış bir kullanıcının yetkili olmadığı veriye erişebilmesinden doğar. Bu yüzden önce belgelerden (OpenAPI) başlayın, sonra kimlik/rol/claim kombinasyonlarıyla aynı isteği farklı yetkiler altında deneyerek sınırları bulun.

Adım adım:

  1. Belgeden profile. Swagger/OpenAPI şemasından örnek istekler çıkarın; 401/403 beklenen durumları tabloya dökün.
  2. Yetki sınırlarını zorlayın. ID değişimiyle IDOR olup olmadığına bakın; rol/claim varyasyonlarıyla BOLA/mass assignment test edin.
  3. Kötüye kullanımı simüle edin. Eşzamanlı isteklerle yarış koşulu ve rate limit ihlallerini arayın.

Örnek: “/orders/{id}” uç noktasında müşteri A, müşteri B’nin siparişini görebiliyorsa sorun IDOR’dur. Çözüm; erişim kontrolünü yalnızca rol adına değil, kaynağın sahibine göre yapmak ve bu kuralı sunucu tarafında zorunlu tutmaktır.

OWASP Checklist Kapsam Belirleme