Mengapa saya harus mengizinkan beberapa alamat IP di situs web untuk satu sesi?


18

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?


39
Anda bahkan tidak perlu load balancers untuk melompati IP. Hubungkan di ponsel Anda di kereta bawah tanah, Anda mungkin mendapatkan IP berbeda setiap beberapa menit saat kereta berjalan, dan sekali lagi ketika ponsel Anda beralih ke WiFi di tujuan.
whatsisname

13
Juga untuk laptop yang berpindah antar lokasi (misalnya, rumah> kerja> starbucks). Juga: alamat acak IPv6 (ekstensi privasi IPv6 SLAAC).
marcelm

secara intuitif, saya berharap klien melompati sumber Ips yang berbeda untuk menimbulkan masalah jika itu lebih dari "sesekali".
Tom H

1
Jika Anda mengembangkan aplikasi web yang akan dipasang di jaringan yang Anda kontrol atau Anda tahu Anda dapat memutuskan untuk melakukan ini untuk keamanan karena Anda mungkin dapat mengatakan "dalam situasi ini beberapa IP tidak akan terjadi karena pengguna harus mengakses ini dari WS mereka dan tidak ada load balancers atau hal lain di antaranya yang dapat mengubah IP mereka "... dalam hal ini Anda bahkan mungkin dapat melacak IP pengguna karena WS mereka mungkin selalu memiliki yang sama (atau itu mungkin berubah hanya sekali setiap beberapa bulan)
Bakuriu

1
@ Tom Tidak, sebagian besar aplikasi web tidak peduli dengan alamat IP Anda, mereka akan menerima cookie yang sama dalam permintaan HTTP melalui koneksi TCP baru. Hanya omong kosong yang dirancang dengan buruk yang mengunci sesi Anda ke IP atau koneksi.
Navin

Jawaban:


35

sebagian kecil basis pengguna saya terus-menerus melompat antara dua atau lebih alamat IP.

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.


27
Tidak ada yang mengikat sesi dengan alamat IP lagi, untuk alasan ini.
Michael Hampton

33
TIDAK PERNAH mengikat sesi ke alamat IP, tahun 80-an sudah berakhir! ISP saya menyediakan jaringan / 64 lengkap ke telepon saya di mana browser saya melompat-lompat seperti orang gila.
bjoster

6
Selain itu, Multipath TCP semakin umum.
Can Poyrazoğlu

3
Jika Anda membuat CMS untuk pengguna teknis, Anda dapat mencentang "batasi sesi ini hanya untuk ip Anda (xxx.yyy.zzz.iii)" di halaman login
Ferrybig

6
@ bjoster itu karena ekstensi privasi IPv6, ia terus berganti alamat sehingga situs web tidak dapat melacak Anda hanya dengan ip Anda (ini bukan masalah dengan IPv4, karena banyak orang di belakang alamat yang sama)
Ferrybig

9

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?

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.


4

apa risiko dalam mengizinkan klien saya untuk terus berpindah di antara alamat IP untuk permintaan halaman

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.


1

Ada beberapa alasan mengapa pengguna dapat melompat ke alamat IP baru.

  1. Ekstensi privasi IPv6, banyak klien IPv6 saat ini akan melompat-lompat di dalam / 64 di Internet.
  2. Memuat proxy yang seimbang, permintaan klien dialihkan ke salah satu dari beberapa proxy masing-masing dengan IP terpisah.
  3. NAT pools, nat perbatasan dikonfigurasikan dengan beberapa alamat IP dan memberikan kombinasi IP / port dari pool secara arbitarilly ke koneksi TCP klien.
  4. Pengguna bergerak antara jaringan yang berbeda atau bagian dari jaringan, yang umum dengan telepon saat ini.
  5. Pengguna tumpukan ganda dapat melompat antara IPv4 dan IPv6.

Saya bertanya-tanya sekarang, apa risiko membiarkan klien saya terus berpindah antar IPs untuk permintaan halaman

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.