Группа ученых из университетов Швейцарии, Италии и Нидерландов готовится представить интересный доклад на выставке MOBILESoft, которая состоится в Сеуле в этом году. Отчет специалистов уже доступен в сети и посвящен применению малоизвестной функции Android, которая может представлять угрозу для конфиденциальности пользователей.

Эксперты рассказывают, что многие приложения для Android используют IAM (Installed Application Methods), набор вызовов API Android, которые позволяют разработчикам получать список других приложений, установленных на устройстве пользователя.

Изначально инженеры Google создали эти вызовы API (12) для того, чтобы разработчики могли обнаруживать несовместимость приложений или настраивать взаимодействие с другими продуктами. Однако, по данным исследователей, IAM чаще используется для отслеживания и идентификации пользователей. Так, изучив список установленных приложений, рекламодатель может собрать информацию об интересах и личных качествах человека (пол, известные языки, религиозные убеждения, возрастные группы и так далее).

Хуже того, защититься от слежки через IAM практически невозможно, так как для нее приложению не нужно запрашивать разрешение у пользователя. Более того, об использовании IAM могут не подозревать и сами разработчики приложений, если в своем продукте они используют сторонние аналитические пакеты или  рекламные библиотеки. Те могут «тихо» выполнять вызовы API IAM, а разработчик даже не будет знать об этом.

В опубликованном документе рассказывается, что исследовательская группа проанализировала тысячи приложений для Android и их код в поисках вызовов IAM API (независимо от того, отвечал за эти вызовы код самого приложения или код сторонней библиотеки). Так, анализу подвергли 14 342 приложения из топов Google Play Store, а также набор из 7 886 приложений, чьи исходники были опубликован в интернете.

Выяснилось, что использование IAM распространено среди коммерческих приложений: 30,29% (4 214) приложений Play Store выполняют вызовы IAM. Для приложений с открытым исходным кодом это число составило лишь 2,89% (228 приложений).

Также исследователи попытались выяснить, зачем приложения вообще примеряют вызовы IAM и чего пытаются добиться таким образом. Так, почти половина всех зафиксированных вызовов IAM, обнаруженных как приложениях из Play Store, так и в приложениях с открытым исходным кодом, использовалась для вызова packageName IAM, который извлекает список локально установленных приложений. Остальные вызовы IAM используются редко (менее 15%, а в большинстве случаев менее 1%) и большинство из них — это вызовы IAM для получения технических сведений о приложении, таких как подпись, версия, время последнего обновления или номера версий SDK. Подобные вызовы часто используются для отладки, для чего исходно и  создавалось IAM API.

Исследователи окончательно убедились, что вызовы IAM чаще всего используются для сбора данных, а не для отладки, когда проверили, где обычно располагается код, выполняющий эти вызовы. Так, подавляющее большинство вызовов IAM происходят от сторонних библиотек, а не из самих приложений.

«В коммерческих приложениях и приложениях с открытым исходным кодом в общей сложности было обнаружено 7538 и 287 обращений к IAM (некоторые приложения выполняют более одного вызова). Использование IAM в сторонних библиотеках чаще встречается в коммерческих приложениях, где 6 306 (83,66%) вызовов выполняются в коде, принадлежащем библиотекам, а остальные 1232 (16,34%) выполняются в собственном коде приложений. Что касается приложений с открытым исходным кодом, 178 вызовов (62,02%) были выполненные библиотеками, а остальные 109 (37,98%) относятся к собственному коду приложений», — пишут специалисты и добавляют, что более трети сторонних библиотек, осуществлявших вызовы IAM, используются в рекламных целях.

В заключение своего доклада, исследовательская группа призвала Google ограничить использование вызовов API IAM. По мнению экспертов, идеальным выходом из ситуации будет запрашивать разрешения на работу с IAM у пользователей.

3 комментария

  1. Аватар

    0d8bc7

    28.03.2020 в 13:55

    Зачем вообще создавать такой функционал?
    «Изначально инженеры Google создали эти вызовы API (1, 2) для того, чтобы разработчики могли обнаруживать несовместимость приложений или настраивать взаимодействие с другими продуктами.»
    Это можно использовать также для недобросовестной конкуренции, заставляя пользователя удалить неугодную тебе программу — формально это тоже будет несовместимость.
    А вообще, программы В ОПЕРАЦИОННОЙ должны иметь возможность работать в принципе не мешая друг другу, на то это и операционая система. В общем, Google создаёт не очень качественный продукт, понятно.

  2. Аватар

    le

    27.05.2020 в 12:21

    Бред какой-то. Каким образом работоспособность приложения зависит от присутствия других приложений? Это ж не винда, где все работают в общей среде с админскими правами.
    И прямого взаимодействия с другими приложениями быть не должно; должно быть только средствами, предоставляемыми ОС.

Оставить мнение