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.
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.
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.