REST API Pentest (API Sızma Testi)

Uncategorized
Sızma Testi (Pentest) Hizmeti

Giriş

Modern web ve mobil uygulama ekosistemlerinin bel kemiğini oluşturan REST (Representational State Transfer) mimarisi, HTTP protokolü üzerinden veri alışverişini standartlaştırarak sistemler arası entegrasyonu kolaylaştırır. Ancak bu esneklik, beraberinde ciddi güvenlik risklerini de getirir. Geleneksel web uygulamalarından farklı olarak REST API’lar, uygulamanın iş mantığını ve veri tabanı yapısını doğrudan dış dünyaya açan “uç noktalara” (endpoints) sahiptir.

REST API Sızma Testi (Pentest), bu uç noktaların yetkilendirme hataları, veri sızıntıları ve enjeksiyon zafiyetleri açısından sistematik olarak denetlenmesi sürecidir. Bir API testi, sadece arayüzü değil, sunucunun arkasındaki işleyişi (backend) hedef alır. Bu makalede, OWASP API Security Top 10 projesini temel alarak, bir REST API’nın keşif aşamasından istismar aşamasına kadar nasıl test edileceğini teknik detaylarıyla ele alacağız.

Konun Temel Açıklaması

REST API sızma testi, HTTP metodlarının (GET, POST, PUT, DELETE, PATCH) ve dönen JSON/XML yanıtlarının manipüle edilmesine dayanır. Web uygulamalarındaki görsel öğelerin aksine, API testlerinde odak noktası “istek ve yanıt” (request/response) döngüsüdür. Test süreci; API dokümantasyonunun analizi, uç noktaların haritalandırılması, kimlik doğrulama mekanizmalarının zorlanması ve veri bütünlüğünün kontrol edilmesini kapsar.

Teknik Detaylar ve Uygulama Aşamaları

Profesyonel bir REST API pentest operasyonu, metodolojik olarak şu beş ana aşamada gerçekleştirilir:

1. Keşif ve Dokümantasyon Analizi (Enumeration)

API testi, hedefin ne olduğunu anlamakla başlar.

  • Swagger/OpenAPI: Eğer varsa, swagger.json veya /v1/api-docs gibi dosyalar incelenerek tüm uç noktalar, parametreler ve beklenen veri tipleri belirlenir.

  • Fuzzing ve Keşif: Dokümantasyon yoksa, ffuf veya Gobuster gibi araçlarla yaygın API yolları (örn: /api/v1/users, /admin/config) taranarak gizli kalmış (shadow) API’lar aranır.

2. Kimlik Doğrulama ve Yetkilendirme Testleri

API güvenliğinin en sık kırıldığı noktadır.

  • BOLA (Broken Object Level Authorization): Saldırgan, /api/users/100 isteğindeki ID değerini 101 yaparak başka bir kullanıcının verisine erişip erişemediğini test eder. Bu, API dünyasındaki en kritik açıdır.

  • JWT Analizi: Token içeriği Base64’ten çözülerek incelenir. “None” algoritması saldırısı, zayıf imza kontrolü veya süresi dolmayan token’lar araştırılır.

  • BOPLA (Broken Object Property Level Authorization): Kullanıcı, profilini güncellerken gönderdiği JSON’a "role": "admin" ekleyerek yetki yükseltmeye (Mass Assignment) çalışır.

3. Girdi Denetimi ve Enjeksiyon Saldırıları

API’ya gönderilen verilerin sunucu tarafında nasıl işlendiği test edilir.

  • SQL Injection: Parametreler içine ' OR 1=1 -- gibi ifadeler eklenerek veri tabanından bilgi sızdırılmaya çalışılır.

  • Command Injection: API bir sistem komutu çalıştırıyorsa, giriş alanlarına ; id veya && whoami eklenerek işletim sistemi seviyesinde yetki alınmaya çalışılır.

  • NoSQL Injection: Eğer backend’de MongoDB gibi bir yapı varsa, JSON objeleri üzerinden ({"$gt": ""}) sorgu mantığı bozulmaya çalışılır.

4. İş Mantığı (Business Logic) Testleri

API’nın tasarlanan senaryolar dışındaki davranışları denetlenir.

  • Rate Limiting: Aynı isteğin saniyeler içinde binlerce kez gönderilmesi (brute force veya DoS) durumunda API’nın verdiği tepki ölçülür.

  • Parametre Manipülasyonu: Bir e-ticaret API’sında ürün fiyatının (price: 100) istek sırasında (price: 1) olarak değiştirilip değiştirilemediği kontrol edilir.

Riskler ve Kurumsal Etkiler

Güvensiz bir REST API, kurumsal veri tabanına açılan doğrudan bir tünel gibidir.

  • Kitlesel Veri Sızıntısı: BOLA veya aşırı veri ifşası nedeniyle milyonlarca müşterinin kişisel verileri tek bir script ile çalınabilir.

  • Sistem Tam Yetki Kaybı: RCE (Uzaktan Kod Çalıştırma) açığı barındıran bir API, saldırganın uygulama sunucusunu tamamen ele geçirip iç ağa sıçramasına (pivoting) olanak tanır.

  • Regülasyon ve İtibar: KVKK/GDPR kapsamında korunan verilerin sızması, kuruma ağır para cezaları ve güven kaybı getirir.

Önleme ve Güvenlik Önlemleri

REST API’ları korumak için yazılım geliştirme sürecine şu kontroller entegre edilmelidir:

  • Sıkı Yetkilendirme Kontrolü: Her API çağrısında, oturum açan kullanıcının o nesneye erişim yetkisi olup olmadığı veri tabanı seviyesinde sorgulanmalıdır.

  • Girdi Doğrulama (Input Validation): Gelen her veri, beklenen şemaya (JSON Schema) ve veri tipine göre sıkı bir denetimden geçirilmelidir.

  • Hız Sınırlama (Rate Limiting): Her kullanıcı veya IP için birim zamanda yapılabilecek istek sayısı sınırlandırılmalıdır.

  • Güvenli Hata Mesajları: Hata durumlarında asla “stack trace” veya veri tabanı detayları dönülmemeli; genel hata kodları (400, 403, 404, 500) kullanılmalıdır.

  • API Gateway ve WAF: Tüm trafik merkezi bir gateway üzerinden yönetilmeli ve bilinen saldırı imzaları uygulama katmanı güvenlik duvarı (WAF) ile engellenmelidir.

Sonuç

REST API pentest süreci, modern web güvenliğinin en teknik ve dikkat gerektiren disiplinlerinden biridir. API’lar “görünmez” oldukları için genellikle güvenlikleri göz ardı edilir; ancak saldırganlar için en kısa yoldur. Düzenli olarak yapılan API sızma testleri, kurumun dijital sinir sistemini güçlendirerek verinin her noktada güvende kalmasını garantiler.

 

Tags :
#EndpointSecurity,APISecurity,OWASPAPI10,RESTAPIPentest
Share This :

Diğer Yazılar

Bize Soru Sorun

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