Dlaczego rootowanie przez SSH jest złe
Istnieje wiele botów, które próbują zalogować się do komputera za pośrednictwem SSH. Te boty działają w następujący sposób.
Wykonują coś podobnego, ssh root@$IP
a następnie próbują standardowych haseł, takich jak „root” lub „password123”. Robią to tak długo, jak to możliwe, dopóki nie znajdą odpowiedniego hasła. Na ogólnodostępnym serwerze możesz zobaczyć wiele wpisów w swoich plikach dziennika. Mogę zwiększyć do 20 na minutę lub więcej.
Gdy atakujący mają szczęście (lub wystarczająco dużo czasu) i znajdują hasło, mają dostęp do konta root, a to oznacza, że masz kłopoty.
Ale jeśli nie zezwolisz rootowi na logowanie się przez SSH, bot musi najpierw odgadnąć nazwę użytkownika, a następnie pasujące hasło. Powiedzmy, że lista prawdopodobnych haseł zawiera N
wpisy, a lista prawdopodobnych użytkowników jest M
duża. Bot ma zestaw N*M
wpisów do przetestowania, więc jest to nieco trudniejsze dla bota w porównaniu z przypadkiem root, gdzie jest to tylko zestaw wielkości N
.
Niektórzy powiedzą, że to dodatkowe M
nie jest prawdziwym zyskiem w zakresie bezpieczeństwa i zgadzam się, że jest to tylko niewielkie ulepszenie bezpieczeństwa. Ale myślę o tym bardziej jako o tych małych kłódkach, które same w sobie nie są bezpieczne, ale utrudniają wielu ludziom łatwy dostęp. Jest to oczywiście ważne tylko wtedy, gdy twój komputer nie ma innych standardowych nazw użytkowników, takich jak tor lub apache.
Lepszym powodem, aby nie zezwalać na rootowanie, jest to, że root może wyrządzić o wiele więcej szkód na komputerze niż zwykły użytkownik. Jeśli więc przy odrobinie szczęścia znajdą hasło, cały system zostanie utracony, a przy standardowym koncie użytkownika można tylko manipulować plikami tego użytkownika (co jest nadal bardzo złe).
W komentarzach wspomniano, że normalny użytkownik może mieć prawo do korzystania, sudo
a jeśli odgadnie hasło tego użytkownika, system również zostanie całkowicie utracony.
Podsumowując, powiedziałbym, że nie ma znaczenia, które hasło użytkownika otrzyma atakujący. Kiedy odgadną jedno hasło, nie możesz już ufać systemowi. Osoba atakująca może wykorzystać prawa tego użytkownika do wykonywania poleceń sudo
, osoba atakująca może również wykorzystać słabość systemu i uzyskać uprawnienia roota. Jeśli atakujący miał dostęp do twojego systemu, nie możesz już mu ufać.
Należy pamiętać, że każdy użytkownik w twoim systemie, który może logować się przez SSH, jest dodatkową słabością. Wyłączając root usuwasz jedną oczywistą słabość.
Dlaczego hasła nad SSH są złe
Powód wyłączenia haseł jest naprawdę prosty.
- Użytkownicy wybierają złe hasła!
Cały pomysł wypróbowania haseł działa tylko wtedy, gdy można je odgadnąć. Kiedy użytkownik ma hasło „pw123”, twój system staje się niepewny. Innym problemem związanym z hasłami wybranymi przez ludzi jest to, że ich hasła nigdy nie są tak naprawdę losowe, ponieważ byłoby to trudne do zapamiętania.
Ponadto zdarza się, że użytkownicy ponownie używają swoich haseł, logując się na Facebooku lub na swoich kontach Gmail i na serwerze. Gdy haker otrzyma hasło do konta tego użytkownika na Facebooku, może dostać się na Twój serwer. Użytkownik może łatwo zgubić go przez phishing lub serwer Facebooka może zostać zhakowany.
Ale kiedy używasz certyfikatu do logowania, użytkownik nie wybiera swojego hasła. Certyfikat oparty jest na losowym ciągu, który jest bardzo długi od 1024 bitów do 4096 bitów (hasło ~ 128 - 512 znaków). Ponadto ten certyfikat służy tylko do logowania się na serwerze i nie jest używany z żadnymi usługami zewnętrznymi.
Spinki do mankietów
http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html
Ten artykuł pochodzi z komentarzy i chciałem nadać mu nieco bardziej widoczną pozycję, ponieważ zagłębia się nieco w sprawę botnetów, które próbują zalogować się przez SSH, jak to robią, jak wyglądają pliki dziennika i co można zrobić, aby ich powstrzymać. Zostało napisane przez Petera Hansteena.