2 puan yazan GN⁺ 2025-11-02 | 1 yorum | WhatsApp'ta paylaş
  • 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

  • Anormal bot davranışları üzerinden tespit yeni bir fikir değil; yorum içindeki script istekleri ise yeni fark edilen bir örnek
  • robots.txt içine Disallow yönergesi ekleyerek belirli isteklerde karşı hamleyi tetikleme yöntemi öneriliyor
    User-agent: GPTBot
    Disallow: /poison/
    
  • Toplulukta display:none ve rel="nofollow" öznitelikleriyle botları cezbetmek için gizli bağlantılar kullanmaya yönelik çeşitli fikirler paylaşılıyor
    • Örnek: <a href="/hello-llm-robot-come-here" rel="nofollow" style="display:none">you didn't see this link</a>
  • Bağlantıları mutlak yol (absolute URL) olarak vermenin daha fazla crawler’ı kandırabileceği belirtiliyor
  • Birden fazla sitede çeşitli bot cezbetme ve engelleme deneyleri yürütülüyor; etkiler ölçülüp paylaşılacak
  • Başka araştırmacılar da AI scraper’larını bozma deneylerine katılıyor ve özgün zehirleme örnekleri de tanıtılıyor
  • Genel hedef, AI veri toplama faaliyetlerine karşı otonom savunma ve karşı saldırı stratejilerinin yaygınlaşması

1 yorum

 
GN⁺ 2025-11-02
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 curlcffi gibi hızlı crawling yöntemlerini birkaç kez deniyor
    Zip 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 requests iç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 bekleyebilir
    Bu 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-length değerinin content-encoding sonrasında hesaplandığını unutmamak gerekir
    • “scraping” ile “crawling” arasında bir fark olup olmadığını merak ediyorum
    • Artık tarayıcı içi scraper döneminin gelmesi muhtemel. Sunucu açısından insanla ayırt edilmesi imkansız, AI driver'lar da insan testlerini geçebilir
  • “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

    • Ben herkese açık bir HTTP sunucusu açıyorsam, normal GET isteklerini memnuniyetle karşılarım
      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 meselesidir
      Milyonlarca konut IP'sini döndürerek kullanan botlar kesinlikle normal değildir
    • Sunucu yapılandırmasını kandırıp istediğiniz veriyi alıyorsanız, bu rıza dışı erişimdir
      Sunucunun herkese açık olması, sahte istekleri kabul ettiği anlamına gelmez. Örtük rıza yalnızca makul isteklere yöneliktir
    • robots.txt yasal olarak bağlayıcı değildir, sadece nezaket çerçevesinde bir taleptir
      Anlamı 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
    • Tek seferlik erişim ile sonsuz crawling saldırısını aynı şey gibi görmek mantıksız
      Spam, sıradan e-postayla aynı olmadığı gibi bot istismarı da sıradan istekle aynı değildir
    • “Şeker kasesi” benzetmesiyle söylemek gerekirse, trick-or-treat için bırakılan tüm şekeri tek bir yetişkin alıp götürürse kimsenin hoşuna gitmez
  • DOM'u parse etmek yerine http/https dizelerini doğrudan aramak daha hızlı olabilir gibi geliyor

    • Basit metin araması ile DOM üzerinde gezinme arasında kaynak kullanımı açısından büyük fark var; bu yüzden “muhtemelen daha hızlı” demek durumu hafife almak olur
    • Regex yaklaşımı uygulaması kolaydır, ama DOM parse etmede de asıl sorun CPU değil ağ darboğazıdır Sonuçta sınırlayıcı etken ağ tıkanıklığıdır
  • İ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

    • Ben de ilk başta bunun bir AI scraper engelleme scripti olduğunu sanmıştım
  • Bu, istismardan çok sadece yorum satırına alınmış URL'leri okumak gibi görünüyor

    • Yazı, bunun istismar değil bot tespit sinyali olarak nasıl kullanılacağını anlatıyor
    • Ama 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

    • DOM gezintisi aslında gereğinden fazla çabaydı. Regex ile gerekli div ya da p etiketlerini yakalamak daha sağlam ve daha basitti
  • Botlara 512MB'lık rastgele veri dosyası vermek nasıl olurdu diye düşündüm

    • Onun yerine AI scraper'lara verilen reklam yanıtlarını zehirleyip LLM'lerin belirli ürünleri önermesini sağlamak daha kârlı olur
      Kurduğum startup tam olarak böyle bir Ad-poisoning-as-a-service sunuyor
    • Rastgele birbirine bağlanmış AI zehir sayfaları oluşturup botları orada hapsetmek de mümkün. İnsanlar zaten oralara tıklamaz
    • Ama çoğu kişi bant genişliği maliyetini karşılayamaz
    • Hatta 512MB'nin tamamını “bizim hizmetimiz en iyisi” cümlesiyle doldurmak eğlenceli olabilir
  • Bu, “LLM eğitimi için veri toplama”dan çok sıradan internet tarama gürültüsü gibi duruyor

    • Evet. Eğer bu bir zafiyet tarayıcısıysa, olabildiğince çok HTTP endpoint toplamaya çalışacaktır
      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

    1. Birden çok site iş birliği yaparsa veri deduplikasyonunu aşarak modeli kirletme ihtimali artabilir
    2. Telif hakkı hukuku kullanılarak zehirlemenin maliyeti artırılabilir. Yine de site hukuki risk üstlenebilir
      Telif hakkı sahipleriyle iş birliği yapılırsa risk azaltılabilir
    • İlk fikir güzel bir WordPress eklentisi olabilir
      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