Keamanan Web Dengan Metode Serangan Brute Force
Brute force tentu saja merupakan salah satu teknik serangan yang paling sepele. Alasan utamanya: faktor manusia tetap menjadi mata rantai terlemah dalam rantai keamanan siber. Memang, tidak perlu melakukan serangan rekayasa sosial atau serangan injeksi SQL canggih untuk mencuri kredensial karena kebiasaan sulit dilakukan: kata sandi pengguna tetap lemah dan oleh karena itu mudah ditebak. Dengan alat yang tepat, bahkan sebagian besar penyerang pemula dapat mengkompromikan data dan melumpuhkan sistem perusahaan besar.
Namun, tidak adil untuk menyalahkan pengguna, karena bahkan sebelum serangan yang menargetkan kredensial mereka, mereka sering menjadi korban dari kebijakan keamanan yang tidak efektif atau bahkan kontraproduktif. Dan bahkan di perusahaan yang paling sadar akan risiko serangan brute force, mekanisme dan tindakan perlindungan yang diterapkan seringkali tidak mencukupi. Kami akan kembali ke subjek ini di jantung artikel kami karena masih banyak ide yang terbentuk sebelumnya tentang brute force, yang, spoiler alert! tidak hanya digunakan untuk melewati sistem otentikasi dengan menebak kata sandi dan ID pengguna.
Mari kita masuk ke inti masalah dengan artikel ini, yang bertujuan untuk menganalisis berbagai bias ini dan menyajikan langkah-langkah penting untuk mencegah atau melawan berbagai jenis serangan brute force.
Apa itu serangan brute force?
Serangan brute force adalah proses coba-coba yang digunakan untuk menebak kredensial (ID / kata sandi atau kunci enkripsi) untuk mendapatkan akses tidak sah ke sistem. Ini melibatkan mulai dengan satu login dan mencoba beberapa kombinasi kata sandi atau, sebaliknya, menggunakan beberapa login dengan satu kata sandi.
Namun, kekerasan tidak hanya itu, bertentangan dengan kepercayaan populer. Sebagai informasi, tentu teknik yang paling sering kami gunakan selama uji penetrasi kami pada semua jenis target, karena kemungkinan eksploitasinya sangat banyak. Memang, seperti yang ditunjukkan dalam pembukaan, serangan brute force tidak hanya digunakan untuk menebak ID atau kata sandi. Mereka sering digunakan sebagai vektor untuk meluncurkan serangan lain dan mengeksploitasi kerentanan sistem tertentu:
- Masalah hak (IDOR) dengan menebak kredensial jika tidak ada kontrol akses yang memungkinkan akses ke data atau file, dll.
- Fuzzing (pencarian konten) melalui penggunaan kamus untuk menemukan file yang tidak terdaftar pada antarmuka aplikasi misalnya.
- Pencacahan pengguna jika terjadi kesalahan konfigurasi memberikan opsi lain kepada penyerang seperti menargetkan pengguna dengan phishing misalnya.
Faktanya, serangan brute force tersebar luas dan banyak digunakan oleh pentester dan penyerang karena mereka dapat memanfaatkan sejumlah besar lubang keamanan. Dan untuk memperburuk keadaan, mereka sangat mudah dieksekusi dengan alat (BURP, HYDRA, John the Ripper, dll.), skrip otomatisasi dan basis data kata sandi (kamus).
Akhirnya, mari kita hadapi itu, serangan brute force relatif efektif karena pengguna masih terlalu sering menggunakan kata sandi yang lemah, dan memecahkannya masih merupakan kasus penggunaan yang paling umum.
Apa saja jenis-jenis serangan brute force?
Ada beberapa jenis serangan brute force: serangan kamus, penyemprotan kata sandi, dan isian Kredensial.
Serangan kamus
Dalam jenis serangan ini, semua kata dalam kamus diuji untuk menemukan kata sandi atau file (dalam konteks fuzzing). Selain itu, di sini bukan pertanyaan menguji kata-kata kamus biasa tetapi database nyata (seperti RockYou atau Seclist misalnya) yang dihasilkan dari berbagai studi dan analisis kebiasaan pengguna dan pengembang dan terus diperbarui. Selain itu, penyerang dapat mengonfigurasi alat yang digunakan untuk brute force untuk menambahkan angka, karakter, dan elemen lain untuk menguji banyak kemungkinan yang lebih kompleks.
Serangan penyemprotan kata sandi
Penyemprotan kata sandi adalah varian lain dari serangan brute force. Dalam hal ini, penyerang menguji kata sandi yang biasa digunakan untuk mendapatkan akses ke satu atau lebih akun pengguna. Serangan brute force tradisional mencoba untuk mendapatkan akses tidak sah ke satu akun dengan menebak kata sandi. Ini dapat dengan cepat mengakibatkan akun yang ditargetkan terkunci, karena kebijakan penguncian akun yang umum digunakan biasanya mengizinkan sejumlah upaya yang gagal. Dan ini masih merupakan ide yang buruk, dan kami akan kembali ke titik ini nanti dalam praktik terbaik kami.
Dengan demikian, serangan penyemprotan kata sandi tidak hanya merupakan upaya untuk menghindari mekanisme keamanan jenis ini, tetapi juga sangat efektif. Penyerang berasumsi bahwa dalam sekelompok besar orang, kemungkinan ada setidaknya satu orang yang menggunakan kata sandi yang sama, dan sayangnya ini terlalu sering terjadi. Memang, login dengan kata sandi, nama perusahaan atau aplikasi diikuti dengan tahun dan tanda baca (biasanya tanda seru) adalah praktik umum dan diketahui oleh penyerang.
Artikel Terkait Lainnya :
Isian kredensial
Tidak seperti serangan kamus atau penyemprotan kata sandi, isian kredensial terjadi setelah akun pengguna disusupi ketika penyerang menebak kombinasi nama pengguna dan kata sandi yang valid untuk akses ke sistem tertentu. Dalam kasus ini, penyerang mencoba kombinasi yang sama pada sistem lain, dengan asumsi bahwa pengguna biasanya menggunakan kata sandi yang sama untuk beberapa situs, yang sayangnya seringkali benar.
Bagi sebuah perusahaan, serangan brute force dapat memiliki konsekuensi bencana: pencurian, kebocoran atau perubahan data, kerugian finansial, kerusakan reputasi, penundaan dan kesalahan dalam operasi, dll. Oleh karena itu, penting untuk menerapkan langkah-langkah teknis yang diperlukan untuk mencegah atau melawan hal ini. jenis serangan.
Bagaimana cara mencegah atau melawan serangan brute force?
Terapkan kebijakan kata sandi yang efektif
Melawan serangan brute force tentu melibatkan penerapan kebijakan kata sandi yang efektif. Untuk melakukan ini, faktor "ukuran" saja sangat penting, karena semakin panjang kata sandi, semakin sulit untuk ditebak melalui serangan brute force.
Namun, kriteria ini masih terlalu sering diabaikan oleh perusahaan yang bertanggung jawab untuk menerapkan kebijakan kata sandi ini dan pengguna diberi makan dan dipaksa oleh instruksi yang kontraproduktif atau bahkan berbahaya dalam hal keamanan. Memang, pedoman seperti: panjang minimum minimal 8 karakter termasuk setidaknya satu huruf kapital, satu angka dan satu karakter khusus, sudah ketinggalan zaman dan menyesatkan.
Sebagai contoh, mari kita ambil password berikut: Mypassword1! Jika kita mengikuti panduan di atas, kata sandi ini dianggap aman padahal tidak. Memang, lebih mudah untuk menebak melalui serangan brute force daripada kata sandi berikut: beruntung Anda jika Anda dapat menebak kata sandi saya, yang tidak mengandung angka, huruf besar, atau karakter khusus. Jadi panjang adalah semboyan untuk menentukan kata sandi yang aman (15 hingga 20 karakter terlepas dari jenis karakternya), karena ini mengurangi kemungkinan ditebak. Dan tentu saja Anda harus menghindari rangkaian karakter (seperti 12345678910111213), itu sudah pasti.
Juga, harus diasumsikan bahwa penyerang tidak melakukan jenis teknik ini secara manual, dengan memasukkan kata sandi satu per satu, bahkan jika ini dapat terjadi untuk kata sandi default. Memang, banyak aplikasi web dan kerangka kerja membuat pengguna default selama instalasi (id: admin / kata sandi: admin menjadi kasus umum). Jika akun pengguna ini tidak dihapus atau dimodifikasi, mereka adalah sasaran empuk serangan brute force, yang oleh karena itu biasanya bergantung pada alat otomatis untuk melakukan ribuan kueri per menit dengan kredensial yang dihasilkan dari daftar panjang kemungkinan nilai.
Terakhir, mari kita bicara tentang kebijakan kedaluwarsa, yang bertujuan untuk mendorong perubahan kata sandi yang sering dilakukan untuk mencegah potensi kebocoran. Sepintas, ini tampak seperti ukuran keamanan yang baik. Namun, analisis perilaku pengguna menunjukkan kenyataan yang sangat berbeda. Memang, sebagian besar waktu, pengguna hanya membuat kata sandi lain yang tidak aman karena mudah diretas oleh penyerang. Oleh karena itu disarankan untuk melarang kebijakan kedaluwarsa kata sandi ini dan cukup dorong pengguna untuk memilih kata sandi yang cukup panjang dan rumit.
Ada banyak cara untuk meningkatkan kesadaran di kalangan karyawan. Salah satunya adalah membuat mereka bertanggung jawab dengan mengundang mereka untuk memeriksa pada frekuensi tertentu apakah kata sandi, login, nomor telepon mereka tidak dibobol dan diungkapkan dalam kebocoran data. Alat-alat seperti Apakah saya sudah digadaikan? memfasilitasi verifikasi ini dan juga menawarkan kemungkinan bagi perusahaan untuk mendaftar untuk menerima peringatan jika terjadi kebocoran data. Audit web dan web gelap juga dapat dipertimbangkan untuk mengidentifikasi permukaan serangannya dan oleh karena itu kemungkinan kebocoran data di web yang jelas atau gelap.
Jangan nonaktifkan akun setelah upaya login gagal
Strategi pertahanan umum lainnya terhadap serangan brute force adalah menonaktifkan akun secara otomatis setelah sejumlah upaya login yang gagal. Dalam kebanyakan kasus, akun dapat diaktifkan kembali secara otomatis setelah jangka waktu tertentu, atau pengguna mungkin harus menghubungi administrator agar akun diaktifkan kembali. Dalam kedua kasus, penonaktifan otomatis akun pengguna adalah mekanisme keamanan yang buruk untuk melawan serangan brute force.
Pertama, dengan menonaktifkan akun, sistem telah menukar kerentanan bypass otentikasi untuk kemungkinan serangan DoS (denial of service). Memang, jika penyerang dapat menonaktifkan akun setelah 3 upaya yang gagal setiap 30 menit misalnya, ia dapat secara efektif mencegah pengguna tersebut mengakses sistem. Bayangkan kerusakan yang dapat dilakukan serangan brute force jika digunakan terhadap akun administrator dengan mekanisme seperti itu.
Kedua, penguncian akun tidak efektif terhadap serangan penyemprotan kata sandi atau beberapa serangan kamus, yang berfokus pada kata sandi, karena mekanisme ini mengasumsikan bahwa penyerang menyimpan nama pengguna dan mencoba menebak kata sandi. Dalam kasus ini, penyerang dapat melakukan ribuan upaya login, dan bahkan jika masing-masing gagal, sistem hanya akan mencatat satu login yang salah per akun.
Tetapkan penundaan setelah setiap upaya login yang gagal
Teknik yang lebih baik untuk melawan serangan brute force adalah secara bertahap menunda respons halaman setelah upaya login gagal. Setelah upaya login pertama yang gagal, misalnya, respons akan tertunda satu detik. Setelah koneksi gagal kedua, respons ditunda selama dua detik, dan seterusnya.
Menerapkan jenis teknik ini, yang dikenal sebagai penundaan tambahan, dapat membuat alat brute force otomatis sepenuhnya tidak efektif, karena waktu yang dibutuhkan untuk melakukan upaya akan sangat meningkat.
Terapkan otentikasi multi-faktor
Menambahkan faktor otentikasi tambahan juga mempersulit penyerang untuk memecahkan akun melalui serangan brute force. Dengan 2FA di tempat, penyerang akan menghadapi penghalang lain, seringkali sangat sulit atau tidak mungkin untuk menebak kode yang dibuat secara acak dengan durasi terbatas misalnya, dan tidak akan dapat masuk ke akun pengguna, bahkan jika mereka memasukkan kode yang benar. nama pengguna dan kata sandi.
Untuk informasi lebih lanjut, Anda dapat membaca artikel khusus kami: Bagaimana otentikasi 2 faktor bekerja dan bagaimana cara menerapkannya?
Gunakan algoritma yang kuat untuk menyimpan kata sandi
Penyimpanan kata sandi pengguna dalam database harus dilakukan dengan cara yang aman. Memang, jika basis data ini disusupi, semua kata sandi akan dapat diakses jika disimpan dalam teks yang jelas. Penyimpanan kata sandi dalam teks yang jelas harus benar-benar dilarang.
Oleh karena itu penting untuk menggunakan algoritma yang kuat untuk menyimpan password. Untuk perincian lebih lanjut, kami telah membahas topik ini secara panjang lebar dalam artikel khusus, yang kami sarankan agar Anda berkonsultasi: Bagaimana cara menyimpan kata sandi dengan aman dalam database?
Pantau semua agenda pengguna
Memantau aktivitas dan peristiwa pengguna dalam jaringan Anda tidak melawan serangan brute force, tetapi ini adalah bagian penting dari strategi keamanan yang baik. Memang, dengan pemantauan yang efisien dimungkinkan – antara lain – untuk mendeteksi kejadian yang tidak biasa seperti permintaan akses yang berulang.
Untuk informasi lebih lanjut, Anda dapat membaca artikel khusus kami: Pencatatan dan pemantauan, definisi, dan praktik terbaik.
Sesuaikan pesan kesalahan
Terakhir, penting untuk membuat pesan kesalahan yang sesuai sebagai tanggapan atas upaya login yang gagal, karena ini sering kali merupakan salah satu faktor keberhasilan serangan brute force. Faktanya, penting untuk tidak mempermudah penyerang mendapatkan informasi berharga dan karenanya menghemat waktu dengan pesan seperti "pengguna tidak ditemukan" atau "kata sandi salah".
Memang, pesan "pengguna tidak ditemukan" memberi tahu penyerang bahwa ID pengguna yang dia coba tebak melalui kekerasan tidak ada dalam sistem. Di sisi lain, informasi "Kata sandi salah" memberi tahu dia bahwa ID pengguna memang ada, tetapi kata sandinya salah.
Dengan demikian, lebih aman bagi aplikasi untuk merespons dengan pesan "tidak jelas" seperti "Nama pengguna atau kata sandi salah" ketika upaya login gagal memberikan petunjuk apa pun kepada penyerang potensial.
Kesimpulan: untuk melawan serangan brute force, ukuran yang penting!
Otentikasi kata sandi masih merupakan cara paling umum untuk memberikan akses. Namun, meskipun berteknologi rendah, serangan brute force sangat efektif dalam mengkompromikan aplikasi. Oleh karena itu, mekanisme keamanan yang tepat harus diterapkan.
Metode pertama dan terpenting untuk menggagalkan serangan brute force adalah mengharuskan semua pengguna untuk memilih kata sandi yang kuat. Untuk melakukan ini, itu pasti masalah ukuran! Kata sandi harus panjang (15 hingga 20 karakter, tanpa batasan ukuran maksimum). Padahal, tidak ada pedoman seperti: panjang minimal 8 karakter dengan campuran huruf besar dan kecil, angka dan tanda baca. Dan tidak ada yang seperti pengelola kata sandi untuk menerapkan atau memperkuat kebijakan kata sandi.
Terakhir, penting untuk tidak membuat pekerjaan penyerang menjadi lebih mudah. Dengan demikian, prosedur untuk sering mengubah sandi, mekanisme penonaktifan akun, atau pesan umum tentang upaya login yang gagal harus dihindari.