CyberLabs

CyberLabs #2 – Bezpieczeństwo haseł, czyli dlaczego warto tworzyć silne hasła

Michał Błaszczak, 5 października 2022

cyberlabs-bezpieczenstwo-hasel

Hasło w dzisiejszych czasach

Haseł używamy codziennie. Są one dla nas czymś bardzo ważnym, ponieważ stały się  kluczem do poufnych danych, którymi nie dzielimy się na codzień. Dlatego też cyberprzestępcom tak bardzo na nich zależy (zdobywają często hasła poprzez phishing bądź włamując się do danego systemu – popularny wyciek haseł). O ile w pierwszym wypadku hasło nawet skomplikowane będzie przekazane do przestępcy w jawny sposób to przy wycieku danych nasze hasło jest zahashowane i przestępca musi to hasło odzyskać (i to od nas zależy czy mu się to uda).

CyberLabs #1- Phishing czyli jedno z najbardziej popularnych cyberzagrożeń

Jedno hasło, jeden system

Tytuł ten dla każdego z nas powinien być pewną zasadą, z której będziemy korzystać podczas rejestacji nowego konta w kolejnym systemie. Dodatkowo warto w tym momencie zastanowić się czy nasze dotychczasowe konta były tworzone zgodnie z tą zasadą. Jeśli nie – warto to zmienić. Zasada ta jest bardzo ważna, ponieważ często można usłyszeć, że w ramach pewnego ataku, atakującemu udało uzyskać się login i hasło za pomocą którego później mógł się logować do wielu systemów.  To właśnie przez ten brak cyberhigieny, cyberprzestępca jest w stanie w szybki sposób przejąć wiele kont, z których korzystamy.

ideal-password

Wycieki a bezpieczeństwo haseł

Jeśli dojdzie do wycieku bazy, w której znajdują się nasze hasła często możemy się spotkać z informacją, która nakazuje nam od razu zmienić nasze hasła. Jest to oczywiście uzasadniona reakcja jednak warto wiedzieć, że hasła w bazach nie są przechowywane w postaci jawnej (przynajmniej nie powinny – to w jakiej formie są przechowywane zależy od twórców danej aplikacji). W bazach dane te przechowywane są jako hash.

W skrócie wygląda to następująco: użytkownik podczas rejestracji podaje swoje hasło do konta, po przesłaniu formularza, hasło za pomocą algorytmu hashującego jest zamieniany w ciąg znaków tzw. hash (hash dla danego hasła jest zawsze taki sam, oczywiście wykorzystując ten sam algorytm hashowania np. md5).

Cały proces jest jednokierunkowy co oznacza, że nie istnieje możliwość odwrócenia tego procesu (nie można w prosty sposób zamienić hasha w hasło, które się pod nim kryje). Jest to dla nas ważna informacja, która oznacza, że podczas wycieku atakujący nie ma bezpośrednio naszego hasła, a jedynie hash, który trzeba złamać czy „odzyskać”. To właśnie w zależności od tego czy atakujący jest w stanie w przystępnym czasie odzyskać nasze hasło jest informacją dla nas ważną, ponieważ od tego zależy czy atakujący uzyska dostęp do naszego konta. 

Na czas odzyskiwania haseł w głównej mierze składa się poziom skomplikowania użytego przez nas hasła (m.in jak długie jest nasze hasło, czy składa się z wszystkich rodzajów znaków, czy jest to hasło „generowane” czy raczej jest to np. nasze imię + data urodzenia)  – im dłuższe i bardziej skomplikowane hasło, tym ciężej będzie je odzyskać. Dodatkowo na samo bezpieczeństwo haseł wpływa wybrany przez programistów algorytm hashujący.

Jak dochodzi do wycieku hasła?

Tak naprawdę do wycieku może dojść na wiele sposobów. Przyglądając się wyciekom na przestrzeni ostatnich miesięcy możemy zauważyć powtarzające się schematy. Często wszystko zaczyna się od phishingu i wyłudzenia danych jednego z pracowników za pomocą których atakujący uzyskuje dostęp do sieci wewnętrznej firmy. Inne wycieki mają swój początek w zapomnianych już systemach, które miały być dostępne tylko na chwilę, a które po kilku latach posiadają masę podatności. kolejne zaś wycieki zaczynają się od haseł czy kluczy API, które są dostępne w publicznych repozytoriach. Warto więc nie czekać na atak i zacząć dużo wcześniej przeprowadzać regularne audyty naszych systemów. Dodatkowo warto pamiętać, że często atak zaczyna się od „manipulacji” pracownika dlatego przeprowadzajmy też odpowiednie szkolenia czy kontrolowane ataki phishingowe, które znacząco pozwolą wyczulić pracowników.

BIMI jako tarcza antyphishingowa

Jak wygląda odzyskiwanie haseł?

Tak jak wspomniałem, na czas odzyskania hasła z hasha znaczący wpływ ma poziom skomplikowania naszego hasła. Żeby jednak zrozumieć dlaczego jest to tak ważne trzeba wiedzieć jakich metod używają cyberprzestępcy do odzyskania hasła z hasha, który wyciekł. Na początku jednak trzeba powiedzieć, że odzyskiwanie hasła polega na generowaniu ogromnej ilości hashy z pewnych ciągów znaków i porównywaniu ich z oryginalnym hashem (czyli tym, który chcemy złamać). Jeśli hashe będą takie same oznaczać to będzie, że znaleźliśmy poszukiwane hasło.

Metody odzyskiwania haseł

    • Metoda słownikowa – w tym przypadku atakujący polega na tzw. słowniku, w którym znajdują się np. popularne hasła (z innych wycieków), imiona, nazwy własne itp. Podczas odzyskiwania hasha tą metodą brane jest pojedyncze słowo z takiego słownika, następnie generowany jest hash z tego słowa i porównywane z hashem, który chcemy odzyskać. Atak powiedzie się, jeśli naszym hasłem jest popularny ciąg znaków np. Password.Oczywiście atakujący może tworzyć hasło z kilku słowników. Jeśli więc w jednym słowniku znajduję się słowo „Strong” a w drugim „Password” atakujący również sprawdzi hash dla hasła „StrongPassword”
    • Metoda siłowa – wykorzystując tą metodę atakujący sprawdza każdą możliwą kombinację. Przed rozpoczęciem ataku może on zdefiniować jak długie hasła chce generować, czy hasła mają składać się z dużych i małych liter czy może do tego jeszcze mają zawierać cyfry. Przy tej metodzie przestępca może użyć tzw. Masek, które definiują jaki rodzaj znaku ma być sprawdzany w konkretnym miejscu np. może założyć, że dużo osób korzysta z 8 znakowych haseł, w których na początku jest duża litera, dwa ostatnie znaki to cyfry a reszta to małe litery. Dzięki takiemu podejściu znacząco zmniejszy liczbę kombinacji do sprawdzenia. Tą metodą atakujący jest w stanie odzyskać każde hasło, jedynym problemem jest czas, w którym komputer jest w stanie sprawdzić wszystkie kombinacje dla konkretnych założeń i czy ten czas jest do przyjęcia.
metoda-silowa-silnikowa

Metoda siłowa vs. metoda silnikowa

Powyższe metody z powodzeniem można łączyć przez co atakujący jest w stanie skuteczniej odzyskiwać hasła z hashy zdobytych w ramach np. wycieku. Czytając o metodach odzyskiwania hasła może nam się nasunąć dość prosty wniosek. 

Nasze hasła nie mogą składać się z prostych słów, ponieważ będzie można odzyskać takie hasło metodą słownikową.

Ponadto jeśli będziemy stosować przewidywalne hasła, w których konkretny rodzaj znaku będzie znajdował się w konkretnych miejscach np. wspomiane hasło z dużą literą na początku i cyframi na końcu to atakujący będzie również je w stanie złamać w rozsądnym czasie gdyż układ znaków jest dość przewidywalny i powszechnie używany.

Jak tworzyć bezpieczne hasła?

Wystarczy, że nasze hasło po pierwsze będzie odpowiednie długie (minimum 15 znaków), po drugie nasze hasło będzie zawierać każdy rodzaj znaków w przypadkowych miejscach. Przykładem takiego hasła może być np. hasło zostało wygenerowane na jednej ze stron dostępnych w internecie):

6nA27x7#2W8!k&g

Takie hasło na pewno nie będzie znajdować się w żadnym słowniku, ponadto atakujący nie będzie w stanie określić miejsca konkretnych znaków. Nawet jeśli cyberprzestępca trafi, że nasze hasło ma 15 znaków pozostaną mu do sprawdzenia wszystkie możliwe kombinacje składające się z wszystkich możliwych znaków (około 90) na każdym z dostępnych 15 miejsc. Wynikiem tego jest ogromna liczba kombinacji, której cyberprzestępca nie będzie w stanie sprawdzić w rozsądnym czasie.

Menadżery haseł

W poprzednim punkcie została przedstawiona informacja, która to jasno stwierdza, że najbezpieczniej jest używać długich (min. 15 znaków) haseł składających się z wszystkich rodzajów znaków w przypadkowych miejscach. Jedynym „minusem” takich haseł jest ewentualny problem z ich zapamiętaniem. Jeśli do tego stosujemy zasadę: „jedno hasło, jeden system” może się okazać, że mamy sporo haseł, które nie są łatwe do zapamiętania. Z pomocą przychodzą nam menadżery, czyli specjalne sejfy na nasze hasła. Przykładem takiego menadżera może być KeePassXC, który tworzy specjalny „sejf” trzymany lokalnie na naszym komputerze. Dostępu do tego sejfu chroni hasło (jedyne hasło o którym musimy pamiętać) warto więc, żeby było odpowiednio silne. Dodatkowo taki menadżer haseł możemy zabezpieczyć kluczem sprzętowym, o którym będzie w dalszej części artykułu. Dzięki takiemu rozwiązaniu możemy bezpiecznie przechowywać nasze hasła (skoro mamy miejsce, w którym możemy przechowywać hasła, równie dobrze możemy wygenerować sobie dłuższe niż 15 znakowe hasła – co oczywiście tylko korzystniej wpłynie na nasze bezpieczeństwo).

keepasxc

KeePassXC to otwartoźródłowy menadżer, który jest dostępny na różne systemy oraz który możemy zintegrować z przeglądarką.

Oczywiście KeePassXC nie jest jedynym tego typu rozwiązaniem. W internecie z powodzeniem możemy znaleźć inne aplikacje. Niektóre menadżery mają dodatkowo pluginy, które możemy instalować w przeglądarce dzięki czemu nie trzeba każdorazowo wpisywać haseł, inne mają dodatkowo aplikację mobilną. Wszystko więc zależy od naszych potrzeb i na pewno znajdziemy rozwiązanie, które będzie nam odpowiadać.

Dwuskładnikowe uwierzytelnianie

Dwuskładnikowe uwierzytelnienie (2FA) jest dodatkowym zabezpieczeniem wykorzystywanym podczas procesu logowania do danego konta. Podczas logowania w dalszym ciągu wymagane jest podanie loginu oraz hasła, jednak dodatkowo na koncie z uruchomionym 2FA należy będzie podać dodatkowy „składnik” np. kod z odpowiedniej aplikacji.

2fa

Uwierzytelnienie dwuskładnikowe (ang. Two Factor Authenticaton, 2FA) może pomóc chronić twoje konta internetowe, nawet jeśli twoje hasło zostanie skradzione.

Rodzaje 2FA

Decydując się na dwuskładnikowe uwierzytelnianie musimy podjąć decyzję dotyczącą wyboru dodatkowej metody uwierzytelniania. W zależności od konkretnej aplikacji ilość dostępnych metod może się różnić, jednak do wyboru będziemy mieli:

    • Kod SMS – jeśli wybierzemy tą opcję podczas logowania do naszego konta otrzymamy dodatkowy jednorazowy kod na wskazany podczas konfigurowania numer telefonu.
    • Kod w aplikacji ta metoda jest bardzo podobna do wspomnianego wcześniej kodu SMS, jednak w tym przypadku kod jest generowany w specjalnej aplikacji, którą wcześniej musimy zainstalować na nasze urządzenie mobilne, a samą aplikację musimy „połączyć” z naszym kontem. Wygenerowane kody są dostępne przez 60 sekund, po tym czasie zostanie wygenerowany nowy kod.
    • Klucz sprzętowy – jest to najbezpieczniejsza metoda dwuskładnikowego uwierzytelniania. O ile kody z dwóch poprzednich metod można zdobyć za pomocą phishingu, to w przypadku użycia tej metody podczas logowania do naszego konta musimy wpiąć fizycznie klucz sprzętowy do portu USB. Bez tej czynności nie będziemy w stanie zalogować się do konta!

Czy warto używać 2FA?

Zdecydowanie tak! Dwuskładnikowe uwierzytelnienie znacznie wpłynie na bezpieczeństwo Twoich kont. Jeśli dojdzie do wcześniej wspomnianych wycieków baz danych, w których będą znajdować się Twoje hasła, używanie dwuskładnikowego uwierzytelnienia skutecznie utrudni atakującemu dostęp do konta. Jeśli do tego będziemy używać silnych, generowanych haseł nasze konto będzie naprawdę dobrze chronione.

Bezpieczeństwo haseł: garść dobrych rad:

    • Stosuj zasadę: „Jedno hasło, jeden system”. Dzięki temu nawet jeśli atakujący będzie w posiadaniu naszego hasła (czy to w wyniku phishingu, czy poprzez odzyskanie hasła z hasha) będzie mógł go użyć tylko do jednego systemu przez co powierzchnia ataku znacząco się zmniejszy.
    • Używaj dwuskładnikowego uwierzytelnienia przynajmniej do ważniejszych dla nas kont (idealna sytuacja to taka w której stosujemy 2FA w każdym koncie). Jeśli dojdzie do podobnej sytuacji jak powyżej tj. przejęcia naszych loginów, haseł, atakujący nie będzie w stanie zalogować się do danego konta. Pamiętaj, że kody 2FA mogą zostać przejęte podczas ataku phishingowego, dlatego uważaj gdzie podajesz te kody!
    • Do tworzenia haseł warto stosować tzw. generatory haseł, które stworzą nam odpowiednie długie i skomplikowane hasła, które będą odporne na próby ich łamania czy odzyskiwania.
    • Nie przechowuj swoich haseł w plikach tesktowych czy karteczkach samoprzylepnych. Do przechowywania haseł warto użyć specjalnych menadżerów np. KeePassXC
    • Niektórych wycieków możemy być nawet nieświadomi. Warto więc co jakiś czas sprawdzić na np. stronie https://haveibeenpwned.com/ czy nasz adres e-mail nie znajduje się w jakimś wycieku. Jeśli okaże się, że znajduje się on w wycieku, zostaniemy poinformowani o nazwie strony z którego nasze dane wyciekły. Dodaktowo dowiemy się jakie to były dane.

Stay secure! 👾

Zapisz się do newslettera i bądź na bieżąco z nowościami ze świata Cyberbezpieczeństwa!

Najczęściej czytane