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 [email protected], należało założyć konto np. dla adresu [email protected]). 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.
Komentarze
” (wzorem Google i znaku „+” w loginie Gmaila) ”
GMail ignoruje także kropki, więc może miało to z nim jakiś związek.
czyzby cos w stylu 'LIKE’ w zapytaniu sqla?:)
O i jakiś Abdallah, muslim :D
Polecam poczekać na to:
https://www.usenix.org/looking-inside-drop-box