API GÜVENLIĞI & MIMARI

Modern API Güvenliği ve OWASP API Security Top 10 (2023) Kılavuzu

REST, GraphQL ve gRPC mimarilerinde BOLA, BFLA, yetkisiz veri tüketimi ve API Gateway sıkılaştırma stratejileri.

Tarih: 19 Eylül 2024 · Yazar/Yetki: Akıner Kısa · Okuma Süresi: 13 dk
  • #api-security
  • #owasp
  • #graphql
  • #rest
  • #appsec

1. API Güvenliğinde Yeni Tehdit Ortamı

Geleneksel web uygulamalarından mikroservis ve API odaklı mimarilere geçiş, iş mantığı (Business Logic) düzeyindeki güvenlik açıklarını en kritik tehdit haline getirmiştir.


2. OWASP API Top 10 Kritik Kategorileri

API1:2023 – Broken Object Level Authorization (BOLA / IDOR)

  • Risk: Kullanıcının başka bir müşterinin /api/v1/orders/{orderId} nesnesine ID değiştirerek erişmesi.
  • Savunma: Her API çağrısında oturum sahibinin o nesne üzerindeki sahiplik veya kiracı (tenant) iznini veritabanı sorgusunda doğrudan doğrulayın.

API2:2023 – Broken Authentication (Bozuk Kimlik Doğrulama)

  • Risk: JWT token doğrulama hataları, zayıf imza anahtarları, şifresiz API anahtarlarının URL parametresi olarak gönderilmesi.
  • Savunma: Asimetrik RS256/ES256 anahtarlar kullanın, kısa ömürlü Access Token (15 dk) ve dönen Refresh Token stratejisi uygulayın.

API3:2023 – Broken Object Property Level Authorization (BOPLA)

  • Risk: Aşırı veri ifşası (Mass Assignment) sonucu kullanıcının {"is_admin": true} alanını POST isteğine ekleyerek yetki yükseltmesi.
  • Savunma: DTO (Data Transfer Object) ve katı şema doğrulama uygulayın; istemciden gelen bilinmeyen alanları filtreleyin.

API4:2023 – Unrestricted Resource Consumption (Sınırsız Kaynak Tüketimi)

  • Risk: API’ye oran kısıtlaması (Rate Limiting) uygulanmaması sonucu DoS veya yüksek bulut maliyetleri.
  • Savunma: IP ve Kullanıcı/API Token başına katı istek sınırlaması (Token Bucket / Leaky Bucket algoritması) getirin.

API5:2023 – Broken Function Level Authorization (BFLA)

  • Risk: Normal kullanıcının yönetici uç noktalarını (ör. DELETE /api/v1/users/{id}) çağırabilmesi.
  • Savunma: Yetki kontrolünü her uç noktada rol/izin bazında sunucu tarafında yapın; varsayılan olarak erişimi reddedin.

API6:2023 – Unrestricted Access to Sensitive Business Flows

  • Risk: Bilet satın alma, yorum gönderme gibi iş akışlarının otomasyonla kötüye kullanılması (stok tüketme, spam).
  • Savunma: Hassas akışları belirleyin; cihaz parmak izi, CAPTCHA veya insan doğrulaması ve akış bazlı oran sınırlaması uygulayın.

API7:2023 – Server Side Request Forgery (SSRF)

  • Risk: API’nin kullanıcıdan aldığı URL’ye sunucu tarafında istek yapması (ör. bulut metadata servisine erişim).
  • Savunma: Giden istekleri allowlist ile sınırlandırın, yönlendirmeleri takip etmeyin, dahili adres aralıklarını engelleyin.

API8:2023 – Security Misconfiguration

  • Risk: Eksik güvenlik başlıkları, gereksiz HTTP metotları, ayrıntılı hata mesajları, yanlış CORS yapılandırması.
  • Savunma: Yapılandırmayı otomatik ve tekrarlanabilir şekilde sıkılaştırın; ortamlar arasında düzenli denetim yapın.

API9:2023 – Improper Inventory Management

  • Risk: Belgelenmemiş, eski veya test API sürümlerinin (ör. /api/v1 açıkken /api/v3 kullanılması) unutularak açık kalması.
  • Savunma: Tüm API sürümlerinin ve ortamların envanterini tutun; kullanılmayan sürümleri kapatın.

API10:2023 – Unsafe Consumption of APIs

  • Risk: Üçüncü taraf API’lerden gelen verilere kullanıcı girdisinden daha fazla güvenilmesi.
  • Savunma: Entegre edilen API yanıtlarını doğrulayın ve temizleyin; yalnızca TLS üzerinden bağlanın, yönlendirmeleri körü körüne izlemeyin.

Kaynak: OWASP API Security Top 10 – 2023 (CC BY-SA 4.0)