it-swarm-eu.dev

Proč existuje velké zpoždění po zadání nesprávného hesla?

Všiml jsem si podivné (podle mě) věci o heslech. Pokud například při přihlášení zadám nesprávné heslo, bude několik sekund trvat, než mi to systém řekne. Když se pokusím Sudo s nesprávným heslem, musím také počkat, než Shell řekne „Promiňte, zkuste to znovu“.

Zajímalo by mě, proč trvá tak dlouho „rozpoznat“ nesprávné heslo? To bylo vidět na několika distribucích, které používám (a dokonce i OSX), takže si myslím, že se nejedná o distribuci specifickou věc.

93
phunehehe

To je bezpečnostní věc, není to vlastně dlouho trvat, než si to uvědomit. 2 zranitelnosti, které tento problém řeší:

  1. toto pokusy o přihlášení škrticí klapky, což znamená, že někdo nemůže bouchnout do systému tak rychle, jak to může jít, a snaží se ho rozbít (1M se pokusí za sekundu? Nevím).

  2. Pokud tak učiní, jakmile ověří, že vaše přihlašovací údaje byly nesprávné, můžete použít množství času, které trvalo, než platnost vašich přihlašovacích údajů zneplatnila, abyste pomohli hádat, zda byla část vašich přihlašovacích údajů správná, což dramaticky zkrátilo odhadovací čas.

aby se zabránilo těmto 2 věcem, které systém potřebuje jen určitou dobu, myslím, že můžete nakonfigurovat čekací dobu pomocí PAM ( viz Michaelsova odpověď ).

Bezpečnostní technika ( 2ed, Amazon | 1ed, free ) poskytuje mnohem lepší vysvětlení těchto problémů.

94
xenoterracide

To je záměrné, pokusit se omezit násilné násilí. Obvykle ji můžete upravit hledáním FAIL_DELAY položka konfigurace v /etc/login.defs a mění jeho hodnotu (moje je 3 vteřin ve výchozím nastavení), ačkoli komentář v tomto souboru způsobuje, že to zní jako PAM, bude vynucovat alespoň 2 druhé zpoždění bez ohledu na to, co

42
Michael Mrozek

Na moderních linuxových systémech je důvodem, že pam_unix.so způsobuje takové zpoždění. Jak bylo dříve hlášeno, lze to nakonfigurovat až na dvě sekundy změnou FAIL_DELAY v /etc/login.defs. Pokud chcete zpoždění dále snížit, musíte pam_unix.so dát možnost „nodelay“. Například v mém systému vysledujete zahrnutí od /etc/pam.d/Sudo, zjistíte, že musíte upravit následující řádek /etc/pam.d/system-auth:

auth      required  pam_unix.so     try_first_pass nullok

a změňte to na:

auth      required  pam_unix.so     try_first_pass nullok nodelay

Bohužel způsob, jakým moje linux distro (Arch) konfiguruje věci, to samé system-auth soubor bude zahrnut do system-remote-login, který používá sshd.

I když je bezpečné eliminovat zpoždění v Sudo, protože to je zaznamenáno, používá pouze místní uživatelé a stejně tak obchází místní útočníci, pravděpodobně nebudete chtít toto zpoždění eliminovat pro vzdálené přihlášení. Můžete to samozřejmě vyřešit napsáním vlastního Sudo, které nezahrnuje pouze sdílené soubory systému-auth.

Osobně si myslím, že zpoždění Sudo (a ignorování SIGINT) je velká chyba. To znamená, že uživatelé, kteří vědí, že omylem zadali heslo, nemohou tento proces zabít a být frustrovaní. Samozřejmě stále můžete zastavit Sudo s Ctrl-Z, protože Sudo nezachytí SIGTSTP, a po jeho zastavení ho můžete zabít pomocí kill -9 (SIGKILL). Je to jen otravné dělat. To znamená, že automatizovaný útok by mohl vystřelit sudy na pseudo-terminály super vysokou rychlostí. Zpoždění však frustruje legitimní uživatele a povzbuzuje je k tomu, aby místo jejich ukončení pozastavili své kořenové skořápky, aby se nemuseli znovu vyhýbat Sudo.

12
user3188445