Яндекс наступает на грабли Facebook, запрашивая полный доступ к вашим смартфонам (feat. DTF)

От редакции Ситуацию прокомментировала пресс-служба «Яндекса». В заметку добавлен её ответ.

Кто-то считает встраивание таких метрик хорошей идеей? Давайте разбираться.

Яндекс наступает на грабли Facebook, запрашивая полный доступ к вашим смартфонам (feat. DTF)

Обновление: комментарий «Яндекса»

Такое уведомление могло появляться у некоторых пользователей устройств на Android 12, имеющих root-доступ, из-за проблемы в алгоритмах проверки на стороне AppMetrica. Мы исправили проблему в обновленной версии AppMerica 4.2.0.

Наличие root-прав на устройстве AppMetrica определяет для того, чтобы владельцы приложений могли учитывать эту информацию для аналитики и поиска ошибок в приложениях. Например, при определенных условиях пользователи с root-доступом могут использовать подписку без оплаты или повышать свой рейтинг в игре, и так далее. Никаких чувствительных данных ни о приложении, ни о его пользователях при этом AppMetrica не запрашивает и не получает. Безопасность данных наших пользователей и партнеров подтверждена международной сертификацией и соответствует мировым стандартам информационной безопасности.

Ксения, внешняя пресс-служба «Яндекса»

Оригинальный текст

Предисловие

В 2018 году официальное приложение Facebook здорово напугало пользователей Android, когда от его имени пошли запросы на выдачу прав суперпользователя (root), позволявших программе делать со смартфонами всё что угодно.

@facebook asking for root permission? 🤦‍♂Time to dive into that APK!
Яндекс наступает на грабли Facebook, запрашивая полный доступ к вашим смартфонам (feat. DTF)
@facebook запрашивает права суперпользователя? 🤦‍♂ Пора покопаться в этом APK-файле! — Nikolaos Chrysaidos, руководитель отдела мобильных угроз и безопасности компании Avast, запустил в Твиттере тред с объяснением причин подозрительного поведения приложения Facebook.

Когда жалоб стало слишком много, представитель Facebook вышел на связь и заявил, что всплывающее окно с запросом root-прав просто «ошибка в коде», от которой благополучно избавились.

Нам не нужны (и не хотелось получать) эти права [суперпользователя], и мы уже исправили эту проблему. Приносим извинения за вызванный сумбур.

Представитель Facebook, в ответ на запрос ресурса Bleeping Computer

Эта история стала лишь еще одним случаем в череде крупных скандалов, связанных с конфиденциальностью и защитой персональных данных пользователей социальной сети Facebook.

А как с этим у нас?

В том же десятилетии российские компании, напротив, очень редко фигурировали в заголовках новостных сводок на тему слежки или превышения полномочий в своих мобильных приложениях. Из событий тех лет можно вспомнить разве что, как в 2015 году на Хабре появилась заметка с вопросами к мобильному приложению «Яндекс.Метро», которое безо всякой на то причины и без предупреждения круглосуточно собирало и отсылало на свои сервера геолокацию устройства со списком идентификаторов, по которым не составляет труда выйти на его владельца. Вот какой ответ тогда пришел из команды Яндекса:

То, что метро отправляет эти запросы в фоновом режиме — это явный баг ‹…› Исправим в ближайшем релизе ‹…› Если не учитывать бага со сбором данных в фоне, то, на мой взгляд, сбор данных о локации для приложения с функционалом карты не является шпионством.

roottony, Разработчик приложения Яндекс.Метро

При этом без ответа оставался вопрос, как встроенная минимум в пять приложений Яндекса (Карты, Транспорт, Такси, Электрички, Метро) служба, занимающаяся сбором и отправкой данных о местоположении с привязкой ID, могла появиться из обычного бага.

Яндекс наступает на грабли Facebook, запрашивая полный доступ к вашим смартфонам (feat. DTF)

Через неделю Яндекс решил постоять за свою репутацию и выложил в своем блоге публикацию с разбором «странностей в работе Яндекс.Метро», где ответил на некоторые вопросы. Суть поста сводилась к следующему:

  • Приватность пользователей очень важна для нас
  • Работа службы вне приложения — баг, такого не будет
  • Без службы никак, а о запросах вас предупреждали в пользовательском соглашении

Правда на главный вопрос ответ появился не в самом материале, а в комментариях, лишь со второго раза:

anton — менеджер проектов «Яндекса» Антон Волнухин
anton — менеджер проектов «Яндекса» Антон Волнухин

По этой логике главным виновником ситуации можно признать тот же Google за несовершенную реализацию разрешений приложений в тогдашнем Android и оттого вынужденные костыли. Вопрос закрыт.

¿Happy End
¿Happy End

Повод для нового поста в корпоративном блоге?…

С тех пор многое изменилось. Появились новые разрешения на геолокацию в Android, мобильные приложения стали получать приставку «супер-», а в 2022 году Яндекс решил наступить на грабли вслед за Facebook.

Прошу извинить за шакалистое качество, тогда и не думал сохранить оригинал снимка экрана
Прошу извинить за шакалистое качество, тогда и не думал сохранить оригинал снимка экрана

Сразу уточню, Magisk (обобщенно говоря, провайдер root-прав) известен немалому числу пользователей Android, в том числе из СНГ; не является чем-то диковинным или опасным сам по себе, у него открытый исходный код и не подпорченная репутация, в отличие от ряда неофициальных модификаций клиента VK, «правильных» пересборок MIUI и прочего неочевидного зловреда с отечественных технофорумов. Но речь сегодня не о нем.

Итак, в конце января 2022 года на мои устройства (на базе Android) стали приходить оповещения от Magisk, что такие приложения Яндекса, как Браузер (com.yandex.browser, предустановлено в систему производителем смартфона), Я.Маркет (ru.beru.android, прямиком из Play Маркет), Яндекс (ru.yandex.searchplugin, предустановлено), Яндекс Go (ru.yandex.taxi, прямиком из Play Маркет) и Карты (ru.yandex.yandexmaps, предустановлено), запрашивают права суперпользователя (root).

Перечень приложений, которые запрашивали права суперпользователя. Magisk 24.0
Перечень приложений, которые запрашивали права суперпользователя. Magisk 24.0

Списать на внезапный троян возникшую ситуацию не удалось. После незатейливой декомпиляции приложений (скачанных из Play Маркета) я обнаружил, что в некоторых файлах четко указано рыскать по смартфону в поиске приложений для root-прав (например, SuperUser.apk) и вызывать команду su для root по какой-то своей внутренней логике.

Забегая вперед, скажу, что практика отслеживания потенциальных уязвимостей на смартфонах не нова, вот уже несколько лет этим занимаются некоторые приложения банков, чтобы уведомить своего клиента мол «смотри, у тебя на телефоне можно выдавать root-права, будь осторожен, не давай их кому попало, а то деньги уведут, и мы ничего не сделаем». Сегодняшняя история отличается от повсеместной практики тем, что приведенный банковский «функционал антивируса» сам не начнет запрашивать у тебя эти самые root-права, поскольку иначе станет в один ряд со зловредами.

Почему бы просто не написать в Яндекс? Хочешь хайпа?

Я понимаю, что если сразу обращаться к саппорту крупной IT-компании без какой-либо огласки, то с высокой вероятностью получу отписку, что всё это — неправильная трактовка их кода, результат вирусов у меня в телефоне и вообще со стороны разработчиков не сделано ничего недопустимого.

Да, предвкушаю контраргумент, что и с шумихой любой IT-гигант сможет публично оправдаться заботой о безопасности и сохранности [чего-угодно] пользователей, и всё это не имеет смысла. Но попытаться стоит. Я убежден: любая неочевидная метрика, резко и без основания пытающаяся заполучить полный доступ к смартфону, ничем не отличается от зловреда, против которого и созданы антивирусы.

А поскольку приложения с этой встроенной метрикой выходят в Play Маркете и других каталогах приложений, команды должны раскрывать и обосновывать их действия ничуть не меньше, чем все остальные разработчики. Тем более, если приложениям уже мало тех системных разрешений, которые они открыто просят у пользователей. На секунду: незаявленный функционал — это вполне обоснованный повод для исключения приложения из онлайн-каталога.

За всё время пользования Android (примерно с 2011 года) это первый случай на моей памяти, когда программы запрашивают root-доступ, хотя их разработчики ни разу не заикались о его необходимости, в отличие от специализированных программ, которым он действительно необходим (это обосновывается, и потому многие из таких приложений беспрепятственно выходят в Play Маркете).

Итак, не знал, куда бы обратиться и написать об этой ситуации, поэтому забросил попытки докопаться до сути… до сегодняшнего дня, когда недавно обновленное мобильное приложение DTF тоже послало злосчастный запрос (см. скриншот в самом начале статьи).
Теперь у меня появился повод рассказать об этом именно здесь ^_^

Вышеназванные практики внутри службы метрики Яндекса, встроенной в приложение DTF для Android
Вышеназванные практики внутри службы метрики Яндекса, встроенной в приложение DTF для Android

В обоих случаях код, вызывающий команду su, приводится в файлах службы метрики Яндекса, но теперь он замечен не только в собственных сервисах Яндекса, но и у DTF.

Вместо заключения

Уверен, что я не первый человек, который с января получал такие запросы от приложений Яндекса, но пока не нашел в блогах Яндекса какого-либо опровержения или обоснования этому поведению.

Также, пока писал заметку, наткнулся на глоссарий AppMetrica (платформа Яндекса), где говорится о том, что в отчёте может предоставляться информация, «имеет ли устройство root-access».

Скриншот со <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fappmetrica.yandex.ru%2Fdocs%2Fmobile-glossary%2Fglossary.html&postId=1094990" rel="nofollow noreferrer noopener" target="_blank">страницы Яндекса</a>
Скриншот со страницы Яндекса

Повторюсь, что я не высказываюсь против идеи уточнения метриками наличия root-прав на смартфонах. Однако, как показывает практика, ничто не мешает это реализовывать и без выполнения опасных команд. Как? Обратиться к опыту банковских приложений и утилиты Momo, последняя не просто определяет, есть ли root или нет, но и объясняет, на основании каких признаков сделан вывод.

361361
83 комментария

Комментарий недоступен

113
Ответить

Также пользуюсь браузерной версией с палеозойской эры и не понимаю, нафига нужно приложение 🤔

28
Ответить

Ещё и юблок всю заразу удаляет... лепота!

16
Ответить
5
Ответить

Жаль только на QtWebEngine дтф вылетает. Обделили юзеров мобильной убунты.

Ответить

Комментарий недоступен

49
Ответить

Ну вдруг ты устал от багов веб-версии и хочешь насладиться багами приложения.

105
Ответить