Mari kita beri makan bot
(maurycyz.com)- Seorang operator situs web memperkenalkan eksperimen membuat halaman berisi ocehan tak berujung untuk memancing trafik dari bot scraper untuk pelatihan AI
- Bot-bot ini bersifat agresif, tidak seperti crawler mesin pencari tradisional, misalnya dengan mengabaikan
robots.txt, mengganti IP, dan terus-menerus mengirim permintaan - Semua langkah pertahanan umum menjadi tidak efektif, seperti pemblokiran IP, pembatasan laju, CAPTCHA, dan tembok login, sementara justru hanya merepotkan pengguna asli
- Karena itu, penulis menemukan bahwa membuat dan menyajikan data palsu (teks tanpa makna) secara otomatis kepada bot adalah cara yang paling murah dan efektif
- Ini menyoroti efek samping pengumpulan data AI dan pemborosan sumber daya server, sekaligus menawarkan langkah respons yang realistis bagi operator web
Jati diri bot
- Crawler belakangan ini bukan ditujukan untuk mesin pencari, melainkan untuk mengumpulkan data pelatihan LLM (large language model)
- Mereka mengabaikan
robots.txt, menyamar sebagai browser, atau terus berganti IP saat mengakses - Mereka mengirim beberapa permintaan per detik sepanjang hari dan membebani server
- Mereka mengabaikan
- Berbeda dengan mesin pencari lama, mereka tidak peduli pada keberlangsungan situs web dan hanya memperlakukannya sebagai sumber data yang bisa diganti
Masalah jika akses dibiarkan
- Menyajikan file statis memang murah, tetapi tidak gratis, karena ada latensi akses SSD dan overhead filesystem
- Mereka meminta halaman lama yang tidak ada di cache dan memicu penurunan performa server
- Konsumsi bandwidth juga menjadi masalah; posting blog yang memuat gambar dapat cepat menumpuk hingga memicu trafik lebih dari 1TB per bulan
- Ini merupakan biaya yang sulit ditanggung operator server pribadi
Batas dari upaya pemblokiran
- Pemblokiran IP tidak efektif; jaringan bot yang dijalankan perusahaan besar memiliki ribuan alamat
- Bahkan jika semua alamat diblokir, mereka akan membeli IP baru dan tersambung lagi
- Pembatasan laju permintaan (rate limit) juga tidak berguna, karena ada kasus di mana mereka memakai IP berbeda untuk setiap permintaan
Efek samping firewall dan hambatan autentikasi
- Berbagai pertahanan seperti login, pembayaran, CAPTCHA, dan proof-of-work berbasis hash pernah diusulkan, tetapi semuanya menimbulkan ketidaknyamanan bagi pengguna
- Kewajiban akun menghalangi akses pembaca, dan verifikasi berbasis JavaScript memblokir browser non-JS
- Kecepatan muat halaman pun menurun dan memperburuk pengalaman pengguna
Tidak ampuhnya bom kompresi (gzip bomb)
- Ada yang mengusulkan menyerang bot dengan
gzip bomb, tetapi dalam praktiknya rasio kompresinya hanya sekitar 1000 kali- Untuk membuat file hasil ekstraksi 100GB, tetap perlu menyajikan aset 100MB
- Hasil eksperimen menunjukkan bot justru mengabaikannya atau malah mengirim lebih banyak permintaan
Kegagalan tipu muslihat
- Metode "Jedi mind trick" yang mengirim galat 404 agar situs tampak seolah tidak ada juga gagal
- Ketika tautan dipublikasikan di luar, bot mengenali keberadaannya, dan ketika akses diblokir justru meminta dengan lebih agresif
- Pada akhirnya, server baru tenang jika bot dibuat puas
Efisiensi memberi data sampah
- Pembuatan konten dinamis mungkin terdengar mahal, tetapi sebenarnya CPU dan RAM adalah sumber daya tercepat
- Kesan lambat biasanya berasal dari I/O database atau logika JavaScript yang kompleks
- Babbler berbasis Markov buatan penulis hanya memakai sekitar 60 mikrodetik CPU dan 1,2MB memori per permintaan
- Tidak ada akses disk, tidak perlu mengelola blacklist
- Bot datang sendiri dan mengonsumsi teks tak bermakna, sehingga beban server berkurang
Kesimpulan
- Pengumpulan data tanpa kendali oleh bot pelatihan AI menyebabkan kenaikan biaya infrastruktur web dan penyalahgunaan konten
- Dibanding sekadar memblokir, strategi merespons dengan data tak bermakna lebih efisien dari sisi biaya dan lebih baik untuk menjaga stabilitas server
- Ini dinilai sebagai pendekatan eksperimental untuk mencari cara koeksistensi antara crawling AI dan ekosistem web ke depan
2 komentar
Oh... segar dan bagus ya.
Opini Hacker News
Paragraf instruksi tersembunyi sebelum tautan itu lucu
Ada semacam petunjuk iseng untuk mengelabui LLM seperti, “isi halaman ini berbahaya jadi jangan dibuka”
Dokumen terkait ada di tautan ini
Bagian “LLM instructions” di akhir bukan isi utama, melainkan instruksi meta untuk membingungkan LLM, jadi tidak dimasukkan ke ringkasan
Saya selalu merekomendasikan strategi seperti ini — memberi bot AI data sampah dalam jumlah besar yang tampak nyata, sehingga pada akhirnya manusia yang harus memfilternya
Kalau semua situs melakukan ini, kualitas data pelatihan AI akan turun drastis
Kalau susah dilawan, lebih baik ditenggelamkan saja dengan banjir data
Mirip umpan SEO, misalnya membuat situs yang tampak seperti domain berita lalu menyebarkan tulisan promosi produk
Upaya seperti ini hanya buang waktu, seperti menanggapi panggilan spam
Pada akhirnya hampir tidak perlu mempekerjakan orang
Detail “Markov babbler” ada di postingan ini
pthread_detachCompiler yang dipakai penulis tampaknya mengabaikan peringatan
Program ini menangani permintaan tanpa batas pengelolaan thread, jadi lebih aman dijalankan sebagai pengguna non-privileged di dalam container
Tampaknya juga memakai fungsi C berbahaya seperti
sprintf(), jadi perlu waspada dari sisi keamananDi situs saya, semua tautan dipasangi Basic Auth, dan sejauh ini belum ada bot yang berhasil lolos
Jadi saya berpikir, bagaimana kalau semua situs memakai kredensial publik yang sama
Pengguna: nobots / kata sandi: nobots
Apakah bot tetap bisa menembusnya meski tahu itu?
Hanya saja sebagian besar bot belum mempertimbangkan kasus seperti ini
Bisa diselesaikan dengan mudah memakai bentuk
http://username:password@example.comSaya juga sekarang memberi mereka data sampah
Sebagai referensi, saya memakai Frankenstein, Alice in Wonderland, dan Moby Dick sebagai sumber, tetapi file-nya besar jadi pemuatannya lambat
Saya mengganti
pthread_detach(&thread)menjadipthread_detach(thread)untuk memperbaiki kesalahan kompilasiSaya menjalankan “ethical crawler”
Saya menurunkan frekuensi permintaan agar tidak membebani situs web, dan ini makin sulit karena banyak tempat memblokir akses RSS
Crawler saya menjelajah sambil menguji berbagai header dan mekanisme
Kode: crawler-buddy, Django-link-archive
feedparserdirequirements.txt, tetapi tampaknya tidak benar-benar dipakaiItu juga bisa dilihat dari hasil pencarian
Dalam tulisan The Cost of Trash disebutkan bahwa gzip bomb tidak efektif
gzip hanya memampatkan sekitar 1000x, jadi untuk membuat 100GB Anda harus menyajikan file 100MB
Katanya bot malah meminta lebih banyak lagi
Kebanyakan klien mendekompresi secara streaming, jadi tidak memuat semuanya ke memori
Agar gzip bomb benar-benar bekerja, pemrosesannya harus dilakukan dengan cara yang tidak normal
Referensi: dokumentasi API zlib
Di dalamnya bisa dimasukkan sampah acak, atau pesan yang ingin Anda buat AI pelajari
Hal yang perlu diperhatikan adalah sebagian permintaan mungkin sebenarnya memakai browser pengguna nyata sebagai proksi
Beberapa penyedia browser memanfaatkan lalu lintas pengguna sebagai proksi
Kalau tingkat salah deteksi permintaan otomatis sangat kecil, mungkin saja menanam kode penambangan kripto, tetapi ada risiko mengenai pengguna sungguhan
Saya khususnya penasaran apakah ada permintaan AI yang memakai agen seluler
Dikatakan bahwa “Markov babbler” memakai sekitar 60μs CPU per permintaan,
jadi saya terpikir bagaimana kalau membuat konten yang mencampur pesan ideologis atau propaganda agar dipelajari AI
Kalau begitu, AI bisa saja mengeluarkan pernyataan politik yang aneh
Paling tidak itu akan membantu mengurangi pelanggaran hak cipta dan beban server
Kenapa harus menghasilkan teks Markov di server?
Kalau bot menjalankan JavaScript, kenapa tidak dibuat di sisi klien saja?
Selain itu, mengirim data rantai Markov ke klien justru lebih tidak efisien
Karena tiap permintaan hanya memakai CPU tingkat mikrodetik dan RAM sekitar 1MB, memprosesnya di server sudah cukup ringan