it-swarm-tr.com

Yanlış şifre girdikten sonra neden büyük bir gecikme var?

Şifreler hakkında garip (bana göre) bir şey fark ettim. Örneğin, oturum açma sırasında yanlış bir şifre yazarsam, sistem bana söylemeden önce birkaç saniye gecikme olur. Yanlış bir parola ile Sudo yapmaya çalıştığımda, Shell'in "Üzgünüm, tekrar deneyin" demeden önce de beklemek zorunda kalacağım.

Acaba neden yanlış bir şifreyi "tanımak" bu kadar uzun sürüyor? Bu, kullandığım bazı dağıtımlarda (ve hatta OSX'te) görüldü, bu yüzden dağıtımın belirli bir şey olmadığını düşünüyorum.

93
phunehehe

Bu bir güvenlik olayı, aslında bunu gerçekleştirmek çok uzun sürmüyor. Bunun çözdüğü 2 güvenlik açığı:

  1. bu giriş denemelerini kısaltır, yani birisi sistemi kırmaya çalışırken olabildiğince hızlı bir şekilde çarpamaz (1M bir saniye dener? Bilmiyorum).

  2. Kimlik bilgilerinizin yanlış olduğunu doğrular onaylamazsa, kimlik bilgilerinizin bir kısmının doğru olup olmadığını tahmin etmek için kimlik bilgilerinizi geçersiz kılmak için gereken süreyi kullanarak tahmin süresini önemli ölçüde kısaltabilirsiniz.

bu 2 şeyi önlemek için sistem sadece bunu yapmak için belirli bir zaman alır, sanırım PAM ile bekleme süresini yapılandırabilirsiniz ( Bkz Michaels cevap ).

Güvenlik Mühendisliği ( 2ed, Amazon | 1ed, ücretsiz ) bu sorunların çok daha iyi bir açıklamasını verir.

94
xenoterracide

Bu, kaba zorlamayı sınırlamak için kasıtlıdır. Bunu genellikle FAIL_DELAY İçindeki /etc/login.defs Yapılandırma girişini arayarak ve değerini değiştirerek değiştirebilirsiniz (varsayılan olarak benimki 3 Saniyedir), ancak bu dosyadaki yorum PAM gibi ses, ne olursa olsun en az 2 saniye gecikme uygular

42
Michael Mrozek

Modern linux sistemlerinde bunun nedeni, pam_unix.so'nun böyle bir gecikme getirmesidir. Daha önce bildirildiği gibi, FAIL_DELAY İçindeki /etc/login.defs Değiştirilerek iki saniyeye kadar yapılandırılabilir. Gecikmeyi daha da azaltmak istiyorsanız, pam_unix.so dosyasına "düğüm" seçeneğini vermelisiniz. Örneğin, sistemimde, /etc/pam.d/Sudo 'Dan başlayarak içerilen içerikleri izlerseniz, aşağıdaki /etc/pam.d/system-auth Satırını düzenlemeniz gerekir:

auth      required  pam_unix.so     try_first_pass nullok

ve bunu şu şekilde değiştirin:

auth      required  pam_unix.so     try_first_pass nullok nodelay

Ne yazık ki, linux dağıtımımın (Arch) işleri yapılandırma şekli, aynı system-auth Dosyası sshd tarafından kullanılan system-remote-login Dosyasına dahil edilir.

Sudo'daki gecikmeyi ortadan kaldırmak güvenli olsa da, bu günlüğe kaydedildiği için, yalnızca yerel kullanıcılar tarafından kullanılır ve yine de yerel saldırganlar tarafından atlanabilir, ancak uzak oturum açma için bu gecikmeyi ortadan kaldırmak istemezsiniz. Elbette, yalnızca paylaşılan sistem kimlik doğrulaması dosyalarını içermeyen özel bir Sudo yazarak düzeltebilirsiniz.

Şahsen, Sudo'daki gecikmenin (ve SIGINT'in göz ardı edilmesinin) büyük bir hata olduğunu düşünüyorum. Bu, şifreyi yanlış yazdıklarını bilen kullanıcıların işlemi öldüremeyeceği ve sinirlenemeyeceği anlamına gelir. Elbette, Sudo'yu Ctrl-Z ile durdurabilirsiniz, çünkü Sudo SIGTSTP'yi yakalamaz ve durdurduktan sonra öldürmek -9 (SIGKILL) ile öldürebilirsiniz. Bunu yapmak sinir bozucu. Bu, otomatik bir saldırının sözde terminallerde süper yüksek oranda sudos ateşleyebileceği anlamına gelir. Ancak gecikme, meşru kullanıcıları hayal kırıklığına uğratmakta ve onları tekrar Sudo'dan kaçınmaktan çıkmak yerine kök kabuklarını askıya almaya teşvik etmektedir.

12
user3188445