Вся история с Google Play и 2ГИС — наш post mortem
В этом посте подробно разбираем ситуацию с Google Play , с техническими нюансами и ответами на ваши вопросы. Материал может быть интересен тем, кто любит углубляться в детали, и паблишерам приложений в Google Play, которые могут столкнуться с аналогичными трудностями.
Что такое post mortem?
Это статья, написанная по следам крупного инцидента. Её цель — помочь предотвратить подобные ситуации в будущем.
Ещё раз — что случилось
10 января Google Play Protect ошибочно посчитал 2ГИС вредоносным приложением. Пользователи 2ГИС на Android начали получать системное сообщение, что 2ГИС — вредоносное приложение. Мы стали массово получать сообщения от пользователей и разбираться в ситуации. Стартовая публикация на Пикабу — здесь.
Больше всего вопросов в эти пять дней мы получаем про доступы. В этом посте в том числе подробно рассказываем, какие пермиссии мы запрашиваем у пользователей и для чего они нужны.
Ещё раз — как обычно работает проверка приложений
Ошибки в алгоритмах проверки — не редкость. Перед релизом в Google Play каждое приложение проходит проверку. И если систему проверки что-то смутило, разработчик получает уведомление.
Решение проверки можно оспорить, прикрепив скрины или текстом объяснив модератору необходимость каких-то запросов или работу той или иной фичи/библиотеки.
Но 2ГИС удалили из Google Play, и мы не можем получать и оспаривать решения алгоритмов проверки перед релизом. Поэтому сейчас мы разбираемся, что послужило причиной ошибочного срабатывания проверки.
Почему вообще Google Play Protect определил 2ГИС как «опасное» приложение?
Мы не знаем наверняка. Возможно, Google действует по простому алгоритму. 2ГИС нет в Google Play, значит, модерация может не иметь ссылку на политики конфиденциальности, которые выполняют ключевую функцию по регулированию работы с данными. Он не может задать нам уточняющие вопросы о запрашиваемых разрешениях и автоматически помечает 2ГИС как вредоносное.
Если смотреть список причин, из-за чего можно попасть в эту категорию spyware, к которой нас отнёс Google, то можно предположить только одну причину — чтение контактов и фото. Для остальных возможных причин у приложения нет прав. Оба этих действия мы делаем строго с согласия пользователя. Контакты используем для построения социального графа (отзывы и «Друзья на карте»), а фото — для добавления изображений к местам.
Разрешения запрашиваем не при запуске приложения, а непосредственно при действиях пользователя в конкретных фичах. Обе эти пермиссии существуют с нами давно.
Вы можете читать все мои смски и видеть историю звонков?
Мы не запрашиваем такие чувствительные пермиссии. В заблуждение вводит шаблонный текст от Google Play Protect.
Мы используем SMS Retriever API от Google, чтобы автоматически вводить одноразовый код из нашей же смски, когда вы регистрируетесь в 2ГИС по номеру телефона. То есть вам не нужно вручную вводить одноразовый код для 2ГИС, который вы получили в SMS.
В предупреждении об опасности Google Play Protect используется текст, в котором перечисляется всё обобщённо. Из-за этого может показаться, что 2ГИС якобы имеет доступ ко всем SMS и журналу звонков. Это не так.
Зачем вам моя фоновая геопозиция?
В начале декабря мы выпустили фичу «Друзья на карте», сейчас ей активно пользуется несколько процентов аудитории — пользователи могут разрешать друг другу видеть, где они находятся. Самостоятельно приложение не может получить права фонового определения геопозиции. Чтобы 2ГИС получил доступ, пользователь сам должен перейти в настройки телефона и явно их выдать. Разрешение запрашиваем только при включении «Друзей на карте», оно необязательное и нужно только для тех, кто решил использовать фичу.
Вот как происходит её включение:
Зачем картографическому приложению знать контакты?
Для добавления друг друга в друзья и построения соцграфа. Друзья показываются на карте и в карточках мест, чтобы пользователи могли видеть мнения близких людей о ресторанах, парках или стоматологиях.
Пермиссия необязательная, запрашиваем только если пользователь сам хочет добавить в 2ГИС контакты для «Друзей на карте» или рекомендациях в отзывах.
Точно нужно иметь прямой доступ к звонкам?
CALL_PHONE используется для звонка в компанию напрямую из приложения без дополнительного перехода в системный дайлер («звонилку»). Эта пермиссия в приложении уже давно. Запрашиваем её непосредственно после тапа на номер телефона в карточке компании.
Зачем картографическому приложению доступ к микрофону?
Для голосового ввода текста — эта функция есть во множестве популярных приложений. Например, чтобы за рулём быстро найти нужный адрес, не набирая его на клавиатуре. Запрашиваем разрешение в тот момент, когда вы активируете функцию голосового ввода.
Что говорит сам Google?
Пока ничего. Мы сразу отправили апелляцию, на статус всё ещё In progress. Обращения по другим каналам тоже остаются без внимания, в том числе обращение в Google Play Community, поддержанное нашей аудиторией (спасибо вам!).
Есть ли сейчас безопасная с точки зрения Google версия?
Свежая версия 6.31.0.535 свободна от предупреждений Google Play Protect. В ней мы удалили пермиссии, на которые теоретически мог ошибочно срабатывать Play Protect: android.permission.READ_CONTACTS, android.permission.CALL_PHONE, SMS Retriever API (это не пермиссия, но в ситуации недостатка информации решили тоже отключить).
Мы рекомендуем использовать её всем пользователям, чтобы не сталкиваться с предупреждениями.
Почему при самообновлении через 2ГИС от Google Play Protect всё равно появляется предупреждение на новую версию?
Версия 6.31.0.535 свободна от предупреждений Google Play Protect. Но обновиться на неё с предыдущей версии без предупреждения не получится — для Google Play Protect всё выглядит так, что «вредоносное ПО пытается поставить ещё одно приложение». И, конечно, пользователя об этом предупреждают. После обновления предупреждение перестаёт показываться.
А почему старые версии 2ГИС не помечают как«вредоносные»?
Мы не знаем. И по использованию данных, и по пермиссиям они одинаковы с harmful-версиями («вредоносными»).
Может быть проблема в новой фиче «Друзья на карте» по шарингу геопозиции?
Мы рассматриваем эту версию. Но против неё три аргумента:
Фича вышла в версии 6.29, на которую Google Play Protect не «ругается». Более того, в первое время после появления проблемы эта версия была тихой гаванью, куда мы перенаправили все новые установки пользователей. (upd 16 января Google начал отправлять ошибочные уведомления для версии 6.29, но прежние два аргумента в силе)
В новой версии 6.31.0.535 мы не удаляли эту фичу, а Google Play Protect перестал относить приложение к вредоносным и не видит больше проблем с безопасностью.
Для нарушений, связанных с отслеживанием местоположения у Google есть категория stalkerware, а не spyware, ошибочно присвоенная 2ГИС.
Если отобрать у 2ГИС все пермиссии, он останется работоспособным?
Да. Как и в случае, если не выдавать пермиссии — приложение будет работать с учётом ограничений.
Первый раз вижу чтобы Google Play Protect срабатывал на крупное известное приложение. 2ГИС первый?
Нет, 2ГИС не первый. Похожая история случилась с Samsung Wallet: обсуждение на reddit и в треде на форуме Google.
Все равно вам не верю, вы просто очень складно сочиняете. Google крупная компания, почему я должен верить вам?
Мы уверены, что произошла ошибка, и уверены в безопасности 2ГИС. Мы рассказываем подробно обо всём, что делаем в эти дни, аргументируя свои выводы. Мы прозрачны и не пытаемся завлечь вас обманом пользоваться 2ГИС. Если вы хотите получить ещё больше деталей — пишите нам, обязательно поделимся.
Что делать?
Вы можете обновиться на новую версию 6.31.0.535, которую Google Play Protect уже не помечает как вредоносное. Второй вариант: временно отозвать все разрешения 2ГИС в настройках устройства, если они нужны для функций приложения, которыми вы не пользуетесь.
2ГИС — опасное приложение?
UPD:
Подробный разбор ситуации читайте в этой статье
10 января 2024 пользователи 2ГИС на Android начали получать системное сообщение на своих устройствах. В нём говорилось, что 2ГИС — приложение вредоносное, оно опасно для устройства и личных данных. Это не так — 2ГИС всегда соблюдал все правила и продолжает это делать. Более того, в новых версиях приложения ничего принципиально не поменялось, и мы пытаемся выяснить, почему Google считает нас вредоносными.
Как приложение попадает в стор
У каждого стора есть свои правила. Если приложение их не нарушает, то после ревью оно публикуется, и всё ок. В последнее время Google Play свои правила ужесточил, чтобы бороться с действительно вредоносным ПО, которое пытается навредить устройству или украсть личные данные пользователя.
В Google Play нас нет с лета, и всё это время мы выкладываем 2ГИС в альтернативных сторах для Android: RuStore, Huawei AppGallery, Samsung Galaxy Store и других. Обычно, когда версия проходит ревью в сторе, наши разработчики получают обратную связь: есть такая-то проблема, пофиксите её, и мы выложим приложение. То есть в любой подобной ситуации мы понимаем, где искать ошибку или хотя бы примерно понимаем, какое правило нарушили, куда копать. Сейчас ситуация в корне иная.
Какой конкретно Google присылает сообщения
Итак, мы делаем приложение на операционную систему Android. Компания Google владеет этой операционной системой и влияет на то, какие приложения эта ОС считает вредоносными, а какие нет. Это не относится к магазину Google Play: магазин присылает уведомления об ошибках разработчикам перед публикацией приложения, Google шлёт системные сообщения пользователям. То есть мы узнаём о проблеме «из газет» — от наших пользователей.
Дальше в нашем расследовании появляется Google Play Protect (Google Play Защита) — система, которая сканирует ваше устройство на наличие потенциально опасных приложений из сторонних источников (то есть не из Google Play). Как часто это происходит и с какой регулярностью, делается это автоматически или вручную, Google не раскрывает. У нас есть предположение, что 8 января что-то поменялось во внутренних правилах Google — именно с этого времени пользователи начали получать ошибочные уведомления о «вредоносности».
Что вредоносного обнаружено
С 10 января мы погружены в ситуацию и разбираемся, какой функционал ошибочно могли признать вредоносным.
В сообщении, которое получают пользователи, написано, что 2ГИС хочет получать доступ к вашим СМС, фотографиям, аудиозаписям и журналам звонков. Это и так, и не так одновременно.
Мы запрашиваем пермишны — разрешения — для того, чтобы пользователь сам разрешил себе пользоваться определёнными фичами телефона. Это доступы к разным участкам системы. Их всегда можно отключить или включить обратно. Так делает очень много приложений, вы наверняка давали разрешение или, наоборот, запрещали доступ к этим же функциям для других приложение на вашем устройстве. Что это за фичи и функции:
Микрофон — в 2ГИС вы можете давать команды голосовому помощнику.
Звонки — если хотите звонить в организации прямо из приложения, просто нажав на телефон в карточке. Доступ к журналу звонков мы не запрашиваем.
SMS используем для кодов авторизации в приложении. Мы имеем доступ только к своим СМС, ни к каким другим сообщениям на устройстве доступа у нас нет.
Местоположение, чтобы корректно работал навигатор и функция «Друзья на карте».
Контакты, чтобы вы могли находить друзей и знакомых в приложении.
Фото и видео, чтобы публиковать их в отзывах.
Эти фичи были в 2ГИС всегда. Ничего не поменялось ни 8, ни 10 января.
Что мы делаем
Мы ищем причину. Сейчас пробуем выключать фичи по очереди, чтобы понять, где Google обнаружил ошибку. Из основного приложения 2ГИС на Android убраны:
Работа с адресной книгой (использовалось для соцграфа: отзывы знакомых, добавления друзей); android.permission.READ_CONTACTS
Автоматическое подставление из SMS-кода подтверждения регистрации пользователя (SMS читались через библиотеку Google, мы не добавляли пермиссий).
Звонок в один клик: android.permission.CALL_PHONE
Из бета-версии убрали работу с адресной книгой (android.permission.READ_CONTACTS).
Не нужно удалять приложение. Если вы беспокоитесь, всегда можно ограничить доступ приложения к системным настройкам (например, убрать «крыжик» с микрофона, если не пользуетесь голосовым вводом) и продолжить пользоваться.
Если уже удалили, скачать заново можно на сайте apk.2gis.ru (наш официальный) или в альтернативных сторах: RuStore, Xiaomi Getapps, Samsung Galaxy Store, RuMarket и Huawei AppGallery.
Что уже можно почитать по теме на момент 15:00 Мск, 13 января:
Официальный телеграм-канал 2ГИС
Страница на официальном портале https://help.2gis.ru/, добавляем туда свежие новости в реальном времени
Про 2гис
Выскочило окошко о вредоносности данного приложения,и, тыкнув не туда, удалил его. Случайно.Установил заново(гугл поругался), загрузил города, обновил. Больше ничего не делал.Сейчас зашёл в разрешения. Итог на скрине.Кроме геолокации и уведомлений разрешений нет. А истерику устроили на весь Пикабу.
Пояснение от 2ГИС
2 ГИС и гугл
А чё это гугл начал гнать на 2гис?
Понимаю санкции и все остальное. Но тут бред какой-то
Как подготовить машину к долгой поездке
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
Угроза от 2ГИС
Ребята, у кого было так?