1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • HTTP erişiminden önce iş ispatı (Proof-of-Work) talep eden Anubis, AI scraper’larından çok sıradan kullanıcılara, düşük özellikli cihazlara ve JavaScript desteklemeyen istemcilere daha büyük ve sürekli bir maliyet yüklüyor
  • LLM tarafından oluşturulan anubis-fetch, iş ispatını doğrudan çözüyor, gerekirse Chromium çalıştırıyor ve Chrome’un TLS/JA3 parmak izini taklit ederek Cloudflare’ın manuel engelini bile aşıyor
  • Scraper’lar aldıkları çerezleri önbelleğe alıp yeniden kullanarak maliyeti birçok isteğe yayabiliyor, ancak insanlar her ziyarette birkaç saniyelik beklemeye ve pil tüketimine katlanmak zorunda kalıyor
  • Varsayılan zorluk seviyesi 4 ortalama 65.536 hash gerektiriyor; yerel Go uygulaması yaklaşık 1,3 ms, tarayıcı JavaScript’i ise yaklaşık 130 ms sürüyor, ancak gerçekte hissedilen bekleme süresi yaklaşık 1~5 saniye
  • Deneme başına 2 saniyelik hissedilen süre ve 20J enerji varsayılırsa, günde 1 milyon doğrulama yılda yaklaşık 23 insan-yılı·2MWh, günde 100 milyon doğrulama ise yaklaşık 2.300 insan-yılı·200MWh tüketiyor

Yapay zekanın aştığı Anubis

  • Linux çekirdeğinde binfmt_misc için bpf üzerinden yorumlayıcı PT_INTERP içinde $ORIGIN desteği ekleyen bir yama üzerinde çalışırken, LLM’den Linux kernel mailing list başlığını okuması istendi
  • lore.kernel.org, kaynağa erişmeden önce iş ispatı isteyen HTTP proxy’si Anubis’i devreye almıştı
  • LLM bu kısıtı işleyen anubis-fetch’i üretti
    • Önce iş ispatını yerel olarak çözüyor, başarısız olursa Chromium ile URL’yi ziyaret ediyor
    • req ile gerçek Chrome’un TLS/JA3 parmak izini taklit ederek Cloudflare’ın manuel engelini de aşıyor
    • anubis-fetch <URL> HTML çıktısını standart çıktıya veriyor, --text seçeneği ise okunması kolay düz metin üretiyor
  • Anubis’in hedef aldığı AI ve botlar, iş ispatı desteğini bir kez ekledikten sonra bunu kolayca aşabiliyor
    • Scraper’lar doğrulamayı çözdükten sonra aldıkları çerezleri önbelleğe alıp yeniden kullanarak maliyeti birçok isteğe yayabiliyor
    • Buna karşılık insanlar her ziyarette dönen yükleme göstergesini bekliyor, pil tüketiyor ve bu maliyeti başka kullanıcılarla paylaşamıyor
    • Cihaz ne kadar düşük özellikliyse ve özellikle akıllı telefonlarda yük o kadar artıyor; JavaScript kullanmayan w3m·lynx·ekran okuyucular·RSS okuyucular ise erişemiyor
  • AI’yı engellemeyi amaçlayan mekanizma, AI tarafından kolayca aşılırken insanlara ve açık web’e sürekli maliyet yükleyen tersine artan bir yük olarak çalışıyor

İş ispatının yarattığı zaman ve enerji maliyeti

  • Zorluk seviyesi d, hash’in sahip olması gereken öndeki sıfır hex karakterlerinin sayısıdır ve çözüm başına beklenen iş miktarı W = 16^d hash’tir
    • Yaygın varsayılan olan zorluk 4, 65.536 hash gerektirir
      • Yaklaşık 50 MH/s hızındaki yerel Go uygulaması: yaklaşık 1,3 ms
      • Yaklaşık 0,5 MH/s hızındaki tarayıcı JavaScript’i: yaklaşık 130 ms
      • Sayfa yüklemesi, worker çalıştırma ve yeniden yüklemeyi içeren hissedilen süre: yaklaşık 1~5 saniye
    • Zorluk 5, 1.048.576 hash gerektirir
      • Yerel Go uygulaması: yaklaşık 20 ms
      • Tarayıcı JavaScript’i: yaklaşık 2 saniye
      • Hissedilen süre: yaklaşık 5~15 saniye
  • Dünya genelindeki günlük Anubis doğrulama çözüm sayısı C, deneme başına hissedilen süre t = 2 saniye, ekran ve CPU dâhil cihaz enerjisi E = 20J varsayılıyor
    • Yıllık insan zamanı C × t × 365 / 3.15×10⁷ ile hesaplanıyor
    • Yıllık enerji C × E × 365 / 3.6×10⁶kWh ile hesaplanıyor
  • Bu varsayımlara göre yıllık maliyet şöyle
    • Günde 1 milyon kez: yaklaşık 23 insan-yılı, yaklaşık 2MWh
    • Günde 10 milyon kez: yaklaşık 230 insan-yılı, yaklaşık 20MWh
    • Günde 100 milyon kez: yaklaşık 2.300 insan-yılı, yaklaşık 200MWh
  • Tüm rakamlar kabaca tahminidir; bot çiftlikleri ve AI araçları bunun birkaç basamak daha fazla enerji tükettiğinden, bu hesap çevresel bir iddia ileri sürmek için yapılmış değil
  • Robotlar için zaman bir kısıt değil, ama insanların zamanı sonludur; bu nedenle kullanıcılar, AI çağından önce var olmayan web sitesi erişim beklemelerinde topluca önemli miktarda zaman harcamaya başlıyor

1 yorum

 
GN⁺ 3 시간 전
Lobste.rs görüşleri
  • Anubis’in hedef aldığı tarafın bunu kolayca etkisiz hale getirdiği söylemine katılmak zor. Anubis’in asıl amacı LLM ajanlarını veya vibe coding ile yapılmış programları değil, LLM şirketlerinin kullandığı gelişigüzel web scraper’larını engellemek
    Aşma yöntemleri var ve ajanlar ya da LLM’ler de kullanılabilir, ancak scraper’ların büyük kısmı basit ve operatörleri de Anubis uygulayan az sayıdaki siteyi özellikle aşmaya uğraşmıyor. Amaç, aşma maliyetini biraz yükselterek toplamayı değmez hale getirmeye daha yakın

    • Anubis, konut tipi proxy kullanan scraper’ların sunucuyu felç ettiği durumları engellemede iyi çalışacaktır. Tekil ajan istekleri, kullanıcının siteyi bizzat gezmesinden çok da farklı değil
      Ancak bu amaç için Anubis gereğinden fazla tasarlanmış. Kullanıcıya bir kez düğmeye bastırıp sonra erişim çerezi vermek de aynı koruma etkisini sağlayabilir; bunu Apache üzerinde uyguladım ve karmaşık bir iş ispatı olmadan da yeterince iyi çalıştı
    • Hedef, LLM şirketlerinin scraper’larından ziyade genel olarak kaba ve suistimalci web scraper’ları. Bunların bir kısmını LLM şirketlerinin işlettiğine dair sadece tahminler var
    • Web sitelerindeki artan trafik OpenAI, Anthropic, Meta gibi yerlerden değil, başka aktörlerden geliyor; bu yüzden neye LLM şirketi deneceği belirsiz
      Kendi veri madenciliği işlerimde de kullandığım modern scraping araçları, engellerin neredeyse hepsini aşacak kadar iyi ve Anubis de kolayca aşılabiliyor
    • Kişisel sitelere ve yazılımlara yönelik RAG erişimini de engellemek istediğim için temel kullanıcı aracısı engellemesi uyguluyorum. Bunu ChatGPT’den siteye doğrudan erişim istemesini sağlayarak test ettim ve iyi engellendi
      Çok özel bazı yapılandırmalar kaçabilir, ama hedef kötü niyetli rakibi değil, tembel rakibi durdurmak
    • Anubis’in asıl engellediği şey, Chrome gibi davranmaya çalışan ilkel Python requests scraper’ları; bunun dışındaki engelleme etkileri ise daha çok bonus
  • Anubis botları ayıklamıyor; bunun yerine istemcinin istek hızını sınırlıyor

  • Anubis, AI ajanlarının erişimini engellemekten çok hizmet reddi saldırısına karşı savunma aracına benziyor ve pratikte AI ajanlarını ayırt edip engellemek de zor
    Ama mobil cihazda tanımadığım bir siteyi ziyaret ederken JavaScript’i kapalı tutan benim gibi kullanıcıları da birlikte engelliyor

  • Gerçek işletim sonuçlarına bakınca yazının sonucuna katılmak zor. Homelab web sitesini fly.io herkese açık proxy ve Tailscale yönlendirmesiyle servis ettim; Facebook başta olmak üzere scraper’lar yüzünden her ay yaklaşık 20 dolarlık bant genişliği ücreti oluşuyordu
    Proxy’ye Anubis uyguladıktan sonra yeniden ücretsiz katmana döndüm. Gerekirse aşılabilmesi sorun değil; robots.txt’yi yok sayan az sayıdaki kötü niyetli tarafın yoğun toplama trafiğinin büyük kısmını engellemek yeterli

  • Akıllı TV gibi düşük güçlü cihazların botnet’ini kullanan scraping çalışmalarında Anubis’in iş ispatı gerçekten engel olabilir gibi görünüyor. https://lobste.rs/s/kpaxih/update_on_scraper_situation bağlantısında da bu konu biraz ele alınıyor

    • Yanlış bilmiyorsam akıllı TV’ler yalnızca proxy olarak kullanılıyor, iş ispatını kendileri yerine getirmiyor
  • Anubis’te en rahatsız edici kısım açık web ile çakışması. Web sitem çoğunlukla RSS akışı üzerinden tüketiliyor; RSS’yi Anubis ile korursam akış çalışmıyor, korumazsam da tüm içerik makinenin kolay okuyacağı biçimde scraper’lara açılmış oluyor
    Bu tür iş ispatı bariyerleri, hedeflediğimiz açık web ya da indie web ile temelden bağdaşmakta zorlanıyor

    • Son 1 yıldır böyle imkansız bir uzlaşmanın arasında sıkışıp kaldım ve ben de iyi bir cevap bulamadım
  • Başkalarının yaptığı seçime saygı duymayan bir tavır açıkça görülüyor

  • En nahoş tarafı, bunun CFAA gibi yasaları açıkça ihlal eden bir eylem gibi görünmesine rağmen, diğer suç niteliğindeki DDoS hizmetleri gibi kimliğini gizlemesi
    Başkalarının emeğini çalmaya ve açık kaynak kodunu aklamaya tüm iş modelini dayandıran bir şirketin yasaya uyacağını beklemek zaten gülünç

  • Anubis genelde Dillo’yu engellemez ama site ayarına göre engellenebiliyor; bu da JavaScript’in yoksa var olmayı hak etmiyorsun havasını körüklediği için çok can sıkıcı: https://paste.rs/jNgwd.png
    Konut tipi proxy’lerdeki tüm IP listesini toplayıp yönetmenin ve bunları belli bir süre engellemenin mümkün olup olmadığını düşünüyorum; ipset bu ölçeği belki kaldırabilir. Loglara bakınca botların CSS ya da görsel gibi diğer kaynakları çekmeden Dillo deposundaki tüm commit’lerdeki tüm dosyaları dolaştığı görülüyor; bu yüzden tespiti nispeten kolay
    Her sitede IP başına yalnızca bir istek görünse bile, aynı IP’nin birden fazla siteyi çekiyor olması muhtemel; dolayısıyla birkaç kez bildirilen IP’ler engellenebilir. Bağlantıyı sadece kesmek yerine, ayrı bir porttaki bilgilendirme sayfasına yönlendirip engellenme nedenini ve çözüm yolunu anlatmak gerekir
    Bu, tarayıcı eklentilerine veya telefon uygulamalarına ters proxy arka kapısı yerleştirme teşvikini de azaltır. Çünkü kullanıcılar gerçekten engellenmeye başlar
    IP itibar sistemine dayanmak zorunda olmak üzücü, ama başka etkili bir karşı önlem pek görünmüyor. Savunmasız cihazlar, botnet komuta-kontrol sunucusu kaldırıldıktan sonra bile bir sonraki saldırgan tarafından yeniden ele geçirilip yeni bir botnet’e katılabiliyor

  • Yazıda “tabii ki bu işi LLM yardımıyla yapıyorum” denmiş; öyleyse neden vibe coding etiketi eklenmediğini merak ediyorum

    • Yazar, derleyici ya da editör kullandığında da o etiketi eklemiyorsa bunun sebebi bu yazının konusunun vibe coding olmaması. vibecoding etiketi pushcx tarafından kaldırıldı
    • Gönderi paylaşılırken, engeli aşan bir şeyi vibe coding ile yaptığı yazıda açıkça belirtildiği için o etiketi ekledim. Bundan daha az AI kodlamadan söz eden yazılara bile etiket eklendiği oluyor; bu yüzden kaldırılmasına şaşırdım ama bu etiketin uygulanma ölçütünün tamamen tutarlı olmadığını kabul eder hale geldim