API Güvenliği: REST, SOAP ve GraphQL

Siber Güvenlik

Uygulamaların “ekranı” değişebilir; fakat arka plandaki API’ler genellikle aynı kalır ve iş süreçlerinin asıl taşıyıcısı olur. Mobil uygulamalar, web arayüzleri, mikroservisler, üçüncü parti entegrasyonlar ve otomasyon sistemleri çoğu zaman API’ler üzerinden konuşur. Bu da API’leri, saldırgan açısından değerli bir hedef hâline getirir: kimlik doğrulama hataları, yetkilendirme boşlukları, zayıf giriş doğrulama ve yanlış yapılandırmalar doğrudan veri sızıntısı veya hesap ele geçirme ile sonuçlanabilir. 

API güvenliği tek bir teknolojiye indirgenemez; çünkü REST, SOAP ve GraphQL farklı tasarım varsayımları ve risk profilleri taşır. Sağlam bir yaklaşım, ortak temel kontrolleri kurarken her API stilinin kendine özgü saldırı yüzeyini ayrıca yönetmeyi gerektirir.

API Güvenliği Nedir?

API güvenliği; kimlik doğrulama, yetkilendirme, veri bütünlüğü, gizlilik, kullanılabilirlik ve denetlenebilirlik hedeflerini API katmanında sağlama disiplinidir. Burada amaç, yalnızca “endpoint’i korumak” değil; veri akışlarını, iş kurallarını ve erişim sınırlarını uçtan uca güvenli kılmaktır. 

API’ler çoğu zaman kullanıcı arayüzünden daha az görünür olduğu için hatalar sessizce büyüyebilir. Bu nedenle güvenlik; tasarım aşamasından başlayarak (secure-by-design), geliştirme/test süreçlerine ve üretim gözlemlemesine kadar devam eden bir döngü olarak ele alınmalıdır.

REST, SOAP ve GraphQL Arasındaki Güvenlik Farkları

Üç yaklaşımın ortak riskleri olsa da güvenlik pratikleri farklı alanlarda yoğunlaşır:

1) REST API Güvenliği: 
REST, genellikle JSON ve HTTP metodları üzerinden çalışır. En büyük riskler yetkilendirme hataları (özellikle nesne seviyesinde erişim kontrolü), aşırı veri ifşası, zayıf rate limit ve hatalı input doğrulama etrafında toplanır. Ayrıca versiyonlama ve backward-compatibility nedeniyle eski endpoint’lerin unutulması sık rastlanan bir problemdir. 

2) SOAP API Güvenliği: 
SOAP, XML tabanlıdır ve kurumsal entegrasyonlarda yaygındır. Güvenlikte iki ana alan öne çıkar: XML parsing riskleri (ör. XXE benzeri parser problemleri) ve mesaj seviyesinde güvenlik (WS-Security) karmaşıklığı. SOAP’ta yalnızca TLS yeterli olmayabilir; mesaj imzalama/şifreleme gibi mekanizmaların doğru uygulanması kritik hâle gelir. 

3) GraphQL API Güvenliği: 
GraphQL, tek endpoint üzerinden esnek sorgular sunar. Bu esneklik, aşırı sorgu karmaşıklığı (DoS), yetkisiz alan erişimi, şema keşfi (introspection) ve “over-fetching”/“under-fetching” kontrolü gibi konuları öne çıkarır. Ayrıca resolver katmanında yetkilendirme yapılmadığında, tek bir query ile çok geniş veri alanına erişim doğabilir.

Yaygın API Saldırı Senaryoları

API güvenliğinde tekrar eden hata sınıfları, teknoloji fark etmeksizin benzer şekilde görülür: 

1) Nesne Seviyesi Yetkilendirme Hataları (IDOR/BOLA): 
Kullanıcı, kendine ait olmayan kaynak ID’sini vererek başka bir kullanıcının verisine erişebilir. Özellikle REST’te sık görülür; GraphQL’de de resolver bazlı yetkilendirme eksikliğinde ortaya çıkar. 

2) Fonksiyon Seviyesi Yetki Sorunları: 
‘Admin’ işlemleri veya kritik eylemler, rol kontrolü zayıfsa normal kullanıcı tarafından tetiklenebilir. 

3) Zayıf Kimlik Doğrulama ve Token Yönetimi: 
JWT yanlış doğrulanması, uzun ömürlü token’lar, refresh token koruması eksikliği veya MFA olmayan kritik işlemler risk yaratır. 

4) Rate Limit ve Kaynak Tüketimi: 
Brute force, credential stuffing veya GraphQL’de pahalı sorgularla servis kalitesi düşürülebilir. 

5) Veri Doğrulama Eksikleri: 
Şema doğrulaması yoksa, beklenmeyen tip/alanlarla iş mantığı bozulabilir veya enjeksiyon zemin bulabilir. 

6) Hatalı Hata Mesajları ve Loglama: 
Detaylı stack trace veya iç yapı bilgisi sızdıran hata mesajları, saldırganın keşfini hızlandırır.

Güvenli API Tasarımı İçin Temel Kontroller

API stilinden bağımsız olarak aşağıdaki kontroller, çoğu ortamda “olmazsa olmaz” kabul edilebilir: 

  • Kimlikdoğrulama: Güvenli OAuth2/OIDC akışı, doğru token doğrulama, kritik işlemlerde ek doğrulama (step-up).
  • Yetkilendirme: Varsayılan reddet (deny-by-default), nesne ve alan seviyesinde kontroller, RBAC/ABAC yaklaşımı.
  • Girdi doğrulama: Şema bazlı doğrulama, allowlist, tip ve sınır kontrolleri.
  • Trafik yönetimi: Rate limit, quota, burst kontrolü, IP/device risk sinyalleri.
  • Güvenli hata yönetimi: Kullanıcıya minimal mesaj, loglarda detay; hassas veri maskelenmiş olmalı.
  • İzleme ve alarmlar: 4xx/5xx anormallikleri, auth hataları, sıra dışı query desenleri, veri çekme hacmi.
  • Versiyon ve envanter: Kullanılmayan endpoint’leri kapat, eski sürümleri emekli et, API katalog tut.

REST/SOAP/GraphQL için Pratik Ek Önlemler

Stile göre eklemlenebilecek bazı pratik önlemler şunlardır: 

  • REST: Response alanlarını minimumda tut (data minimization), pagination zorunlu kıl, BOLA testlerini CI sürecine ekle.
  • SOAP: XML parser’ı güvenli modda çalıştır, WS-Security yapılandırmasını standardize et, şema doğrulaması uygula.
  • GraphQL: Query complexity/depth limit, persisted queries, introspection kısıtlama (özellikle üretimde), alan bazlı yetkilendirme ve resolver caching. 

Bu önlemler, temel kontrollerle birleştiğinde API yüzeyini daha öngörülebilir ve yönetilebilir hâle getirir.

Etkili Bir Güvenlik Programı İçin Gerekli Adımlar

API güvenliği sürdürülebilir bir program olarak ele alınmalıdır: 

  • Envanterçıkar: Tüm API’leri, sahipliklerini, veri sınıflarını ve erişim türlerini (internal/external) listele. 
  • Tehdit modelle: Kritik akışları seç; kimlik, ödeme, veri ihracı gibi süreçleri senaryolaştır. 
  • Test stratejisi kur: Otomatik testler (SAST/DAST, API fuzzing), manuel yetkilendirme testleri ve düzenli pentest. 
  • Gateway/WAF politikaları: Merkezi rate limit, auth doğrulama, şema doğrulama ve anomali tespiti.
  • Incident readiness: API anahtar rotasyonu, token iptali, acil kapatma (kill-switch) prosedürleri.
  • Sürekli iyileştirme: Bulgu trendlerini izle; tekrar eden hatalara göre eğitim ve kod standartlarını güncelle. 

Bu yaklaşım, REST/SOAP/GraphQL fark etmeksizin API’lerin güvenliğini ölçülebilir şekilde yükseltir ve saldırı yüzeyini daraltır.

Tags :
API Güvenliği,GraphQL,REST API
Share This :

Diğer Yazılar

Bize Soru Sorun

Soru ve görüşleriniz için bizimle iletişime geçebilirsiniz.