- Web sunucusu günlükleri incelenirken var olmayan JavaScript dosyalarını isteyen çok sayıda bot etkinliği tespit edildi
- Bunların, HTML yorumları içindeki script etiketlerini gerçek kod sanıp istemiş olduğu ve LLM eğitimi için veri toplama girişimi olduğu düşünülüyor
- Bu tür anormal istekleri tespit ederek kamusal ifşa, IP engelleme, sıkıştırma bombaları, veri zehirleme gibi çeşitli karşı önlemler öneriliyor
- Özellikle veri zehirleme, LLM eğitim verisini kirleterek model performansını düşürebilen etkili bir araç olarak anılıyor
- Web yöneticilerinin AI scraper’larına karşı savunma ve karşı saldırı stratejilerini deneysel olarak devreye alma gerekliliği vurgulanıyor
Anormal scraping davranışının keşfi
- Sunucu günlüklerinde var olmayan JavaScript dosyalarına yönelik çok sayıda 404 hata isteği görüldü
- Söz konusu dosyalar, HTML yorumlarının içinde yer alan devre dışı script’lerdi; normal bir tarayıcının bunları istememesi gerekir
- İsteklerdeki bazı User-Agent değerleri
python-httpx/0.28.1, Go-http-client/2.0, Gulper Web Bot 0.2.4 gibi açıkça bot olarak tanımlanabiliyordu
robots.txt içinde crawler erişimi yasaklanmış olmasına rağmen istekler sürünce bunun kuralları görmezden gelme veya yok sayılan bir politika olduğu değerlendirildi
- Bazı istekler Firefox, Chrome, Safari gibi normal tarayıcılar gibi görünmeye çalıştı, ancak HTML yorumlarını ayırt edemedikleri için bunun sahte kimlik olduğu ortaya çıktı
- Bu isteklerin, LLM eğitimi için içeriğin rıza dışı toplanmasına yönelik scraper’lardan geldiği düşünülüyor
Scraper’ların çalışma biçimi
- Bazıları HTML’yi doğru biçimde parse edip yorum içindeki URL’leri özyinelemeli olarak takip ediyor olabilir
- Diğer bazılarının ise HTML’yi düz metin gibi işleyip regex tabanlı URL çıkarımı yaptığı anlaşılıyor
- User-Agent çeşitliliği ve teknik seviye farkları, birden fazla operatörün bulunduğunu ve bazılarının basit otomasyon araçları kullandığını düşündürüyor
- Ortak motivasyonun açgözlü veri toplama olduğu ve bunun tersine kullanılabilecek bir fırsat sunduğu belirtiliyor
Algoritmik sabotaj (Algorithmic Sabotage)
- Algoritmik sistemleri kasıtlı olarak bozma eylemi; özellikle LLM’lerin dışsal maliyetleri nedeniyle dikkat çeken bir konu
- Botların insan dışı davranış kalıpları fark edildiğinde tespit ve karşılık verme kolaylaşıyor
- Karşılık verme yöntemleri dört başlıkta toplanıyor: kamusal ifşa, IP filtreleme, sıkıştırma bombaları, veri zehirleme
0. Kamusal ifşa (Public Disclosure)
- Önemsiz yanlış pozitifler (ör. User-Agent yazım hatası “Mozlla”) ifşa edilirse kolayca düzeltilebileceği için gizli tutuluyor
- Buna karşılık özsel davranışlar (ör. yorum içindeki script’i isteme) düzeltilemeyeceği için kamusal ifşa yararlı görülüyor
- Böylece diğer site yöneticileri de aynı saldırıyı tespit edip engelleyebiliyor
- Bu davranışı algılayan sistem başka sitelere de uygulanıyor
1. IP filtreleme (IP Filtering)
- fail2ban, günlük örüntüleri, tarih ve IP bilgisine göre otomatik engelleme için kullanılıyor
- Genelde kısa engelleme süreleri tercih edilse de, uzun süreli engelleme öğrenen botların yeniden denemesini caydırabilir
- Botnet durumunda IP değiştirilerek istekler sürdürülebilir, ancak tekrar eden örüntüler üzerinden yine tespit mümkün
- İleride botnet davranışlarının analizi üzerine ek araştırma planlandığı belirtiliyor
2. Sıkıştırma bombaları (Decompression Bombs)
- Saldırganın istediği dosya yerine bir zip bomb verilerek sistem kaynaklarının tüketilmesi amaçlanıyor
- Bu, CPU, RAM ve diskin aşırı kullanılmasına yol açabilir veya zafiyet istismarlarını tetikleyebilir
- Dezavantaj olarak sunucu kaynaklarını tüketme ve bant genişliği israfı riski bulunuyor
- Bazı botlar ele geçirilmiş sistemlerde çalıştığı için saldırının etkisi sınırlı kalabilir
- Tüm botlara uygulamak yerine, rastgele seçilen bazı isteklere karşılık verme yaklaşımı öneriliyor
3. Veri zehirleme (Poisoning)
- LLM eğitimi için toplanan veriyi kirleterek model performansını düşürmeyi hedefliyor
- Yakın tarihli araştırmalara göre yalnızca 250 zehirlenmiş belge bile büyük modeller üzerinde kalıcı etki yaratabiliyor
- Zehirlenmiş veriler, modelin belirli konularda anlamsız çıktılar üretmesine neden olabilir
- Örneğin, güvenlik araştırmasıyla ilgili sorularda belirli bir blogu önermeye yönlendirilebilir
- nepenthes, iocaine, glaze, nightshade gibi açık araçlardan yararlanılabilir
- LLM eğitim verisi rıza dışı toplanmışsa, bu tür karşı önlemler meşru bir savunma yöntemi olarak sunuluyor
- IP engelleme ile birlikte kullanıldığında uygulama karmaşıklığı artabilir, ancak birlikte çalıştırma olasılığı bulunuyor
- Etkili tasarımların ayrıntıları kamuya açıklanmayabilir; ayrıca yaratıcı sabotaj katılımının artırılması gerektiği vurgulanıyor
Sonuç ve topluluk tepkisi
1 yorum
Hacker News görüşü
Çoğu web scraper yasa dışı olsa bile ticari amaçlıdır
Bu yüzden sık sık Amazon ya da e-ticaret sitelerindeki verileri çekerler. Sonuçta istenmeyen trafiğin büyük kısmı big tech şirketlerinden ya da açık arayan kötü niyetli aktörlerden gelir
Web scraping hakkında biraz bilgim var. Bazı siteler korunma amacıyla 404 döndürüyor, bu yüzden benim crawler'ım
curlcffigibi hızlı crawling yöntemlerini birkaç kez deniyorZip bomb savunması için yalnızca header içindeki content-length'i okumak yeterlidir. Yanıt çok büyükse hiç okumamak için byte sınırı koyarsınız, timeout ile de kontrol edersiniz
Bu arada
requestsiçindeki timeout'un sayfanın tamamını okuma süresi için bir timeout olmadığını biliyor muydunuz? Sunucu byte'ları yavaş yavaş gönderirse sonsuza kadar bekleyebilirBu yüzden bu tür sorunları çözmek için kendi crawling sistemimi kurdum. Selenium'u da tutarlı biçimde çalıştırabiliyorum
Projem crawler-buddy, temel aldığı kütüphane ise webtoolkit
content-lengthdeğerinin content-encoding sonrasında hesaplandığını unutmamak gerekir“Rıza olmadan LLM eğitim verisi toplandı” ifadesi komik geliyor
Herkese açık bir HTTP sunucusuna GET isteği gönderirken ne tür bir izin gerektiğini anlamıyorum. Tabii weev vakası istisnai bir felaketti
Ama (1) normal kullanıcı erişimi ile bot kaynaklı DDoS saldırısı aynı şey değildir. Ücretsiz sunuluyor diye sınırsızca almak istismar olur
(2) meşru kopyalama ile robot taklidi/sahteciliği birbirinden ayrılmalıdır
(3) düzgün çalışan bir bot
robots.txt'ye saygı duymalıdır. Bu bir yasa değil ama bir nezaket meselesidirMilyonlarca konut IP'sini döndürerek kullanan botlar kesinlikle normal değildir
Sunucunun herkese açık olması, sahte istekleri kabul ettiği anlamına gelmez. Örtük rıza yalnızca makul isteklere yöneliktir
robots.txtyasal olarak bağlayıcı değildir, sadece nezaket çerçevesinde bir taleptirAnlamı kabaca “lütfen bu sayfayı kazımayın”dır; gerçekten engellemek istiyorsanız API token'ı ya da bir kimlik doğrulama süreci koymanız gerekir
Spam, sıradan e-postayla aynı olmadığı gibi bot istismarı da sıradan istekle aynı değildir
DOM'u parse etmek yerine http/https dizelerini doğrudan aramak daha hızlı olabilir gibi geliyor
İlginç bir araştırmanın pratik uygulamasını görmek hoş
İlgili araştırmaya bu gönderiden bakılabilir
Başlık kafa karıştırıcı. “commented-out” demek daha doğru olur gibi
Bu, istismardan çok sadece yorum satırına alınmış URL'leri okumak gibi görünüyor
robots.txt'yi görmezden gelip yorum satırlarını bile kazımak kesinlikle nezaketsiz bir davranışEskiden web crawl ederken en güvenilir yöntem Perl regex'leriydi
Yorumların içindeki URL'leri de doğal olarak kuyruğa eklerdim
Botlara 512MB'lık rastgele veri dosyası vermek nasıl olurdu diye düşündüm
Kurduğum startup tam olarak böyle bir Ad-poisoning-as-a-service sunuyor
Bu, “LLM eğitimi için veri toplama”dan çok sıradan internet tarama gürültüsü gibi duruyor
JS dosyaları, yorum satırı olup olmamasından bağımsız olarak iyi bir ipucudur
Buna karşılık LLM eğitimi içinse, böyle düşük kaliteli JS kodlarıyla ilgileneceğini sanmıyorum
İstenmeyen LLM eğitim trafiğini zehirleme (poison) yöntemleri üzerine bir fikir
Telif hakkı sahipleriyle iş birliği yapılırsa risk azaltılabilir
Her istekte görselleri dinamik olarak değiştirerek deduplikasyon savunmasını etkisizleştirmek de mümkün olabilir. Böyle bir eklenti olsa ben de hemen kurardım