21 listopada 2010

Jak w ciągu 12 godzin odzyskać ponad 10 milionów haseł?

Pomimo ciągłego opracowywania coraz to nowych, bardzo interesujących sposobów na bezpieczne uwierzytelnianie użytkowników rozmaitych serwisów i systemów informatycznych, nadal najczęściej w tym celu wykorzystywane są nieśmiertelne hasła. W związku z tym, ataki na frazy uwierzytelniające pozostają nadal jednymi z najpopularniejszych oraz najskuteczniejszych metod naruszania bezpieczeństwa systemów IT. Wynika to po części z tego, że użytkownicy nadal bardzo często wykorzystują hasła niezwykle proste, ale bez wątpienia przyczynia się do tego również ciągły rozwój metod oraz narzędzi pozwalających na przeprowadzania jeszcze bardziej skutecznych i precyzyjnych ataków. Spójrzmy przykładowo na fascynujące możliwości jednego z najlepszych darmowych narzędzi do odzyskiwania haseł z wykorzystaniem najnowszych zdobyczy technologii komputerowych.

Ataki mające na celu wejście w posiadanie haseł wykorzystywanych przez określonych użytkowników danego systemu informatycznego możemy podzielić na dwie podstawowe grupy. Pierwszy rodzaj stanowią ataki zdalne, czyli polegające zazwyczaj na przeprowadzaniu znacznej ilości prób zalogowania się do określonej usługi lub systemu z wykorzystaniem przygotowanej uprzednio listy potencjalnych haseł (ataki słownikowe) lub z wykorzystaniem wszystkich możliwości haseł o określonej długości (ataki typu brute force). Przykładem takiego ataku jest np. omawiana przeze mnie niedawno próba uzyskania zdalnego dostępu do graficznego terminala systemu Windows za pomocą programu Ncrack. Drugi popularny rodzaj ataku ma zaś na celu uzyskanie hasła użytkownika na podstawie uzyskanego już uprzednio skrótu hasła i właśnie tego typu atakami się dziś zajmiemy.

Współczesne systemy informatyczne nie przechowują (a przynajmniej nie powinny!) samych haseł użytkowników, lecz jedynie skróty poszczególnych haseł, uzyskane w wyniku zastosowania jednokierunkowych funkcji skrótu. W takim wypadku intruz, któremu uda się uzyskać pełny dostęp do systemu, może więc wejść w posiadanie bazy skrótów haseł. Chcąc odzyskać poszczególne hasła użytkowników, niezbędne jest więc przeprowadzenie kolejnego etapu ataku. Jak się okazuje, w zakresie odzyskiwania haseł ze skrótów ciągle powstają nowe narzędzia o możliwościach, które jeszcze wczoraj były nie do pomyślenia. Spójrzmy więc na możliwości jednego z najlepszych tego typu narzędzi.

oclHashcat to darmowy program stworzony z myślą o odzyskiwaniu haseł ze skrótów utworzonych za pomocą wielu rozmaitych funkcji jednokierunkowych. Program ten pozwala na wykorzystanie możliwości nawet wielu nowoczesnych jednostek GPU jednocześnie, w czym tkwi właśnie sekret jego ogromnych możliwości. Jak już nie od dziś wiadomo, wykorzystania nowoczesnych procesorów graficznych do obliczeń ogólnego przeznaczenia (GPGPU, ang. General-Purpose Computing on Graphics Processing Units) pozwoliło w praktyce na ogromne przyspieszenie wielu zadań obliczeniowych. Jak się okazało, masowo równoległa architektura nowoczesnych procesorów graficznych wyposażonych w setki rdzeni obliczeniowych szczególnie dobrze nadaje się do zadań takich, jak właśnie odzyskiwanie haseł. Dzięki wykorzystaniu niezależnej od platformy sprzętowej technologii OpenCL, oclHashcat jest w stanie wykorzystać moc nowoczesnych GPU produkowanych przez firmy NVidia oraz ATI, a sam program jest dostępny w wersji dla systemów Windows oraz Linux.

oclHashcat radzi sobie z następującymi algorytmami generowania skrótów:
  • MD5
  • md5($pass.$salt)
  • md5($salt.$pass)
  • md5(md5($pass))
  • md5(md5($pass).$salt)
  • SHA1
  • sha1($pass.$salt)
  • sha1($salt.$pass)
  • MySQL
  • MySQL4.1/MySQL5
  • MD4
  • NTLM
  • Domain Cached Credentials
Program poradzi sobie również bez problemu z bardzo obszernymi listami skrótów (liczonymi w milionach wpisów). Wspierane są natomiast ataki typu brute force, maskowane, słownikowe oraz hybrydowe. Spójrzmy jak oclHashcat radzi sobie z odzyskiwaniem haseł w praktyce:


Jeśli ktoś ma jeszcze wątpliwości co do możliwości tego narzędzia, to zachęcam do zapoznania się z bardzo interesującą prezentacją, omawiającą krok po kroku wykorzystanie programu oclHashcat do odzyskania ponad 10 milionów haseł pochodzących z jednego ze słynnych wycieków ogromnej bazy danych haseł:


Jak więc widzimy, wszelkie metody oraz narzędzia pozwalające na odzyskiwanie oraz łamanie haseł są ciągle bardzo intensywnie rozwijane i pozwalają praktycznie każdemu na przeprowadzanie ataków, które jeszcze niedawno wymagały zastosowania najszybszych superkomputerów. Należy jednak podkreślić, że skuteczna obrona przed tego typu atakami jest nadal jak najbardziej możliwa. Otóż skróty wygenerowane dla bardzo silnych haseł są oczywiście poza zasięgiem narzędzi takich jak program oclHashcat. Nadal więc podstawową metodą obrony przed atakami na nasze hasła pozostaje stosowanie odpowiednio długich i złożonych haseł. Niestety, niektóre serwisy internetowe z całą pewnością nadal przechowują nasze hasła w postaci jawnej, koniecznym środkiem ochronnym jest więc również stosowanie unikalnych haseł dla każdego pojedynczego zastosowania.