Saya perhatikan hal aneh (well, menurut saya) tentang kata sandi. Misalnya, jika saya mengetikkan kata sandi yang salah saat login, akan ada penundaan beberapa detik sebelum sistem memberi tahu saya demikian. Ketika saya mencoba sudo
dengan kata sandi yang salah, saya juga harus menunggu sebelum shell mengatakan "Maaf, coba lagi".
Saya heran mengapa perlu waktu lama untuk "mengenali" kata sandi yang salah? Ini telah terlihat pada beberapa distribusi yang saya gunakan (dan bahkan OSX), jadi saya pikir itu bukan distribusi yang spesifik.
security
password
authentication
pam
phhehehe
sumber
sumber
Jawaban:
Ini adalah masalah keamanan, sebenarnya tidak butuh waktu lama untuk menyadarinya. 2 kerentanan yang dipecahkan ini:
ini menghambat upaya masuk, yang berarti seseorang tidak dapat menggebrak sistem secepat itu bisa mencoba memecahkannya (1M mencoba sebentar? Saya tidak tahu).
Jika melakukannya segera setelah itu memverifikasi kredensial Anda salah, Anda dapat menggunakan jumlah waktu yang diperlukan untuk membatalkan kredensial Anda untuk membantu menebak jika bagian dari kredensial Anda benar, secara dramatis mengurangi waktu tebakan.
untuk mencegah 2 hal ini, sistem hanya perlu waktu untuk melakukannya, saya pikir Anda dapat mengkonfigurasi waktu tunggu dengan PAM ( Lihat jawaban Michaels ).
Rekayasa Keamanan ( 2ed, amazon | 1ed, gratis ) memberikan penjelasan yang jauh lebih baik tentang masalah ini.
sumber
Ini disengaja, untuk mencoba dan membatasi kekerasan. Anda biasanya dapat memodifikasinya dengan mencari
FAIL_DELAY
entri konfigurasi/etc/login.defs
dan mengubah nilainya (milik saya adalah3
detik secara default), meskipun komentar dalam file tersebut membuatnya terdengar seperti PAM akan memberlakukan setidaknya2
penundaan kedua tidak peduli apa pun yang terjadi.sumber
/etc/pam.d/login
. Carilahpam_faildelay.so delay=
Pada sistem linux modern, alasannya adalah pam_unix.so memaksakan penundaan seperti itu. Seperti dilaporkan sebelumnya, ini dapat dikonfigurasi ke dua detik dengan mengubah
FAIL_DELAY
di/etc/login.defs
. Jika Anda ingin mengurangi penundaan lebih lanjut, Anda harus memberikan pam_unix.so opsi "nodelay". Misalnya, pada sistem saya, jika Anda melacak menyertakan mulai dari/etc/pam.d/sudo
, Anda harus mengedit baris berikut/etc/pam.d/system-auth
:dan ubah ke ini:
Sayangnya, cara distro linux saya (arch) mengkonfigurasi hal-hal,
system-auth
file yang sama akan dimasukkan olehsystem-remote-login
, yang digunakan oleh sshd.Meskipun aman untuk menghilangkan penundaan pada sudo, karena itu dicatat, hanya digunakan oleh pengguna lokal, dan bisa dilewati oleh penyerang lokal, Anda mungkin tidak ingin menghilangkan penundaan ini untuk login jarak jauh. Tentu saja Anda dapat memperbaikinya dengan menulis sudo khusus yang tidak hanya menyertakan file auth sistem bersama.
Secara pribadi, saya pikir keterlambatan pada sudo (dan mengabaikan SIGINT) adalah kesalahan besar. Ini berarti pengguna yang tahu bahwa mereka salah mengetik kata sandi tidak dapat menghentikan proses dan menjadi frustrasi. Tentu saja, Anda masih dapat menghentikan sudo dengan Ctrl-Z, karena sudo tidak menangkap SIGTSTP, dan setelah menghentikannya Anda dapat membunuhnya dengan kill -9 (SIGKILL). Itu hanya menjengkelkan untuk dilakukan. Jadi itu berarti serangan otomatis dapat menembakkan sudo pada terminal semu dengan kecepatan super tinggi. Tetapi penundaan itu membuat frustasi pengguna yang sah dan mendorong mereka untuk menangguhkan shell root mereka alih-alih keluar dari mereka untuk menghindari keharusan sudo lagi.
sumber
nodelay
akan mengatur waktu tunggu ke 0 dengan cara, dan FAIL_DELAY kemudian diabaikan.