Saya harap pertanyaan saya cocok dengan ruang lingkup situs ini.
Saya sedang mengembangkan CMS . Saat ini pengguna yang masuk saya dikunci ke alamat IP mereka untuk sesi ini. Sayangnya sebagian kecil dari basis pengguna saya terus-menerus melompat antara dua atau lebih alamat IP. Sebagian besar dari mereka mungkin menggunakan penyeimbang beban. Secara teknis tidak perlu mengunci sesi pengguna ke satu alamat IP. Saya tidak mengharapkan klien untuk beralih di antara beberapa alamat IP untuk satu permintaan halaman di situs web saya.
Saya bertanya-tanya sekarang, apa risiko membiarkan klien saya terus berpindah antara alamat IP untuk permintaan halaman (misalnya, file CSS diminta oleh xxx.xxx.xxx.xxx dan file JavaScript diminta oleh yyy.yyy.yyy. yyy)? Haruskah saya secara umum mengizinkan atau melarang itu?
Jawaban:
Penyebab
Dengan asumsi bahwa pengguna Anda tidak secara aktif berusaha menyembunyikan alamat IP asli mereka dengan menggunakan layanan anonim ...:
Sebagian besar contoh perusahaan yang saya lihat disebabkan oleh perusahaan yang lebih besar dan beberapa ISP menggunakan cluster server proxy, masing-masing dengan alamat IP eksternal yang berbeda, dengan permintaan pengguna mendapatkan beban yang seimbang atas cluster itu.
Anda dapat melihat pengguna Dual Stack membuat permintaan melalui IPv4 dan IPv6 dan beralih di antara dua protokol RFC 8305 untuk permintaan berikutnya.
Skenario lain adalah ketika saya berada pada jangkauan ekstrim dari titik akses Wi-Fi dan perangkat saya "secara acak" beralih antara Wi-Fi dan data seluler.
Solusi
Dalam skenario pertama Anda mungkin berkompromi untuk menjaga "keamanan" alamat IP tersebut di sesi Anda dengan hanya mempertimbangkan tiga oktet pertama, karena biasanya sekelompok server proxy tersebut semuanya berada dalam subnet kecil dan akan memiliki alamat IP yang berdekatan.
Dalam skenario kedua dan ketiga Anda akan melihat alamat IP klien yang sama sekali berbeda, bahkan dari penyedia yang tidak terkait.
Jangan mengikat Anda sesi ke alamat IP tertentu, yang lebih cenderung untuk menghancurkan pengalaman pengguna daripada memberikan keamanan yang sebenarnya ditingkatkan.
sumber
Risiko utama adalah pengguna jahat yang membajak sesi. Jika Anda bisa mengunci ke satu atau sekelompok kecil alamat IP, Anda dapat memblokir pengguna dari alamat IP yang sama sekali berbeda dari pembajakan sesi.
Masalahnya adalah bahwa beberapa pengguna melakukan ini secara sah. Apakah mereka menggunakan proxy yang seimbang beban atau berada di pinggiran dua titik akses nirkabel (atau apa pun), mereka menggunakan beberapa alamat IP. Jadi Anda harus mengizinkannya untuk pengguna tersebut. Dan sulit untuk mengetahui pengguna mana yang memerlukan beberapa alamat IP kecuali ketika mereka meminta dari beberapa alamat IP.
Salah satu cara untuk mengurangi dampak ini adalah dengan menggunakan HTTPS. Kemudian aktor jahat harus memiliki cara untuk mengkompromikan lapisan aman serta cookie sesi. Melalui koneksi yang tidak aman, aktor jahat hanya dapat menggunakan inspeksi jaringan untuk membahayakan cookie sesi. Tetapi melalui HTTPS, aktor jahat yang sama perlu memiliki akses ke salah satu ujung percakapan. Dan jika aktor jahat itu, maka tidak perlu menggunakan IP yang berbeda.
TL; DR : umumnya Anda harus mengizinkan permintaan dari alamat IP yang berbeda untuk pengguna yang sama. Ada alasan sah ini bisa terjadi. Gunakan HTTPS sebagai gantinya untuk melindungi dari kelas eksploitasi itu.
sumber
Dari sudut pandang keamanan - nol risiko.
Sekarang, dari sudut pandang praktis. Ini berarti Anda tidak dapat menggunakan jenis algoritma tertentu untuk keamanan atau perlindungan DoS .
Cara sederhana untuk membatasi permintaan pengguna adalah dengan melacak berdasarkan alamat IP. Karena ini tidak perlu berinteraksi dengan server aplikasi Anda, Anda dapat menggunakan layanan di tingkat yang lebih rendah untuk melakukan ini. Perangkat lunak seperti mod_evasive Apache melakukan ini. Anda masih dapat menggunakan teknik ini, tetapi pengguna mengubah alamat IP akan mengurangi efektivitasnya. Kemudian lagi, pengguna akan beralih alamat IP sehingga teknik ini tidak pernah benar-benar efektif.
Kasus penggunaan yang terkait, tetapi berbeda, menghambat upaya masuk yang gagal. Ini untuk mencegah tebakan kata sandi yang kasar. Tetapi sekali lagi, tidak ada yang bisa Anda lakukan jika pengguna mengubah alamat IP. Seorang peretas yang sangat serius bahkan tidak akan menggunakan mesinnya sendiri. Dia baru saja membeli botnet (atau menggunakan botnet yang sebelumnya terinfeksi) dan terhubung ke layanan Anda melalui 10.000 PC orang lain (alamat IP). Ini tidak benar-benar terkait dengan membatasi alamat IP pengguna karena ini adalah pra-masuk, tetapi itu sesuatu yang perlu diingat.
sumber
Ada beberapa alasan mengapa pengguna dapat melompat ke alamat IP baru.
Keuntungan dari mengunci sessoins klien ke IP adalah membuat serangan pencurian sesi lebih sulit. Jika penyerang memiliki mekanisme yang memungkinkan mereka mencuri cookie klien tetapi tidak membiarkan mereka membuat koneksi ke server Anda dari alamat IP klien maka kunci IP akan memblokir mereka untuk mencuri sesi.
Kerugiannya adalah seperti yang Anda katakan itu akan menyebabkan kerusakan bagi beberapa pengguna yang menemukan sesi mereka tidak valid tanpa alasan yang jelas.
Sebagian besar situs saat ini tampaknya berpikir kerusakan melebihi manfaat dari penguncian tersebut.
sumber