W ostatnim artykule dotyczącym bezpieczeństwa w sieci, dowiedzieliśmy się o sposobach przechowywania haseł w serwisach internetowych oraz zasadach tworzenia silnych haseł. Mimo, iż hakerzy nie mogą odwrócić algorytmów haszujących, istnieje jednak wiele technik łamania haseł, których mogą użyć, aby uzyskać dostęp do Twojego konta.
Jeśli haker odkryje Twoje hasło, może ukraść Twoją tożsamość, uzyskać dostęp do innych kont, skonfigurować ataki phishingowe, aby skłonić Cię do przekazania bardziej poufnych informacji, a ponadto zainstalować oprogramowanie szpiegujące na Twoich urządzeniach lub sprzedać Twoje prywatne dane brokerom.
Przeczytaj pierwszy z tej serii tekstów: Hasła: Poznaj ich znaczenie oraz sposoby przechowywania.
Pierwszym krokiem, aby zapobiec naruszeniu prywatności w sieci, jest utworzenie długich i unikalnych haseł do wszystkich kont. Jednak, aby utworzyć silne hasło, musisz wymyślić coś, co jest wysoce odporne na łamanie haseł. W tym miejscu pojawia się największy problem – większość ludzi nie zdaje sobie sprawy z różnych technik używanych przez hakerów do uzyskiwania dostępu do kont cyfrowych.
Łamanie haseł ma miejsce wtedy, gdy haker odkrywa hasła w postaci zwykłego tekstu lub odkrywa zahashowane hasła, przechowywane w systemie komputerowym. Narzędzia do łamania haseł wykorzystują moc obliczeniową, aby pomóc hakerowi odkryć hasła metodą prób i błędów lub za pomocą określonych algorytmów łamania haseł.
Rodzaje ataków na hasła stają się coraz bardziej wyrafinowane i zróżnicowane. W dzisiejszym artykule omówimy najbardziej popularne metody łamania haseł i sposoby ochrony przed nimi.
To może Cię zainteresować: Autoryzacja przez Facebook, Google, Github
Metody łamania haseł
Być może w przeszłości słyszałeś różne porady dotyczące tworzenia silnego hasła, ale aby naprawdę zrozumieć, co sprawia, że hasło gwarantuje Ci wysoki poziom bezpieczeństwa, ważne jest, aby poznać sposób, w jaki atakujący próbują złamać hasła.
Pierwszym krokiem do złamania haseł jest kradzież ich hashy wygenerowanych za pomocą kryptograficznej funkcji skrótu. Hakerzy mogą atakować luki w oprogramowaniu za pomocą exploitów i innych metod, aby uzyskać dostęp systemu lub sieci, które przechowuje hasła.
Po uzyskaniu skrótów haseł wystarczy wybrać odpowiednie techniki i narzędzia do ich łamania. Choć każdego dnia opracowywane są nowe metody ataków na naszą prywatność w sieci, dziś przyjrzymy się najczęstszym sposobom, w jaki cyberprzestępcy próbują złamać hasła:
Ataki Brute Force
Jest to prosta, ale niezawodna taktyka uzyskiwania nieautoryzowanego dostępu do indywidualnych kont oraz systemów i sieci organizacji. Atak brute force to próba odkrycia hasła poprzez systematyczne wypróbowywanie każdej możliwej kombinacji liter, cyfr i symboli, aż do momentu znalezienia właściwego. Często atakujący używa oprogramowania, aby zautomatyzować ten proces i uruchamiać wyczerpujące kombinacje haseł w znacznie krótszym czasie.
Atak słownikowy
W tej metodzie haker systematycznie wpisuje każde słowo ze słownika, aby złamać hasło. Jest to rodzaj ataku brute force, ale zamiast przedstawiać różne kombinacje symboli, liczb i słów, ta metoda wykorzystuje słowa, które można znaleźć w słowniku. Jeśli zatem Twoje hasło jest pojedynczym słowem ze słownika, istnieje ryzyko, że Twoje konto jest podatne na włamanie.
Tablice Tęczowe
Gdy Twoje hasła są przechowywane na serwerze, są szyfrowane w nic nieznaczących ciągach znaków tzw. skróty. Hakerzy próbują uzyskać uwierzytelnienie poprzez złamanie skrótu hasła. Mogą do tego wykorzystać tablice tęczowe, czyli listy wstępnie obliczonych skrótów możliwych kombinacji haseł. Jeśli cyberprzestępca zna skrót Twojego hasła, może spróbować odszukać go w tęczowych tablicach. W ten sposób znajduje skrót hasła z bazy danych i eliminuje potrzebę jego złamania. Co więcej, nie wymaga odnajdywania samego hasła. Jeśli hash pasuje, naruszenie się powiodło.
Socjotechniki
Podczas gdy powyższe techniki łamania haseł wykorzystują luki techniczne, socjotechnika wykorzystuje błędy ludzkie i psychologię. Mówiąc prościej, socjotechnika jest aktem manipulacji ofiarą w celu uzyskania poufnych informacji, takich jak informacje bankowe lub poświadczenia do kont.
Za pomocą socjotechniki przestępcy wykorzystują sprawdzone metody, aby wykorzystać i manipulować odwiecznymi ludzkimi instynktami, zamiast szukać nowych sposobów na włamanie się do bezpiecznej i zaawansowanej technologii. Niestety o wiele łatwiej może być nakłonić kogoś do udostępnienia hasła, zamiast próbować je złamać.
Phishing
Phishing to rodzaj socjotechniki wykorzystywanej przez cyberprzestępców do oszukiwania użytkowników i pozyskiwania ich poufnych informacji, które są następnie wykorzystywane do cyberprzestępczości, takich jak naruszenia finansowe i kradzież danych.
Istnieją różne rodzaje phishingu — fałszowanie wiadomości e-mail, fałszowanie adresów URL, fałszowanie witryn internetowych, smishing i inne. Najczęściej odbywa się to przez e-mail, telefon i SMS.
W każdym z tych typów napastnik podszywa się pod osobę z legalnej organizacji i wywołuje u ofiar poczucie ciekawości, strachu lub pośpiechu i próbuje je oszukać w celu podania poufnych informacji, takich jak: dane identyfikacyjne, dane finansowe i bankowe, hasła itp.
Przykładem może być e-mail phishingowy informujący ofiarę o zablokowaniu karty kredytowej i wywołujący poczucie pośpiechu, zachęcający do zalogowania się w celu jej odblokowania. Taka wiadomość e-mail zawiera linki do fałszywych stron internetowych, które z pozoru wyglądają jak prawdziwe. Po kliknięciu linku i wprowadzeniu danych uwierzytelniających nasze wszystkie doświdczenia trafiają do przestępcy.
Niektóre oznaki, że można rozpoznać phishing to: zbyt piękne, aby były prawdziwymi ofertami, ogólne powitanie e-mailowe, e-maile od nietypowych nadawców z hiperłączami i załącznikami, loterie i konkursy z nierealistycznymi lub drogocennymi nagrodami.
Chcesz sprawdzić bezpieczeństwo Twojej aplikacji?
{Audyt bezpieczeństwa aplikacji webowych}
Systemy informatyczne wymagają stałego monitorowania i powinny podlegać okresowym kontrolom bezpieczeństwa IT
Trochę praktyki – testy z łamania haseł
Chcielibyśmy przedstawić Ci kilka przykładów, jak w prostu sposób można złamać hasła do systemów, znając skrót i kilka wskazówek odnośnie sposobu utworzenia hasła. Na samym początku chcielibyśmy zwrócić uwagę, że nie są to rzeczywiste hasło, które ostały uzyskane w wycieku danych. Hasła były łamane na standardowym komputerze o domyślnych ustawieniach, a nie profesjonalnym sprzęcie, którym zazwyczaj posługują się cyberprzestępcy. Próby łamania haseł zostały przeprowadzone za pomocą narzędzia HashCat. Oprogramowanie to jest ogólnodostępne i zostało zaprojektowane do łamania bardzo złożonych haseł w krótkim czasie za pomocą ataków bruce force i ataków słownikowych. Hashcat ma dwa tryby pracy – oparty CPU i GPU.
Test 1
Zakładając, że wyciekły dane dostępowe do kont, które składały się wyłącznie z cyfr oraz zawierały maksymalnie 6 znaków (mogły to być kody dostępu do drzwi, numery pin do kart kredytowych, zabezpieczenia do konta). Wiemy również, że skróty zostały wygenerowane przy pomocy funkcji SHA-1.
Tego typu dane możemy złamać za pomocą programu HashCat z opcją ataku brutalnego za pomocą następującego polecenia:
hashcat64 –m100 -a 3 hash_1.txt -1 ?d ?1?1?1?1?1?1 -i -o cracked_1.txt
gdzie:
hash_1.txt – nazwa pliku z danymi wejściowymi;
-m100 – rodzaj funkcji skrótu SHA-1;
-a 3 – typ ataku jako „atak brutalny”;
-1 ?d – maska znaków z zakresu 0-9;
-i – włączanie trybu incrementacji maski;
?1?1?1?1?1?1 – określenie maski jako 6-znakowego ciągu złożonego z cyfr;
-o cracked_1.txt – nazwa pliku dla danych wyjściowych;
Otrzymane wyniki:
ID | SKRÓT | TEKST JAWNY | CZAS ŁAMANIA | TEMPERATURA PROCESORA | PROCENTOWE WYKORZYSTANIE PROCESORA |
1 | 7110eda4d09e062aa5e4a390b0a572ac0d2c0220 | 1234 | 0s | 56c | 3% |
2 | 011c945f30ce2cbafc452f39840f025693339c42 | 1111 | 0s | 56c | 25% |
3 | e575dccc71140754dd85beda5965b6a358150309 | 2022 | 0s | 56c | 0% |
4 | 0ebcdc7babc0de9a1d6c7d1c180bfcb8183fa492 | 2580 | 0s | 56c | 0% |
5 | 82517e6de979bb1ee47e35ec24261b2b26e30ae3 | 9371 | 0s | 56c | 0% |
6 | 697b2af641581a09d8eba2f33cdb255ddb55f22e | 9532 | 0s | 56c | 42% |
7 | 85786f17cc4bca8c0cdb82e596b7ae761b435c59 | 8264 | 0s | 56c | 52% |
8 | dea742e166979027ae70b28e0a9006fb1010e760 | 987654 | 0s | 56c | 52% |
9 | fdf8bc5814536f66012884e146a8887a44709a56 | 012345 | 0s | 56c | 63% |
Test 2
W tym przykładzie zakładamy hasła użytkowników systemu, którego polityka bezpieczeństwa dopuszcza 6-znakowe hasła które składają się wyłącznie z liter i cyfr. Wiemy również, że hasła są hashowane za pomocą MD5.
hashcat64 –m0 -a 3 hash_2.txt -o cracked_2.txt
gdzie:
hash_2.txt – nazwa pliku z danymi wejściowymi;
-m0 – rodzaj funkcji skrótu MD5;
-a 3 – typ ataku jako „atak brutalny”;
-o cracked_1.txt – nazwa pliku dla danych wyjściowych;
Otrzymane wyniki:
ID | SKRÓT | TEKST JAWNY | CZAS ŁAMANIA | TEMPERATURA PROCESORA | PROCENTOWE WYKORZYSTANIE PROCESORA |
1 | 1dc5ab404fa22f451d5d28e83b063a8d | polska | 0s | 59c | 28% |
2 | d8578edf8458ce06fbc5bb76a58c5ca4 | qwerty | 0s | 58c | 40% |
3 | 96e79218965eb72c92a549dd5a330112 | 111111 | 1s | 60c | 63% |
4 | e10adc3949ba59abbe56e057f20f883e | 123456 | 0s | 60c | 25% |
5 | acbd9ab2f68bea3f5291f825416546a1 | Qwerty | 0s | 60c | 53% |
6 | e99a18c428cb38d5f260853678922e03 | abc123 | 0s | 61c | 84% |
7 | 6d932c406fa15164ee48ff5a52f81dae | haslo1 | 1s | 64c | 54% |
Test 3
W kolejnym zadaniu niezbędne było wykorzystanie ataku słownikowego. Jest on stosunkowo podobny do ataku brutalnego, lecz tym razem nie sprawdzamy pojedynczych liter, lecz gotowe słowa. Niezbędną informacją do stworzenia bazy haseł była informacja o formie haseł początkowych, które administrator ustawił każdej osobie (imię_osoby_rok_urodzenia). Do wywołania programu wykorzystałam polecenie:
hashcat64 -m1400 -a6 hash_3.txt path_to_wordlists ?d?d?d?d –-force -o cracked_3.txt
gdzie:
hash_3.txt – nazwa pliku z danymi wejściowymi;
-m1400 – rodzaj funkcji skrótu SHA-256;
-a 6 – typ ataku jako plain:hex_plain;
-o cracked_3.txt – nazwa pliku dla danych wyjściowych;
Otrzymane wyniki:
ID | SKRÓT | TEKST JAWNY | CZAS ŁAMANIA | TEMPERATURA PROCESORA | PROCENTOWE WYKORZYSTANIE PROCESORA |
1 | c0e30cefefbe8fe857993089dc9baef5147f3893370d348ed3848c32c3ebe2f4 | aleksandra1990 | 5s | 57c | 37% |
2 | 540ce1070fad49265098767d9973cec7aee5f6cbf0c254af24223e27827bd286 | ania1963 | 8s | 58c | 40% |
3 | 546dac7fbd1f1681db204b26900d1d08b5de1077735c3d10a703a4e1fc10a3c4 | barbara1939 | 10s | 57c | 58% |
4 | 02c7b4cf45aa0bbf9303f34e03912b469027920d689fd0b20bff3a8c885182e0 | dionizy1999 | 10s | 56c | 41% |
5 | 86c5fbb19829ddda62d2d7ae48591b3d1d287f13fc4487c8659f2804d2a497ea | adam1972 | 4s | 57c | 59% |
6 | 07bd4d21aa081ffc2d7904caf7721b617586dcb4c27a6d3dd0e16a59e45f6d39 | sylwia1954 | 10s | 57c | 39% |
Podsumowanie
Atak brutalny pozwala na złamanie każdego skrótu, lecz silne hasła mają zbyt dużą złożoność, przez co czas na ich złamanie jest niemożliwy do zrealizowania za życia jednej osoby. Pomimo szybkiego rozwoju sprzętu, nadal jesteśmy ograniczeni przez komponenty komputerów, a to od nich zależy w dużej mierze prędkość wykonywanych ataków. Należy w tym miejscu wspomnieć, że do naszych testowych ataków były wykorzystywane krótkie, słabe hasła, a ich łamanie odbywało się na urządzeniu o przeciętnych parametrach. Cyberprzestępcy mogą wykorzystywać specjalistyczny hardware lub korzystać z zasobów chmurowych, które będą posiadały o wiele większą moc obliczeniową.
Istnieją również strony oraz narzędzia online, które pozwalają na zmianę skrótu na tekst jawny pod warunkiem, że posiadają w swojej bazie odpowiednie słowo i odpowiadający mu skrót. Taka zasada obowiązuje nas również przy ataku słownikowym, dlatego też tak ważne jest tworzenie jak najmniej oczywistych haseł, nie będących całymi słowami, a przy tym składających się z liczb, mały i wielkich liter oraz znaków specjalnych.
Niestety ludzie notorycznie wykorzystują te same hasła podczas tworzenia nowych kont, co oznacza, że wielu użytkowników ma ten sam skrót. Jeśli połowa użytkowników w bazie danych współdzieli ten sam skrót, a hakerowi uda się go złamać, uzyska dostęp do wielu kont. Należy pamiętać, że liczba skrótów, które haker musi złamać, jest znacznie mniejsza niż liczba użytkowników.
Silne hasło może zniwelować ryzyko związane z nieautoryzowanym dostępem do naszego konta. Jednakże nawet wysoce zrandomizowane hasło, złożone ze małych i wielkich liter, cyfr oraz znaków specjalnych, może być niewystarczające, jeśli nie będziesz dbał o jego bezpieczne przechowywanie. W kolejnym artykule opowiemy o dobrych praktykach związanych z bezpiecznym zarządzaniem hasłami oraz przyjrzymy się realnym zagrożeniom, które mogą płynąć z naruszenia naszego konta.
Chcesz rozpocząć projekt lub zwiększyć bezpieczeństwo swojej aplikacji?
Zaplanuj bezpłatną konsultację z nami, aby zidentyfikować najlepszy sposób na rozpoczęcie i potencjalne obszary wsparcia.