URL схемы в iOS позволяют получить доступ к аккаунтам пользователей
Исследователи из 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 схем, специалисты рекомендуют разработчикам приложений внедрить механизмы проверки недоверенных запросов.