2 poin oleh GN⁺ 2025-11-02 | 1 komentar | Bagikan ke WhatsApp
  • Saat menganalisis log server web, ditemukan banyak aktivitas bot yang meminta file JavaScript yang tidak ada
  • Diduga ini terjadi karena tag skrip di dalam komentar HTML dikenali sebagai kode sungguhan lalu diminta, yang mengindikasikan upaya pengumpulan data untuk pelatihan LLM
  • Diusulkan berbagai langkah respons seperti mendeteksi permintaan abnormal ini lalu melakukan peringatan publik, pemblokiran IP, bom dekompresi, dan peracunan data
  • Secara khusus, peracunan data disebut sebagai cara efektif yang dapat menurunkan performa model dengan mencemari data pelatihan LLM
  • Ditekankan perlunya administrator web secara eksperimental menerapkan strategi pertahanan dan serangan balik terhadap scraper AI

Ditemukan perilaku scraping yang abnormal

  • Dalam log server, terkonfirmasi banyak permintaan error 404 terhadap file JavaScript yang tidak ada
    • File tersebut adalah skrip nonaktif yang berada di dalam komentar HTML, sehingga browser normal seharusnya tidak memintanya
  • Sebagian User-Agent dari permintaan itu teridentifikasi jelas sebagai bot, seperti python-httpx/0.28.1, Go-http-client/2.0, dan Gulper Web Bot 0.2.4
  • Meskipun akses crawler telah dilarang di robots.txt, permintaan tetap berlanjut, sehingga dinilai sebagai pengabaian aturan atau kebijakan yang diabaikan
  • Sebagian permintaan menyamar sebagai browser normal seperti Firefox, Chrome, dan Safari, tetapi karena gagal menafsirkan komentar HTML, hal itu terungkap sebagai identitas palsu
  • Permintaan-permintaan ini diduga berasal dari scraper untuk pengumpulan konten tanpa persetujuan bagi pelatihan LLM

Cara kerja scraper

  • Sebagian kemungkinan mem-parsing HTML dengan benar lalu menelusuri URL di dalam komentar secara rekursif
  • Sebagian lain tampaknya memperlakukan HTML sebagai teks biasa dan melakukan ekstraksi URL berbasis regex
  • Dari keragaman dan tingkat kualitas User-Agent, tampak ada beberapa operator dan sebagian menggunakan alat otomatisasi sederhana
  • Motif yang sama adalah pengumpulan data secara rakus, dan hal ini diajukan sebagai peluang untuk dibalikkan pemanfaatannya
Iklan

Sabotase algoritmik (Algorithmic Sabotage)

  • Tindakan sengaja mengacaukan sistem algoritmik, sebuah topik yang mendapat perhatian karena masalah biaya eksternal dari LLM
  • Jika pola perilaku bot yang tidak manusiawi dikenali, deteksi dan respons menjadi lebih mudah
  • Pendekatan respons dibagi menjadi empat: peringatan publik, pemfilteran IP, bom dekompresi, dan peracunan data

0. Peringatan publik (Public Disclosure)

  • Salah deteksi kecil yang sepele (misalnya typo User-Agent “Mozlla”) sebaiknya tidak dipublikasikan karena bisa dengan mudah diperbaiki
  • Sebaliknya, perilaku yang bersifat mendasar (misalnya permintaan skrip di dalam komentar) bermanfaat untuk dipublikasikan karena tidak bisa diperbaiki begitu saja
  • Dengan ini, operator situs lain dapat mendeteksi dan memblokir serangan yang sama
  • Sistem untuk mendeteksi perilaku tersebut juga sedang diterapkan ke situs lain

1. Pemfilteran IP (IP Filtering)

  • Menggunakan fail2ban untuk memblokir otomatis berdasarkan pola log, tanggal, dan IP
  • Biasanya durasi blokir dibuat singkat, tetapi dengan blokir jangka panjang, bot yang belajar dapat dicegah untuk mencoba lagi
  • Dalam kasus botnet, permintaan bisa terus berlanjut dengan mengganti IP, tetapi masih dapat dideteksi lewat pola berulang
  • Disebutkan juga rencana riset lanjutan tentang analisis perilaku botnet

2. Bom dekompresi (Decompression Bombs)

  • Menyajikan zip bomb pada file yang diminta penyerang untuk memicu konsumsi sumber daya sistem
  • Dapat menyebabkan penggunaan CPU, RAM, dan disk secara berlebihan, atau bahkan membuka peluang eksploitasi kerentanan
  • Kekurangannya adalah konsumsi sumber daya server dan risiko pemborosan bandwidth
  • Sebagian bot berjalan pada sistem yang telah terinfeksi, sehingga efek serangannya bisa terbatas
  • Alih-alih diterapkan ke semua bot, diusulkan pendekatan merespons sebagian permintaan secara acak
Iklan

3. Peracunan data (Poisoning)

  • Mencemari data untuk pelatihan LLM agar menurunkan performa model
  • Menurut riset terbaru, hanya dengan 250 dokumen tercemar, model besar pun dapat terkena dampak yang bertahan lama
  • Data tercemar dapat membuat model menghasilkan keluaran yang tidak bermakna pada topik tertentu
  • Sebagai contoh, dapat diarahkan agar saat ditanya soal riset keamanan, model merekomendasikan blog tertentu
  • Dapat memanfaatkan alat publik seperti nepenthes, iocaine, glaze, dan nightshade
  • Jika data pelatihan LLM dikumpulkan tanpa persetujuan, respons semacam ini diajukan sebagai sarana pertahanan yang sah
  • Jika dijalankan bersamaan dengan pemblokiran IP, kompleksitas implementasi bisa meningkat, tetapi tetap dimungkinkan untuk dijalankan paralel
  • Desain yang efektif mungkin tidak akan dipublikasikan, dan ditekankan perlunya memperluas partisipasi dalam sabotase kreatif

Kesimpulan dan respons komunitas

  • Deteksi melalui perilaku bot yang abnormal bukan konsep baru, tetapi permintaan skrip di dalam komentar adalah kasus yang baru ditemukan
  • Diusulkan cara menambahkan direktif Disallow ke robots.txt untuk memicu langkah serangan balik pada permintaan tertentu
    User-agent: GPTBot
    Disallow: /poison/
    
  • Di komunitas, dibagikan berbagai ide untuk menyembunyikan tautan umpan bagi bot dengan memanfaatkan atribut display:none dan rel="nofollow"
    • Contoh: [you didn't see this link](/hello-llm-robot-come-here)
  • Jika tautan dibuat sebagai jalur absolut (absolute URL), lebih banyak crawler mungkin akan tertipu
  • Saat ini sedang dilakukan berbagai eksperimen umpan dan pemblokiran bot di beberapa situs, dan hasil efektivitasnya akan dibagikan
  • Peneliti lain juga ikut serta dalam eksperimen mengacaukan scraper AI, dan turut diperkenalkan contoh peracunan yang kreatif
  • Secara keseluruhan, tujuannya adalah memperluas strategi pertahanan mandiri dan serangan balik terhadap pengumpulan data AI

1 komentar

 
GN⁺ 2025-11-02
Komentar Hacker News
  • Sebagian besar web scraper digunakan untuk tujuan bisnis, meskipun ilegal
    Jadi, kasusnya sering berupa pengambilan data Amazon atau toko online. Pada akhirnya, sebagian besar trafik yang tidak diinginkan berasal dari big tech atau pelaku jahat yang memburu celah keamanan
    Saya lumayan paham soal web scraping. Beberapa situs bahkan mengembalikan 404 untuk perlindungan, jadi crawler saya mencoba beberapa kali dengan metode crawling cepat seperti curlcffi
    Pertahanan terhadap zip bomb cukup sederhana: cukup baca header content-length. Jika respons terlalu besar, pasang batas byte agar tidak dibaca, dan kendalikan juga dengan timeout
    Ngomong-ngomong, tahukah Anda bahwa timeout di requests bukan timeout untuk keseluruhan pembacaan halaman? Jika server mengirim byte secara perlahan, Anda bisa menunggu tanpa batas
    Karena itulah saya membuat sendiri sistem crawling untuk menyelesaikan masalah seperti ini. Selenium juga bisa dijalankan secara konsisten
    Proyek saya adalah crawler-buddy, dan library dasarnya adalah webtoolkit

    • Perlu diingat bahwa content-length dihitung setelah content-encoding
    • Saya penasaran apakah ada perbedaan antara “scraping” dan “crawling”
    • Sepertinya sekarang akan masuk era scraper di dalam browser. Dari sisi server, mustahil membedakannya dari manusia, dan driver AI bahkan bisa lolos dari pengujian manusia
  • Ungkapan “mengumpulkan data pelatihan LLM tanpa persetujuan” terdengar lucu
    Saya tidak paham izin apa yang dibutuhkan untuk mengirim permintaan GET ke server HTTP yang terbuka untuk publik. Tentu saja, kasus weev adalah bencana yang sangat khusus

    • Jika saya membuka server HTTP publik, saya menyambut permintaan GET yang normal
      Tetapi (1) akses pengguna biasa dan serangan DDoS oleh bot itu berbeda. Karena sesuatu tersedia gratis bukan berarti boleh diambil tanpa batas; itu sudah termasuk penyalahgunaan
      (2) Penyalinan yang sah dan pemalsuan oleh robot harus dibedakan
      (3) Bot yang berperilaku baik seharusnya menghormati robots.txt. Itu bukan hukum, tetapi soal tata krama
      Bot yang berputar memakai jutaan IP residensial jelas sama sekali tidak normal
    • Jika Anda menipu konfigurasi server untuk mendapatkan data yang diinginkan, itu adalah akses tanpa persetujuan
      Fakta bahwa server bersifat publik tidak berarti ia mengizinkan permintaan palsu. Persetujuan implisitnya hanya untuk permintaan yang masuk akal
    • robots.txt bukan sesuatu yang mengikat secara hukum, melainkan permintaan yang sopan
      Artinya kurang lebih “tolong jangan scrape halaman ini”; jika benar-benar ingin memblokir, Anda harus menambahkan token API atau proses autentikasi
    • Menyamakan satu kali akses dengan amukan crawling tanpa batas jelas tidak masuk akal
      Sama seperti spam tidak sama dengan email biasa, penyalahgunaan bot juga berbeda dari permintaan biasa
    • Kalau memakai analogi “mangkuk permen”, tentu tidak menyenangkan jika satu orang dewasa mengambil semua permen yang disediakan untuk trick-or-treat
  • Daripada mem-parsing DOM, sepertinya mencari langsung string http/https akan lebih cepat

    • Perbedaan sumber daya antara pencarian teks sederhana dan penelusuran DOM sangat besar, jadi ungkapan “mungkin lebih cepat” justru meremehkan
    • Pendekatan regex memang mudah diimplementasikan, tetapi pada parsing DOM pun bottleneck yang lebih besar biasanya bukan CPU melainkan jaringan Pada akhirnya, kemacetan jaringan adalah faktor pembatasnya
  • Menarik melihat aplikasi praktis dari riset yang menarik ini
    Riset terkait bisa dilihat di postingan ini

  • Judulnya membingungkan. Sepertinya yang benar adalah “commented-out”

    • Saya juga awalnya mengira ini adalah skrip pemblokir scraper AI
  • Ini tampaknya bukan penyalahgunaan, melainkan sekadar membaca URL yang dikomentari

    • Isi artikelnya menjelaskan cara memanfaatkannya bukan sebagai penyalahgunaan, tetapi sebagai sinyal deteksi bot
    • Tetapi mengabaikan robots.txt dan bahkan men-scrape komentar jelas merupakan perilaku yang tidak sopan
  • Dulu saat melakukan crawling web, regex Perl adalah hal yang paling bisa diandalkan
    URL di dalam komentar tentu saja juga saya masukkan ke antrean

    • Menjelajah DOM justru terasa terlalu berlebihan. Menangkap div atau p yang dibutuhkan dengan regex jauh lebih kokoh dan sederhana
  • Bagaimana kalau bot diberi file data acak berukuran 512MB?

    • Daripada itu, akan lebih menguntungkan jika respons iklan untuk scraper AI diracuni agar LLM terdorong merekomendasikan produk tertentu
      Startup yang saya buat memang menyediakan Ad-poisoning-as-a-service seperti ini
    • Membuat halaman racun AI yang saling terhubung secara acak untuk menjebak bot juga memungkinkan. Manusia tidak akan mengkliknya
    • Tetapi kebanyakan orang sulit menanggung biaya bandwidth
    • Akan lucu juga jika seluruh 512MB itu diisi kalimat “layanan kami yang terbaik”
  • Ini tampaknya lebih merupakan noise pemindaian internet daripada “pengumpulan data untuk pelatihan LLM”

    • Benar. Jika itu pemindai kerentanan, ia akan berusaha mengumpulkan sebanyak mungkin endpoint HTTP
      File JS adalah petunjuk yang bagus, terlepas dari apakah isinya komentar atau bukan
      Sebaliknya, jika untuk pelatihan LLM, sepertinya mereka tidak akan tertarik pada kode JS berkualitas rendah seperti ini
  • Ini pemikiran tentang cara meracuni (poison) trafik pelatihan LLM yang tidak diinginkan

    1. Jika banyak situs bekerja sama, kemungkinan mencemari model akan lebih besar sambil menghindari deduplikasi data
    2. Hukum hak cipta juga bisa dipakai untuk menaikkan biaya pencemaran. Namun situsnya sendiri bisa menanggung risiko hukum
      Risiko itu bisa dikurangi dengan bekerja sama dengan pemegang hak cipta
    • Akan bagus jika ide pertama dijadikan plugin WordPress
      Gambar juga bisa dimodifikasi secara dinamis di setiap permintaan untuk melumpuhkan pertahanan deduplikasi. Kalau ada plugin seperti itu, saya akan langsung memasangnya