Głębokie linkowanie w aplikacjach na iOS-ie może służyć kradzieży danych

Maciej Olanicki , 16.07.2019 r.

Głębokie linkowanie kojarzymy przede wszystkim WWW, niemniej mechanizm o takiej nazwie funkcjonuje także dla oprogramowania mobilnego i pozwala aplikacjom na wywoływanie innych aplikacji. Eksperci z Trend Micro znaleźli jednak problem z implementacją głębokiego linkowania w iOS-ie, który może doprowadzić do kradzieży wrażliwych danych. System operacyjny Apple domyślnie nie sprawdza bowiem, które aplikacje stosują URI, co może prowadzić do ataku nazwanego zgrabnie app-in-the-middle.

ios-aitm Poprawna autoryzacja. Źródło: Trend Micro.

W iOS-ie każda aplikacja znajduje się w osobnej piaskownicy. Nie oznacza to jednak, że interakcja nie jest możliwa, a to za sprawą głębokiego linkowania. Wystarczy w aplikacji umieścić URI fb://, by program wywołał aplikację Facebooka. Rzecz w tym, że iOS domyślnie w żaden sposób nie weryfikuje, czy w ten sposób wywołane żądanie autoryzacji pochodzi od bezpiecznej aplikacji, czy też od programu spreparowanego na potrzeby kradzieży danych.

Zobacz też: Banalny sposób na ominięcie 2FA – na nic zmiany w uprawnieniach na Androidzie

W pierwszej kolejności na urządzeniu musi znaleźć się fałszywa aplikacja, która za pomocą głębokiego linkowania zwróci się do aplikacji A (np. Facebook) z żądaniem autoryzacji. Otrzymany token przekazuje aplikacji B (do której docelowo chce uzyskać dostęp), ta zaś autoryzuje się z serwerem aplikacji A i poprawnie loguje. Podatność tkwi w tym, że autoryzująca aplikacja A nie rozpoznaje, czy żądania autoryzacji faktycznie pochodzi od aplikacji B.

ios-aitm2 Scenariusz app-in-the-middle. Źródło: Trend Micro.

Oczywiście nie dotyczy to wszystkich aplikacji, Trend Micro podaje przykład duetu sklepu Sunning i aplikacji WeChat. Implementacji głębokiego linkowania można dokonać wraz z weryfikacją źródła, co eliminuje zagrożenie, jednak wszystko leży w gestii dewelopera, App Store nie stawia bowiem przed nim takiego wymogu. Apple zostało już powiadomione o zagrożeniu i skontaktowało się z programistami, którzy wykorzystują podatny schemat URI. Zalecane jest stosowanie tzw. linków uniwersalnych, obsługiwanych w iOS-ie od wersji 9.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: