İş Mantığı ve Race Condition Zafiyetleri: Tarayıcıların Bulamadığı Açıklar
3 Eylül 2026
İş mantığı (business logic) zafiyetleri, bir uygulamanın kendi kurallarının istismar edilmesidir: teknik olarak “geçerli” ama tasarımın izin vermemesi gereken işlemler. Jenerik tarayıcılar bunları büyük ölçüde kaçırır, çünkü bir isteğin “yanlış” olduğunu anlamak, uygulamanın ne yapması gerektiğini bilmeyi gerektirir. Race condition (yarış durumu) ise, eşzamanlı isteklerin bir kontrolü atlamasıdır. İkisi de sık ve maliyetli olabilir.
İş mantığı zafiyetleri
Örnekler somuttur:
- Fiyat/indirim manipülasyonu: Sepet toplamının istemciden alınması; kuponun tekrar tekrar kullanılması.
- Akış atlama: Ödeme adımını atlayıp doğrudan “sipariş tamamlandı” durumuna geçebilmek.
- Negatif değerler: Miktar veya tutar alanına negatif değer girerek bakiye/iade istismarı.
- Yetki sınırlarının aşılması: Bir kullanıcının, tasarımın izin vermediği bir kombinasyonla ayrıcalık elde etmesi.
Ortak nokta: her istek tek tek “geçerli” görünür; sorun, iş kurallarının sunucuda eksik uygulanmasıdır.
Race condition
Race condition, aynı anda gönderilen isteklerin, aralarındaki kısa boşlukta bir kontrolü atlamasıdır. Klasik örnek: bakiyesi bir kez harcamaya yetecek bir hediye kartıyla, aynı anda çok sayıda harcama isteği göndererek bakiyeden fazla harcamak. Kontrol (“yeterli bakiye var mı?”) ile işlem (“bakiyeyi düş”) arasındaki an, eşzamanlı isteklerle sömürülür.
- Savunma: Kritik işlemlerde atomik operasyonlar, veritabanı kilitleri veya idempotency (aynı işlemin tekrarının etkisiz kalması) anahtarları kullanın. “Önce kontrol et, sonra uygula” desenini tek atomik adıma indirin.
Neden otomatik araçlar zorlanır?
Bir tarayıcı, id=1024 yanıtının “yetkisiz” olduğunu ya da bir fiyatın “yanlış” olduğunu bağlam olmadan bilemez. Bu yüzden iş mantığı testleri, uygulamanın kurallarını bilen kontrollü denemeler ve eşzamanlılık testleri gerektirir; imza-tabanlı otomatik tespit tek başına yetersizdir.
Önleme ilkeleri
- Tüm iş kurallarını sunucuda uygulayın; istemciye asla güvenmeyin.
- Durum geçişlerini doğrulayın; adım atlamayı engelleyin.
- Kritik işlemleri atomik ve idempotent yapın; race condition’ı kapatın.
- Sınır değerleri (negatif, sıfır, çok büyük) test edin.
Özet
İş mantığı ve race condition zafiyetleri, uygulamanın kurallarındaki ve eşzamanlılık boşluklarındaki açıklardır; jenerik tarayıcıların kaçırdığı, bağlam gerektiren sınıflardır. Savunma: tüm kuralları sunucuda uygulamak, durum geçişlerini doğrulamak ve kritik işlemleri atomik/idempotent hale getirmek.
Kaynaklar: OWASP Business Logic Testing, PortSwigger: Race conditions.
İş mantığı zafiyetleri bağlam gerektirir. CyberTestify’ın aktif doğrulama ve tam pentest paketleri, keşfedilen akışlarda bu tür kontrolleri değerlendirir.