Jakie mogą być skutki słabego hasła do panelu sklepu internetowego? Czym może grozić posiadanie jednego hasła do wielu kont? Jak możesz zabezpieczyć swój sklep i uniknąć haseł, które można szybko załamać? Postaram się odpowiedzieć na te pytania i zobrazować to, co można uzyskać przy zastosowaniu socjotechniki.

Szefie! Ktoś złamał moje hasło do komputera!
A miałeś przynajmniej trudne hasło?
Oczywiście! Rok kanonizacji św. Dominika przez papieża Grzegorza IX.
Czyli?
1234.

Short story

Pewnego dnia moja znajoma Agnieszka napisała do mnie na Facebooku…

Co się właściwie przydarzyło Pani Janinie (to mama Agnieszki)? Dlaczego w mniej więcej tym samym czasie straciła dostęp do Facebooka, poczty i pewnie paru innych usług, z czego nawet nie zdała sobie sprawy w tym momencie?

Long Story

Pani Janina

Otóż kilka dni wcześniej nasza bohaterka dostała na Messengera wiadomość od znajomej. Był to film video z tragicznego wypadku z okolic Strzałkowa. Jako, że to wieś, w której Pani Janina mieszka chciała koniecznie zobaczyć, co się dokładnie stało. Kliknęła więc na video. Zobaczyła jednak informację, że ten materiał przeznaczony jest dla osoby pełnoletniej i musi się zalogować jeszcze raz, aby potwierdzić swój wiek.

Skoro wypadek tragiczny to i komunikat nie wzbudził żadnych podejrzeń. Dlatego nasza bohaterka wpisała swój adres e-mail i hasło, kliknęła „Zaloguj się”, po czym została przekierowana na znaną stronę z filmami z wypadków. Obejrzała i chwilę się zastanowiła, gdzie mogła wydarzyć się ta tragedia. Nie mogła sobie jednak przypomnieć, gdzie jest w okolicy stacja benzynowa, którą zobaczyła na filmie. Jednak zbliżała się pora powrotu córki Agnieszki do domu, więc poszła zrobić jej obiad.

W tym samym czasie…

Cyberprzestępca Jarek

„Kolejna osoba kliknęła w mój spreparowany link :) Oby tylko próbowała się zalogować, bo do tej pory niewiele osób dało się złapać. Ooo… cudownie… janina.kowalska@poczta.pl... Jaki oczywisty adres e-mail. Agnieszk@1989 – cudowne hasło! Takie proste… można było się domyślić… Pięknie! Ooo… To hasło pasuje też do poczty! Czas zacząć zabawę…”

Co się właściwie stało?

Kliknięcie na link do filmu spowodowało przekierowanie na stronę logowania do serwisu społecznościowego. Prośba o potwierdzenie swojego wieku nie wydawała się podejrzana. Przecież na filmie miały być widoczne drastyczne sceny. Po podaniu loginu i hasła zgodnie z obietnicą wyświetlił się film. Problem w tym, że ta strona logowania była fałszywa. Dane na niej wprowadzone trafiły prosto do rąk Jarka, naszego złodzieja. Co prawda, po „zalogowaniu” wyświetlił się film z drastycznym wypadkiem, ale tylko dlatego, aby od razu nie wzbudzić w ofierze podejrzeń.

Każda sekunda po udanym ataku jest ważna. Im dłużej ofiara pozostaje nieświadoma tym lepiej dla przestępcy. Dlatego Jarek specjalnie spreparował formularz tak, żeby film się wyświetlił po podaniu loginu i hasła.

Mając login i hasło do Facebooka bez problemu mógł się tam zalogować. W pierwszej kolejności zmienił hasło na inne. Aby jednak uniemożliwić odzyskanie konta musiał jeszcze się włamać na skrzynkę pocztową. Nie było to trudne, bo hasło do poczty było identyczne jak te do Facebooka.

Tu można zadać pytanie: po co właściwie Jarkowi cudzy Facebook? Głównie po to, aby rozsyłać innym osobom link do „filmu z tragicznym wypadkiem”. Dzięki temu zwiększa swoje szanse na przejęcie kolejnych kont Facebooka oraz pocztę potencjalnych ofiar. Zmiana hasła też jest istotna, aby ofiara nie mogła ostrzec swoich znajomych, że jej konto zostało zaatakowane.

A co mu po skrzynce pocztowej? Przejęcie skrzynki utrudnia (a czasem uniemożliwia) odzyskanie konta Facebook. Często też jest to prawdziwa skarbnica wiedzy informacji o człowieku. Przecież na maila przychodzą informacje ze sklepów internetowych, banków, portali społecznościowych… Wiele z tych serwisów używa jako loginu adresu e-mail, który bardzo często jest tożsamy z loginem facebookowym. Znając jedno hasło, istnieje też wysokie prawdopodobieństwo, że zostało ono użyte w innych serwisach. W przypadku Pani Janiny utraciła ona dostęp nie tylko do Facebooka i poczty, ale także do kilku sklepów internetowych, w których robiła zakupy oraz do jednej z platform aukcyjnych. Na szczęście w żadnym ze sklepów nie miała podpiętego domyślnego środka płatniczego, który mógłby zostać obciążony bez jej wiedzy. Ale są osoby, które dla wygody podpinają kartę płatniczą, aby zaoszczędzić kilka sekund robiąc zakupy.

Technicznie rzecz ujmując…

Powyższy przykład pokazuje, że nie zawsze długie hasło jest dobre. Bardzo dobrze, że nasza bohaterka miała hasło składające się z wielu znaków. Było ono nawet dość skomplikowane. Wielkie i małe litery, cyfry, znak specjalny - łącznie 13 znaków. Dlaczego więc Jarek pomyślał: „można było się domyślić”? Bo Agnieszka to córka Janiny i urodziła się w 1989 roku. Tego dowiedział się z profilu ofiary. Dodatkowa wariacja w postaci zmiany litery „a” na znak „@” też nie jest zbyt trudna do wymyślenia (np. litera „i” często jest wymieniana na 1, „s” na 5, „o” na 0 itd…).

W tym momencie ktoś mógłby dojść do błędnego wniosku, że lepiej mieć krótsze, abstrakcyjne hasło, niż długie słownikowe. Niestety nie. Co prawda, kiedyś za bezpieczne przyjmowało się hasło składające się z minimum 8 znaków zawierające małe i wielkie litery, cyfry oraz znaki specjalne. Niestety jest to błędne założenie. Technika poszła mocno do przodu i na niewyspecjalizowanym do tego celu komputerze takie hasło można złamać w ok. 45 dni (metodą brutal-force czyli próbując użyć każdej kombinacji).

Poniższy przykład obrazuje, jak szybko można złamać ośmioznakowe hasło zawierające wszystkie możliwe znaki, które jest hashowane popularnym algorytmem MD5.

Prędkość 1732MH/s* którą osiągnąłem na swoim komputerze nie jest zbyt imponująca. Hasło zostało by złamane dopiero za (maksymalnie) 44 dni i 7 godzin. Gdyby jednak użyć mocniejszego sprzętu, na przykład wyposażonego w cztery układy GPU, prędkość łamania drastycznie wzrasta.

Widać tu, że używając większej mocy obliczeniowej można dojść do znacznego poprawienia wydajności ataku do 96767MH/s (ponad 94 miliardy kombinacji na sekundę). To samo ośmioznakowe hasło zawierające ten sam zestaw znaków zostało by złamane w 19,5 godziny. To już na tyle krótki czas, żeby obawiać się o swoje bezpieczeństwo.

Oczywiście bardziej zaawansowane algorytmy, bezpieczne kryptograficznie, będą trudniejsze do złamania (ze względu na dłuższy czas generowania jednego hasha). Jednak używając odpowiednio wielkiej mocy obliczeniowej często można zejść z czasem oczekiwania do akceptowalnego poziomu (kilkadziesiąt dni to też akceptowalny poziom, gdyby chcieć złamać hasło jakiejś ważnej osoby). Zainteresowanym polecam zabawę oprogramowaniem hashcat i sprawdzenie, jak długo łamało by się swoje własne hasło kodowane różnymi algorytmami.

*Megahash na sekundę – ilość hashy, które są sprawdzane w ciągu jednej sekundy, tu jest to około 1732000000 hashy na sekundę.

Czy w takim razie trzeba się obawiać? Jak się bronić?

I tak, i nie. Wiele serwisów internetowych takich jak Facebook, Google dawno odeszło już od używania niebezpiecznych kryptograficznie algorytmów. Jednak istnieje jeszcze wiele stron internetowych, gdzie zabezpieczenia haseł użytkowników są słabe.

W przykładzie z początku artykułu hasło w zasadzie nie zostało „złamane”. Został tu wykorzystany atak socjotechniczny i użytkownik sam podał złodziejowi swoje hasło. Niestety, przed tego typu atakami są ograniczone możliwości obrony. Dlatego usilnie zalecam wszystkim włączenie podwójnego uwierzytelniania (2FA - two factor authentication) wszędzie, gdzie to jest możliwe.

Najczęściej polega to na tym, że przy pierwszej próbie logowania z nierozpoznanego przez serwis urządzenia dostajemy kod autoryzacyjny, który trzeba wpisać, aby się zalogować. Jednak wiele serwisów (np. logowanie do Profilu Zaufanego) wymaga podwójnej autoryzacji przy każdej próbie logowania. Różne serwisy stosują różne metody 2FA. Są to między innymi: kod SMS, kod wysłany na adres e-mail przypisany do konta, różnego rodzaju aplikacje uwierzytelniające (np. Google Authenticator) czy tokeny sprzętowe generujące kody. W takim przypadku, nawet jeśli upublicznimy gdzieś swoje hasło lub zostanie złamane po wycieku jakiejś bazy danych, przestępca nie będzie w stanie zalogować się do danego serwisu bez potwierdzenia kodem.

Drugą rzeczą, którą zalecam wdrożyć u siebie to indywidualne hasła dla każdego serwisu. Jednak nie na zasadzie: AlaM@K0t4Facebook, AlaM@K0t4Gmail, AlaM@K0t4Tesco, gdyż poznając sposób generowania tego typu hasła wszystkie inne zostają skompromitowane. Sugeruję tu używanie jakiegoś menedżera haseł.

Na rynku istnieje wiele tego typu oprogramowania. Główną zaletą tych programów jest możliwość łatwego wygenerowania unikalnych i skomplikowanych haseł, bezpieczne przechowywanie ich i łatwy dostęp wtedy, kiedy są potrzebne. Do najbardziej popularnych należą LastPass, 1Password, KeePass, Bitwarden. Ja zdecydowałem się na ten ostatni. Jest to darmowy, opensourcowy menedżer integrujący się z wszystkimi urządzeniami, które posiadam. Istnieje klient na Windowsa, Linuxa, MacOS, a także na telefony z systemami Android oraz iOS. Dodatkowo oprogramowanie to integruje się z przeglądarkami takimi jak Google Chrome, Firefox, Safari, Opera oraz wieloma innymi. Taka integracja z systemami zapewnia, że wszędzie, gdzie jest potrzeba wpisania hasła jest ono zawsze dostępne „pod ręką”. Jednym kliknięciem myszki  czy potwierdzeniem odciskiem palca uzupełnia się formularz logowania hasłem, którego nigdy nawet nie trzeba widzieć na oczy. Dodatkowym atutem Bitwardena jest fakt, że nie trzeba używać go na infrastrukturze autora. Z powodzeniem można zainstalować go u siebie. Zmniejsza to ryzyko wycieku bazy z hasłami w przypadku ataku na oficjalne serwery.

Czy moje hasło wyciekło?

Na koniec chciałbym wspomnieć o serwisie „have i been pwned”. Strona ta zbiera informacje o większości wycieków baz danych z całego świata. Można bezpiecznie wpisać tam swój adres e-mail i zobaczyć, czy istniał on w jakiejkolwiek bazie, która kiedyś wyciekła do sieci. Jeśli tak – sugeruję zmianę wszystkich swoich haseł na nowe.

Podsumowanie

Wiele osób używa słabych haseł. Brak wysiłku włożony w stworzenie dobrego hasła może pociągnąć za sobą opłakane skutki. Bardzo często jako hasło stosuje się na przykład imię (swoje lub członka rodziny, zwierzaka), datę urodzenia lub proste wzorce (np. qwerty, qazwsx, admin123).

Z drugiej strony, zapamiętanie skomplikowanego hasła jest bardzo trudne, dlatego często zostaje ono zapisane na kartce, która jest przechowywana blisko komputera. W takich przypadkach istnieje wysokie ryzyko użycia tych haseł przez osoby nieuprawnione.

Co zatem można zrobić, aby podnieść swoje bezpieczeństwo w sieci? Przede wszystkim nie używać jednego hasła do kilku serwisów. Najlepiej, aby każde konto internetowe miało swoje jedno unikalne hasło. Samo hasło też powinno spełniać kilka wymagań. Kiedyś uważano, że osiem znaków to wystarczająca długość hasła. Na dzień dzisiejszy tak krótkie hasła łamie się stosunkowo szybko. Osobiście zalecam używanie haseł przynajmniej 12 znakowych (a tam, gdzie to jest możliwe minimum 16 znakowych). Hasło powinno zawierać małe i wielkie litery, cyfry oraz znaki specjalne. Przykład dobrego hasła które dość łatwo zapamiętać: L!Om!Tjjz,Ictc,ttsd,Kcs.@41

Wspaniałe, 27 znakowe hasło. Ale jak takie coś zapamiętać? To hasło to początek Pana Tadeusza:

„Litwo! Ojczyzno moja! Ty jesteś jak zdrowie,
Ile cię trzeba cenić, ten tylko się dowie,
Kto cię stracił.”

Są to pierwsze litery słów inwokacji (z zachowaniem małych i wielkich znaków) oraz znaki przestankowe. Na końcu została dodana losowa liczba, aby hasło spełniało wszystkie wymagania. Do stworzenia tego typu hasła można użyć tekstu ulubionej piosenki, wiersza czy cytatu.

Oczywiście tu może pojawić się problem – jak zapamiętać, który utwór został użyty w którym serwisie. Na szczęście nie trzeba tego pamiętać. Dobrym rozwiązaniem jest użycie jakiegoś menedżera haseł. Mnogość tego typu oprogramowania sprawia, że każdy znajdzie coś dla siebie. Wtedy generowaniem i zapamiętaniem haseł do serwisów zajmuje się właśnie taki program. Nam zostaje zapamiętać tylko jedno hasło – do samego menedżera.

Niestety nawet skomplikowane hasło nie pomoże, jeśli staniemy się ofiarą ataku socjotechnicznego (czyli na przykład sami podamy hasło złodziejowi). Na szczęście wiele serwisów można zabezpieczyć mechanizmami 2FA. Działa on w taki sposób, że logując się po raz pierwszy z nieznanego wcześniej urządzenia trzeba podać kod zabezpieczający. Na tak zabezpieczone konto dużo trudniej jest się włamać nawet znając login i hasło. Dlatego usilnie sugeruję włączenie tej opcji wszędzie, gdzie to jest możliwe.

Dodatkowe materiały związane z bezpieczeństwem w sieci można znaleźć na stronach internetowych niebezpiecznik.pl oraz sekurak.pl. Serdecznie polecam od czasu do czasu przejrzenie treści, które są tam publikowane.

W celu ułatwienia przekazu, niektóre fragmenty zostały uproszczone.

Osoby, miejsca i czas historii zostały wymyślone. Wszelkie podobieństwa do prawdziwych zdarzeń są zupełnie przypadkowe.

Autorem tekstu jest Łukasz Wojtyczka.