Mitigasi Bot Buruk Sederhana Dengan Ilmu Sinyal

Nov 29 2022
Ada banyak aktivitas bot di Internet. Siapa pun yang ditugaskan untuk mempertahankan situs web dengan lalu lintas tinggi akan mengetahui hal ini dengan baik.
Foto oleh Owen Beard di Unsplash

Ada banyak aktivitas bot di Internet. Siapa pun yang ditugaskan untuk mempertahankan situs web dengan lalu lintas tinggi akan mengetahui hal ini dengan baik. Beberapa bot bagus dan diinginkan — pikirkan perayap mesin telusur. Beberapa bot tidak berbahaya seperti skrip yang membuat panggilan API atau memantau ketersediaan situs. Namun seringkali, bot bisa menjadi gangguan yang memengaruhi kinerja atau langsung berbahaya. Ini adalah bot "buruk" yang Anda harap dapat dengan mudah diblokir dan tidak ditangani lagi. Dalam posting ini, saya ingin berbagi pendekatan otomatis sederhana untuk menerapkan mitigasi bot buruk yang cukup bagus menggunakan Firewall Aplikasi Web (WAF) Signal Sciences.

Menentukan Jenis Bot

Sebelum saya membahas detailnya, saya ingin menawarkan bagaimana saya mendefinisikan bot dan bot yang buruk. Bot adalah setiap klien yang membuat permintaan ke situs Anda yang bukan manusia yang mengoperasikan browser web modern. Jadi bot adalah skrip, alat baris perintah, program, malware, dll., yang beroperasi secara mandiri atau dipanggil oleh manusia. Apa yang membuat bot buruk adalah perilakunya. Misalnya, apakah mengirimkan muatan berbahaya atau memeriksa direktori dan file pribadi?

Contoh permintaan Bot:

Bot iklan Google mengirimkan permintaan ramah

Contoh permintaan Bad Bot:

Alat pindai mengirimkan permintaan berbahaya

Mengidentifikasi Bot

Langkah pertama adalah mengidentifikasi bot apa pun yang mungkin menyelidiki, merayapi, atau menyodok di situs Anda. Menjaga semuanya tetap sederhana, kita dapat menggunakan metode yang sangat sederhana untuk mengidentifikasi bot — hanya berdasarkan panjang string agen pengguna. String agen pengguna adalah tajuk permintaan, yang ditetapkan oleh klien, yang memungkinkan server dan rekan jaringan mengidentifikasinya. Manusia normal yang menggunakan peramban modern akan selalu memiliki panjang string agen pengguna minimum sejumlah angka, x . Meskipun bot dapat memalsukan string agen pengguna, sebagian besar bot tidak. String agen pengguna mereka cenderung jauh lebih pendek daripada string agen pengguna browser. Akibatnya, kita dapat berasumsi bahwa x minus beberapa angka n bukanlah manusia — ini adalah bot. Anda dapat memutuskan ambang Anda tentang apa yang seharusnya menjadi x dan n .

Ada berbagai sumber di Internet tempat Anda dapat menemukan daftar string agen pengguna. Berikut adalah contoh dari salah satu sumber ini:

  • https://useragentstring.com/pages/Chrome/
  • https://useragentstring.com/pages/Firefox/
  • https://useragentstring.com/pages/Edge/

Dengan adanya aturan dan sinyal ini, meninjau data yang dihasilkannya dari waktu ke waktu sangat bermanfaat. Ini dapat memberikan visibilitas ke lalu lintas menarik yang mungkin belum Anda sadari sebelumnya.

Contoh hasil dari aturan Bot:

Untuk penjelasan singkat tentang aturan tingkat perusahaan dan aturan tingkat situs jika Anda tidak terbiasa dengan konsepnya. Aturan yang diterapkan di tingkat perusahaan dapat diterapkan di semua situs yang menjalankan agen Signal Sciences. Aturan yang diterapkan di tingkat situs hanya diterapkan di agen untuk situs tersebut. Gunakan opsi yang paling masuk akal di lingkungan Anda.

Identifikasi Bot Buruk

Sekarang setelah Anda dapat mengidentifikasi bot, bagaimana perilakunya? Di Signal Sciences, kita dapat membuat level perusahaan sederhana lainnya untuk menentukan perilaku buruk bot. Kondisi pertama untuk aturan ini mencari sinyal Bot, dan kondisi kedua mencari sejumlah serangan, anomali, atau sinyal khusus. Anda dapat dengan mudah menyesuaikan aturan untuk menyertakan sinyal yang paling masuk akal untuk skenario Anda. Pada contoh di bawah ini, kami juga menyertakan pencocokan daftar IP dengan data intel ancaman. Untuk meringkas aturannya, jika itu adalah Bot dan melakukan sejumlah hal buruk, maka itu adalah bot yang buruk, dan tambahkan sinyal "Bot Buruk" ke permintaan.

Contoh hasil dari aturan Bad Bot:

Pelaksanaan

Langkah terakhir adalah membuat aturan penegakan kami, baik aturan batas tarif atau blokir. Perhatikan bahwa aturan batas tarif diterapkan di tingkat situs. Aturan blokir dapat diterapkan di tingkat perusahaan atau tingkat situs dan akan memblokir semua lalu lintas dengan sinyal Bad Bot. Berhati-hatilah dengan tingkat pemblokiran agresif ini. Pertimbangkan untuk memantau data dari waktu ke waktu untuk mendapatkan jaminan bahwa aturan pemblokiran tidak akan memengaruhi lalu lintas produksi yang sah. Atau, aturan batas tarif memberikan fleksibilitas untuk menentukan tingkat toleransi Anda sebelum memblokir lalu lintas Bad Bot. Pada contoh di bawah ini, ketentuan aturan batas kecepatan adalah permintaan apa pun dengan sinyal Bad Bot dan akan mulai memblokir setelah melihat 10 sinyal Bad Bot dalam 1 menit. Keputusan pemblokiran akan aktif selama 5 menit. Ambang hitungan dan durasi tindakan dapat dengan mudah dimodifikasi ke nilai yang Anda inginkan.

Kesimpulan

Memanfaatkan panjang string agen pengguna untuk deteksi bot adalah pendekatan sederhana, dan menurut pengalaman saya, efektif dalam mengidentifikasi sebagian besar lalu lintas bot. Dengan menentukan panjang string agen-pengguna untuk skenario Anda, mengidentifikasi perilaku buruk, dan menerapkan pembatasan kecepatan, Anda akan memulai dengan baik untuk mengurangi lalu lintas bot yang tidak diinginkan. Signal Sciences memang membuat pendekatan ini mudah diimplementasikan dengan kemampuan aturannya. Namun, jika Anda tidak memiliki Ilmu Sinyal, dengan pendekatan sederhana ini, ada baiknya mengeksplorasi kemampuan alat yang Anda miliki untuk mengidentifikasi bot, bot buruk, dan pemberlakuan.