Gigantyczna wpadka Cloudflare – wyciekała zawartość szyfrowanych połączeń

dodał 24 lutego 2017 o 11:03 w kategorii Krypto, Wpadki  z tagami:
Gigantyczna wpadka Cloudflare – wyciekała zawartość szyfrowanych połączeń

Na skutek błędu na serwerach Cloudflare potrafiły one w określonych warunkach w odpowiedzi dla klienta serwować takie dane jak hasła, tokeny czy inne poufne informacje należące do zupełnie innych serwisów. Takie odpowiedzi indeksował m.in. Google.

Wiadomość o kolizji SHA-1 została zupełnie przyćmiona informacją o fatalnym błędzie Cloudflare. Błędzie, który powodował ujawnianie najbardziej poufnych danych potencjalnie z każdej strony korzystającej z Cloudflare, którego skutki mogły być indeksowane przez wyszukiwarki ( i były!).

Odkrycie

Kilka dni temu zwróciliśmy uwagę na niepokojącego tweeta Tavisa Ormandy z zespołu Google Project Zero

Tavis znany jest z odkrywania bardzo poważnych błędów w zupełnie nieoczekiwanych miejscach. Tym razem szukał materiału do testów – i najwyraźniej szukał go w Google. W pewnym momencie natrafił na dziwne dane, które okazały się być zindeksowanymi przez Google fragmentami pamięci serwerów brzegowych Cloudflare. Cloudflare (z którego usług także my korzystamy) jest chyba największym „serwerem proxy” internetu. Za pośrednictwem jego serwerów przesyłana jest spora część internetowego ruchu milionów stron na całym świecie. Znalezisko było więc bardziej niż niepokojące.

Zespół Google w krótkim czasie odkrył, że na skutek błędu po stronie Cloudflare czasem jego serwery oprócz strony żądanej przez przeglądarkę serwowały także „śmieci” – pozornie przypadkowe dane. Niestety te „przypadkowe dane” okazały się:

  • pełnymi sesjami aplikacji Ubera, FitBit czy portalu randkowego OKCupid (i potencjalnie milionów innych stron),
  • kluczami API czy tokenami OAuth,
  • hasłami zapisanymi otwartym tekstem,
  • i wszystkimi innymi danymi przesyłanymi za pomocą żądań HTTPS do serwerów obsługiwanych przez Cloudflare.
Przykład ujawnionych danych

Przykład ujawnionych danych

Reakcja

Google natychmiast powiadomiło Cloudflare i obie firmy wspólnie rozpoczęły prace nad usunięcie przyczyn i skutków. Cloudflare w ciągu kilku godzin usunęło przyczyny wycieku a około tygodnia trwało szacowanie jego rozmiaru i usuwanie śladów z największych wyszukiwarek. Zarówno Cloudflare jak i Google opublikowały dość szczegółowe opisy podejmowanych czynności – polecamy lekturę (choć trudno oprzeć się wrażeniu, że Cludflare trochę minimalizuje skutki incydentu w swoim opisie).

Strony zindeksowane przez największe wyszukiwarki zostały usunięte – lecz ujawniona lista wyszukiwarek współpracujących w tym zadaniu nie obejmuje np. firm chińskich czy rosyjskich (Cloudflare wspomina tylko o Google, Yahoo i Bingu). Do wycieków pamięci z Cloudflare nie powinno już dochodzić. Ich ślady można jednak nadal znaleźć. Np. szukając ciągu

"CF-Visitor: {scheme:http} CF-Host-Origin-IP"

w wyszukiwarce Yandex.ru możemy zobaczyć taki przykład:

Przyczyna

Wpis Cludflare zawiera dość szczegółową analizę, ale skracając ją dla niecierpliwych czytelników: 22 września 2016 nastąpiły zmiany w sposobie obsługi niektórych reguł serwerowych po stronie Cloudflare. Zmieniła się konfiguracja narzędzi filtrujących ruch, np. ukrywających adresy email, przepisujących linki z HTTP na HTTPS i blokujących niektóre elementy ruchu. Ta zmiana spowodowała, że błąd ujawnienia pamięci istniejący we wcześniej używanych narzędziach nie był już (przypadkowo) likwidowany na kolejnym etapie przetwarzania informacji i zaczęło dochodzić do wycieków. 13 lutego po uruchomieniu kolejnych funkcji błąd stał się bardziej widoczny i po 4 dniach trafił na niego Taviso.

Sam błąd polegał na niewłaściwych przetwarzaniu błędnego kodu HTML, np. przy braku zamkniętego znacznika. Występował tylko w niektórych serwisach, ale powodował wyciek danych serwisów zupełnie niepowiązanych – ponieważ wszystkie korzystały z tych samych serwerów pośredniczących i tej samej pamięci operacyjnej. Cloudflare wspomina, że błąd HTML dotyczył 161 domen, które łącznie powiązane były z 770 adresami URL zwracającymi ujawnione dane. Same dane mogły dotyczyć każdego serwera korzystającego z Cloudflare.

Skutki

Cloudflare twierdzi, że strony zawierające ujawnione dane zostały usunięte z wyszukiwarek. Nie wszyscy się zgadzają – kilka godzin temu można było np. znaleźć ciasteczka giełdy BTC Poloniex:

Warto także zauważyć, że jeśli nawet z dużych wyszukiwarek strony zniknęły, to wcale nie jest powiedziane, że nie zostały zapisane w innych miejscach, przez inne skrypty.

Zmieniać hasła?

Prawdopodobieństwo, że Wasze dane wyciekły w tym incydencie oceniamy jako raczej niskie. Problem został dość szybko wykryty i załatany. Trudno jednak ocenić, jak wiele informacji mogło zostać przypadkowo ujawnionych. Np. w przypadku naszego serwisu najgorsze, co mogło zostać ujawnione, to hasła dostępu redakcji – i te zaraz zmieniamy, bo wypada. Każdy musi sam ocenić ryzyko i potencjalne skutki. Dla superwrażliwych danych zalecamy zmianę kluczy lub haseł – ale kto trzyma superwrażliwe dane w chmurze…