Сводная группа исследователей из Университета штата Огайо, Нью-Йоркского университета и Центра информационной безопасности CISPA Helmholtz провела масштабное исследование, изучив в общей сложности более 150 000 приложений. В том числе из Google Play (100 000 лучших приложений из магазина), приложения из альтернативных источников (20 000 приложений) и предустановленные на устройствах приложения (примерно 30 000 приложений, извлеченных из прошивок смартфонов Samsung).
Для проведения анализа эксперты создали специальный инструмент, получивший название INPUTSCOPE. Он предназначен для анализа контекста выполнения валидации user input, а также контента, вовлеченного в эту валидацию.
«Мы полагаем, что валидация ввода в мобильных приложениях может использоваться для раскрытия секретов, таких как тайные бэкдоры, секретные черные списки, а также скрытая функциональность, обеспечивающая доступ только к функциям администратора и связанная с input’ом, что широко распространено в приложениях для Android», — пишут эксперты в своем докладе.
Анализ, выполненный с помощью INPUTSCOPE, показал, что 12 706 приложений содержат различные бэкдоры, включая секретные ключи доступа, мастер-пароли и секретные команды. Все это, по словам аналитиков, может помочь злоумышленникам получить несанкционированный доступ к учетным записям пользователей. Кроме того, если злоумышленник имеет физический доступ к устройству, на котором установлено одно из таких приложений, он сможет предоставить доступ к устройству и третьим лицам, а также разрешить им запускать код на устройстве с повышенными привилегиями (благодаря скрытым секретным командам, присутствующим в полях ввода).
В общей сложности эксперты выявили более 6800 приложений со скрытыми бэкдорами и функциями в магазине Play Store, более 1000 в сторонних магазинах приложений и почти 4800 подозрительных приложений, которые были предварительно установлены на устройствах Samsung.
«Изучив несколько мобильных приложений вручную, мы обнаружили, что популярное приложение для удаленного управления (более 10 000 000 установок) содержит мастер-пароль, который способен разблокировать доступ даже при удаленной блокировке, установленной владельцем телефона в случае утери устройства», — рассказывают специалисты.
Также они обнаружили, что другое популярное приложение для блокировки экрана (5 000 000 установок) использует ключ доступа для сброса паролей произвольных пользователей, чтобы иметь возможность разблокировать экран и войти в систему.
Еще одно приложение для потокового вещания (5 000 000 установок) содержит ключ доступа для входа в интерфейс администратора, с помощью которого злоумышленник может изменить настройки приложения и разблокировать дополнительные функции.
И, наконец, популярное приложение для перевода (1 000 000 установок) содержит секретный ключ, который используется для обхода оплаты за расширенную функциональность, в том числе удаление рекламы в приложении.
Here’s a real world example we were able to find. If you tap 13 times on the version number, you get a password prompt. Enter in the Konami Code, and you get a hidden debug menu! pic.twitter.com/ixOuz6vmib
— Brendan Dolan-Gavitt (@moyix) March 31, 2020
Как видно из примеров, приведенных исследовательской группой, некоторые проблемы явно представляют угрозу безопасности пользователя и данных, хранящихся на устройстве, тогда как другие являются лишь безвредными «пасхалками» или отладочными функциями, которые случайно вошли в рабочую версию.
Еще до публикации доклада аналитики уведомили о своих изысканиях всех разработчиков приложений, в которых было обнаружены скрытое поведение или механизмы, похожие на бэкдоры. Увы, далеко не все разработчики ответили, хотя некоторые приложения все же были отредактированы и избавились от скрытой функциональности.
Также стоит отметить, что INPUTSCOPE анализировал поля ввода в приложениях, и побочным продуктом этого исследования стало обнаружение приложений, которые используют скрытые фильтры ненормативной лексики или политически мотивированные черные списки. В целом были найдены 4028 приложений для Android, которые обладают скрытыми черными списками для полей ввода. Черные списки предназначались для контента на китайском, английском и корейском языках и сильно различались по размеру: от 7 до 10 000 пунктов в списке.