Scraper AI Meminta Skrip yang Dikomentari
(cryptography.dog)- 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, danGulper 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
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
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.txtuntuk memicu langkah serangan balik pada permintaan tertentuUser-agent: GPTBot Disallow: /poison/ - Di komunitas, dibagikan berbagai ide untuk menyembunyikan tautan umpan bagi bot dengan memanfaatkan atribut
display:nonedanrel="nofollow"- Contoh:
[you didn't see this link](/hello-llm-robot-come-here)
- Contoh:
- 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
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
curlcffiPertahanan 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
requestsbukan timeout untuk keseluruhan pembacaan halaman? Jika server mengirim byte secara perlahan, Anda bisa menunggu tanpa batasKarena 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
content-lengthdihitung setelah content-encodingUngkapan “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
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 kramaBot yang berputar memakai jutaan IP residensial jelas sama sekali tidak normal
Fakta bahwa server bersifat publik tidak berarti ia mengizinkan permintaan palsu. Persetujuan implisitnya hanya untuk permintaan yang masuk akal
robots.txtbukan sesuatu yang mengikat secara hukum, melainkan permintaan yang sopanArtinya kurang lebih “tolong jangan scrape halaman ini”; jika benar-benar ingin memblokir, Anda harus menambahkan token API atau proses autentikasi
Sama seperti spam tidak sama dengan email biasa, penyalahgunaan bot juga berbeda dari permintaan biasa
Daripada mem-parsing DOM, sepertinya mencari langsung string http/https akan lebih cepat
Menarik melihat aplikasi praktis dari riset yang menarik ini
Riset terkait bisa dilihat di postingan ini
Judulnya membingungkan. Sepertinya yang benar adalah “commented-out”
Ini tampaknya bukan penyalahgunaan, melainkan sekadar membaca URL yang dikomentari
robots.txtdan bahkan men-scrape komentar jelas merupakan perilaku yang tidak sopanDulu saat melakukan crawling web, regex Perl adalah hal yang paling bisa diandalkan
URL di dalam komentar tentu saja juga saya masukkan ke antrean
Bagaimana kalau bot diberi file data acak berukuran 512MB?
Startup yang saya buat memang menyediakan Ad-poisoning-as-a-service seperti ini
Ini tampaknya lebih merupakan noise pemindaian internet daripada “pengumpulan data untuk pelatihan LLM”
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
Risiko itu bisa dikurangi dengan bekerja sama dengan pemegang hak cipta
Gambar juga bisa dimodifikasi secara dinamis di setiap permintaan untuk melumpuhkan pertahanan deduplikasi. Kalau ada plugin seperti itu, saya akan langsung memasangnya