URL схемы в iOS позволяют получить доступ к аккаунтам пользователей

URL схемы в iOS позволяют получить доступ к аккаунтам пользователей

Несколько программ могут использовать одну и ту же URL схему, что может привести к отправке данных совершенно другому приложению.

Исследователи из Trend Micro продемонстрировали новый метод атаки, с помощью которого вредоносное приложение, установленное на iOS-устройстве, может получить доступ к важной информации в другом приложении, эксплуатируя некоторые реализации пользовательских схем URL.

По умолчанию в iOS каждое приложение работает в своей «песочнице» для предотвращения доступа установленных на устройстве приложений к данным друг друга. Однако Apple предлагает несколько методов, позволяющих приложениям обмениваться ограниченным объемом информации. Один из таких механизмов – URL схема (Deep Linking), благодаря которой разработчики могут реализовать в своих приложениях возможность запуска через URL, например, facetime://, whatsapp:// или fb-messenger://.

К примеру, при нажатии на опцию «Вход через Facebook» в приложении для электронной коммерции вход в Facebook будет произведен автоматически (приложение задействует URL схему для Facebook и передает контекстную информацию, требуемую для авторизации).

Как обнаружили исследователи, Apple не определяет точно, какие ключевые слова приложения могут использовать для своих URL схем, то есть, несколько программ могут использовать одну и ту же схему, что может привести к отправке данных совершенно другому приложению.

Эксперты проиллюстрировали атаку на примере приложения китайского ретейлера Suning и реализованной в нем функции «Вход через WeChat». При авторизации в учетной записи Suning через WeChat генерируется запрос на авторизацию, который отправляется приложению WeChat, установленному на устройстве. Далее WeChat запрашивает секретный токен и отправляет его приложению Suning для авторизации. Поскольку Suning использует один и тот же запрос на авторизацию, а WeChat не проверяет источник запроса, данная реализация уязвима к так называемой атаке app-in-the-middle (приложение посередине) через URL схему, что может позволить злоумышленникам получить доступ к пользовательским учетным записям.

Таким образом вредоносное приложение, использующее ту же URL схему, что и целевая программа, может получить доступ к важным данным других приложений или выполнить различные вредоносные действия.

Поскольку возможность эксплуатации данной уязвимости связана с реализацией URL схем, специалисты рекомендуют разработчикам приложений внедрить механизмы проверки недоверенных запросов.

Ищем баги вместе! Но не те, что в продакшене...

Разбираем кейсы, делимся опытом, учимся на чужих ошибках

Зафиксируйте уязвимость своих знаний — подпишитесь!