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.

API Güvenlik Standartları - OWASP API Security Top 10

OWASP API Security Top 10 (2023 güncellemesi), API'lere özgü en kritik güvenlik açığı kategorilerini tanımlayan endüstri standardıdır. Her API sızma testi, bu listeyi temel kontrol çerçevesi olarak kullanmalıdır.

  • API1:2023 - Broken Object Level Authorization (BOLA): En yaygın API güvenlik açığı. Kullanıcılar, diğer kullanıcıların nesnelerine erişebilir. ID değiştirme, tahmin edilebilir referanslar ve toplu nesne sorguları test edilir.
  • API2:2023 - Broken Authentication: Zayıf kimlik doğrulama mekanizmaları; brute force koruması eksikliği, token sızıntısı, credential stuffing açıklıkları.
  • API3:2023 - Broken Object Property Level Authorization: Kullanıcıların nesne özelliklerini (property) yetkisiz okuma veya yazması. Mass assignment ve aşırı veri ifşası bu kategoriye girer.
  • API4:2023 - Unrestricted Resource Consumption: Rate limiting eksikliği, bellek/CPU tüketim sınırlarının olmaması, büyük veri yanıtları ve batch işlem kötüye kullanımı.
  • API5:2023 - Broken Function Level Authorization: Farklı yetki seviyelerindeki fonksiyonlara yetkisiz erişim. Admin uç noktalarına kullanıcı rolüyle ulaşma denemeleri.
  • API6:2023 - Unrestricted Access to Sensitive Business Flows: İş akışlarının otomatik kötüye kullanımı; bilet kapmaca, kupon kötüye kullanımı, toplu kayıt gibi senaryolar.
  • API7:2023 - Server Side Request Forgery (SSRF): Sunucu tarafında URL çağrısını manipüle ederek iç kaynaklara veya bulut meta veri servislerine erişim.
  • API8:2023 - Security Misconfiguration: Hatalı CORS, gereksiz HTTP metotları, debug/verbose hata mesajları, eksik güvenlik başlıkları.
  • API9:2023 - Improper Inventory Management: Eski, belgelenmemiş veya kullanım dışı (shadow) API'lerin yönetilmemesi.
  • API10:2023 - Unsafe Consumption of APIs: Üçüncü taraf API yanıtlarına güvenerek giriş doğrulaması yapmamak; supply chain riskleri.

API sızma testi raporlarında her bulguyu ilgili OWASP kategorisiyle eşleştirmek, zafiyet yönetimi ekibinin önceliklendirme ve uyum takibini kolaylaştırır.

REST vs GraphQL vs gRPC Güvenlik

Farklı API protokolleri, farklı güvenlik açığı türlerine açıktır. Kapsamlı bir API sızma testi, hedef API'nin kullandığı protokole özgü riskleri değerlendirmelidir.

  • REST API Güvenlik Riskleri: Kaynak tabanlı URL yapısı IDOR saldırılarını kolaylaştırır. HTTP metot kısıtlamalarının eksikliği (PUT/DELETE yetkisiz erişim). Aşırı veri ifşası - API yanıtlarında gereksiz alanların dönmesi. Pagination ve filtreleme parametrelerinin manipülasyonu ile toplu veri çıkarma.
  • GraphQL Güvenlik Riskleri: Introspection sorguları ile tüm şemanın keşfedilmesi; üretimde devre dışı bırakılmalıdır. Derin iç içe sorgular (nested queries) ile DoS saldırıları; query depth limiting zorunludur. Batch sorguları ile brute force ve BOLA saldırılarının hızlandırılması. Mutation işlemlerinde yetki kontrolü eksikliği. Alias kullanarak rate limiting atlatma.
  • gRPC Güvenlik Riskleri: Protocol Buffers (protobuf) şema tanımlarının sızma riski; kaynak kodu veya .proto dosyalarından API yapısının keşfi. TLS olmadan düz metin iletişim riski. Reflection API'nin üretimde açık bırakılması ile endpoint keşfi. Büyük mesaj boyutları ve stream saldırıları ile kaynak tüketimi. Interceptor tabanlı kimlik doğrulamada atlama denemeleri.
  • WebSocket Güvenlik Riskleri: Origin doğrulaması eksikliği ile Cross-Site WebSocket Hijacking. Mesaj boyutu ve frekans sınırlamalarının olmaması. Token yenileme mekanizmalarının WebSocket üzerinde test edilmesi.

Her protokol için güvenlik açığı taraması araçlarını ve test senaryolarını ayrı hazırlayın. Burp Suite REST ve GraphQL için güçlüdür; gRPC için grpcurl ve grpcui gibi özel araçlar gerekir.

Kimlik Doğrulama ve Yetkilendirme Testleri

API sızma testi sürecinde kimlik doğrulama ve yetkilendirme mekanizmalarının detaylı test edilmesi, en kritik güvenlik açığı kategorilerini kapsar. OAuth2, JWT ve API key yapılarının her biri farklı saldırı vektörlerine açıktır.

  • OAuth2 Akış Testi: Authorization Code akışında PKCE zorunluluğunun doğrulanması. Redirect URI manipülasyonu ile token çalma denemeleri. Scope yükseltme (scope elevation) testleri - düşük yetkili token ile yüksek yetkili endpoint erişimi. Refresh token rotasyonu ve iptal mekanizmasının test edilmesi. Client credential akışında istemci kimlik bilgilerinin güvenli saklanıp saklanmadığının kontrolü.
  • JWT Güvenlik Testi: Algoritma karıştırma saldırıları - "alg:none" ile imza atlama, RS256 → HS256 değişimi. JWT gizli anahtarının brute force ile kırılma denemesi (jwt_tool, hashcat). Claim manipülasyonu - rol, kullanıcı ID ve yetki claim'lerinin değiştirilmesi. Token süresi (exp) kontrollerinin doğrulanması; süresi geçmiş token'ların kabul edilip edilmediği. JWK (JSON Web Key) set endpoint'inin güvenliği ve key injection denemeleri.
  • API Key Güvenliği: API anahtarlarının URL parametresi yerine header üzerinden iletilmesinin kontrolü. Anahtar rotasyonu ve iptal mekanizmasının varlığı. Anahtarların kaynak kodda, istemci tarafında veya loglarda sızdırılıp sızdırılmadığı. Rate limiting'in anahtar bazlı mı yoksa IP bazlı mı uygulandığı.
  • Çok Faktörlü Kimlik Doğrulama (MFA): MFA atlatma denemeleri - OTP brute force, session fixation sonrası MFA bypass. Step-up authentication gerektiren hassas işlemlerin doğrulanması.

Kimlik doğrulama testlerinden elde edilen bulgular, zafiyet yönetimi sürecinde en yüksek öncelikle ele alınmalıdır çünkü bu kategorideki bir güvenlik açığı tüm API'yi tehlikeye atar.

Rate Limiting ve DDoS Koruması

API'lere yönelik siber güvenlik tehditleri arasında kaynak tüketimi saldırıları önemli bir yer tutar. Rate limiting mekanizmalarının etkinliğinin test edilmesi, API sızma testi kapsamının ayrılmaz parçasıdır.

  • Rate Limit Keşfi: API yanıt başlıklarındaki limit bilgilerini analiz edin (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After). Farklı endpoint'ler için ayrı limitler uygulanıp uygulanmadığını kontrol edin.
  • Atlatma Teknikleri: IP rotasyonu (farklı kaynak IP'lerden istek gönderme), header manipülasyonu (X-Forwarded-For, X-Real-IP spoofing), API key rotasyonu ile limit aşma, HTTP metot değişikliği (GET → POST) ile farklı limit sepeti kullanma, GraphQL alias ve batch sorguları ile tek istekte çoklu işlem.
  • İş Mantığı Etkisi: Limitin aşılması durumunda iş sürecine etkisi nedir? Örneğin ödeme API'sinde limit olmaması çift ödeme, kupon API'sinde limit olmaması sınırsız indirim riski doğurur. Yarış koşulları (race condition) ile eşzamanlı işlemlerin sınır kontrollerini aşıp aşmadığı test edilir.
  • DDoS Dayanıklılığı: Application layer (L7) DDoS senaryoları - yoğun hesaplama gerektiren endpoint'lerin (arama, rapor oluşturma, dosya işleme) stres testi. Regex DoS (ReDoS) - kötü niyetli giriş ile regex motoru kaynak tüketimi. Büyük payload saldırıları - maksimum istek boyutu sınırlarının test edilmesi.
  • Savunma Doğrulaması: WAF/API Gateway kurallarının rate limiting etkinliği. Otomatik istemci engelleme mekanizmalarının süresi ve kapsamı. Hizmet kesintisi sırasında graceful degradation davranışı.

Rate limiting testlerinin sonuçlarını güvenlik açığı taraması raporlarına dahil ederek, zafiyet yönetimi ekibinin kaynak tüketimi risklerini proaktif olarak ele almasını sağlayın.

API Dokümantasyonu ve Keşif

Etkili bir API sızma testi için hedef API'nin kapsamlı keşfi gereklidir. Belgelenmiş ve belgelenmemiş endpoint'lerin tespiti, güvenlik açığı taraması kapsamını doğrudan etkiler.

  • Swagger/OpenAPI Analizi: /swagger.json, /openapi.yaml, /api-docs gibi standart yollardan dokümantasy erişimi. Şemadaki veri tipleri, zorunlu alanlar ve enum değerlerinin güvenlik perspektifinden incelenmesi. Belgelenmemiş parametrelerin (hidden fields, internal flags) keşfi.
  • Gizli Endpoint Keşfi: Dizin tarama (fuzzing) ile belgelenmemiş uç noktaların bulunması - ffuf, Arjun, Kiterunner araçları. JavaScript dosyalarında, mobil uygulama binary'lerinde ve SDK'larda gizli API yollarının aranması. Sürüm tabanlı keşif - /v1/, /v2/, /internal/, /admin/ yollarının denenmesi.
  • API Gateway ve Middleware Keşfi: Gateway yapılandırma hatalarının tespiti - yanlış yönlendirme kuralları, açık proxy davranışı. Yük dengeleyici ve CDN katmanlarının API güvenliğine etkisinin değerlendirilmesi. CORS politikasının doğrulanması - wildcard (*) origin kabul eden yapılandırmalar.
  • Otomatik Keşif Araçları: Postman koleksiyonlarını içe aktararak mevcut API akışlarını hızla tarama. mitmproxy ile mobil/web uygulamanın yaptığı API çağrılarını yakalayarak endpoint envanteri oluşturma. Burp Suite crawler ile uygulamanın kullandığı API uç noktalarını otomatik keşfetme.

Keşfedilen tüm endpoint'leri kategorize ederek (kimlik gerektiren/gerektirmeyen, okuma/yazma, hassas veri dönen) zafiyet yönetimi platformuna aktarın. Bu envanter, tekrarlayan testlerde kapsam tutarlılığını sağlar.

API Versiyonlama Güvenliği

API versiyonlama, geliştirme sürecinin doğal bir parçasıdır ancak eski sürümlerin yönetilmemesi ciddi güvenlik açığı riskleri doğurur. Shadow API kavramı - unutulan, belgelenmemiş veya kullanım dışı bırakılmamış API sürümleri - siber güvenlik ekiplerinin en sık gözden kaçırdığı risklerden biridir.

  • Eski Sürüm Riskleri: Yeni sürümde düzeltilen güvenlik açıkları, eski sürümde hâlâ mevcut olabilir. Eski sürümlere uygulanan güvenlik yamaları ihmal edilir. Kullanım dışı sürümlerin loglama ve izleme kapsamından çıkarılması, saldırganların tespit edilmeden hareket etmesine olanak tanır.
  • Shadow API Tespiti: Trafik analizi ile aktif olarak kullanılan ancak belgelenmemiş API sürümlerinin keşfi. DNS kayıtları ve subdomain tarama ile eski API sunucularının tespiti. Kaynak kodda ve yapılandırma dosyalarında eski sürüm referanslarının aranması.
  • Güvenli Kullanım Dışı Bırakma (Deprecation): Kullanım dışı bırakılan sürümlerde yalnızca okuma erişimi bırakıp yazma işlemlerini kapatma. Sunset header ile istemcilere kullanım dışı bırakılma tarihini bildirme. Belirli bir tarih sonrasında tamamen kapatma ve yönlendirme (redirect) uygulama.
  • Versiyonlar Arası Güvenlik Tutarlılığı: Güvenlik düzeltmelerinin tüm aktif sürümlere backport edilmesi. Rate limiting, kimlik doğrulama ve yetkilendirme politikalarının sürümler arası tutarlılığının doğrulanması.

API envanterinizi zafiyet yönetimi platformunuzda güncel tutun. Her yeni sürüm çıkışında eski sürümün güvenlik durumunu değerlendirin ve kullanım dışı bırakma takvimini planlayın.

Otomasyon ile API Güvenlik Testi

Modern siber güvenlik yaklaşımında API güvenlik açığı taraması otomasyonu, CI/CD pipeline'larına entegre edilerek sürekli güvenlik doğrulaması sağlar. Manuel testin ötesinde, otomasyon araçları tekrarlayan kontrolleri hızlı ve tutarlı şekilde gerçekleştirir.

  • Postman + Newman: Güvenlik test senaryolarını Postman koleksiyonu olarak oluşturun ve Newman CLI ile CI/CD pipeline'ında çalıştırın. Pre-request script'lerle dinamik token alma, test script'leriyle yanıt doğrulama ve güvenlik başlığı kontrolü.
  • Burp Suite Enterprise/CI: Otomatik DAST taramalarını CI/CD hattına entegre edin. Burp Scanner ile OWASP Top 10 açıklarını otomatik tespit edin. API tanım dosyasını (OpenAPI) Burp'e yükleyerek kapsam otomatik oluşturun.
  • Özel Script Geliştirme: Python (requests, httpx) ile özelleştirilmiş güvenlik test senaryoları yazın. BOLA testi için otomatik ID enumeration scripti, JWT manipülasyonu için token değiştirme scripti, race condition testi için eşzamanlı istek gönderme.
  • Nuclei ile Şablon Tabanlı Tarama: Özel Nuclei şablonları yazarak API güvenlik kontrollerini otomatikleştirin. CORS, güvenlik başlıkları, bilgi ifşası ve standart zafiyetler için hızlı tarama.
  • SAST/SCA Entegrasyonu: API kaynak kodunda Semgrep veya CodeQL ile güvenlik kuralları uygulayın. Bağımlılık zafiyet taramasını (Snyk, Dependabot) API projelerine entegre edin.
  • Sürekli İzleme: API gateway loglarını analiz ederek anormal davranış kalıplarını tespit edin. Yanıt süresi, hata oranı ve payload boyutu anomalilerini izleyerek güvenlik olaylarını erken fark edin.

Otomasyon sonuçlarını zafiyet yönetimi platformuyla entegre ederek bulguların otomatik olarak oluşturulmasını, atanmasını ve takibini sağlayın. Bu, sızma testi bulgularının düzeltme süresini ortalama %50 kısaltır.

SSS

API sızma testi ile normal web sızma testi arasındaki fark nedir?

API sızma testi, kullanıcı arayüzü olmadan doğrudan endpoint'lere istek göndererek kimlik doğrulama, yetkilendirme ve iş mantığı açıklarını test eder; web sızma testi ise tarayıcı üzerinden görsel arayüzü hedef alır.

API pentest ne sıklıkla yapılmalıdır?

Her büyük API sürüm güncellemesinden sonra ve en az yılda iki kez yapılması önerilir; CI/CD pipeline'a entegre otomatik güvenlik testleri ise her dağıtımda çalıştırılmalıdır.

API güvenlik testinde en sık karşılaşılan zafiyet türleri nelerdir?

IDOR (Insecure Direct Object Reference), bozuk kimlik doğrulama, yetersiz rate limiting ve hassas veri ifşası en sık tespit edilen API zafiyetleri arasındadır.

SİTEY ile bu süreçleri tek platformda otomatikleştirin.

Sınırsız Demo İndir Platformu İnceleyin