← Back to list

API4:2023 — Unrestricted Resource Consumption

⚡ Kaynakların Kontrolsüz Tüketimi ve API Güvenliğinde Kritik Riskler

Apifort · 2025-08-08 14:13 · 50 claps · 2.7 min read
#api #api-security #owasp-api-security-top-10 #cybersecurity
Open on Medium ↗
Wiki topics: 🔒 · Cybersecurity

API4:2023 — Unrestricted Resource Consumption

⚡ Kaynakların Kontrolsüz Tüketimi ve API Güvenliğinde Kritik Riskler

API’ler, modern yazılım ekosisteminin veri alışverişi omurgasını oluşturur. Ancak her API çağrısı, arka planda ağ bant genişliği, CPU, bellek, disk depolama ve üçüncü parti servisler ( SMS, e-posta, ödeme gateway, biyometrik doğrulama vb.) gibi kritik kaynakları tüketir. Unrestricted Resource Consumption zafiyeti, bu kaynakların istek başına veya kullanıcı başına limitlenmemesi sonucu ortaya çıkar.

Bu durum, saldırganların sistemi hizmet dışı bırakmasına (DoS), operasyonel maliyetleri artırmasına veya üçüncü parti servisler üzerinden maliyetli işlemler tetiklemesine yol açabilir.

🔍 Zafiyetin Temel Sebepleri

  • 🚫 Rate limiting veya throttling mekanizmasının eksikliği
  • ⏳ İstek başına kaynak tüketim sınırlarının tanımlanmaması
  • 💳 Üçüncü parti servis çağrılarında kota/bütçe kontrolü olmaması
  • 🗄️ Veritabanı sorgularında optimizasyon ve aralık kısıtlarının eksikliği
  • 📂 Dosya yükleme, medya işleme gibi maliyetli operasyonlarda boyut ve sayı limitlerinin olmaması

🎯 Gerçek Dünya Saldırı Senaryoları

1️⃣ Sınırsız OTP/SMS Gönderimi

  • Durum: 📱 Kullanıcı doğrulaması için SMS OTP gönderilen bir endpoint (/api/send-otp)
  • Sorun: Rate limit yok, IP veya kullanıcı başına kota yok
  • Sonuç: Saldırgan saniyeler içinde binlerce OTP isteği gönderir → 💸 SMS servis maliyeti fırlar, sistem yavaşlar

2️⃣ Büyük Dosya Yükleme ve Depolama İstismarı

  • Durum: 📂 Dosya yükleme API’sinde boyut limiti yok (/api/upload)
  • Sorun: 10 GB’lık dosyalar yüklenebiliyor, MIME tip kontrolü yapılmıyor
  • Sonuç: 💾 Depolama alanı dolar, sistemde yazma hataları başlar

3️⃣ Ağır ve Optimizasyonsuz Sorgular

  • Durum: 📊 Rapor API’si (/api/reports) tarih aralığı kısıtlaması olmadan veri döndürüyor
  • Sorun: 10 yıllık veriyi tek sorguda almak mümkün
  • Sonuç: 🖥️ CPU kullanımı %100 → diğer kullanıcıların istekleri yanıtlanamaz

4️⃣ Brute Force ile Kaynak Tüketimi

  • Durum: 🔑 Login endpoint’inde (/api/login) giriş denemelerine limit yok
  • Sorun: Saldırgan saniyede yüzlerce parola denemesi yapıyor
  • Sonuç: Her deneme kimlik doğrulama servislerini tetikler → CPU yüklenir, maliyet artar, hizmet yavaşlar

5️⃣ Background Job Flooding

  • Durum: 🔄 API çağrısı ile tetiklenen rapor oluşturma veya video işleme gibi asenkron işler var
  • Sorun: Tek kullanıcı binlerce job tetikleyebiliyor
  • Sonuç: 📥 Queue sistemi şişer, öncelikli işler gecikir, kaynaklar tükenir

🛠️ Saldırı Teknikleri

  • 🚀 DoS/DDoS tarzı yoğun istek gönderimi
  • 📞 3rd party abuse: Ücretli servislerin sürekli tetiklenmesi
  • 📦 Payload abuse: Çok büyük body/dosya göndererek işlem süresini uzatma
  • 🔑 Brute force: Kimlik doğrulama noktalarında deneme sayısını sınırsız bırakma
  • 🔄 Queue flooding: Asenkron işlemleri aşırı yükleme

🛡️ Korunma Yöntemleri

1. Rate Limiting / Throttling API’lerde istek sayısını belirli bir zaman diliminde sınırlandırın. Bu sınır kullanıcı, IP adresi veya API anahtarı bazlı olabilir. Örneğin, 100 istek/dakika kuralı uygulayarak hem kaynak kullanımını hem de kötüye kullanımı engelleyebilirsiniz.

2. Payload & Dosya Boyutu Limitleri Gönderilen JSON/XML gövdesinin boyutunu ve yüklenen dosyaların maksimum boyutunu belirleyin. Ayrıca MIME tip kontrolü yaparak yalnızca izin verilen içerik türlerinin yüklenmesini sağlayın.

3. 3rd Party API Kota Yönetimi SMS, e-posta veya ödeme geçidi gibi maliyetli üçüncü parti servisler için günlük veya aylık kullanım limitleri tanımlayın. Bu sayede beklenmeyen faturalardan kaçınabilirsiniz.

4. Sorgu Optimizasyonu Veritabanı sorgularında tarih aralıklarını sınırlayın ve gerekli indekslemeleri yapın. Ağır sorguların arka planda asenkron olarak çalıştırılmasını tercih edin.

5. Brute Force Önleme Login endpoint’lerinde belirli sayıda başarısız girişten sonra ek güvenlik adımları ekleyin. CAPTCHA veya MFA (çok faktörlü kimlik doğrulama) ile saldırıların etkisini azaltın.

6. Kaynak İzleme & Alarm Mekanizması CPU, RAM ve disk kullanımını sürekli izleyin. Belirli eşik değerleri aşıldığında otomatik olarak alarm üreterek müdahale süresini kısaltın.

🧪 Test Stratejileri

Bu güvenliği sağlamak için yük testi şart:

  • 📦 Büyük dosya yükleme denemeleri
  • 📊 Ağır veri sorguları
  • 🔑 Brute force login atakları

Bu testler:

  • Manuel olarak yapılabilir
  • Postman, JMeter, APIStrike gibi araçlarla otomatik ve sürekli yürütülebilir

Sonuç

Unrestricted Resource Consumption, çoğu zaman işlevsellik önceliği yüzünden göz ardı edilen, ancak sistemin sürekliliği ve maliyet optimizasyonu açısından kritik bir güvenlik açığıdır. Brute force dahil tüm kaynak tüketim vektörleri göz önünde bulundurulmalı ve istek bazlı limitler, kota yönetimi, optimizasyon ve izleme ile önlenmelidir.

💡 Yerli çözümlerden biri olan Apifort, tam da bu ihtiyaca yanıt veriyor. API’lerinize gelen istekleri gerçek zamanlı olarak izleyerek hem performans kaybını hem de maliyet risklerini minimuma indirmenizi sağlıyor.

📌 Kaynaklar

  • OWASP API Security Top 10–2023
  • CWE-770: Allocation of Resources Without Limits
  • API Rate Limiting Best Practices

Tunahan Balcı | @Apifort Api Security | Apifort


메타데이터
post_id
2eebae70b505
slug
api4-2023-unrestricted-resource-consumption-2eebae70b505
url
https://medium.com/@Apifort/api4-2023-unrestricted-resource-consumption-2eebae70b505
canonical_url
https://medium.com/@Apifort/api4-2023-unrestricted-resource-consumption-2eebae70b505
author_url
https://medium.com/@Apifort
status
ok
fetched_at
2026-06-15 20:49:13