Przejmowanie kont Gmaila czyli w poszukiwaniu granic ignorancji i absurdu

dodał 12 listopada 2016 o 21:49 w kategorii Błędy  z tagami:
Przejmowanie kont Gmaila czyli w poszukiwaniu granic ignorancji i absurdu

Kilka dni temu trafiliśmy na wiadomość o ciekawej podatności w usłudze Gmail, która miała rzekomo umożliwiać przejęcie kontroli nad dowolnym kontem w Gmailu. Im bliżej jednak się jej przyglądaliśmy, tym większe robiły się nasze oczy…

Stopień złożoności kodu i jego ciągła ewolucja powodują, że czasem nawet w poważnych, dużych serwisach znaleźć można błędy fatalne w skutkach. Gdy zatem zobaczyliśmy informacje o możliwości przejęcia dowolnego konta Gmaila nie byliśmy specjalnie zaskoczeni. Co prawda lekkie zdziwienie budziło odkrycie błędu przez nieznanego wcześniej pakistańskiego studenta, lecz historia zna podobne przypadki. Dopiero analiza owego odkrycia i sposobu, w jaki opisały je media, sprawiła, że poczuliśmy potrzebę poruszenia tego tematu.

Światowa sensacja

Nagłówki niektórych mediów nie pozostawiały wątpliwości – mamy do czynienia z bardzo poważnym błędem:

Sam autor odkrycia, Ahmed Mehtab, przedstawiający się w mediach jako prezes firmy Security Fuse, opisał swoje znalezisko pod nagłówkiem Gmail Account Hijacking Vulnerability. Możecie zacząć lekturę od jego wpisu, ale możemy też oszczędzić Wam jednego kliknięcia. Ahmed opisał proces „przejmowania konta” w miarę dokładnie, lecz musieliśmy przeczytać jego wpis 3 razy zanim zrozumieliśmy, co miał na myśli.

Ahmed przejmuje konto Google

Ahmed przejmuje konto Google

W punktach poniżej spróbujemy oddać przebieg wydarzeń, poniżej znajdziecie także film Ahmeda pokazujący jego exploit w akcji.

  1. Po pierwsze musimy znaleźć konto, na które nie dotrze żadna poczta. Hm. Po co przejmować konto, na które nie dociera poczta? Pomińmy ten element by skupić się na exploicie. Ahmed proponuje następujące scenariusze:
    • serwer pocztowy odbiorcy jest offline (śmiały scenariusz biorąc pod uwagę fakt, że exploit dotyczy tylko kont Gmaila…)
    • odbiorca wyłączył swoją skrzynkę (bardzo popularny scenariusz)
    • odbiorca nie istnieje (przejmujemy nieistniejącą skrzynkę, magia)
    • odbiorca nas zablokował (tu autor sugeruje ataki socjotechniczne, lecz sami nie wiemy jak zablokować czyjeś konto na Gmailu by odbijać jego wiadomości…)
  2. W tym miejscu moglibyśmy w sumie zakończyć analizę, lecz dla kompletności popuśćmy wodzy fantazji i załóżmy, że jeden ze scenariuszy ma faktycznie miejsce. Gdy zatem już namierzyliśmy konto spełniające dowolne z powyższych założeń, to uruchamiamy w Gmailu procedurę pozwalającą nam wysyłać emaile z adresu innej skrzynki (Wyślij jako). Wybieramy adres docelowy i klikamy „Dalej”.
  3. Gmail spróbuje na adres docelowy doręczyć naszą prośbę o autoryzację funkcji Wyślij jako. Skrzynka jednak nie odbiera poczty (bo np. nie istnieje) zatem email z prośbą o autoryzację i jednorazowym kodem autoryzacyjnym do nas wraca.
  4. Wpisujemy kod i uzyskujemy możliwość wysyłania wiadomości jako nieistniejąca skrzynka.
  5. Profit?

Podsumowanie

To już niestety – lub na szczęście – w zasadzie koniec tej historii. Ahmed „security researcher” Mehtab poznał własnie możliwość fałszowania adresu pocztowego nadawcy wiadomości. Niestety najwyraźniej nie przyszło mu do głowy by sprawdzić, jak zachowa się filtr antyspamowy Google (lub sprawdził, lecz jego email nie dotarł do odbiorcy i wstyd było pokazać) – na filmie demonstruje jedynie możliwość wybrania nieistniejącej skrzynki jako nadawcy, nie pokazuje już momentu wysłania ani doręczenia wiadomości. Na deser jeszcze można dodać, że Ahmed liczył na bug bounty w wysokości 20 tysięcy dolarów (authentication bypass!), lecz Google, choć błąd logiki poprawiło, odmówiło wypłaty i jedynie zamieściło jego dane na liście Hall of Fame. Na otarcie łez zostają mu artykuły w mediach.

A jeśli chcecie nauczyć się wykrywać prawdziwe błędy w webaplikacjach, to zapraszamy na nasze szkolenie z atakowania i obrony już 28go listopada w Warszawie – zostały jeszcze ostatnie miejsca. Z kodem HallOfFame 10% zniżki ;)