Brutalne łamanie haseł

Warte rozważenia

Zaawansowanym użytkownikom, którym zależy na większym bezpieczeństwie, można ustawić opcję umożliwiającą logowanie tylko z określonych adresów IP. Można również przydzielić unikalny adres URL grupie użytkowników tak, aby nie wszyscy użytkownicy logowali się na swoje konta z tego samego adresu.

Zautomatyzowanym atakom zapobiega również mechanizm CAPTCHA (Completely Automated Public Turing Test to tell Computers and Humans Apart). Jest to program, który umożliwia odróżnienie człowieka od komputera. Początkowo powszechnie stosowany przez serwis Alta Vista, miał zapobiegać automatycznym próbom rejestrowania nowych kont. CAPTCHA jest zasadniczo skuteczna w zatrzymywania wielu szkodliwych, zautomatyzowanych działań, włączając w to ataki brute force. Działa na zasadzie testu, który jest prosty dla człowieka, a trudny dla komputera. W ten sposób z pewnym prawdopodobieństwem umożliwia stwierdzenie, że po drugiej stronie mamy do czynienia z człowiekiem.

Zobacz również:

  • Użytkownicy dalej konfigurują łatwe do odgadnięcia hasła

Aby CAPTCHA była efektywna, człowiek musi mieć niemal 100-procentową szansę poprawnie rozwiązać test. W przypadku komputera zaś do 100% musi być zbliżone prawdopodobieństwo udzielenia błędnej odpowiedzi. Najczęściej używana wersja CAPTCHA wyświetla użytkownikowi mało czytelne słowo, które należy przepisać, aby przejść test. Niestety naukowcy opracowali już oprogramowanie, które potrafi automatycznie przejść taki test ze skutecznością wynoszącą 92%. Wprawdzie program nie został udostępniony publicznie, ale nie można wykluczyć, że kiedyś to nastąpi. Z drugiej strony, badacze z Carnegie Mellon School of Computer Science stale pracują nad udoskonalaniem mechanizmów CAPTCHA (www.captcha.net/captchas).

Deweloperzy rozwijający swoje własne zabezpieczenia typu CAPTCHA muszą pamiętać, że istotne jest nie to, jak trudne jest udzielenie poprawnej odpowiedzi na test, lecz to, z jakim prawdopodobieństwem potrafi zrobić to komputer. Przykładowo, nie sprawdzi się CAPTCHA polegająca na wyborze z listy poprawnej odpowiedzi. Jeśli możliwe odpowiedzi będą trzy, komputer będzie miał 1/3 szansy na udzielenie poprawnej odpowiedzi, niezależnie jak trudne jest pytanie. Przy takim poziomie CAPTCHA przestaje być efektywna, jeśli np. ma chronić przed masowym zakładaniem nowych kont. Niemniej jednak nawet prosta CAPTCHA może być skutecznym zabezpieczeniem przed atakami siłowymi.

Jeśli opisane techniki są stosowane pojedynczo, atakujący często mogą je obejść. Jeśli jednak zastosuje się jednocześnie kilka z nich, można znacznie ograniczyć ataki siłowe. Zatrzymanie atakującego, który jest zdeterminowany, aby zdobyć hasła do kont, jest trudne. Jednakże te techniki będą skuteczne przeciwko większości ataków. Choćby z tego względu, że zmuszają atakującego do włożenia większego wysiłku w przeprowadzenie ataku, co z kolei daje większe możliwości wykrycia ataku, a nawet ustalenia tożsamości sprawcy.

Wykrywanie ataków

Wprawdzie ataki siłowe są zaskakująco trudne do całkowitego zatrzymania, to łatwo je wykryć, ponieważ każda próba nieudanego logowania powoduje wygenerowanie kodu HTTP 401 przez serwer WWW. Dlatego ważne jest monitorowanie plików protokołowania (logów), szczególnie jeśli między kodami HTTP 401 pojawiają się również kody HTTP 200, oznaczające podanie poprawnego hasła. To może bowiem wskazywać, że atakując odgadł hasło.

Jest jeszcze kilka innych czynników wskazujących na atak siłowy lub inne próby naruszenia kont:

  • wiele nieudanych prób logowania z jednego adresu IP,
  • próby logowania z jednego adresu IP przy użyciu wielu nazw użytkowników,
  • logowanie na jedno konto z wielu adresów IP,
  • nieudane próby logowania z wykorzystaniem kolejnych alfabetycznie nazw użytkowników i haseł,
  • używanie adresów URL zawierających nazwę użytkownika i hasło, np.
" rel="nofollow"" target="_blank" class="link">http://user:[email protected]/login.htm.">" target="_blank" class="link">http://user:[email protected]/login.htm.

Najlepszą obroną jest upewnienie się, że użytkownicy stosują silne hasła: składające się z określonej minimalnej liczby znaków, zawierające duże litery, cyfry i znaki specjalne. To zapobiega odgadnięciu haseł poprzez atak słownikowy.

Ataki lokalne

Jest istotna różnica między atakami siłowymi na serwisy internetowe, a zasoby lokalne. Przykładowo, próba złamania hasła do konta Gmail już po kilku nieudanych próbach spowoduje konieczność przejścia testu CAPTCHA. Jeśli kolejne próby zakończą się niepowodzeniem, dostęp do konta zostanie całkowicie zablokowany. Z drugiej strony, jeśli atakujący przechwycił, np. zaszyfrowane pliki, sytuacja wygląda zupełnie inaczej – na takim pliku może on testować dowolną liczbę haseł. W tym przypadku skutecznym zabezpieczeniem jest jedynie stosowanie silnych haseł. Dodatkowo atak siłowy może spowolnić używanie złożonych algorytmów zapisujących hasła w formie tzw. hasha. Im więcej obliczeń wymaga zapisanie hasła w formie hasha, tym wolniej będzie przebiegać atak siłowy.

Szybkość ataku

Ilość czasu potrzebna na złamanie hasła zależy od kilku czynników. Jednym z nich jest wydajność sprzętu. Agencje rządowe mogą budować specjalistyczną infrastrukturę zoptymalizowaną pod kątem przeprowadzania ataków siłowych, podobnie jako to ma miejsce w przypadku farm Bitcoinów. Jeśli mówimy o sprzęcie konsumenckim, najwydajniejsze w łamaniu haseł są procesory graficzne (GPU). Ponieważ możliwe jest sprawdzanie wielu haseł jednocześnie, karty graficzny realizujące obliczenia równolegle świetnie nadają się do tego celu.

Głośno było 3 lata temu, kiedy serwis Ars Technica informował o zbudowaniu klastra składającego się, m.in. z 25 kart graficznych Radeon, który był w stanie w ciągu pięciu i pół godziny złamać każde ośmioznakowe hasło do Windows. Wydajność sprzętu stale się zwiększa i z czasem okazuje się, że nawet najsilniejsze algorytmy szyfrujące, których używamy dzisiaj, kiedyś staną się łatwe do złamania.

Nie ma sposobu, aby zapewnić całkowitą ochronę danych, nie wiadomo bowiem, jak szybki sprzęt zostanie użyty do złamania hasła. Dodatkowo algorytmy szyfrujące mogą zawierać luki, które atakujący wykorzysta, aby szybciej złamać hasło. Warto jednak stosować się do kilku zasad:

  • Dane warto trzymać w miejscach, do których atakującemu nie będzie łatwo uzyskać dostępu. Jeśli bowiem uda mu się przechwycić dane, będzie mógł swobodnie próbować złamać hasło.
  • Warto stosować silnie algorytmy szyfrujące, np. SHA-512. Trzeba się też upewnić, że nie używa się starych algorytmów ze znanymi słabościami, które sprawiają, że hasła są łatwe do złamania.
  • Użytkownicy powinni stosować długie i złożone hasła. Żadna technologia szyfrowania nie będzie skuteczna, jeśli hasło będzie krótkie.
  • Warto stosować dwuskładnikowe uwierzytelnianie. Wprawdzie takie podejście może wymagać w niektórych sytuacjach pewnych nakładów finansowych, ponieważ trzeba zastosować nowy schemat zarządzania tożsamością użytkowników, jednak obecnie takie uwierzytelnianie jest coraz łatwiejsze do wdrożenia.

TOP 200