Bir SaaS geliştiricisi, hesabındaki her alan adı için Cloudflare Bot Fight Mode özelliğini açmanın, API trafiğini bir ay boyunca durdurduğunu ve ödeme yapan müşterilerin ürününün temel özelliklerini kullanamamasına neden olduğunu fark etti.

Sorun, geliştiricinin kullanım metriklerinde ani bir düzleşme fark etmesiyle ortaya çıktı. Yeni kayıtlar gelmeye devam ediyordu ancak aktif oturumlar artmayı bıraktı. Haftalar süren kod yeniden yazımı ve hata ayıklama sürecinden sonra, tek bir güvenlik anahtarının suçlu olduğu anlaşıldı: Cloudflare Bot Fight Mode, SaaS'ın kendi AWS Lambda uç noktasını (endpoint) kötü niyetli bir bot olarak etiketliyor ve engelliyordu.

Tek bir ayar tüm bir servisi nasıl bozdu

Geliştiricinin teknoloji yığını (stack), sunucudan sunucuya (server-to-server) çağrılara dayanıyordu. Dahili bir Lambda fonksiyonu, modern mikro hizmet mimarilerinde yaygın bir model olan, verileri düzenli olarak SaaS'ın genel alan adına geri gönderiyordu. Bot Fight Mode, içerik odaklı siteleri veri toplama (data harvesting) işlemlerinden korumak amacıyla, otomatik veri kazıyıcı (scraper) gibi görünen istekleri zorlaştırır veya engeller.

Bu mod tüm bölgelerde (zones) etkinleştirildiğinde, Cloudflare Lambda'nın giden isteğini başka bir otomatik istemci olarak değerlendirdi. İstek uygulamaya hiç ulaşmadı ve engelleme uç noktada (edge) gerçekleştiği için SaaS'ın izleme araçları herhangi bir hata görmedi; trafik sadece yok oldu. Geliştiricinin Cloudflare Workers üzerindeki CPU kullanımı aniden yükseldi, bu da onun kendi arka uç (backend) yapısı yerine harici bir veri kazıyıcıdan şüphelenmesine neden oldu.

Ancak Cloudflare günlüklerini (logs) inceledikten sonra, "Bot Fight Mode"un Lambda'nın IP aralığıyla eşleşen engelleme kayıtlarını gördü. Etkilenen bölgeler için özelliği kapattı ve API trafiği yeniden başlayarak kullanım metriklerini normale döndürdü.

Bu hata SaaS operatörleri için neden önemli

  • API odaklı ürünlerin açık sunucudan sunucuya kanallara ihtiyacı vardır. Bot Fight Mode, birincil trafiğin HTML, resim veya statik varlıklar için yapılan insan-tarayıcı istekleri olduğunu varsayar. API'ler, webhook'lar veya dahili geri çağırmalar (callbacks) sunan SaaS platformları, uygulama katmanına görünür bir hata kodu ulaşmadan kısıtlanabilir veya engellenebilir.
  • Küresel güvenlik ayarları nadiren her iş yüküne uyar. Tüm alan adlarına tek bir Cloudflare yapılandırması uygulamak, her siteyi aynı tehdit modelini paylaşıyormuş gibi ele alır. İçerik siteleri, forumlar ve SaaS arka uçlarının güvenlik gereksinimleri birbirinden çok farklıdır.
  • Sessiz hatalar geliri eritir. Engellenen istekler uygulamaya hiç ulaşmadığı için geliştiricinin uyarı sistemi devreye girmedi. Soruna sadece kullanıcı etkileşim metriklerindeki düşüş işaret etti. Proaktif uç nokta düzeyinde günlük incelemeleri yapılmazsa, benzer sorunlar fark edilmeden devam edebilir.

Geliştiriciler aynı kaderden kaçınmak için neler yapabilir

  1. Her bölgenin trafik profilini denetleyin. Bot Fight Mode'u etkinleştirmeden önce alan adınızın beklediği istek türlerini listeleyin: insan tarayıcıları, API çağrıları, webhook geri çağırmaları veya dahili servis çağrıları. Bunlardan herhangi biri temel işlevsellik için gerekliyse, bölgeyi "API öncelikli" (API-first) olarak ele alın ve bot azaltma ayarlarını minimumda tutun.
  2. Değişiklikleri bir hazırlık (staging) ortamında test edin. Cloudflare, ayarları tek bir alt alan adına veya bir hazırlık bölgesine uygulamanıza olanak tanır. Değişikliği küresel olarak yaymadan önce meşru otomasyonun hala çalışıp çalışmadığını doğrulayın.
  3. Gözlemlenebilirlik yığınınızın (observability stack) bir parçası olarak uç nokta düzeyindeki günlükleri izleyin. Cloudflare'in güvenlik duvarı ve bot azaltma günlüklerini bir SIEM, Loki veya herhangi bir toplama servisine aktarın. Sessiz hataları erkenden yakalamak için engellenen isteklerdeki artışları uygulama metriklerindeki düşüşlerle ilişkilendirin.
  4. Güvenlik ayarlarını geri alınabilir yapın. Dokümante edilmiş bir geri alma (rollback) planı bulundurun. Yeni bir kural beklenmedik bir davranışa neden olursa, kodla çözüm üretmeye zaman harcamadan önce kuralı devre dışı bırakın ve değişikliği onaylayın.
  5. Doğru soruyu sorun. "Veri kazıyıcıları nasıl durdurabilirim?" diye sormak yerine "Bu araç gördüğüm özel sorunu çözüyor mu?" diye sorun. Veri kazıyıcıları engelleyen bir güvenlik özelliği, açık API erişimine ihtiyaç duyan bir SaaS için uygun cevap olmayabilir.

Daha geniş bir bakış açısı

Bot Fight Mode, statik içeriği agresif tarayıcılardan koruması gereken siteler için değerli olmaya devam ediyor. Dezavantajı ise, saldırgan bir veri kazıyıcı ile aynı HTTP modellerini izleyen meşru bir otomatik istemciyi ayırt edememesidir.

Özet

Tek bir Cloudflare hesabı altında birden fazla alan adını yönetirken, her birini ayrı bir güvenlik bölgesi olarak ele alın. Bot Fight Mode'u yalnızca trafiğin tamamen insan kaynaklı olduğu yerlerde etkinleştirin; API ağırlıklı SaaS iş yükleri için ayarı kapalı tutun veya özel güvenlik duvarı kurallarıyla ince ayar yapın. Tek bir tıklama, meşru trafiği bir veri kazıyıcıyı durdurabildiği kadar etkili bir şekilde susturabilir.