Omijanie dwuskładnikowego uwierzytelnienia w Dropboxie

dodał 7 lipca 2013 o 12:01 w kategorii Wpadki  z tagami:
Omijanie dwuskładnikowego uwierzytelnienia w Dropboxie

Wobec rosnącego zagrożenia ujawnienia haseł użytkowników coraz więcej firm wprowadza dwuskładnikowe uwierzytelnienie, najczęściej oparte na kodach SMS. Niestety nie wszystkie wdrożenia pozbawione są błędów, o czym przekonał się Dropbox.

Wpadki z dwuskładnikowym uwierzytelnieniem nie są niczym nowym. Ominięcie tego rodzaju zabezpieczeń w usłudze Google udało się już co najmniej dwukrotnie: zarówno włamywaczom, jak i badaczom. Tym razem odkryto ciekawy błąd w Dropboxie, który sprawiał, że dwuskładnikowe uwierzytelnienie nie zabezpieczało konta w 100%.

Scenariusz, który odkrył Zouheir Abdallah, członek zespołu CERT z Kataru, dotyczył przypadków, w których atakujący zna adres poczty elektronicznej oraz hasło użytkownika Dropboxa  z aktywną usługą dwuskładnikowego uwierzytelnienia, jednak nie ma dostępu do jego telefonu. Atak wymagał w pierwszym kroku zarejestrowania drugiego konta w Dropboxie. Jako adres poczty elektronicznej, przypisany do drugiego konta, należało podać oryginalny adres z dodatkową kropką w nazwie użytkownika (np. zamiast login@poczta.com, należało założyć konto np. dla adresu lo.gin@poczta.com). Był to krok o tyle prosty dla atakującego, że Dropbox nie wymaga potwierdzenia użytego adresu poczty elektronicznej, więc mogło być ono „utworzone” nawet w prywatnej domenie atakowanego.

W drugim kroku atakujący musiał włączyć na świeżo stworzonym koncie dwuskładnikowe uwierzytelnienie i wygenerować awaryjny kod na wypadek zagubienia telefonu. Proces ten pozwala – wbrew idei zabezpieczenia, ale ułatwiając życie użytkownikom, którzy zgubili telefon – na ominięcie podawania kodu jednorazowego poprzez wygenerowanie specjalnego kodu odblokowującego.

W trzecim kroku wystarczyło zalogować się na konto ofiary, podając prawidłowy login i hasło, a następnie wybrać opcję „zgubiłem telefon” i podać kod odblokowujący, wygenerowany na drugim koncie. Mechanizmy Dropboxa ignorowały (wzorem Google i znaku „+” w loginie Gmaila) dodatkową kropkę w adresie email i akceptowały kod, przypisany do innego konta.

Badacz powiadomił Dropboxa, który szybko załatał lukę. Trzeba przyznać, że nie był to oczywisty błąd, a złożyło się na nań kilka czynników. Po pierwsze, proces dwuskładnikowego uwierzytelnienia umożliwiał użycie mechanizmu zapasowego – rozwiązanie wygodne, ale obniżające bezpieczeństwo rozwiązania. Po drugie, Dropbox nie weryfikuje adresu poczty elektronicznej w trakcie zakładania konta – znowu zwycięstwo wygody nad bezpieczeństwem. Po trzecie, z nieznanych nam przyczyn adres poczty elektronicznej z kropką był traktowany w procesie weryfikacji kodu tak samo jak adres bez kropki. Dopiero zbieg tych trzech okoliczności spowodował wystąpienie błędu.

Raport o błędzie i opis problemu zniknęły już ze strony katarskiego CERTu, ale możecie się z nimi zapoznać w kopii Google.