22 października 2019

Trudne hasła, wycieki... no i zabezpieczenia

W sieci można znaleźć listę ponad dwóch miliardów logiów i haseł, które na przestrzeni lat wyciekły z kolejnych włamań. Brzmi to przede wszystkim jak ciekawostka dla freaków nieruszających się sprzed klawiatury, ale tak nie jest. Ma to de facto spore implikacje dla większości organizacji i powoduje, że coś z tym trzeba zrobić.


Ponad miliard haseł...Liczba ta już sama z siebie jest przytłaczająca, ale jeszcze większe wrażenie robi jej przeglądanie. Dlaczego jest to ważne – dlatego by uzmysłowić sobie jak trudno jest wymyślić coś nowego, trudnego, unikalnego. Pamiętajmy bowiem, że przestępcy przede wszystkim starają się odgadnąć hasło a trudno im pomóc lepiej niż udostępniając „gotowce”, którymi będą mogli zasilić swoje silniki. Albo też porównać już posiadane bazy skradzionych loginów i hashy (jeżeli te nie będą posolone).

Najprostsze hasła jakie wyciekają to faktycznie przysłowiowe „123456”, „qwerty” czy „password” ale to te „trudne” przede wszystkim zasilają listę. Pojawia się więc szereg pytań co z tym zrobić. Czy moje dane wyciekły? Czy hasła, które właśnie wymyśliłem nie są przypadkiem już dostępne dla hakerów? Jak wymusić stosowanie silnych haseł? To są pytania na które pomogę odpowiedzieć

Czy moje dane wyciekły? 
Raczej tak ;-) Biorąc pod uwagę ilość „mega-wycieków” należy założyć, że Twój login i przynajmniej hash hasła już wyciekł. Bardzo łatwo jest to zresztą sprawdzić samodzielnie. Od lat serwis https://haveibeenpwned.com/ pozwala na weryfikację czy staliśmy się celem ataku. Alternatywną bazę stanowi https://sec.hpi.de/ilc/
W momencie pisania artykułu pierwszy posiadał listę ponad 8 506 000 000 haseł (często powtarzających się) drugi ponad 9 833 000 000 (jak wcześniej, ale mam wrażenie, że lista naprawdę jest trochę szersza). (interesujący wydaje się też https://monitor.firefox.com/ ale tego jeszcze dłużej nie testowałem)
Co robić jeżeli Twoje konto jest na liście – zmienić hasło jak najszybciej i dla każdego serwisu webowego korzystać z osobnego hasła!!!!

Czy hasła, które w tym momencie wymyśliłem nie są przypadkiem już dostępne dla hakerów?
Dzięki temu, że są takie listy jest już możliwość weryfikacji. Zdecydowanie NIE polecam szukać w Internecie czy hasła są znane. Można jednak pokusić się o zainstalowanie wtyczki Password Checkup dla Chrome (wiem, wiem – znowu Google, ale przecież oni i tak już pewnie mają twoje hasła jeżeli jesteś użytkownikiem gmail czy Android). Może z czasem współpraca HaveIBeenPwned z Fundacją Mozilla również zaowocuje tego typu rozwiązaniem?


Jak wymusić stosowanie silnych haseł?
Żeby hasła były dobre:
    1. powinny być unikalne dla każdego serwisu z którego korzystasz (nigdy nie wiesz który następny ujawni Twoje dane)
    2. powinny być trudne do odgadnięcia (dłueeegie, zawierające duże i małe litery, cyfry, znaki specjalne)
    3. trzeba je jakoś zapamiętać
    4. najlepiej by były szerzej nieznane przestępcom

Dlatego też jeżeli już musimy korzystać z haseł to warto zaprzyjaźnić się z menedżerami haseł typu 1Password czy Keepass. Dobrze integrują się one z powłoką systemu operacyjnego – można łatwo przenosić hasła we właściwe miejsca no i przede wszystkim – naprawdę w każdym serwisie możemy mieć inne – unikalne, specjalnie wygenerowane przez system hasło.
Warto też dodać, że pierwszy z programów, ma nawet apkę na komórkę i pozwala synchronizować hasła w (fuj ;-)  ) chmurze, dzięki czemu zawsze mamy dostęp do swoich haseł. Nie jestem może jakimś super fanem tego typu funkcjonalności, ale warto o tym wiedzieć, przynajmniej w przypadku gdy nie mamy tam jakiś naprawdę wrażliwych haseł.
Programy typu Keepass czy 1Password potrafią bardzo ułatwić życie. Pamiętajmy jednak że parę haseł trzeba jednak będzie zapamiętać:
- hasło odszyfrowujące twardy dysk
- hasło do komputera
- hasło do menadżera haseł
- hasło do skrzynki e-mail (tej na którą przychodzą „resety haseł” wszystkich naszych web aplikacji)
Te hasła muszą być długie, trudne i przechowywane wyłącznie w głowie!

Dalej pojawia się kolejna opcja. Budując własne web aplikacje możemy od razu troszczyć się by nie było w nich skompromitowanych (łatwych do odgadnięcia haseł). HaveIBeenPwned udostępnia API, które weryfikuje hash nowo-wprowadzanych haseł z tym co już znajduje się w bazach. Jest zresztą już gotowa cała kolekcja modułów do różnych popularnych aplikacji  (https://haveibeenpwned.com/API/Consumers). A Microsoft  wbudował już tego typu mechanizmy w swoje usługi chmurowe Azure i nic tylko z nich korzystać (https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Azure-AD-Password-Protection-is-now-generally-available/ba-p/377487 )

Inne rozwiązanie stało się możliwe dzięki brytyjskiemu NCSC. Udostępnili oni otrzymaną z HaveIBeenPwned listę 100 000 najbardziej popularnych haseł (https://www.ncsc.gov.uk/blog-post/passwords-passwords-everywhere). Nic teraz nie stoi na przeszkodzie by zasilić nimi własny serwer LDAP (np. wykorzystując wskazówki z https://engineeringblog.yelp.com/2018/04/ad-password-blacklisting.html). Tym samym możemy mieć pewność, że nasi pracownicy nie będą stosować trywialnych haseł.

Można też samemu sprawdzać bezpieczeństwo każdego z naszych haseł weryfikując czy ono już kiedyś wyciekło (https://haveibeenpwned.com/Passwords ). Troy Hunt – twórca Have I Been Pwned zapewnia, że nie jest ono nigdzie zapamiętywane a weryfikowany jest tylko ich skrót, ale czort to wie :-) Bezpieczniej już chyba byłoby ściągnąć z podanej wyżej strony pełną listę skrótów i samemu to sobie sprawdzić.

Co jeszcze mogę zrobić by mieć bezpieczne hasła?
Warto też pamiętać o tym, że hasło nie jest jedynym sposobem jak można potwierdzać swoją uprawnienia. Wspomnę o dwóch rozwiązaniach – kluczach Universal 2nd Factor - U2F (typu YubiKey) oraz generatorach haseł jednorazowych. Tutaj możemy korzystać nie tylko z fizycznych urządzeń, ale również tokenów generowanych w aplikacjach takich jak Google Authenticator czy LastPass.
Dodam, że hasło w sms nie jest traktowane jako bezpieczne (np. https://pages.nist.gov/800-63-3/sp800-63b.html ) ze względu na coraz częstsze ataki SIM swap polegające na oszukiwaniu operatorów komórkowych i wyrabianiu duplikatów kart SIM

A jak często zmieniać hasła?
Kiedyś prawo w PL wymagało by zmieniać hasła chroniące dane osobowe co 30 dni. Teraz już ten  archaiczny przepis przestał obowiązywać i trzeba samodzielnie kombinować biorąc pod uwagę analizę ryzyka. Pewne hasła – te najbardziej znaczące dla naszego biznesu (np. hasło do firmowego profilu społecznościowego czy CMS’ów firmowych portali) warto zmieniać raczej często, choć najlepiej to mieć je chronione przez U2F czy hasło jednorazowe. Hasła do stacji roboczych czy maila również co jakiś czas warto zmienić ale dla drobnych web aplikacji nieprzetwarzających niczego szczególnego naprawdę nie warto się trudzić. Ale tu właśnie przydaje się umiejętność analizy ryzyka i przewidywania co tak naprawdę może się stać.

Na pewno jednak warto bezzwłocznie zmienić hasło, gdy ono wypłynie ;-) Na stronie  https://haveibeenpwned.com/  można sobie ustawić powiadomienie każdorazowo gdy kolejny usługodawca "nie dochowa należytej staranności" tfu - "dołożył wszelkich starań zabezpieczając nasze dane zgodnie ze standardami rynkowymi", które okazały się niedoskonałe.

Brak komentarzy:

Publikowanie komentarza

Dzień dobry. Komentarze na tym forum są moderowane