Od paru miesięcy nie mieliśmy informacji o większych wyciekach danych z polskich serwisów. To oczywiście nie znaczy, że ich nie było – po prostu nie zostały ujawnione. Dzisiaj nadrabiamy zaległości, ujawniając wyciek z serwisu benchmark.pl.
Wykradzione dane mają to do siebie, że prędzej czy później pojawiają się w sieci. Tym razem częściowe dane użytkowników wypłynęły w serwisie, specjalizującym się w udostępnianiu haszy haseł osobom, które lubią je łamać.
Niespodziewane odkrycie
Wczoraj otrzymaliśmy od jednego z czytelników informację o tym, że w serwisie hashes.org dostępna jest lista haszy haseł użytkowników strony benchmark.pl. Hashes.org to strona dla miłośników łamania haszy. Nie publikuje ona pełnych baz danych, a jedynie skróty haseł, umożliwiając testowanie swoich metod ich zgadywania. Faktycznie, okazało się, że od ponad miesiąca w serwisie widnieje plik opisany jako „LEAK BENCHMARK.PL”.
Już pobieżna weryfikacja pliku pozwoliła nam ocenić, że wyciek jest prawdziwy. Jak to zrobiliśmy?
MacBook-Pro:Desktop ah$ grep benchmark 7435_benchmark-pl_found_hash_algorithm_plain.txt |wc -l
369
Oznacza to, że w pliku było ponad 300 haseł zawierających słowo „benchmark”. Wiele osób używa nazw serwisów przy tworzeniu swoich haseł, co – jak widać – nie jest dobrą praktyką, chociaż pomaga nam w diagnostyce. Faktycznie, sporo haseł było zbudowanych według tej metody:
MD5 73e938bebfbf06c472a3846046df60d6:Trolbenchmark
MD5 8619ebd67a9f538dbb4ae337257a7211:benchmarkrzadzi
MD5 9268b0ca4a75ae949c5dc18020a1788a:darksidedbenchmark
MD5 946e7768c4a48e5f75019003b4540217:880623benchmark
MD5 9d04a5e81fea60430b3775f84a758beb:benchmarktadek
MD5 a7069b59eb40daa3ef9741665929788e:benchmarklipsko
MD5 aaf76e36254b387c5532cb9e7883287f:lukompbenchmark
MD5 b0dee136bc3241a516dab6f3174f0bdd:benchmarkmakarons
MD5 bc5caf20739686323d587ef798dbac8f:titeliturybenchmark
MD5 bea9ef71c124bc5399f8f7c41251289a:benchmarkArecki
MD5 ce01ab5bdd1f2bc954fa3982806985da:livinginbenchmark
MD5 d6a3c21ff5f59345aac1f5b125b90c97:cromagnonbenchmark
MD5 db19860a33c4baa6b4be815e5a1851f1:sbmnwjbenchmark
MD5 dda0807b318b911264a5084595294989:carnivorebenchmark
MD5 e045f5d482209d30a76c2c1d35300591:buncolbenchmark
MD5 e2c4718f3b1514734a56f9913fdff493:benchmark54836473
MD5 ec4a2e70e059496c983101bc6430496e:burgundbenchmark
MD5 ed1bc3e6f04cd311204032595266a0f4:pomaranczabenchmark
MD5 f4ef8389aab8569a6324cc6b23161bf6:5212191benchmark
MD5 fea4903b088ff0017b2664f3f2ae63d8:quizbenchmark
MD5 1c0ab4dc5b71c9c4e6c3cff4d5fbafee:krlikebenchmark
MD5 7e63b95ce289fec9c2852dc463e46f9d:molikebenchmark
MD5 9ff5ddc18f18f123a95f0263858a04b0:Marcin99benchmark
MD5 df936db6f742b228117c4c349b655790:artbenchmark!@
Co ciekawe, w bazie są nie tylko hashe MD5, ale także bcrypta, dużo silniejszego i bezpieczniejszego mechanizmu przechowywania haseł.
O przewadze bcrypta nad MD5
Hasła użytkowników, którzy zakładali konta przed wdrożeniem bcrypta, były zapisywane w formie skrótu MD5, łatwo dającego się dzisiaj „odgadywać”. Oto przykłady haseł, które były zapisane w MD5 i zostały zidentyfikowane:
MD5 d786e22b46deea3bc14da6c15ec4a0fc:Michaell87Michaell87
MD5 d93f4eb30ef676df494c4063973a4ff8:USSEnterpriseNCC1701
MD5 e3b2d2b3bd3f2c35aacb70cec955ac43:19intelsandybridge96
MD5 e6ab129d31eb8ecf35ad661c61e32084:barszczsosnowskiego2
MD5 eb852354a3ca6b470c35c6f2cb9b8f81:qwertyuiop1234567890
MD5 f1bf802f7de365820c3960a546daee80:[email protected]
MD5 8447399105690c6f2fd95226083ab09d:dominikdabkowski0902
MD5 f5ef11d1628e252f1d1853993c9505d6:000weareanonymous000
MD5 501e69c61de9f9bd6e24f58b699df5db:magdalenamojaniunia1
MD5 7bb69b93b1d294847cd9e9def80f8a91:gownogowno1234554321
MD5 9a936be60d2fa8039f2286cbbc57e0c0:komputronikmnbvcxzaq
MD5 042014cae70a94e753b0eea23bf987ba:KazimierzPrawdePowie
MD5 6e2565f675f4a9e78e878b1cac6aca4e:NiszczarkiWallner321
MD5 e2f7ff3cd37c58e50b0cc84d625666e9:janek-indywidualista
MD5 5f46dedc4b28de529090f86f3411a87a:kryptonimbenchmarkpl
MD5 361a32bb79265aa74327cc61edae1f5a:simpson35955501001283
MD5 8f80184efec51c140a38cde2486ad8e5:strategiaprzetrwania8
MD5 8f0d4f4a63474c8a34877b9f791c9299:testszybkoscinumerdwa
MD5 b0affa9b9b6a34b5c56c8bca7ac8bc5f:ostatnianiedziela.1993
MD5 b78698e85eae6e416b1469250ef43e2b:FanbojStokrotekBialych
MD5 1c2da01997866a3e6cc66b246979603b:zaq12wsxcvbnmqwertyuiop
MD5 0e5ac46a7c0b9e47e4bd259b656d76a5:carnage1306199813061998
MD5 0bc842268d1224e3f17b07fc92510e12:FanbojStokrotekBialych1
MD5 c363843515b03a018fdb021300642713:testszybkoscinumerjeden
MD5 5780b33b0be203d0adca82ecadc85b63:JedynyPrawdziwyWiadomoKto
MD5 72dad15b11f41665922f8b2c9f0a9710:NEEDFORSPEEDMOSTWANTED2012
MD5 f461ad4bba15eb249e08bf1c51d5cc73:konstantynopolitanczykiewiczowna
Wbrew pozorom, żadnego z tych haseł nie można nazwać „silnym” – wszystkie zawierają głównie elementy słownikowe. Ich długość nie czyni ich nie do załamania.
Z kolei to przykład złamanych haseł, zapisanych jako bcrypt:
BCRYPT $2y$10$JTbSwkBg822irmvSz1tSOuQP99pNEFf2607is6ntXNeIL1oYlNqUC:computer
BCRYPT $2y$10$KbrScaoAQiQ3V/oASWQn9OYLT7CWmir5ls3VxH2xLZ4tAJWqfWd2O:starwars
BCRYPT $2y$10$RUKDSjqXKHxEai7w2VVDneG7HXQoV2uhdKmhCimXxzC3ASThgeCyW:abcd1234
BCRYPT $2y$10$XCpGgika7GLMrhHQX5.zpepjadKTTRXGp74poymZ1TrwvXgrRWQhK:trustno1
BCRYPT $2y$10$f1TEVhNM07AqqmTlNRh1H.kM5eApN0X10UN75mUNH9lZPMjGjVltO:12345678
BCRYPT $2y$10$fqGRFenSfjbMIvnTT6z1OOyRNejpDEPh/BCwAVIIhJc4X5p7Uq7Pq:computer
BCRYPT $2y$10$v3Y0bQyilnCYYsPg9R0wQO/k/59FLUS5hF7zAgLxy7Tj.r32sIOZe:1qaz2wsx
BCRYPT $2y$10$w7ulypDZ/wVTGvMEJWhM6.P6lNEdvJ3.7ZRHfYaW3kS0o9mtJsQTS:1q2w3e4r
BCRYPT $2y$10$zv6TJvoO1pIPpPg9qwZAfeNK07x3ZbiKzI8ibHrKB2g0n3OuZ3KYa:password
BCRYPT $2y$10$/oAvbnVjqv9TgqLpogCCiesEiVSx01or3rpHeQnzl5A2TkZ0pQleO:123456789
BCRYPT $2y$10$/iKR8ZrFmnRrDcf3MjExJ.iNOUnVulbH/jdf5jgSn77LG4AqX4IqO:1234567890
BCRYPT $2y$10$Fz5rEqVEMZehFPglbi3yHu7ppLyM18M7qrEE1lTkw4g87.4J9ys/C:1q2w3e4r5t
BCRYPT $2y$10$HWk273seVF7Jknpl9571LO9YS.O9hSWuLAzHSvkYD8w3WB01VpaQO:qwertyuiop
Jak widać, w tej części bazy padły tylko najprostsze hasła. Administratorze, trzymaj hasła w bcrypcie. Użytkowniku, używaj unikatowych, losowych haseł przechowywanych z menedżerze haseł albo układaj frazy z 3-4 dłuższych słów.
Co wyciekło
Wygląda na to, że obecnie upublicznione zostały jedynie hasze haseł ponad 180 tysięcy użytkowników. Na razie nigdzie nie natrafiliśmy na szerszy zbiór danych zawierający na przykład loginy czy adresy e-mail. Należy jednak przypuszczać, że taki zbiór znajduje się w rękach przestępców – mało kto kradnie same hasze haseł.
Zgłoszenie i reakcja benchmark.pl
Gdy tylko zorientowaliśmy się, że baza jest prawdziwa, skorzystaliśmy z formularza kontaktowego na stronie benchmark.pl. Pierwszą odpowiedź otrzymaliśmy w ciągu kilkudziesięciu minut, co jest bardzo dobrym wynikiem.
Oczywiście trudno chwalić dopuszczenie do wycieku danych czy fakt, że wycieku nie zidentyfikowano ani w momencie jego wystąpienia, ani przez co najmniej miesiąc, gdy był on już publicznie dostępny. Warto jednak napisać, że cała komunikacja przebiegała bardzo sprawnie i osoby, które przejęły obsługę incydentu, postępowały tak, że można podawać ten proces za wzór reakcji na podobne zgłoszenie. Szybko otrzymaliśmy potwierdzenie, że baza jest prawdziwa oraz harmonogram działań planowanych na najbliższą dobę. Dowiedzieliśmy się także, że faktycznie firma wprowadziła haszowanie haseł za pomocą funkcji bcrypt około dwa lata temu i każdy użytkownik, który w tym czasie logował się do serwisu, miał hasło przechowywane w ten bezpieczniejszy sposób. To pokazuje, jak współdziałanie rozsądnego administratora (bcrypt to dobry wybór) i rozsądnych użytkowników (hasła trudniejsze niż 12345678 do tej pory nie zostały złamane) znacząco zwiększa bezpieczeństwo danych nawet w przypadku incydentu.
Co robić
Jeśli mieliście konto na benchmark.pl i użyliście tam tego samego hasła, co gdzie indziej, czas to hasło zmienić – ale nie na jedno, a na wiele różnych. Pomoże w tym menedżer haseł.
Jeśli pracujecie w firmie, zatrudniającej co najmniej 100 osób, możecie dostać od nas za darmo wykład o bezpieczeństwie haseł (lub dowolny inny z 30 pozostałych wykładów o różnych aspektach bezpieczeństwa). Zgłoszenia przyjmujemy tylko do 7 września!
Jeśli chcecie sami dowiedzieć się więcej o bezpieczeństwie poczty, używaniu haseł czy korzystaniu z dwuskładnikowego uwierzytelnienia, to polecamy nasz kurs wideo Bezpieczeństwo dla Każdego.
Komentarze
No jeden email wyciekł na pewno :D
MD5 f1bf802f7de365820c3960a546daee80:[email protected]
Email na gmail to zaden email.
znany haker i bomber VEGETA_SSJ mówił coś o bazie 180k rekordów na początku wakacji…
Wydaje mi się, że benchmark.pl powinien powoli rozważyć podniesienie bcrypt cost factor z 10 na wyższy.
Polecanie bcrypta jest już nieaktualne. Przynajmniej w PHP, w którym pracuję, poleca się obecnie Argon2 jako mocniejsze.
A nie wystarczy dobrze posolić zwykłej md5?
Nie – sól w MD5 nie niweluje wszystkich wad tego algorytmu, szczególnie, że nie jest tajna. Celem jest jedynie wprowadzenie zmienności hasha w ramach tego samego hasła. Bcrypt pozwala na regulowanie złożoności obliczeniowej potrzebnej do wyliczenia hasha, co ma w założeniu sprawić, że algorytm stanie się future ready. Zresztą to jest również problem z nim związany – np. musiałem kiedyś zrezygnować z tej metody w przypadku aplikacji na telefon, bo urządzenia zwyczajnie nie wyrabiały się ze sprawdzeniem pojedynczego hasła.
Czyli nie wiadomo jak doszło do penetracji.Co dalej .Format c: czy instalacji na nowo Całego serwisu.
I przywrócić z backupu, z błędami umożliwiającymi włamanie?
Co ciekawe ich forum nadal nie używa https :D Nawet logując się jest http
Niektóre hasła są super, takie z jajem :).
Na przykład „magdalenamojaniunia”, „KazimierzPrawdePowie”, „Janek-indywidualista”, „strategiaprzetrwania”.
Fajne, trochę się pośmiałem :).
Mi się podobało „konstantynopolitanczykiewiczowna”.
Ciekawe, czy jest też „hottentottenstottertrottelmutterbeutelrattelattengitterkofferattentater”?
Czy usuwali starsze hasla i konta niz kilka lat? Zastanawiam sie czy jest tam tez moje haslo i mail. Przestalem tam zagladac i pisac komentarze gdy okazalo sie, ze admin stosuje cenzure i usuwa komentarze ktore mu sie nie zgadzaja z jego swiatopogladem na temat piractwa komputerowego. Prawda zwykle lezy posrodku, ale adminowi pasuje tylko jego prawda i stosuje dosyc drastyczne srodki cenzury miast podjac sie merytorycznej dyskusji.
Po prostu nie bardzo jest jak zaktualizować hashe starych kont. Użytkownik musi się zalogować, sprawdza się hash MD5 i wtedy nadpisuje się stary hash nowym bcrypt.
Wystarczy po x czasu tym co się nie logują wymuszać zmianę hasła i tym samym zaraz wcześniej te md5. Dla chcącego nic trudnego ;)
Można zmienić hasze też tym, którzy się logują – wystarczy hasz MD5 „zapakować” w bcrypta. Tu opis: https://dropbox.tech/security/how-dropbox-securely-stores-your-passwords
mamy 31.08 czyli doba spokojnie minęła, a ja nadal mogłem się zalogować na stare hasło w MD5, które wyciekło. Chociaż nic ciekawego na koncie tam nie ma, to nie przyszło im do głowy zresetować wszystkie hasła, które wyciekły?