- Bot web telah berkembang dari permintaan sederhana klien HTTP hingga otomatisasi browser nyata, dan seiring itu teknik deteksi bot juga terus menjadi semakin canggih
- Berbagai teknologi seperti reputasi IP, sidik jari lingkungan TCP/TLS/browser, dan analisis perilaku berbasis JavaScript digunakan untuk mendeteksi bot
- Teknik pengelakan bot seperti browser headless, proxy, dan manipulasi User-Agent terus berkembang, tetapi algoritme deteksi juga ikut berevolusi sehingga permainan ‘kucing dan tikus’ antara keduanya terus berlanjut
- Belakangan ini, deteksi bot menjadi makin kompleks dengan dipadukannya analisis perilaku tingkat lanjut yang memanfaatkan model AI berbasis data perilaku
- Sistem pertahanan berlapis seperti CAPTCHA, deteksi proxy, Proof-of-Work, dan autentikasi berbasis perilaku kini makin umum digunakan
Pengantar: Evolusi Bot Web dan Teknologi Deteksi
- Bot web memiliki beragam jenis, mulai dari crawler dan skrip otomatisasi sederhana hingga program canggih yang bertindak seperti pengguna sungguhan
- Ada bot yang bermanfaat seperti mesin pencari dan bot arsip, tetapi juga banyak penggunaan bermasalah seperti spam dan scraping ilegal
- Sejak awal, operator situs terus berhadapan dengan bot, dan teknik deteksi maupun pengelakan sama-sama semakin maju
Bot Paling Sederhana: Klien HTTP
- Cara paling dasar untuk membuat bot adalah mengirim permintaan ke situs dengan klien HTTP sederhana seperti
curl dan wget
- Semua klien HTTP mengekspos identitasnya melalui header
User-Agent, sehingga situs dapat dengan mudah mendeteksi dan memblokirnya
- Bahkan jika User-Agent dipalsukan menjadi browser, browser tetap menyertakan header tambahan (bahasa, encoding, dan lain-lain), sehingga penyamaran yang tidak sempurna tetap bisa terdeteksi
Reputasi IP dan Proxy
- Server mendeteksi bot dengan memanfaatkan alamat IP. Terutama, rentang IP cloud dan data center sering dianggap sebagai trafik bot/otomatisasi sehingga tingkat kepercayaannya rendah
- Jika dijalankan tanpa proxy, bot akan cepat diblokir, sehingga IP perlu dialihkan lewat proxy residensial/mobile, yang tentu memerlukan biaya
- Situs secara aktif memeriksa reputasi IP, apakah port proxy (seperti 1080) terbuka, rentang IP, pola akses, dan sebagainya
- Untuk menghindari pemblokiran IP, digunakan rotating proxy dan proxy mobile
Sidik Jari TCP (TCP Fingerprinting)
- Saat membuat koneksi TCP sebelum permintaan HTTP, cara paket TCP dibentuk berbeda menurut sistem operasi, sehingga OS dapat diidentifikasi lewat analisis ini
- Jika User-Agent tidak cocok dengan OS sebenarnya (sidik jari TCP), trafik tersebut dianggap sebagai bot atau trafik yang menyamar
- Server proxy juga dapat memengaruhi sidik jari TCP, sehingga saat memilih proxy perlu mempertimbangkan kecocokan OS
Sidik Jari TLS (TLS Fingerprinting)
- Dalam proses TLS handshake, algoritme enkripsi, versi, dan ekstensi yang didukung berbeda-beda menurut browser dan OS
- Melalui sidik jari TLS, jenis browser, sistem operasi, dan library dapat diperkirakan lalu diverifikasi silang dengan User-Agent
Deteksi JavaScript
- Sebelum mengirim respons, atau setelah halaman dimuat, server mengumpulkan tambahan informasi tentang lingkungan klien dan perilakunya lewat JavaScript
- Jika bot tidak menjalankan JavaScript, ia akan langsung terdeteksi; untuk mengatasinya bot menggunakan alat otomatisasi browser seperti Selenium, Puppeteer, Playwright
- Bot kini berevolusi dari sekadar permintaan HTTP sederhana ke otomatisasi browser
Browser Headless dan Deteksi
- Mode headless (seperti Chrome tanpa jendela) penting bagi pengembangan bot, tetapi perbedaan seperti
navigator.webdriver, daftar plugin kosong, dan banyak karakteristik unik lainnya memungkinkan deteksi
- Berbagai properti bisa ditambal untuk menyamar, tetapi puluhan petunjuk harus ditangani semuanya, dan titik deteksi baru terus bermunculan
- Mode New Headless yang diperkenalkan sejak 2023 memakai engine yang sama dengan Chrome asli, sehingga deteksinya menjadi lebih sulit
Deteksi Framework Orkestrasi dan IPC
- Framework otomatisasi seperti Selenium dan Playwright mengekspos kejanggalan melalui flag dan opsi khusus, versi browser, serta konfigurasi lingkungan
- Contoh: flag seperti
--disable-ipc-flooding-protection dapat menjadi petunjuk untuk mengidentifikasi lingkungan bot
- Beberapa fungsi JS (misalnya
window.history.pushState) dapat dipanggil secara berlebihan untuk memicu kondisi IPC flood dan mendeteksinya
Deteksi Proxy: Pendekatan Lanjutan Berbasis JS
- Latency (pengukuran latensi): membandingkan total latensi yang diukur lewat WebSocket dan sejenisnya dengan latensi TCP untuk memastikan ada tidaknya proxy
- WebRTC Leak: menggunakan WebRTC di browser untuk memperoleh IP klien sebenarnya, lalu membandingkannya dengan IP permintaan HTTP; jika tidak cocok, maka dicurigai sebagai proxy/bot
- DNS Leak: JavaScript meminta subdomain acak → lokasi/IP server DNS digunakan untuk mendeteksi pola tidak normal (misalnya negara yang tidak cocok)
- Timezones: membandingkan timezone browser dengan lokasi IP untuk mendeteksi penggunaan proxy atau penyamaran
CAPTCHA dan Autentikasi
- CAPTCHA adalah autentikasi terpisah untuk tujuan mendeteksi/memblokir bot, biasanya berupa tugas yang bisa diselesaikan manusia (mengenali huruf, klik, dan sebagainya)
- Belakangan ini mulai diterapkan CAPTCHA berbasis Proof-of-Work (memberi beban komputasi) dan CAPTCHA berbasis perilaku (klik sederhana dipadukan dengan analisis perilaku)
- Sebagian besar bot mengakali CAPTCHA dengan memanfaatkan layanan solver CAPTCHA eksternal berbiaya rendah
Analisis Perilaku Sederhana/Lanjutan
- Analisis perilaku menganalisis ketidakefisienan dan keragaman khas perilaku manusia, seperti gerakan mouse, pola penekanan tombol, lokasi dan kecepatan klik
- Contoh: pergerakan mouse melengkung, jeda klik, perbedaan waktu antar penekanan tombol, event orientation/motion pada perangkat mobile, dan lain-lain
- Bot mudah terlihat dari pergerakan lurus, pengetikan yang konsisten/terlalu cepat, dan kecepatan respons yang tidak realistis
- Analisis perilaku lanjutan mengumpulkan dan melatih data perilaku manusia maupun bot dalam skala besar, lalu memakai AI/machine learning untuk mengidentifikasi pola halus sekalipun
- Contoh: klasifikasi berbasis data gabungan seperti lintasan pergerakan mouse, perbedaan waktu halus antar keystroke, pola navigasi halaman, dan sebagainya
Kesimpulan dan Implikasi
- Pertarungan bot web vs. teknologi deteksi adalah pertarungan evolusi dan respons yang tiada henti, dengan beragam teknik seperti sidik jari statis, analisis perilaku, dan deteksi berbasis AI yang dipakai secara bersamaan
- Terlepas dari berbagai teknik pengelakan dan penyamaran, operator layanan perlu terus merespons dengan sistem deteksi berlapis, analisis perilaku real-time, model AI, dan lain-lain, serta melakukan upgrade berkelanjutan
- Pengembang bot memiliki keterbatasan dalam membangun lingkungan penyamaran yang benar-benar sempurna, sehingga pemahaman terhadap tren deteksi terbaru dan cara menghadapinya menjadi sangat penting
Belum ada komentar.