Bot tespiti, bir web sitesine, uygulamaya veya API'ye gelen trafiğin otomatik yazılımdan mı yoksa bir insandan mı geldiğini belirleme sürecidir. Ayrıca zararlı botları, arama motoru tarayıcıları gibi meşru olanlardan ayırır. Tespit sistemleri, ağdan, istemciden ve kullanıcı davranışından gelen sinyalleri puanlar. Sonuç, bir isteğin izin verilip verilmeyeceğini, sorulup sorulmayacağını veya engellenip engellenmeyeceğini belirler.
Bot Tespitinin Katmanları
- Ağ düzeyi sinyalleri: IP itibarı, ASN filtreleme
- İstemci düzeyi sinyalleri: TLS ve tarayıcı parmak izleri, başlık tutarlılığı
- Davranışsal sinyaller: davranışsal telemetri, oturum farkındalığına sahip hız sınırlamaları
Bir katmanı geçen bir istek, başka bir katman tarafından hala işaretlenebilir.
Bazı sinyaller birbirine karşı kontrol edilebilir. OWASP, İstemci Hints başlıklarının istemci tarafından beyan edildiğini ancak TLS parmak izi ile doğrulanabileceğini belirtmektedir.
İyi Botları Doğrulama
Tüm otomatik trafik istenmeyen değildir. Örneğin, arama motoru tarayıcıları, arama sonuçlarında görünebilmek için sayfaları alır. Herhangi bir bot, User-Agent kısmında bir tarayıcı olduğunu iddia edebilir, bu nedenle siteler IP adresini doğrular. Google, Googlebot'u doğrulamak için iki yol belgeler:
- DNS kontrolü: IP üzerinde ters DNS sorgusu çalıştırın. Ana bilgisayar adının googlebot.com, google.com veya googleusercontent.com ile bittiğini doğrulayın. Ardından, ileri bir sorgu çalıştırın ve orijinal IP'yi döndürdüğünü doğrulayın.
- IP aralıkları: IP'yi Google'ın JSON formatında yayımladığı tarayıcı IP aralıkları listeleriyle eşleştirin.
Bot Tespitinin Hedeflediği Tehditler
OWASP Otomatik Tehditler Projesi, 21 otomatik tehdidi isimlendirir. Örnekler arasında:
- Kimlik bilgisi doldurma (OAT-008): Çalınan kullanıcı adı ve şifre çiftlerini test eden toplu giriş denemeleri.
- Veri kazıma (OAT-011): Uygulama içeriğini veya başka verileri toplamak.
- Fırsatçılık (OAT-005): Sınırlı sayıda mevcut veya tercih edilen mal ve hizmetleri haksız yöntemlerle elde etmek.
- Hesap oluşturma (OAT-019): Daha sonra kötüye kullanmak için birçok hesap oluşturmak.