- Web botları, basit HTTP istemci isteklerinden gerçek tarayıcı otomasyonuna kadar evrim geçirdi; buna karşılık bot tespit teknikleri de sürekli daha sofistike hale geldi
- IP itibarı, TCP/TLS/tarayıcı ortamı parmak izi, JavaScript tabanlı davranış analizi gibi çeşitli teknikler bot tespitinde kullanılıyor
- Headless tarayıcılar, proxy'ler, User-Agent sahteciliği gibi bot kaçınma teknikleri gelişse de, tespit algoritmaları da birlikte evrilerek iki taraf arasındaki bu “kedi-fare” oyunu sürüyor
- Son dönemde davranış verisi tabanlı yapay zeka modelleri ile gelişmiş davranış analizinin de eklenmesi, bot tespitini daha da karmaşık hale getirdi
- CAPTCHA, proxy tespiti, Proof-of-Work, davranış tabanlı doğrulama gibi çok katmanlı savunma yapıları yaygınlaşıyor
Giriş: Web botları ve tespit teknolojilerinin evrimi
- Web botları, basit crawler'lar ve otomasyon script'lerinden gerçek kullanıcı gibi davranan gelişmiş programlara kadar birçok türde bulunur
- Arama motorları ve arşiv botları gibi faydalı botlar olsa da, spam ve yasa dışı scraping gibi sorunlu kullanım alanları da çoktur
- Site operatörleri ilk dönemlerden beri botlarla mücadele ediyor; tespit ve kaçınma teknikleri aynı anda gelişiyor
En basit botlar: HTTP istemcileri
curl, wget gibi basit HTTP istemcileriyle siteye istek göndermek, en temel bot biçimidir
- Tüm HTTP istemcileri kendilerini
User-Agent başlığında açığa çıkardığı için, siteler bunları kolayca tespit edip engelleyebilir
- User-Agent tarayıcı gibi sahte gösterilse bile, tarayıcılar ek başlıklar da gönderdiğinden (dil, encoding vb.) kusursuz bir taklit değilse yine tespit edilir
IP itibarı ve proxy'ler
- Sunucular bot tespitinde IP adresini kullanır. Özellikle cloud ve datacenter IP blokları bot/otomasyon trafiği olarak görülür ve güvenilirlikleri düşüktür
- Proxy olmadan çalıştırıldığında kısa sürede engellenildiği için, IP'yi aşmak amacıyla konut tipi/mobil proxy'ler gerekir ve bu da maliyet yaratır
- Siteler IP itibarı, proxy portlarının (1080 vb.) açık olup olmadığı, IP aralığı ve bağlantı örüntülerini aktif biçimde denetler
- IP engelini aşmak için rotating proxy ve mobil proxy gibi yöntemler kullanılır
TCP parmak izi (TCP Fingerprinting)
- HTTP isteğinden önce TCP bağlantısı kurulduğunda, işletim sistemine göre TCP paketlerinin yapısı değişir; bu analiz edilerek işletim sistemi tespit edilebilir
- User-Agent ile gerçek işletim sistemi (TCP parmak izi) uyuşmuyorsa, trafik bot/sahte trafik olarak değerlendirilebilir
- Proxy sunucuları da TCP parmak izini etkileyebildiğinden, proxy seçerken işletim sistemi uyumu dikkate alınmalıdır
TLS parmak izi (TLS Fingerprinting)
- TLS handshake sürecinde desteklenen şifreleme yöntemleri, sürümler ve uzantılar tarayıcıya/işletim sistemine göre farklılık gösterir
- TLS parmak iziyle tarayıcı, işletim sistemi ve kullanılan kütüphane türü tahmin edilip User-Agent ile çapraz doğrulama yapılabilir
JavaScript tespiti
- Sunucular, yanıt vermeden önce ya da sayfa yüklendikten sonra JavaScript ile istemci ortamı ve davranış bilgilerini ek olarak toplar
- Bot JavaScript çalıştırmıyorsa hemen tespit edilir; buna karşı botlar da Selenium, Puppeteer, Playwright gibi tarayıcı otomasyon araçlarını kullanır
- Bu alan, basit HTTP isteklerinden tarayıcı otomasyonuna doğru evrilmektedir
Headless tarayıcılar ve tespit
- Headless mod (penceresiz Chrome vb.) bot geliştirmede kritik önemdedir; ancak
navigator.webdriver gibi ayırt edici özellikler, boş eklenti listesi gibi farklar sayesinde tespit edilebilir
- Çeşitli özellikler patch'lenerek gizlenebilir; ancak onlarca ipucunun tamamını ele almak gerekir ve sürekli yeni tespit noktaları ortaya çıkar
- 2023'ten itibaren kullanılan New Headless modu, gerçek Chrome ile aynı engine'i kullandığından tespit daha zor hale gelmiştir
Orkestrasyon framework'ü tespiti ve IPC
- Selenium ve Playwright gibi otomasyon framework'leri, kendilerine özgü flag/option'lar, tarayıcı sürümü ve ortam yapılandırmasında sıra dışı izler bırakır
- Örneğin
--disable-ipc-flooding-protection gibi flag'ler bot ortamını tanımlamak için bir ipucu olabilir
- Bazı JS fonksiyonları (ör.
window.history.pushState) aşırı çağrılarak IPC flood durumu tetiklenebilir ve bu yolla tespit yapılabilir
Proxy tespiti: JS tabanlı gelişmiş yöntemler
- Latency (gecikme ölçümü): WebSocket vb. ile ölçülen toplam gecikme ile TCP gecikmesi karşılaştırılarak proxy varlığı kontrol edilir
- WebRTC Leak: Tarayıcının WebRTC özelliğiyle gerçek istemci IP'si alınır; HTTP istek IP'siyle uyuşmuyorsa proxy/bot şüphesi doğar
- DNS Leak: JavaScript üzerinden rastgele bir alt alan adına istek gönderilir → DNS sunucusunun konumu/IP'si üzerinden anormal örüntüler (ör. ülke uyuşmazlığı) tespit edilir
- Timezones: Tarayıcının saat dilimi ile IP konumu karşılaştırılarak proxy kullanımı veya sahtecilik tespit edilebilir
CAPTCHA ve doğrulama
- CAPTCHA, bot tespiti/engellemesi amacıyla kullanılan ayrı bir doğrulama katmanıdır; insanın çözebileceği problemlerden (karakter tanıma, tıklama vb.) oluşur
- Son dönemde Proof-of-Work tabanlı CAPTCHA'lar (hesaplama işi yükleme) ve davranış tabanlı CAPTCHA'lar (basit tıklama + davranış analizi) kullanılmaya başlandı
- Botların büyük bölümü CAPTCHA'yı aşmak için düşük maliyetli harici CAPTCHA çözücü servislerden yararlanır
Basit/gelişmiş davranış analizi
- Davranış analizi, fare hareketi, tuş vuruş örüntüsü, tıklama konumu ve hızı gibi insan davranışına özgü verimsizlik ve çeşitliliği inceler
- Örnek: farenin eğrisel hareketi, tıklama gecikmesi, tuş vuruşları arasındaki zaman farkı, mobil cihaz orientation/motion event'leri vb.
- Botlar; düz çizgi hareketi, sabit/hızlı yazma, gerçekçi olmayan tepki süreleri gibi işaretlerle kolayca açığa çıkar
- Gelişmiş davranış analizi, geniş ölçekli insan ve bot davranış verilerini toplayıp öğrenerek, yapay zeka/makine öğrenimi ile çok ince örüntüleri de ayırt eder
- Örnek: fare hareket yörüngesi, keystroke'lar arasındaki ince zaman farkları, sayfa gezinme örüntüleri gibi birleşik verilerle sınıflandırma
Sonuç ve çıkarımlar
- Web botları ile tespit teknolojileri arasındaki mücadele, sürekli evrim ve karşı hamlelerin savaşıdır; statik parmak izi, davranış analizi ve yapay zeka tabanlı tespit gibi birçok teknik birlikte kullanılır
- Çeşitli kaçınma ve sahtecilik yöntemlerine rağmen, servis operatörleri çok katmanlı tespit sistemleri, gerçek zamanlı davranış analizi ve yapay zeka modelleriyle karşılık verir; bu yüzden sürekli güncelleme gerekir
- Bot geliştiricileri için kusursuz bir gizlenme ortamı kurmanın sınırları vardır; güncel tespit trendlerini ve karşı yöntemleri anlamak zorunludur
Henüz yorum yok.