Myśl jak haker i zadaj sobie pytanie, jak szybko można złamać hasło w zależności od jego struktury.
Gdy hakerzy lub testerzy penetracji naruszają system i chcą uzyskać dostęp do haseł zwykłego tekstu z zrzutu bazy danych, muszą najpierw złamać zapisane hasze hash. Wielu atakujących zanurzyło się w tej koncepcji: próbowało dowolnego ataku kryptograficznego, który chciał, bez prawie żadnego powodu. Ta dyskusja pokaże niektóre skuteczne metody łamania haseł oraz sposób wykorzystania analizy statystycznej haseł z narzędziami do stworzenia ograniczonego czasowo podejścia do wydajnego i udanego łamania. Dlaczego to ważne? Łamanie haseł to umierająca sprawa. Użytkownicy muszą tworzyć bardziej złożone hasła, a niektórzy programiści zaplecza zaczęli używać mechanizmów takich jak Bcrypt , aby zastąpić standardowe funkcje skrótu. Generowanie skrótów Bcrypt zajmuje dłużej, dlatego hasła stają się trudniejsze do złamania. Krakerzy muszą bardzo szybko generować skróty, aby skutecznie złamać hasła, dlatego Bcrypt jest bardzo potężnym narzędziem do walki z takimi atakami. Aby zilustrować ten przykład, uruchomiony w 2012 roku program do łamania haseł wyprodukowany przez 25 klastrów procesorów graficznych może osiągnąć prędkość generowania skrótów NTLM wynoszącą 350 miliardów skrótów na sekundę, podczas gdy prędkość generowania skrótów Bcrypt wynosi 71 000 skrótów. Wykorzystując to jako model porównawczy, dla każdego wygenerowanego skrótu Bcrypt można wygenerować 5 milionów skrótów NTLM. W obliczu algorytmu Bcrpyted hakerzy muszą dokonywać bardziej obliczeniowych zgadywań na temat haseł i nie mogą polegać na użyciu brutalnej siły dla każdej możliwości.
Uwaga: Jeśli atakujący wie, że długość hasła jest tak krótka, że złamanie przestrzeni kluczy brute force nie zajmie dużo czasu, nie ma potrzeby podejmowania kroków ataku przyrostowego.
Wydajność czasu staje się kluczowym czynnikiem pomyślnego złamania haseł. Chociaż dobrze byłoby pokryć całą krytyczną przestrzeń hasła użytkownika, czas potrzebny do tego nie jest zazwyczaj wykonalny. W związku z tym podczas crackingu ważne jest, aby najpierw spróbować najbardziej czasooszczędnego ataku, a jeśli się nie powiedzie, kontynuować wolniejszy atak kryptograficzny obejmujący więcej przestrzeni kluczy. Najszybszym sposobem jest prosty atak słownikowy oparty na powszechnie używanych hasłach użytkownika i poprzednich zrzutach haseł. Stamtąd należy spróbować manipulować słownikiem, aby dodać cyfry lub symbole na końcu lub zmienić litery. Nazywa się to atakiem hybrydowym lub atakiem opartym na regułach. Następnie możesz spróbować wygenerować możliwe hasła za pomocą funkcji uczenia maszynowego. Dobrym przykładem jest łańcuch Markowa. Łącząc powszechne elementy występujące w języku angielskim, tworząc słowa (np. „ing ", „er", „qu "), można wygenerować dobre zgadywanie haseł, takich jak hasło poniżej. Chociaż łatwo jest złamać to konkretne hasło za pomocą dowolnej metody, użyjemy tego hasła, aby uprościć wszystkie wektory ataku. hasło1234hasło1234
Wreszcie, ukierunkowane ataki brute force (zwane atakami maskowymi) obejmują całą przestrzeń kluczy danego hasła w oparciu o strukturę hasła. Przez "strukturę" hasła mam na myśli rodzaj i kolejność znaków używanych do utworzenia hasła. Na przykład „struktura "z wielkimi literami, po których następuje 7 małych liter, a po nich 4 cyfry (oznaczone jako). hasło1234ullllllldddd
Małe litery, wielkie litery, symbole, cyfry (l) (u) (s) (d)
Jeśli zatem atakujący zdecyduje się użyć tej struktury do stworzenia wszystkich możliwości kombinacji znaków, ostatecznie znajdzie hasło. Pytanie atakującego brzmi: jaką strukturę należy w pierwszej kolejności celować, atakując zestaw skrótów? hasło1234
Aby pomóc odpowiedzieć na to pytanie, przeprowadziłem analizę statystyczną popularnych zrzutów haseł, aby sprawdzić, czy istnieje struktura haseł, która jest bardziej powszechna niż inne i w jakim stopniu ta struktura jest poprawna. Wielkość próbki ponad 34 milionów publicznie ujawnionych haseł obejmuje znane zrzuty haseł RockYou, LinkedIn, phpBB i inne.
Poniższy rysunek pokazuje częstotliwość struktury maski dla każdej unikalnej maski. Czerwona linia oznacza linię 50%, która pojawia się po 13. najczęściej występującej masce.
Oznacza to, że pierwsze 13 unikalnych struktur masek stanowi 50% przykładowych haseł. Struktura ponad 20 milionów haseł w próbce znajduje się w pierwszych 13 maskach. Wyniki te są dość szokujące pod względem uniwersalności ustrukturyzowanych haseł. Pozostałe 50% znajduje się w długim prawym ogonie i zostało zmniejszone na tym wykresie. W rzeczywistości na 260 500 unikalnych masek na tym wykresie pokazano tylko 400. Koncepcja tej uniwersalnej struktury hasła jest niesamowita; Nie jest to jednak zaskakujące, gdy zastanawiasz się, w jaki sposób użytkownicy tworzą i zapamiętują swoje hasła. Na podstawie danych analizowych istnieje kilka czynników logicznych, które pomagają wyjaśnić, w jaki sposób jest to możliwe. Gdy użytkownik jest poproszony o podanie hasła zawierającego wielką literę, jest on używany jako pierwszy znak w ponad 90% przypadków. Gdy poproszono o użycie liczb, większość użytkowników dodaje dwucyfrową liczbę na końcu hasła, prawdopodobnie roku ukończenia studiów. Następną najpopularniejszą opcją jest zakończenie hasła czterocyfrowym (prawdopodobnie poprzednim lub tegorocznym). W tym przypadku kolejna najpopularniejsza liczba ma cyfrę na końcu i trzy cyfry na końcu. Takie podobieństwa strukturalne pozwalają atakującemu przewidzieć, jaka jest najprawdopodobniejsza struktura hasła użytkownika.
Wykorzystując tę wiedzę strukturalną, można bezpiecznie założyć, że użytkownik najprawdopodobniej ustawi swoje hasło na than (losowe litery), nawet jeśli wszystkie zaczynają się od 9 liter i mają 9 liter. Załóżmy zatem, że biorąc pod uwagę strukturę kryptograficzną, jeśli widzimy kolejne litery, najprawdopodobniej jest to słowo. Jest to bardzo przydatne założenie dla krakerów, ponieważ eliminuje dużo miejsca na klucze. Następnie staje się to hybrydowym atakiem wykorzystującym statystyczne znaczenie uniwersalnej struktury kryptograficznej. potatoespwivwdhpp
Często, jako tester penetracji, nawet jeśli złamamy zestaw skrótów, możemy nie mieć czasu na złamanie wszystkich skrótów. Jednak ich zniszczenie może pomóc w aktualizacji dostępu do systemu i zapewnić klientom bardziej przydatne odkrycia. Dlatego podczas łamania hasła przydatne może być określenie, ile czasu zostanie przeznaczonego na złamanie zestawu wartości skrótu. Korzystając z struktur znalezionych w poprzedniej analizie, atakujący może określić, jakie 10 najpopularniejszych struktur chce objąć na podstawie wymagań dotyczących złożoności hasła posortowanych według najszybszego czasu zakończenia. Wreszcie atakujący może ograniczyć czas swojej metody, poświęcając nie więcej niż godzinę na wykonanie łamania. To zostało odkryte podczas ostatniego testu penetracji w celu uzyskania skrótu. Poniżej znajduje się migawka wyników krakera opartego na procesorze.
W tym przypadku najszybciej wykonana konstrukcja jest taka, że zdefiniujemy ją jako wielką literę, po której następują trzy małe litery ("W" oznacza "słowo"), a następnie cztery cyfry. W zestawie skrótu znajduje się 69 haseł pasujących do tej struktury, a mój standardowy procesor jest w stanie przejść przez wszystkie możliwości tej struktury w ciągu jednej minuty. Zatrzymaliśmy łamanie po 62 minutach, a łamanie wygenerowało 221 unikalnych skrótów łamania, które dopasowały się do 491 kont, co doprowadziło do łącznego wycieku 11%. Powodem dużej różnicy w liczbie złamanych haseł i wycieków kont jest to, że ustawienia Office często powodują, że ludzie używają powszechnie używanych haseł. Jeśli atakujący ustali, że w środowisku używane jest hasło uniwersalne, wszyscy użytkownicy z tym samym hasłem zostaną również zagrożeni. U (W3) dddd
Chociaż ataki hybrydowe lub ataki oparte na regułach (np.) mogą szybciej złamać kilka z tych haseł, struktura atakujących haseł pozwala nam pokryć większą przestrzeń kluczową. Ta metoda jest skutecznym następnym krokiem, jeśli okaże się, że atak Faster nie może skutecznie zniszczyć skrótu docelowego. Ponadto ważne jest, aby pamiętać, że ten przykład został wykonany na dość przeciętnym procesorze, a wykonanie tego samego ataku na potężnym procesorze graficznym może skrócić ten czas do kilku sekund. Dlatego dokładny czas nie jest tak ważny jak skuteczne wdrożenie teorii. best64
pomaga nam ogólnie atakować powszechne struktury haseł; Istnieją jednak narzędzia, które mogą pomóc w zlokalizowaniu konkretnych aplikacji. Narzędzia takie jak CeWL mogą przeszukiwać słowa ze stron internetowych i wykorzystywać je do generowania list słów lub słowników specjalnie dla firm. Działa, ponieważ firmy mają tendencję do używania haseł związanych z ich branżą, firmą lub pracą. Ponadto, ponieważ ustaliliśmy, że powszechnie używane hasła są popularne w środowisku pracy, można również użyć haseł, które zostały złamane, jako podstawy dla innych haseł, które mogą być podobne. Na przykład, jeśli odkryjemy, że „ "jest hasłem użytkownika, możemy umieścić „" na nowej liście słów, umieścić je w zestawie reguł, a następnie odkryć, że ktoś inny ma hasło „ ". Ta koncepcja używania podstawowych słów do złamania (np. ' ') i modyfikowania otaczającymi je znakami jest bardzo skuteczna przy łamaniu wartości skrótu zrzuconych ze środowiska korporacyjnego, co sięga pojęcia ponownego wykorzystania haseł. Na podstawie przeprowadzonych przez nas testów penetracji najlepiej nadaje się do złamania ostatnich 20% niezłamanych skrótów. AcmeCorp1234AcmeCorpAcmeCorp@2015AcmeCorp
Ważne jest również przycinanie słownika tak, aby wszystkie zgadnięte hasła spełniały wymagania określone przez aplikację, aby nie tracić czasu na zgadywanie haseł, których nie można odgadnąć ze względu na długość lub skład znaków. Zaczynając od najszybszego ataku, pokrywając najmniejszą przestrzeń kluczową (standardowy atak słownikowy), aż do najwolniejszej i największej przestrzeni kluczowej (czysta brutalna siła), to najlepszy postęp, aby uwzględnić czas przeznaczony na atak. Dlatego atakujący powinien wdrożyć standardowe podejście, które to uwzględnia. Jeśli konto, które atakujący chce włamać, zostanie zakończone w pierwszej fazie, może nie być powodu do kontynuowania stosowania innych ataków; Jednak w wielu przypadkach, jeśli istnieją konta docelowe, prosty atak słownikowy może nie wystarczyć lub atakujący chce po prostu złamać jak najwięcej kont, dlatego może być konieczne użycie ataku hybrydowego o strukturze statystycznej i ukierunkowanego ataku brute force. Dlatego dla udanego złamania kluczowe jest zbudowanie metod, które mogą obejmować wspomniane wcześniej metody, a także niektóre zautomatyzowane procesy. Najnowsze narzędzia, takie jak PRINCE, mogą pomóc ułatwić łamanie haseł. Ważne jest, aby opracować pasek narzędzi, np. PRINCE, aby spróbować w metodach, ale zrozumienie funkcjonalności stojących za narzędziami, a nie poleganie na nich wyłącznie, sprawi, że cracking będzie bardziej efektywny.
Przeprowadzając analizę przy użyciu tych haseł, można określić najpopularniejsze konstrukcje przy danym wymaganym poziomie złożoności. Dlatego programiści prawdopodobnie powinni zaimplementować pewne elementy sterujące, aby uniemożliwić użytkownikom korzystanie z niektórych z tych bardzo popularnych struktur w celu spłaszczenia krzywej poprzedniego wykresu. Problem z tym pomysłem polega jednak na tym, że bez prostej struktury użytkownikom może być trudno zapamiętać swoje hasła. Polecam użycie menedżera haseł, który wymaga uwierzytelnienia dwuosobowego. Aplikacje te wygenerują i przechowują dla Ciebie wszystkie hasła, więc pamięć nie stanowi problemu. Generowane przez nich hasła są strukturalnie losowe i można je używać tak długo, jak na to pozwala aplikacja. Jak wspomniałem wcześniej, szyfrowanie haseł to kolejny bardzo skuteczny sposób na spowolnienie perspektyw atakującego. Wreszcie, wdrożenie strategii w biurze, które pomagają użytkownikom zrozumieć niebezpieczeństwa związane z udostępnianiem haseł lub ich ponownym użyciem, jest udanym krokiem we właściwym kierunku, nawet jeśli użytkownicy nie zawsze ich przestrzegają. Chociaż najprawdopodobniej nie będą przestrzegać tego przez cały czas, jest to skuteczna kontrola.
Łamanie haseł może być niejasnym pojęciem. Wraz ze wzrostem trudności łamania potrzebne są ukierunkowane ataki oparte na wydajności i należy ustanowić indywidualne metody łamania. Nie warto inwestować pieniędzy, aby ostatecznie zwiększyć prędkość generowania skrótu. Dlatego wykorzystanie statystyk i narzędzi jako środka ataku do wdrożenia metody i uproszczonego procesu może ułatwić łamanie haseł. Programiści mogą opracować środki kontroli, aby poradzić sobie z tą sytuacją, a użytkownicy mogą korzystać z bezpiecznego menedżera haseł, aby zminimalizować skuteczność tych ataków; Jednak takie implementacje nie są jeszcze zbyt popularne. Obecnie ataki statystyczne na hasła są skuteczne zarówno pod względem liczby pęknięć, jak i wydajności połączeń czasowych. Pomyśl o własnych hasłach i zadaj sobie pytanie, jak szybko można je złamać, w zależności od struktury haseł i kontroli w Twoim biurze, które mogą spowodować, że atakujący włamują się do kont użytkowników.