Ещё несколько лет назад любое приложение, установленное на устройство с Android, могло без разрешений видеть все остальные приложения.
В 2022 году, с выпуском Android 11, Google удалила этот доступ для разработчиков приложений. Согласно новой политике видимости пакетов, приложения должны видеть другие приложения только в том случае, если те необходимы для их базовой функциональности. Кроме того, разработчики должны явным образом объявлять эти приложения в обязательном для всех приложений Android файле конфигурации AndroidManifest.xml.
В крайних случаях, например, для диспетчеров файлов, браузеров и антивирусов Google предоставляет исключение в виде разрешения QUERY_ALL_PACKAGES, которое позволяет видеть все установленные приложения.
На своём основном телефоне я не пользуюсь Android, но у меня есть запасной, и мне стало очень любопытно, какие приложения индийских компаний содержат проверки других установленных мной приложений.
Я скачал несколько десятков пришедших мне в голову приложений и начал изучать их файлы манифестов. Они ведь наверняка будут уважать мою конфиденциальность и запрашивать только те приложения, которые необходимы для их базовой функциональности?
Стоит отметить, что у приложений могут быть вполне разумные причины для проверки других установленных в телефоне приложений. Например, приложение может проверять установленные UPI-приложения [прим. пер.: Unified Payments Interface — индийская система и протокол мгновенных платежей], чтобы показывать соответствующие способы оплаты. В большинстве изученных мной манифестов присутствовали проверки этих приложений. Некоторые также искали клонированные приложения или приложения со множественными аккаунтами, вероятно, для обеспечения безопасности и выявления мошенничества. Всё это вполне приемлемо.
Но некоторые индийские компании зашли дальше в этих проверках. Начнём со Swiggy: в файле его манифеста перечислено аж целых 154 приложения, что позволяет ему запрашивать эти приложения в моём телефоне. Вот полный список:

Даже не знаю, с чего начать разбирать это безумие. Как информация о том, установлено ли у меня в телефоне приложение Xbox или Playstation, связана с базовой функциональностью Swiggy? Как знание об установленных Naukri (приложение для поиска вакансий) или Upstox (брокерское приложение) поможет доставлять еду?
В этом списке представлен широкий спектр категорий ПО, и это даёт понять, что Swiggy почти наверняка собирает данные об установленных приложениях для профилирования пользователей и построения поведенческого профиля заказчиков. Мне кажется, это нарушает политику Play Store, в которой список установленных приложений считается персональными и конфиденциальными пользовательскими данными.
Это напомнило мне одну презентацию Blume Ventures. В ней есть интересный слайд с приложениями, используемыми в разных «Индиях» [прим. пер.: в презентации рынок всей страны разбивается на три слоя по уровню доходов]:

Swiggy запрашивает бо́льшую часть этих приложений и не только. Она не только знает к какой «Индии» относится пользователь, но и может точно определить, в какой её точке он находится.
Давайте теперь поговорим о другом приложении, это обычный подозреваемый, непревзойдённый чемпион тёмных паттернов дизайна — Zepto. В его манифесте находится список из 165 проверяемых в устройстве приложений.

От Netflix до Bumble и Binance — в список попали почти все популярные приложения во всех категориях. Недавно были сообщения о том, что Zepto показывает разные цены пользователям с iOS и Android. С помощью этих данных приложение также может показывать разные цены для разных телефонов с Android, с чем уже сталкиваются некоторые пользователи.
Хотя Swiggy и Zepto обязаны объявлять эти приложения в своём файле манифеста, мы, как пользователи, никак не можем увидеть этот список, скачивая приложение из Play Store.
Также я проанализировал приложения Swiggy и Zepto для их курьеров. Список запрашиваемых приложений в них отличается. В обоих есть проверки того, на какие ещё компании работает курьер. Вот список Zepto:

Однако Swiggy делает ещё один шаг вперёд — оно проверяет и приложения для получения потребительских кредитов, персональные финансовые приложения и даже следит за приложениями наподобие Ludo King и Carrom Pool на телефонах курьеров [прим. пер.: приложения онлайн-версий популярных настольных игр лудо и карром].

Мы даже не можем спокойно поиграть в лудо без того, чтобы за нами шпионили работодатели? Swiggy нужно отслеживать досуг курьеров? Возмутительно, что Swiggy считает, что нужно было включить эти смехотворные проверки приложений на телефонах курьеров.
Кстати, об индийских приложениях для потребительских кредитов — их хищнические практики подробно задокументированы. Пару лет назад были приняты жёсткие меры, которые привели к удалению тысяч таких приложений из Play Store. Я изучил ту часть из них, которые продолжают существовать.
В рейтинге Play Store Kreditbee находится в первых строках списка приложений для получения потребительских кредитов, набрав 50 миллионов скачиваний. И знаете, сколько оно проверяет других приложений? 860!!! Прошу прощения, возможно, вам придётся прищуриться, чтобы рассмотреть весь список.

Я лишь вкратце просмотрел этот список, в нём слишком много приложений. Надеюсь, кто-то из читателей проведёт подробный анализ. Вероятно, из-за информационного пузыря, в котором я живу, мне не доводилось слышать о большинстве этих программ, даже несмотря на то, что у многих из них десятки миллионов скачиваний.
Кроме обычных категорий я заметил и проверки приложений наподобие Tamil Calendar, Odia Calendar, Qibla Direction Finder, религиозных и астрологических приложений. Разработчики точно знают, что делают.
В списке есть «Jodii for Diploma, +2,10 below» — приложение для знакомств людей, не закончивших старшую школу. Оно имеет более 10 миллионов скачиваний.
Там же можно найти «गाय भैंस खरीदें बेचें Animall» (маркетплейс для покупки/продажи коров?) тоже с более чем 10 миллионами скачиваний.
Этот список приложений позволяет понять, как пользуется телефонами большая часть Индии, её повседневную жизнь, привычки и приоритеты.
В ещё одно ведущее приложение для потребительских кредитов, Moneyview, с более чем 50 миллионами скачиваний, включены проверки аж 944 приложений — самый длинный список среди всех исследованных мной приложений. Я не буду включать его в этот пост, полностью его можно посмотреть отдельно.
Меня удивляет, что KreditBee и Moneyview прошли проверку Play Store. В политике Play Store приложениям для получения потребительских кредитов явным образом запрещается использовать разрешение QUERY_ALL_PACKAGES. Но приложения обходят это ограничение, вручную перечисляя в файле манифеста каждое приложение, которое они хотят отслеживать.
Я обнаружил лишь один файл манифеста, содержащий разрешение QUERY_ALL_PACKAGES — у приложения Cred. Play Store выдаёт «временное исключение» на добавление этого разрешения, если приложения «предназначены для упрощения финансовых транзакций с участием финансово регулируемых инструментов».
Но ни одно из прочих проанализированных мной приложений в том же сегменте, что и Cred, например, PhonePe и PayTM, не имели этого разрешения в файлах манифеста. На самом деле, Cred тоже предоставляет потребительские кредиты, а значит, согласно политике Play Store, не может получать этого исключения. Не знаю, как Cred удалось сохранить это исключение, позволяющее ему просматривать все приложения в телефоне без указания конкретного списка.

Я прочитал файлы манифестов примерно пятидесяти популярных приложений индийских компаний. Если не считать Swiggy, Zepto, Cred и пары приложений для потребительских кредитов, большинство содержало вполне разумные и уважающие пользователя списки запросов приложений.
Я ожидал худшего. Возможно, я слишком цинично настроен по отношению к этим приложениям — не могут ли они быть вполне респектабельными?
Я уже почти готов был завершить своё исследование, но заметил пару интересных строк, просматривая файл манифеста одного из таких приложений:
<queries> [...] <intent> <action android:name="android.intent.action.MAIN" /> </intent> [...] </queries>
Я не специалист в разработке для Android, но насколько понимаю, фильтр ACTION_MAIN в показанной выше конфигурации разрешает просматривать все установленные приложения, которые, если упростить, имеют доступ к экрану.
Так как большинство установленных приложений имеет интерфейс пользователя, этот фильтр предоставляет разработчикам доступ для просмотра всех приложений в телефоне без необходимости разрешения QUERY_ALL_PACKAGES!
Я набросал при помощи LLM небольшое приложение для Android и добавил в файл манифеста тот же фильтр ACTION_MAIN. И когда я попробовал выполнить запрос установленных пакетов, то, как и ожидалось, этот небольшой хак позволил мне вернуть список всех приложений в телефоне!
Это выглядит как огромная дыра в конфиденциальности Android. Но, наверно, Play Store будет блокировать приложения, использующие этот хак, ведь это явное нарушение политики защиты пользовательских данных?
Из 47 случайно выбранных индийских приложений фильтр ACTION_MAIN использовался в 31.
Вот приложения, использующие этот хак:
Astrotalk, Axis Mobile, Bajaj Finserv, BookMyShow, Cars24, Cure.fit, Fibe, Groww, Housing, Instamart, Ixigo, JioHotstar, KreditBee, KukuTV, LazyPay, Ludo King, Meesho, MoneyTap, Moneyview, Navi, NoBroker, Nykaa, Ola, PhonePe, PhysicsWallah, Slice, Spinny, Swiggy, Swiggy Delivery, Tata Neu, and Zomato.
Приложения, не использующие этот хак:
Airtel Thanks, Blinkit, Byju’s, MyGate, Dream11, Flipkart, HDFC Mobile, Healthify, INDmoney, MyJio, Paytm, PaisaBazaar, ShareChat, Unacademy, Vedantu, Zepto
Даже у дурацкой Ludo King есть этот фильтр в файле манифеста. То есть большинство индийских компаний может видеть все приложения в вашем телефоне, просто они делают это чуть скрытнее, чем приложения наподобие Swiggy и Zepto. Так что никакие они не респектабельные.
На самом деле, у Swiggy тоже есть эта конфигурация фильтра, однако в нём зачем-то есть и явный список запрашиваемых приложений, хотя оно могло запросто делать это и скрытно. Впрочем, я не жалуюсь. Эта оплошность позволила мне изучить практики сбора данных Swiggy. Если бы Google применяла эту политику надлежащим образом, то мы бы знали, какие приложения ищут и другие компании.
Все изученные мной файлы манифестов выложены на мой Github. Основная их часть скачана 18 или 19 мая.
Этот хак применяется не только приложениями индийских компаний. Я проверил манифесты некоторых других популярных приложений. Эта конфигурация есть в Facebook, Instagram, Snapchat, Subway Surfers и Truecaller. У Amazon, Spotify, X, Discord и WhatsApp её нет. Другие приложения я не изучал.
Это заставило меня задаться вопросом: в чём смысл политики Google по видимости пакетов? Она должна защищать пользователей, однако большинство приложений, похоже, всё равно нашли способы обходить её.
А данные об установленных приложениях очень конфиденциальные и личные. В 2022 году сайт Vice сообщил, что маркетплейс данных Narrative продавал данные о пользователях, скачивающих приложения для отслеживания месячных, непосредственно после появления новостей о возможной отмене решения по делу Роу против Уэйда (благодаря которому в США существовало федерально защищаемое право на аборт). Это очень пугающая ситуация.
Установленные приложения — это один из примеров данных. Широкое множество разрешений, включаемое всеми приложениями в файлы их манифестов, часто гораздо больше необходимого; надеюсь, их анализом тоже кто-нибудь займётся.
Завершу я пост небольшим примером из Zepto. Приложение запрашивает разрешение READ_SMS. Можно отклонить его, но оно обязательно, если вы регистрируетесь в Zepto Postpaid.
Если дать разрешение, то приложение проверяет во входящих следующий список ID отправителей:

Большинство из них — это ID банков. Вероятно, приложение считывает их, чтобы понять, разрешать ли пользователю выбирать постоплату. Оно может читать их, даже если вы не разрешали этого. Кроме того, обратите внимание, что в список попали SMS от Blinkit, Swiggy, Bigbasket и Flipkart [прим. пер.: другие сервисы доставки еды].
Скорее всего, конкуренты делают то же самое, они просто не оставляют столь очевидных доказательств в самом приложении.
Когда приложение получает разрешения наподобие READ_SMS, мы, пользователи, не имеем возможности увидеть, что оно считывает.
Когда в следующий раз вы будете устанавливать приложение в устройство с Android, помните, что эта информация передаётся всему миру. Брокеры данных будут с их помощью профилировать вас, связывать их с данными из других рекламных сетей, а в конечном итоге эти сведения будут использованы для того, чтобы определить, сколько с вас брать денег при заказе шаурмы онлайн.
ссылка на оригинал статьи https://habr.com/ru/articles/895774/
Добавить комментарий