Saat bekerja untuk melindungi toko online salah satu pelanggan kami, kami beberapa kali menghadapi serangan brute-force yang aneh, yang tidak mudah untuk dilawan. Itu didasarkan pada solusi sederhana untuk rahmat yang membedakan serangan dari barisan jenisnya. Apa dia dan bagaimana kita masih mempertahankan diri darinya, membaca di bawah potongan.
Seperti yang Anda ketahui, brute-force "klasik" adalah serangan brute force data. Sebagai contoh, akun terkenal diambil, dan kata sandi dipilih untuk mereka berdasarkan beberapa kriteria, baik dihasilkan dengan cepat atau berdasarkan pada kamus yang dicuri. Ini adalah metode dasar untuk meretas akun.
Dan dalam kasus yang saya jelaskan, para penyerang bertindak sedikit berbeda. Pertama, mereka menggunakan botnet besar yang didistribusikan di berbagai negara dari beberapa ratus komputer yang terinfeksi. Dalam sistem pemantauan, semuanya tampak seolah-olah mereka adalah komputer yang sama sekali berbeda, atau proksi yang diduduki oleh orang sungguhan dan mengakses situs. Serangan semacam itu mungkin tidak diketahui untuk waktu yang lama.
Ciri kedua serangan itu, selain distribusi geografisnya yang kuat, adalah enumerasi bukan login, tetapi login. Penyerang mungkin menggunakan kamus kata sandi populer dan daftar login yang dicuri. Dan satu login pertama kali diambil ke kata sandi yang dikenal, lalu yang lain, ketiga, dan seterusnya. Itu sangat mirip dengan situasi ketika pengguna biasa yang terhubung melalui satu penyedia tidak dapat masuk dengan kata sandi mereka. Sekilas, tidak ada yang kriminal. Selain itu, akses ke sumber daya sangat langka - satu atau dua per menit.
Fitur ketiga dari serangan itu adalah bahwa botnet memiliki perilaku yang sangat "manusia": klien memproses JavaScript, menerima cookie.
Karena faktor-faktor yang kompleks ini, serangan itu tidak diperhatikan untuk waktu yang lama. Namun ketika kami menemukannya, kami mengajukan pertanyaan yang tidak sepele: bagaimana mempertahankan diri? Semua komputer botnet tidak memiliki fitur pembeda khusus, dengan pengecualian kesalahan tertentu pada agen pengguna. Tapi kami tidak memblokir serangan berdasarkan tanda ini, karena dalam kasus ini kami akan berhenti melihat tindakan penyerang. Itu perlu untuk menyoroti beberapa anomali lainnya. Tidak ada yang istimewa dalam hal alamat IP. Juga tidak mungkin untuk memblokir login yang membuat sejumlah besar upaya login gagal, karena frekuensinya sangat rendah, dan login tidak diacak. Hanya ada satu cara - untuk memperkenalkan captcha. Tetapi pelanggan benar-benar tidak ingin melakukan ini, karena ia percaya bahwa captcha dapat mengasingkan banyak pelanggan. Sementara itu, para penyerang telah berhasil memilih kombinasi yang tepat untuk beberapa akun.
Tentunya Anda bingung: mengapa seseorang membobol akun pelanggan toko online? Faktanya adalah bahwa dalam akun Anda poin bonus diakumulasikan, yang dapat digunakan untuk menerima diskon barang. Mungkin seseorang benar-benar ingin membeli atau menjual poin bonus di Internet.
Akibatnya, kami membujuk klien untuk mengimplementasikan captcha menggunakan alat F5: itu seharusnya muncul setelah sejumlah entri yang gagal. Tetapi pertama-tama, perlu untuk mengkonfigurasi kriteria agar login berhasil dalam sistem. Ini ternyata sedikit lebih rumit daripada yang terlihat, karena dalam beberapa kasus sumber daya memberikan kode respons yang sama untuk setiap upaya login. Sebagai kriteria untuk keberhasilan login, kami memilih untuk mengirim cookie domain klien.
Dalam versi terbaru
F5 ASM , dimungkinkan untuk menanggapi upaya pemilihan dalam hal Device ID - pengidentifikasi browser yang unik. Kode JS ditambahkan ke halaman, dan ketika mesin yang terinfeksi membuka halaman ini, ia melaporkan pengidentifikasi uniknya. Dalam hal penyerang kami, ternyata Device ID browser sama untuk setiap alamat IP. Faktanya, satu browser diakses dari satu alamat IP.

Oleh karena itu, Anda dapat menetapkan kriteria berikut: jika lebih dari 5 upaya login yang gagal dilakukan dari satu browser dalam 15 menit, maka captcha akan ditampilkan kepada klien ini. Jika ini adalah pengguna yang benar-benar normal, ia akan menyelesaikannya dan masuk dengan tenang. Jika browser tidak mendukung JavaScript, kami telah menambahkan pengecualian. Tetapi, agar tidak melemahkan perlindungan, kami menggunakan kriteria yang berbeda: jika lebih dari 20 upaya login yang gagal dilakukan dari satu alamat IP, captcha ditawarkan lagi. Sekali lagi: untuk pengguna normal, ini tidak akan menimbulkan masalah.
Tapi hari ini sudah ada metode menghindari perlindungan menggunakan captcha. Sebagai contoh, botnet mengirim captcha ke "outsourcing" - ke Cina atau India, di mana penduduk setempat yang bekerja keras dengan biaya kecil memecahkan captcha dan mengembalikan nilai teks. Tetapi dalam kasus ini, Anda dapat mengambil langkah-langkah yang tepat: bahkan jika upaya login tidak berhasil, upaya login dapat diblokir dari IP atau ID Perangkat tertentu jika jumlah upaya gagal yang ditentukan terlampaui.
Terakhir kali toko online diserang dengan cara ini, kami mengelola captcha, dan itu berhasil. Setelah diperkenalkan, serangan brute-force secara bertahap mulai memudar dan akhirnya berhenti. Sekitar satu tahun telah berlalu sejak itu - tidak ada kekambuhan.
Andrei Chernykh, pakar di Pusat Keamanan Informasi Jet Infosystems