1 puan yazan GN⁺ 2025-01-19 | 1 yorum | WhatsApp'ta paylaş
  • Herkese açık Gitea sunucusu git.xeserv.us, AmazonBot istekleri nedeniyle kararsız hale geldi; işletmeci AmazonBot ekibinden bu alan adını engelleme listesine eklemesini istedi
  • robots.txt ile tüm botlar için Disallow: / ayarlanmış olsa da istekler gelmeye devam etti; bu durum herkese açık Git sunucusu işletmeyi tamamen bırakmayı gerektirebilecek bir noktaya geldi
  • Yapay zeka tarayıcıları, kullanıcı ajanını değiştirerek veya konut tipi IP proxy’leri kullanarak engellemeyi zorlaştırıyor
  • nginx ingress üzerinde Amazon kullanıcı ajanına 418 dönecek şekilde engelleme yapıldı; ancak istekler farklı IP’lerden devam etti ve yaklaşık %10’unda amazonbot kullanıcı ajanı da yoktu
  • Sonunda Gitea sunucusu yeniden VPN arkasına taşındı ve isteklerden önce iş ispatı denetimi yapan ters proxy Anubis geliştirildi

AmazonBot istekleri ve robots.txt’in sınırları

  • İşletmeci, AmazonBot operatörlerinden git.xeserv.us alan adını engellenen alan adları listesine eklemelerini istedi
  • Git sunucusunu taramak istiyorlarsa, aşırı kaynak kullanımını karşılayacak donanım yükseltme maliyetini ödeyebilmeleri için kendisiyle iletişime geçmelerini istedi
  • Tüm botları engelleyen robots.txt zaten ayarlanmıştı, ancak gerçek istekleri engellemek için yeterli olmadı
User-agent: *
Disallow: /
  • Yapay zeka tarayıcı botlarını engellemenin neden zor olduğunu da özetledi
    • Botlar yalan söylüyor
    • Kullanıcı ajanını değiştiriyor
    • Konut tipi IP adreslerini proxy olarak kullanıyor
    • Başka yöntemler de kullanıyor

nginx ingress engellemesi ve Anubis’in yayımlanması

  • 2025-01-17 17:50 UTC’de nginx ingress yapılandırmasıyla kullanıcı ajanı engellemesi eklendi
nginx.ingress.kubernetes.io/configuration-snippet: |
  if ($http_user_agent ~* "(Amazon)" ){
    return 418;
  }
  • Bu ayardan sonra da bot her seferinde farklı IP’lerden istek göndermeye devam etti ve isteklerin yaklaşık %10’unda amazonbot kullanıcı ajanı yoktu
  • 2025-01-18 19:00 UTC’de Gitea sunucusu yeniden VPN arkasına taşındı
  • Ardından Gitea sunucusunun önünde, isteklere izin vermeden önce iş ispatını denetleyen bir ters proxy geliştirilmeye başlandı
  • 2025-01-18 23:50 UTC’de bu proxy Anubis adıyla https://git.xeserv.us/ üzerinden görülebilir hale geldi
  • 2025-03-26 14:27 UTC itibarıyla Anubis, dokümantasyon sitesi olan bağımsız bir projeye dönüştü

1 yorum

 
GN⁺ 2025-01-19
Hacker News yorumları
  • Artık avukat imzalı bir mektup gönderme zamanı. Computer Fraud and Abuse Act kovuşturma yönergelerine bakınca, ABD Adalet Bakanlığı'nın genel olarak açıkça saldırı olmayan herkese açık sunucu erişimini “yetkisiz erişim” saymadığı, ancak sonrasında yetki sahibi kişinin açık bir yazılı durdurma talebi gönderip davalının bunu alıp anladığı durumda, o noktadan itibaren yetkisiz saydığı yazıyor.
    Bu yüzden bir avukata “net bir cease and desist” mektubu yazdırıp, avukatın önerdiği şekilde taahhütlü posta ya da tebligat görevlisiyle Amazon'a ulaştırmak yeterli. Muhtemelen ikisini de yapıp bir de e-posta göndermek gerekir.
    Sonra Amazon'un durup durmadığına bakılır; durmazsa suç duyurusunda bulunulabilir. O zaman Amazon da ciddiye almak zorunda kalır.
    https://www.justice.gov/jm/jm-9-48000-computer-fraud

    • “Amazon'un durup durmadığına bakmak” ancak o istekler gerçekten Amazon'dan geliyorsa doğru olur. Yazıdaki ayrıntılara, yani dönen kullanıcı ajanlarına, konut IP'lerine ve robots.txt'yi yorumlamıyor gibi görünen davranışa bakınca bunun olasılığı düşük görünüyor.
      Amazon botunun bilinen Amazon IP aralıklarından gelmesi ve robots.txt'ye uyması gerekir. Bir Amazon mühendisi de başka bir yorumda bunu doğrulamış: https://news.ycombinator.com/item?id=42751729
      Amazon'la eşleşen tek şey “AmazonBot” kullanıcı ajanı dizesiyse, IP aralıkları ya da davranış eşleşmiyorsa Amazon'a avukat mektubu göndermek parayı yakmaya benzer.
    • Açıkçası bunun Hacker News ana sayfasına çıkmış olması bile yeterince utanç verici; sağduyu departmanından birinin kibarca gönderdiğim “lütfen git sunucumu kazımayın” e-postamı okuyup yanıtlayacağını düşünüyorum. Gelecek salıya kadar yanıt gelmezse avukata resmi bir durdurma talebi mektubu yazdıracağım.
    • Robotlar robots.txt'ye uymalıdır” diye bir yasaya mı ihtiyaç doğdu?
    • Burada tebligat görevlisi (process server) tam olarak ne anlama geliyor merak ediyorum.
  • Bu yorumdaki çözümü beğendim: https://news.ycombinator.com/item?id=42727510
    Sitenin bir yerine bir insanın ziyaret etmesi mümkün olmayan bir bağlantı koyup bunu robots.txt'de yasaklamak, ardından herhangi bir IP o bağlantıyı ziyaret ederse 24 saat engellemek. OpenAI crawler'ının özellikle joker karakterleri görmezden geldiği söyleniyor; bu yüzden onu joker karakterin altına koyarak ele alıyorlar.

    • Geniş adres aralıkları kullanan bot etkinliğiyle uğraşmıştım ve koşullara göre bot olduğu doğrulanınca o IP'yi 24 saat engelleyen benzer bir yöntem denedim.
      Ama ilgili IP sayısı o kadar fazlaydı ki trafiğe neredeyse hiç etkisi olmadı.
      Gelen başlıklara çok ayrıntılı bakmanızı öneririm. varnishlog bu iş için oldukça iyi; yeterince uzun bakınca tüm isteklerin paylaştığı özellikleri bulabiliyorsunuz. Örneğin bildirilen dil ile coğrafi konumun tuhaf bir kombinasyonu ya da aynı eski tarayıcı sürümü gibi.
    • Web crawler'lar gerçekten bıktırıcı. Yaklaşık 8 yıl önce çalıştığım yerde araç görseli sunucusu çökmüştü. Sorunlu crawler, işimizin doğası gereği sahip olduğumuz araç görseli bağlantılarına erişmişti; görsellerin gerçekte mevcut olmaması gibi kusursuz bir kötü koşul da eklenince durum raporu görsel sunucusunu fiilen DoS etmişti.
      Daha da kötüsü, hata işleyicide bir bug vardı; bu koşul oluştuğunda sunucu süreci yeniden başlatılıyor, bu sırada “.NET 2.0 standartlarına göre oldukça iyi olan” önbellek uygulaması da geçersiz hale geliyordu.
      Bu yüzden güvenlik önlemi olarak kanarya tekniği eklemeye başladığımızı hatırlıyorum. Birkaç basit kanarya, başka web sunucuları eklemekten hâlâ daha ucuzdu. Elbette önbellek sorununu da düzelttik ve o servise çok fazla kötü istek gelirse “çığlık atan” bir mekanizma da ekledik.
    • Kendi arama motorum için crawler geliştirirken, gerçek dünyaya düzgün uyan crawler kütüphanelerinin neredeyse hiç olmadığını fark ettim. Sonunda Amazon ve Google'ın epey karmaşık iç içe robots dosyalarına ve istenen soğuma sürelerine kadar uyan bir uygulamayı kendim yapmak için ciddi uğraştım.
      Ama işin komiği, o şirketlerin kendi crawler'ları kendi oluşturdukları manifestleri parse edemiyordu.
  • Biz de tüm AI·SEO botlarında aynı davranışı görüyoruz, bu yüzden öneririm. robots.txt'ye zar zor uyuyorlar ve engellemeleri de zor. Crawl ederken spam gibi akın edip yükü ciddi artırıyor, müşteri sunucularının çoğunu çökertiyorlar.
    AI crawler'ları erişmek istiyorsa uslu durmalı ya da ödeme yapmalı. Aksi halde sonuç neredeyse evrensel bir engelleme olacak.

    • Çözüm küresel tarpit. AI crawler'larını bir kenara bıraksanız bile mantıklı. Eskiden uygulamam gerektiğinde erişim loglarını yarı manuel parse edip /apiye saniyede ortalama X'ten fazla istek atan IP'lere iptables ile -j TARPIT uygulamıştım.
      Bulutta bunu nasıl uygularım pek bilmiyorum. Orada henüz ihtiyacım olmadı.
      https://gist.github.com/flaviovs/103a0dbf62c67ff371ff75fc62f...
    • “Neredeyse evrensel engelleme” nasıl yapılacak bilmiyorum. Sorun zaten bunun zor olması değil mi? Mümkün olsaydı zaten yapıyor olurduk.
    • robots.txt'ye “zar zor” uymak ne demek merak ediyorum. Bu ikili bir şey değil mi? Bazı yönergelere uyup diğerlerini görmezden gelmek mi demek?
    • Web sitelerinin bu verileri büyük bir zip dosyası olarak AI botlarına satmasının bir yolu yok mu? Sürekli DDoS'a uğramaktan daha iyi olur gibi.
      Ya da en azından nezaketen gece ya da yoğun olmayan saatlerde kazısalar.
    • Engellesen ne olacak? O zamana kadar zaten tüm içeriği kazımış olurlar.
  • Bunun gerçekten Amazon olduğunu varsaymayacağım. Yazar, konut IP’leri arasında dönen ve kullanıcı aracısı dizesi de değişen istekler görüyor.
    Büyük bir şirketin crawler’ı gibi davranmak, dikkat çekmek istemeyen kişilerin sık kullandığı bir yöntem. İsteklerin konut IP’lerinden geliyor olması, başka bir şeyler döndüğüne dair büyük bir uyarı işareti.

    • Amazon’da çalışıyorum ama web crawling ile doğrudan ilgilenmiyorum.
      İçeride kontrol edebildiğim bilgilere göre bunun gerçekten Amazon olma ihtimali çok düşük. Amazonbot’un robots.txt’ye uyması ve her zaman Amazon’a ait IP adreslerinden gelmesi gerekir. Doğrulama süreci burada: https://developer.amazon.com/en/amazonbot
      Bilmediğim garip bir iç ekibin böyle bir şey yapıp yapmadığını anlamak için konuyu içeride ilettim; ama yazarın bu trafiği kötü niyetli sayıp kullanıcı aracısını sahte gösteriyor diye ele alması daha iyi olur.
    • Bunlar hizmet olarak ticari biçimde sunuluyor[1]. Bir yerlerde dahil edilmiş bir kütüphane yüzünden yüz milyonlarca ağ arka kapı gibi kullanılıp crawler/scraper hâline geliyor; hizmet şartlarının bir yerindeki geniş ifadelerle kullanıcıların yasal ile yasa dışı arasındaki faaliyetlere aracılık ettirilmesi de makul biçimde yasalmış gibi gösteriliyor.
      [1] https://brightdata.com/proxy-types/residential-proxies
    • Bugünlerde agresif biçimde crawling yapan bir şirketin proxy ağı kullanmadığını garanti etmek zor.
  • Yakın zamanda aynı sorunu yaşadım. Forgejo instance’ım ev sunucusunun CPU’sunu %100 kullanmaya başladı; Claude ve Meta ile Google’ın yapay zeka arkadaşları fiilen sonsuz sayıdaki bağlantıya yüksek hızda istek gönderiyordu.
    robots.txt ve Caddy’nin kullanıcı aracısı tabanlı engelleme listesiyle bir ölçüde azalttım, ama bunun ne kadar süre işe yarayacağını bilmiyorum.
    Scraping adabı nereye gitti?

    • Mesele para. Yapay zeka şirketlerinin olabildiğince çok veriyi, olabildiğince hızlı ve nereden bulurlarsa oradan almak için finansal teşviki var. Şu anda yakacak çok fazla nakitleri de olduğundan verimli olmaları pek gerekmiyor.
    • Birçok şirket, en azından şimdilik yapay zekanın neyi yiyebileceğine dair Overton penceresinin inanılmaz geniş olduğuna dair sinyal aldığında, düzenlemeler sıkılaşmaya çalışmadan önce mümkün olduğunca çok şeyi toplamaya çalışacaktır.
      Daha büyük risk, bu şirketlerden birinin —hatta kendine “Open” diyen bir şirketin— ekonomi ya da ulusal güvenlik açısından “batmasına izin verilemeyecek” bir ölçeğe ulaşması.
    • Diğer tüm bağlamlardaki nezaketle aynı şey oldu. Nezaket, onu yok saymanın para kazandırmadığı bağlamlarda var oldu. Bu varsayım ortadan kalktığı anda hemen terk edildi.
    • Yapay zeka crawler’larını engellemek için iyi bir robots.txt ya da kullanıcı aracısı listesi paylaşabilir misiniz?
    • Meta, OpenAI ve tüm dev teknoloji şirketlerinin hızlı para uğruna sonunda hepimize zarar vereceğini Hacker News’teki son kişi ne zaman fark edecek?
      Facebook, MySpace’ten arkadaş listelerini kazımayı kolaylaştırmasıyla meşhurdu; kendileri büyüdükten sonra aynı davranışı kendi sitelerinde yasakladılar.
      Lütfen artık kendimize gelelim.
  • Bunun Amazon gibi görünen bir DDoS olmadığından emin miyiz?
    İsteklerin konut IP’lerinden gelmesi gerçekten şüpheli.
    Böyle bir DDoS’un motivasyonu, küçük siteleri çökertip sorumluluk Amazon’daymış gibi göstererek Amazon’u hedef almak olabilir.
    Gerçekten Amazon ise başlangıç noktası, yayımladıkları tüm IP aralıklarını engellemek olur. Ancak anlattığına göre istekler o aralıkların dışından da geliyor gibi.

    • grass dot io gibi web sitelerine bakmak lazım. Trafik göndermek istemediğim için doğrudan bağlantı vermeyeceğim.
      Bu tür hizmetler kullanıcı bant genişliği için para ödüyor ve bunu üçüncü taraflara yeniden satıyor; bu yüzden birçok bot trafiği konut IP’lerinden geliyormuş gibi görünüyor.
  • Benim sitem Pinboard da yapay zeka crawler’ı olduğu tahmin edilen şeyler tarafından dövülüyor. Bu yaz Çin ve Singapur IP’leriyle başladı, ama artık IP aralığı engellemesi de yapamıyorum ve CAPTCHA’ya güvenmek zorundayım.
    Trafik seviyesi siteyi anında öldürecek kadar yüksek; üstelik eğitilecek ilginç metinlerim de yok, sadece bağlantılar var.
    Orijinal yazının sahibi bunun nedeninin Amazon crawler’ı olduğunu nasıl anladı merak ediyorum. Ben de suçu atacak birilerini bulmak istiyorum.

  • Böyle şeylerle savaşmanın en iyi yolu engellemek olmayabilir. Engellemek Amazon’a ya da başka şirketlere hiçbir zarar vermez.
    Bunun yerine botlara açıkça zararlı ya da bozucu içerik yedirebilsek nasıl olur?
    Daha büyük ölçekte yapılır ve Amazon zehirli veriyi fark ederse, bunu hızlıca temizlemek için para harcamak ve botların bu tür verileri yemesini engellemek zorunda kalırlar.
    Elbette en büyük sorun, kimsenin böyle bir şeyi kendi sitesinde tutmak istememesi.

    • “Zararlı içerik” yedirme fikri, yapay zeka şirketlerinin kötü davranış kapsamını tamamen yanlış anlamak demek.
      Bu scraper’lar zaten CSAM ve ona denk korkunç şeyleri de hiç çekinmeden yiyor. OpenAI’ın Kenya’daki veri etiketleme taşeronlarından bazıları bu yüzden işi bıraktı. 2023 tarihli Time haberi.
      Şu anda yapay zeka şirketleri veri kalitesiyle ilgilenmiyor, sadece miktara bakıyor. Onlara zarar vermenin tek yolu 0 bayt vermek.
      Sam Altman’ın onayladığı şeylerin onda birini bile yapsa sıradan bir insan doğrudan hapse girerdi.
    • Bu amaç için bu tarpitin önerildiğini görmüştüm. Site crawl edildiğinde sonsuz dizin iç içe geçmeleri ve bitmeyen çöp içerik üreterek botu saatlerce içine hapsediyor.
      https://zadzmo.org/code/nepenthes/
    • Zararlı içerikten kasıt yanlış içerikse, bu başlıktaki başka bir yorumda bunu gerçekten yapan biri var: https://marcusb.org/hacks/quixotic.html
    • Milyarder şirketler sürekli cezasız şekilde yasayı çiğnerken, neden rüzgâra karşı işemekten ben sorumlu olayım?
  • Amazon ve diğer botların yarattığı fazla çıkış trafiğini telafi etmek için iyi niyet göstergesi olarak biraz AWS kredisi verseler güzel olurdu. Yine de bu yazının reklam geliriyle muhtemelen kapanır. Reklam engelleyiciyi kapatırsanız hesap denk gelir.

  • Nginx ile engellemeden önce Bytespider %59, Amazonbot ise %21 paya sahipti; ikisi birlikte Git sunucumuzun toplam trafiğinin %80’ini oluşturuyordu
    ClaudeBot, bir ay içinde Redmine’a, ClaudeBot’tan önceki 5 yılın toplamından daha fazla trafik gönderdi