21:01
21/3/2019

Internet właśnie obiega informacja, że z Facebooka nastąpił “wyciek haseł 600 milionów użytkowników” i że “przez kilka lat były one udostępnione na jednym serwerów w plain text”, czyli bez szyfrowania. Nie jest to do końca prawda…

600 milionów haseł użytkowników Facebooka bez szyfrowania

Faktycznie, hasła 600 milionów użytkowników znalazły się na serwerze i nie były zaszyfrowane. Ale serwer nie był publicznie dostępny — maszyna znajdowała się w wewnętrznej sieci Facebooka i dostęp do niej od 2012 roku mieli wyłącznie pracownicy Facebooka. Jedyne 20 000 pracowników Facebooka…

Facebook twierdzi, że to przeoczenie i że po weryfikacji historii dostępu do tych danych, nic nie wskazuje, aby jakiś z pracowników ich nadużył. Wpadka? Tak. Potężna! Ale wszystko wskazuje na to, że nie tak groźna jak chcieliby niektórzy opisujący to zdarzenie w mediach. Wstydliwa za to bardzo.

Facebook nie pierwszy i nie ostatni

Przypadki tego typu się zdarzają. Nie chcę tu usprawiedliwiać Facebooka, ale jak już kiedyś wspominałem:

każdy kto pracował przy tworzeniu aplikacji webowej wie, jak łatwo o wpadkę tego typu. Wystarczy podczas logowania “załączyć” niepotrzebnie tryb DEBUG i już w logi lecą rzeczy, które nie powinny i — co równie często spotykane — o takiej pomyłce zespół zazwyczaj dowiaduje się przez przypadek i pod długim czasie. Sam znam historię, jak to jeden z polskich banków przesyłał miesiącami do swojego partnera pełne dane (logi z transakcji kartowych) zupełnie niepotrzebnie. Ot, pomyłka.

Facebook zresztą nie jest pierwszą firmą, która popełniła taki błąd. Rok temu pisałem o tym, że z Twittera i Githuba wyciekły Wasze hasła, ale nie ma powodu do paniki“. Obie firmy też przechowywały hasła swoich użytkowników jawnym tekstem. I też w sieci wewnętrznej. Co ciekawe, Twitter wykrył to przeoczenie dwa dni po tym jak do wpadki przyznał się GitHub (chyba zainspirowany wpadką GitHuba). Aż dziwne, że wtedy nikt w Facebooku nie zrobił facepalma i nie powiedział, “Marek, my mamy ten sam problem“. A może powiedział?

Incydent przeciekł do mediów dzięki anonimowemu pracownikowi Facebooka

Facebook o incydencie poinformował dziś w nocie prasowej o przewrotnym tytule “Keeping passwords secure“. Ale pewnie by tego nie zrobił, gdyby nie artykuł Briana Krebsa, z którym skontaktował się jeden z pracowników Facebooka. Pracownik ten, postanowił ujawnić problem dziennikarzowi, bo zdenerwował go dział prawny Facebooka, który bagatelizował wyniki wewnętrznego śledztwa mającego na celu ustalenie od jak dawna i ile faktycznie haseł znajdowało się na wewnętrznym serwerze.

Na marginesie, śledztwo rozpoczęło się w styczniu 2019, po tym jak jeden z programistów Facebooka zauważył, że kod jednej z wewnętrznych aplikacji przez przypadek loguje hasła użytkowników. Od stycznia do marca to sporo czasu na dość prostą analizę logów. Nic dziwnego, że zapewne wiedzący-już-wszystko-i-od-dawna inżynierzy z Facebooka, widząc opóźniające informowanie użytkowników działania prawników Facebooka, zdecydowali się na “kontrolowany wyciek”.

Jeśli jesteś “ofiarą” tego błędu i Twoje hasło było przechowywane w rozszyfrowanej formie, Facebook da ci znać

Jak stwierdził Facebook:

“We estimate that we will notify hundreds of millions of Facebook Lite users, tens of millions of other Facebook users, and tens of thousands of Instagram users. “

Ale nawet jeśli dostaniecie takiego maila, to nie ma powodu do obaw. Bo jeśli jesteście stałymi czytelnikami Niebezpiecznika, to zapewne korzystacie z managera haseł i do każdego z serwisów mieliście różne hasła, a na samym Facebooku od dawna korzystacie nie tylko z logowania samym hasłem, ale także z dwuetapowego uwierzytelnienia i to realizowanego przy pomocy sprzętowego klucza U2F, co gwarantuje, że nawet jeśli ktoś pozna Wasze hasło, to nie zaloguje się nim na Wasze konto. Bo nie ma Waszego klucza U2F.

Więcej o tym czym są i dlaczego warto korzystać ze sprzętowych kluczy U2F, a nie haseł przesyłanych przez SMS na smartfona lub generowanych w aplikacji, pisaliśmy w artykule pt. Każdy użytkownik GMaila powinien zapoznać się z tym atakiem. Dlaczego to ważne, tłumaczymy też na naszych wykładach zarówno dla firm jak i dla osób prywatnych. Wpadnijcie na jeden z nich, to poznacie jeszcze więcej prostych, praktycznych i skutecznych porad dotyczących tego jak być bezpieczniejszym w internecie. Listę miast i terminy wykładów znajdziecie na tej stronie.

A jeśli kogoś z Was mimo wszystko oburza to, że pracownik Facebooka widział Wasze hasło, to miejcie świadomość, że część z pracowników Facebooka nawet jeśli nie miałaby dostępu do Waszego hasła to i tak mogłaby (i wciąż może!) podglądać zawartość Waszego konta i czytać (co najmniej niektóre) wiadomości na Messengerze. Tak, pracownicy serwisów, z usług których korzystacie, mają wgląd w Wasze dane, chyba że mówimy o usługach zbudowanych na podstawie zasady “zero knowledge proof” lub szyfrowanych end-to-end komunikatorów (np. Signal) — wtedy pracownicy mają dostęp do bardzo niewielu danych.

PS. Polecam lekturę tego artykułu sprzed roku, jeśli U2F nic Wam nie mówi albo nagle poczuliście, że chcielibyście w końcu poprawnie ogarnąć swoje hasła do różnych serwisów.

Przeczytaj także:

39 komentarzy

Dodaj komentarz
  1. tak tak .. baju baju … od kiedy nawet w trybie “debug”hasła logowane sa do plikow w formie nie szyfrowanej ?

    i Wy jako niebezpiecznik nie potępiacie takiego zachowania? Ja jako developer pracujacy przy wielu apkach, nie widze ani jednego powodu dla ktorego mozna by bylo logować nieszyfrowane hasla. To jest ich zabieg specjalny i dobrze o tym wiedzą. Przeciez nie mogli by sobie pozwolic na trzymanie w bazie tylko hasel szyforwanych przy pomocy np. bcrypta.

    Dziwie się ze tego nie potępiacie z cała surowością tylko mówicie o wstydliwej wpadce.!! Shame on you!

    • Ależ “potępiamy”, ale z dozą wyrozumiałości. Bo ten incydent choć wygląda strasznie, to nic nie wskazuje na to, że to był celowy “wrong doing”. Facebook ma za uszami sporo, ale w innych miejscach. A co do tego, że Ty sobie nie wyobrażasz jak ktoś może taki błąd strzelić, to mam propozycję — podaj namiar na jakieś swoje repo, albo udostępnij źródła któregoś ze swoich projektów. Popatrzymy, co tam ciekawego. Czytelnicy popatrzą. I pewnie coś się znajdzie. Bo zawsze się coś znajduje, co dla jednych jest “omg jak on to mógł” a dla innych jest po prostu przeoczeniem. Zgodnie z badaniem Carnegie Mellon, przeciętny programista robi ~30 błędów na 1k LOC… także tak…

    • Ktoś mógł dodać logowanie całego requesta z hasłem i nikt nie skumał, że to głupie. Możliwości jest wiele.

    • Piotr .. z chęcią podam już niedługo (kończę swoj duży projekt) i nie ma absolutnie problemu z tym zebym oddał go w ręce testujących tym bardziej że to będzie projekt open source (framework).

      Co się tyczy moich publicznych repo to niestety ale nie mam innych, gdyż wszystkie projekty przy których pracowałem nie są publiczne. Odezwij się do mnie na podanego maila to napiszę Wam przy jakim portalu pracowałem jeszcze niedawno – a który stoi na moim autorkim frameworku – tylko powiem ze to najwiekszy portal że tak powiem z branży rozrywkowej ;)

      Myślę iz będziecie go mogli sobie potestować :D

      Co się natomiast tyczy tego wycieku to ja nie wierzę w to że te hasła były przypadkowo zalogowane :)
      Z mojego doświaczenia wynika, że takie rzeczy jak hasła plain textem logowane sa w konkretnym celu – planowanym przez wlascicieli lub planowanych przez samym programistow prywatnie. Z racji struktury fb i ich dev teamu nie wierze zatem w “samowolke programistow” ale realizacje potrzebnej funkcji :)

  2. Zadam pytanie – po co FB trzymał hasła użytkowników FB w plain text od 2012r. – jaki był tego konkretny cel ? Czyżby byli na tyle małym portalem, że programiści nie ogarniają co najmniej MD5 lub lepiej – MD5crypt’a ?

    • Nie jest znany powód. Może pomyłka taka jak w GitHubie, a może np. logowali całość żądań POST i potem się zorientowali, że w body było hasło, bo nie analiza tego żądania była celem “wewnętrznej aplikacji”? Gdyby programista ją piszący chciał/potrzebował logować hasła, pewnie doskonale wiedziałby jak należy się z nimi obchodzić. Co facebook na produkcji robi z hasłami jest ładnie opisane w podlinkowanej w artykule nocie prasowej. I akurat facebook robi w tym obszarze dużo dobra (cross-check z leakami, wykrywanie anomalii, itp.).

    • MD5, MD5Crypt? Srsly? Poczytaj trochę, hasło do google to “scrypt”.

  3. Jakoś na początku roku po doniesieniach o różnych wyciekach zamówiłem w końcu parę YubiKeys. Są podłączone do Facebooka. Dziękuję Pan Niebezpiecznik!

    • To jeszcze telefon odepnij, żeby Ci nikt sim hijacka nie zrobił. I wtedy będzie full paranoja mode on ;)

    • Ja w ramach paranoi rozmawiałem już z operatorem na temat drugiego sima używanego tylko do autoryzacji w bankach, o numerze, którego nikt poza bankami znać nie będzie. To chyba trochę utrudni :) Zaproponowali 5 CBLN/miesiąc. Mój Andrut łyka dwa simy na śniadanie. Chyba się skuszę :D

    • @Marek: kupiłeś dwa klucze, żeby zabezpieczyć tylko facebooka? Które dokładnie wybrałeś? Jeśli dobrze pamiętam, to przy włączaniu weryfikacji dwuetapowej na facebooku trzeba było skorzystać najpierw z opcji sms albo aplikacji authenticator, a dopiero później można było przypiąć klucz. Mam jeden Yubikey, ale jako opcja zapasowa są wydrukowane kody.
      @juzek: co oznacza “rozmawiałem już z operatorem na temat drugiego sima używanego tylko do autoryzacji w bankach, o numerze, którego nikt poza bankami znać nie będzie”? Pracownicy operatora i pracownicy banku mogą znać ten numer. A może i z twojego dual sima jakaś aplikacja z niego skorzysta? Jeśli chodzi o to ostatnie to nie wiem, nie znam się. Trzeba rozmawiać z operatorem o takich sprawach? Również dobrze można kupić starter gdziekolwiek (jak masz paranoję to tam, gdzie nikt cię nie zna) i aktywować/zarejestrować numer w domu, np. za pomocą smsa (z drugiej karty już aktywowanej) albo przez Internet.

    • @mic Nie tylko facebooka, najbardziej mi zależało na zabezpieczeniu google drive i paru innych serwisów. Na facebooku w sumie najmniej mi zależy, ale z drugiej strony jakby ktoś mi tam przejął konto, to mógłby łapać na phishing moich znajomych, więc 2fa jest obowiązkowo. Mam 2x Yubi5. I tak, kody zostały jako zapasowa opcja. Z perspektywy to faktycznie chyba jeden klucz by wystarczył.

  4. FB (i inne portale) mają głęboko gdzieś jak skomplikowane hasło sobie ustawisz i czy użyjesz do tego menadżera haseł. Zapisują wasze hasło w plain text i udostępniają komu chcą (czytaj temu kto chce mieć dostęp do naszych danych i nie robi tego na podstawie nakazów sądowych). Co z tego, że pracownicy FB mogą czytać nasze wiadomości. Jako portal pracownicy powinni mieć możliwość kontrolowania treści, ale już jawne walenie w człona, że hasła są silnie haszowane, solone i nad każdym z osobna ksiądz z kropidłem się pochylił to kpina.

    • Myślisz, że ci, którzy “nie potrzebują nakazów” potrzebują haseł do logowania? :D

    • Ułatwia im to znacznie życie. Nie muszą o nic oficjalnie prosić. Dodatkowo jeśli ktoś używa tego samego hasła w innych serwisach to co mamy?

  5. @wspominałem:
    tak jest jak robią to tzw devopsi, u nas nie ma możliwości przeniesienia logowania czy trybu debug z dev na produkcję bo za infrastrukturę i konfigurację odpowiadają admini a nie programiści i konfiguracja jest spójna dla każdego typu środowisk oraz nadpisywane są niektóre ustawienia możliwe do wymuszenia z poziomu aplikacji.

  6. Gdyby faceook miał rtyb debug – to logi by im puchły w terabajtach na sekundę…

  7. To już kolejny artykuł, w którym wspominacie o kluczu U2F. Chętnie bym się w taki wyposażył, natomiast ciągle nie jestem w stanie załapać różnicy między YubiKey a Security Key. Planujecie może dodać jakiś artykuł, gdzie wprost zaproponujecie w jaki zestaw kluczy U2F warto się zaopatrzyć?

    • U2F to standard. Producentów jest wiele m.in. yubico, feitian. Nazwy różne: niektórzy nazywają to kluczem (security key) inni tokenem.

    • Również chętnie bym kupił klucz ale nadal powstrzymuje mnie cena, a konkretnie fakt że za tą cenę ochronię niestety raptem 2 lub 3 miejsca bo reszta i tak nie obsługuje U2F więc koniec końców jakoś się nie zebrałem do zakupów. Swoją drogą wcale nie łatwo to kupić w PL (nawet z Amazonu nie chcą przysłać yubikey)

    • Ja kupiłem klucz (najtańszy) na oficjalnej stronie yubikey (czas oczekiwania na wysyłkę był 3 tygodnie). Ze względu na to, że wysyłka trwała nieco dłużej, to dostałem model z NFC i zniżkę 20% na kolejne zakupy. Wysyłka ze Szwecji we wtorek, klucz dostarczony pocztą w czwartek. Jeśli w przyszłości będę zamawiał klucz to też tylko przez oficjalny sklep, bo w przypadku innych modeli termin wysyłki jest niższy, a i cena z wysyłką często niższa niż w polskich sklepach.

    • Jesli ktoś nie potrzebuje Yubi konkretnie to za niecałe $8 na amazonie są dostepne klucze USB (w hurcie za 5.5 nawet). Jak ktoś chce NFC to za jakis $15 mozna wyszarpać. Yubi jest bardzo drogi w porównaniu z innymi producentami. Dodatkowo poza Face i gmailem dla przeciętnego suwerena nie ma za bardzo gdzie go użyć. na pytanie do mojego operatora poczty czy zamierzają wspierać U2F zrobili wielkie oczy. Bank podobnie, woli bylejakość nad kryptografię. Jakoś to się nie przyjmuje tak szybko jak bysmy chcieli.

      Denerwuje mnie jednak że nie ma tanich kluczy Bluetooth co by mi się bardzo przydało. Pojawiły się jednak jakieś DYI opare o proste mikrokontrolery wic token buletooth będzie można w domu sobie zrobić lutownicą a o klucz martwić się samodzielnie co czasem jest rosądniejsze niż wierzyć chińczykom.

    • Sebo, mam nadzieje, że standard Web Authentication zatwierdzony przez W3C coś w tym temacie zmieni.

    • @Observer, nic nie zmieni, zdecydowana większość firm nie będzie inwestować w infrastrukturę niezbędną kilku nerdom. Przecięny misio z ulicy jak straci konto mailowe to nic się nie stanie. I takich sa miliardy. Nie spodziewam się żeby jakikolwiek dyrektor banku w najbiższej przyszłosci przestał pierdzieć w stołek tylko podjął decyzję o wprowadzeniu U2F. Za duze ryzyko utraty kasy na ratę za jacht a zysków i tak ani on ani nad nim nie pojmują o co chodzi, za to straty będą policzalne.

      Połowa spartfonów nie ma USB OTG więc nie da się używać tagów na telefonie. A znowu te kilka które mają NFC ma spore kłopoty z działaniem ze, zgaduje, idiotycznego API do NFC i żałosnych implementacji. Nie jesteśmy gotowi i raczej nie będziemy na U2F, to ciągle tylko gadget i niewiele to zmieni.

      Dlatego zamiast inwestować w Yubi za 200zł lepiej wydać 3 dychy za jakiś najtańszy i używać w tym promilu miejsc gdzie można …

  8. dlaczego dodając jeden, dowolny znak nadmiarowy do hasła na FB mogę się wciąż zalogować do FB?

    • Bo to przy takiej skali lepsza strategia i UX niż zalewanie supportu ticketami kiedy zrobiło się literówkę w haśle albo nie wyłączyło się capsa :)

    • Pytałem bardziej jak to technicznie jest zrealizowane w FB? Ewentualnie jakie są możliwości aby coś takiego uzyskać?

    • Sprawdzasz całe hasło i gdy nie pasuje to sprawdzasz krótsze o 1 znak.

  9. @Piotr 2019.03.21 23:22
    Nie będę reklamował, ale na stronie yubico.com da się znaleźć Polskich “autoryzowanych odsprzedawców”. Ja u jednego z nich (tego z literką n w nazwie) kupiłem Yubikey 5 NFC (narazie jeden, bo to jest drogie jak diabli). Długo czekałem zanim w ogóle był dostępny do kupienia, wysłałem chyba ze 4 maile i żadnej odpowiedzi nie dostałem, ale po miesiącu był już dostępny i po zamówieniu przyszedł na następny dzień.

  10. MD5… Dobre :D

  11. Jeśli tylko szyfruja hasła to moga je odszyfrować i dopasować odpowiednim regexem. Jeśli dodatkowo je hashuja to tworzą dodatkowe hashe przy rejestracji z dodatkowymi znakami.

  12. P. Konieczny sam ma fejsika i regularnie na nim publikuje, wiec to tylko ‘niewielka wpadka’. Fejsik jest dobry dla nas.

    • I jest całkowicie świadomy tego co publikuje zarówno na publicznym jak i niepublicznym poziomie oraz tego jak korzysta z aplikacji i do czego ma ona dostęp. Słowo klucz: świadomość. A teraz pewnie zejdziesz na zawał jak Ci napiszę, że włączyłem sobie – świadomie – profilowanie w reklamach miesiąc temu i jestem z tego zadowolony.

    • A wazniak od 15 lat nie widzial w sieci zadnej reklamy. I kto ma lepiej?

  13. Ja czekam aż ktoś zamknie facebooka :P

  14. W Allegro od początku (i nadal) są trzymane w plain-text i jest to info z pierwszej ręki. Kiedyś kilkaset ludzi miało dostęp, teraz kilkanaście. Nie sądzę, że tam ktoś zrobi “facepalm” po tym artykule.

  15. zdecentalizowane socialmedia !

  16. A czy allegro już wprowadziło szyfrowanie haseł czy nadal są tekstowe?

  17. Nie każdy mnie zna ale jestem dość znanym profilerem cebulki i sprzedawcą kont mail:pass. 2 etapowe uwierzytelnianie również da się ominąć…. Chcecie się zabezpieczyć przede mną nie cykajcie zdjęć nago + nie słuchajcie głupot. Inaczej prędzej czy później one pojawią się w sieci.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: