Привет, Хабр!

Ну вот вы ставите Яндекс Go, жмёте «Разрешить» на всё подряд — микрофон, контакты, местоположение. Такси же, надо. А потом выясняется, что приложение лезет в буфер обмена. 16 раз в разных местах кода. Зачем такси буфер обмена — я так и не понял.

Короче, я взял семь популярных Android-приложений и разобрал их по косточкам. SAST, реверс-инжиниринг, декомпиляция DEX, разбор манифестов, ковыряние в нативных библиотеках. Под раздачу попали: Яндекс Go, Карты, Музыка, Пэй, Телемост, Mir Pay и мессенджер МАКС (бывший ICQ New / VK Messenger).

Спойлер: один мессенджер умеет распознавать ключевые слова прямо в аудиопотоке звонков. Не метаданные, не «кто кому звонил» — а именно слова.

Как проводился анализ

Каждый APK декомпилировался, дальше — статический анализ DEX-кода, ресурсов, манифеста. Что искал: захардкоженные ключи, незащищённые компоненты (экспортированные Activity, BroadcastReceiver, ContentProvider), слабую криптографию, cleartext-трафик. Отдельно — слежка: трекеры, VPN-детекция, fingerprinting, скрытый сбор данных (буфер обмена, контакты, журнал звонков, AudioRecord). За основу взял OWASP MASTG.

Полные листинги CWE и CVSS-скоринг — в PDF-отчётах, ссылки внизу. Тут — выжимка.

Общая картина

93 уязвимости на семёрку. 5 критических, 31 высокая, 42 средних. Но уязвимости — это полбеды. Гораздо интереснее, что приложения делают с вашими данными в штатном режиме, без всяких эксплойтов.

Четыре приложения получили 100/100 по риску слежки. Ещё одно — 95. Относительно тихий только Mir Pay (34/100).

Яндекс: пять приложений, одна философия сбора данных

Яндекс Go (v5.73.1)

ru.yandex.taxi | 111.8 МБ | Target SDK 35

Про буфер обмена я уже сказал. 16 обращений в коде. Контакты — 13. Журнал звонков — 2. SMS — тоже дёргает. Для такси-приложения набор, мягко говоря, избыточный.

Трекеров шесть: AppMetrica (5759 ссылок в коде — нет, это не опечатка), Adjust, Firebase Analytics + Crashlytics, Amplitude, Yandex Streaming Telemetry, RuStore Stats.

VPN-детекция — шесть механизмов. Самый мерзкий — утечка через WebRTC ICE Candidate (879 ссылок в коде). Даже с включённым VPN приложение может вытащить ваш настоящий IP. Кроме того: проверка интерфейсов tun0/ppp0, перечисление NetworkInterface, прямая проверка VPN-состояния (152 ссылки).

Fingerprinting: getDeviceId (42 вызова), AdvertisingIdClient (16), OAID (8), IMEI (3), BSSID (3), оператор сети и SIM. Идентифицируют по всему, до чего могут дотянуться.

18 уязвимостей, 7 высоких. Cleartext HTTP, JavaScript Bridge через addJavascriptInterface, захардкоженные API-ключи в DEX, экспортированная EsiaBindActivity (привязка к Госуслугам — и она экспортирована, CWE-862).

Риск слежки: 100/100.

Яндекс Карты и Навигатор (v28.6.5)

ru.yandex.yandexmaps | 335.2 МБ | Target SDK 35

335 мегабайт навигатор. Ладно, там карты оффлайн, 3D-здания, панорамы. Но посмотрим, что ещё в комплекте.

25 экспортированных Activity — рекорд среди всех семи приложений. Каждая доступна другим приложениям на устройстве (CWE-926). Сверху — 30 экспортированных BroadcastReceiver.

Трекеров семь. YandexAds SDK — 5709 ссылок. AppsFlyer — 600. Это не «аналитика для улучшения продукта», это рекламная атрибуция в полный рост.

Фоновая геолокация: ACCESS_BACKGROUND_LOCATION + ACTIVITY_RECOGNITION + 173 ссылки на geofence. Карты знают, где вы находитесь, даже когда свёрнуты.

12 cleartext HTTP URL, включённый setAllowFileAccessFromFileURLs, 213 строк с потенциальными секретами.

Риск слежки: 100/100.

Яндекс Музыка (v2026.04.1 #141.1rur)

ru.yandex.music | 59.6 МБ | Target SDK 35

В манифесте стоит usesCleartextTraffic=true. Приложение разрешает отправку данных по голому HTTP. На дворе 2026 год. CVSS 8.1 — единственная «критичка» среди яндексовских приложений.

При этом OpenTelemetry endpoint тоже работает по HTTP. Телеметрию о вас гоняют открытым текстом.

5 трекеров. VPN-детекция — пять механизмов, один из них читает /proc/net/tcp напрямую. 9 обращений к AudioRecord, 14 — к буферу обмена.

Риск слежки: 95/100.

Яндекс Пэй (v0.218.1)

com.yandex.bank | 60.3 МБ | Target SDK 36

Финансовое приложение. Работает с деньгами. Network Security Config — отсутствует. Для банковского ПО это CVSS 8.5.

Но вот что по-настоящему удивило: разрешение READ_CALL_LOG. Платёжное приложение хочет знать, кому вы звонили. Рядом — QUERY_ALL_PACKAGES: сканирует все установленные приложения на устройстве. Вместе это складывается в неплохой инструмент для профилирования.

925 ссылок на слабую криптографию (DES, ECB, SHA1) — в приложении, через которое проходят платежи. 322 захардкоженных IP-адреса — рекорд среди всех семи.

4 трекера, AppMetrica доминирует (3569 ссылок).

Риск слежки: 87/100.

Яндекс Телемост (v3.10.0.131)

ru.yandex.telemost | 229.3 МБ | Target SDK 35

Видеозвонки — тут WebRTC нужен по делу. Но 358 ссылок на ICE Candidate leak и 119 на IceCandidate — это за гранью «просто звонков».

Сценарий: вы под VPN, заходите в звонок. WebRTC устанавливает peer-to-peer соединение и опрашивает все сетевые интерфейсы устройства. VPN-туннель «протекает», ваш настоящий IP утекает.

Ещё — разрешение WRITE_CONTACTS. Телемост может записывать в адресную книгу, а не только читать.

В коде класс DeviceFingerprint и захардкоженные адреса Яндекс DNS (77.88.8.8 / 77.88.8.1) — приложение может обходить ваши DNS-настройки.

Риск слежки: 100/100.

МАКС (v26.13.0) — самая неприятная находка

ru.oneme.app | 127 МБ | Target SDK 35

Про остальные приложения можно спорить — мол, трекеры везде, ну и что. Но МАКС — это другой уровень.

KeywordSpotterManager

В коде лежит класс KeywordSpotterManager. Система распознавания ключевых слов в аудиопотоке звонков. Не «кто кому звонил», не «сколько длился вызов». Анализ того, что вы говорите. CVSS 9.0, CWE-359.

Я перепроверил. Класс на месте, ссылки в коде есть, связка с аудиоподсистемой прослеживается. Это три критические уязвимости из трёх — все связаны с аудио.

libtracernative.so

В APK лежит нативная библиотека libtracernative.so. Нативный код на C/C++ работает ниже Java-слоя, его сложнее анализировать и сложнее контролировать средствами ОС. CVSS 8.5.

Телеметрия звонков

6 трекеров: MyTracker (VK/Mail.ru), OneLog, Adjust, AppTracer + DPS/TraceFlow, CallAnalyticsSender, Amplitude.

CallAnalyticsSender отправляет телеметрию звонков через api.ok.ru. Да, сервер Одноклассников получает данные о ваших звонках в МАКСе.

VPN-детекция — 7 механизмов, 625 ссылок на WebRTC leak. Больше, чем у кого-либо ещё.

15 уязвимостей, 3 критические, 7 высоких. Лидер по критическим.

Риск слежки: 100/100.

Mir Pay (v1.61.1.350) — тихий омут

ru.nspk.mirpay | 68.5 МБ | Target SDK 35

На фоне остальных — чуть ли не образец. Один трекер (AppMetrica, 2350 ссылок). VPN не детектит. Fingerprinting минимальный.

Но с безопасностью не всё гладко. Network Security Config отсутствует — для платёжного приложения НСПК это странно. Шифрование — RSA/ECB/PKCS1Padding, подверженное Padding Oracle. Внутри 5 whitebox-реализаций криптографии с тяжёлой обфускацией — видимо, защищают токены. Подход нормальный, но ECB-режим его подрывает.

И вишенка: AdMob SDK в платёжном приложении НСПК. Зачем платёжке рекламный фреймворк — отдельный вопрос.

Риск слежки: 34/100.

Сводная таблица

#

Приложение

Трекеры

VPN-детекция

Скрытый сбор

Риск

1

Яндекс Go

6

Высокий

clipboard, contacts, call_log

100/100

2

Яндекс Карты

7

Средний

clipboard, contacts, audio

100/100

3

Телемост

5

Высокий

clipboard, contacts, audio

100/100

4

МАКС

6

Высокий

clipboard, contacts, audio, KWS

100/100

5

Музыка

5

Средний

clipboard, contacts, audio

95/100

6

Пэй

4

Низкий

clipboard, contacts, call_log

87/100

7

Mir Pay

1

Нет

running_processes

34/100

Что с этим делать

Отказаться от Яндекс Go или Карт мало кто готов, да и не надо. Но ущерб можно снизить.

DNS-фильтрация. AdGuard или NextDNS. Блокируют домены трекеров на уровне DNS — дёшево, быстро, настраивается за пять минут. Трекеров в этих приложениях суммарно за двадцать.

Рабочий профиль. Shelter или Island на Android 14/15 создают изолированный профиль. Приложение внутри него не видит ваших контактов, буфер обмена и файлы из личного профиля.

Разрешения. Отзывайте микрофон, контакты и геолокацию, когда приложение не нужно. Фоновый доступ к местоположению используют 5 из 7 приложений — его стоит убрать первым.

WebRTC. Если через VPN — отключайте WebRTC. В браузере это делается расширением, в приложениях сложнее, но VPN с TURN relay уменьшает утечку.

МАКС и KWS. Тут каждый решает сам. Функционал распознавания ключевых слов в аудио — серьёзный аргумент в пользу альтернативных клиентов или модов.

Отчёты

Полные PDF с таблицами уязвимостей, CWE-кодами, CVSS-скорингом и разбором механизмов слежки:

Методология: OWASP MASTG + SAST + Reverse Engineering.

Автор: JohNick

Комментарии (20)


  1. 0ka
    28.04.2026 10:01

    А что на счёт yango maps?


    1. NanoVHF
      28.04.2026 10:01

      Постою рядом за ответом


  1. vjmka
    28.04.2026 10:01

    А Сбер\Госуслуги? Понимаю что ответ понятен, но детальный анализ не помешал бы


  1. nadge
    28.04.2026 10:01

    Было бы интересно узнать как в iOS... Не думаю, что там что-то удивительное, однако


    1. YuriyPashkov
      28.04.2026 10:01

      Примерно тоже самое и будет: бесконечные трекеры, VPN-детекция, слежка всякая во время работы. При этом список других приложений не получат, к буферу обмена без вашего разрешения доступ не получат, в незапущенном состоянии ничего не соберут (хотя тут могут быть оговорки насчет сайлент-пушей и какого-то функционала небольшого с ними). Кстати, в iOS есть механизм App Groups, и у приложений из одной группы есть фактически свой собственный канал для обмена данными, так что приложения условного Яндекса могут спокойно его использовать для дополнительного сбора и отправки даных каких-то.
      Рекомендации те же, что и для Android: не давайте лишних разрешений приложениям, не запускайте их с работающим VPN, DNS-фильтрация, где это возможно. Шелтер в iOS не завезли, увы.


      1. Lucky715
        28.04.2026 10:01

        К сожалению Шелтер тоже обходится, частично и с рядом оговорок конечно


  1. MAXH0
    28.04.2026 10:01

    Отдельный телефон под эти приложения...


    1. NanoVHF
      28.04.2026 10:01

      На все приложения телефонов не напасёшься. Раньше у меня была концепция, если махаон нельзя избежать, то пусть он будет на обсолютно пустом изолированном телефоне. Теперь концепция меняется, на отдельный телефон переезжает всё отечественное и работает без ВПН. Пусть себе в пустой колбук стучится наздоровье. А отдельный телефон, как обычный телефон с ВПН, туиттерами, телегой и проч запрещёнкой. А, вот, что с махаоном теперь делать - ХЗ.


      1. MAXH0
        28.04.2026 10:01

        А чем он мешает в ряду отечественных?


        1. NanoVHF
          28.04.2026 10:01

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


  1. dsrk_dev
    28.04.2026 10:01

    Фоновая геолокация: ACCESS_BACKGROUND_LOCATION + ACTIVITY_RECOGNITION + 173 ссылки на geofence. Карты знают, где вы находитесь, даже когда свёрнуты.

    Вам самим то не смешно такое писать?

    Но вот что по-настоящему удивило: разрешение READ_CALL_LOG. Платёжное приложение хочет знать, кому вы звонили. Рядом — QUERY_ALL_PACKAGES: сканирует все установленные приложения на устройстве. Вместе это складывается в неплохой инструмент для профилирования.

    Или в инструмент для определения что вы сейчас общаетесь с мошенником

    Ещё — разрешение WRITE_CONTACTS. Телемост может записывать в адресную книгу, а не только читать.

    Приложение для звонков просовывает контакты в телефонную книгу, ужас какой!

    Я перепроверил. Класс на месте, ссылки в коде есть, связка с аудиоподсистемой прослеживается. Это три критические уязвимости из трёх — все связаны с аудио.

    А вы проверили какие конкретные фразы распознаются, скорее всего это фразы указывающие на плохую свзять, а не на то что вы что-то запрещенные говорите. Для второго есть СОРМ

    CallAnalyticsSender отправляет телеметрию звонков через api.ok.ru. Да, сервер Одноклассников получает данные о ваших звонках в МАКСе.

    Удивительно, продукт разрабатываеммый командой ок передаёт данные ок. Спойлер там ещё и домены ок используются для api


  1. sergey2ru
    28.04.2026 10:01

    Интересно есть ли что-то такое в 2Гис. Когда забываю его отключить, можно это заметить по ощутимому нагреву телефона. А он всего лишь в фоне работает.


    1. Aliandwa
      28.04.2026 10:01

      Приложение размером в 1 ГБ имеет право это делать.


  1. Kenya-West
    28.04.2026 10:01

    мессенджер МАКС (бывший ICQ New / VK Messenger)

    У вас нейронка галлюционирует. МАКС технически не является ни предшественником, ни заменой ICQ, ни VK. Он построен на кодовой базе Там-Там, но идентификатор пакета у него свой.


    1. tarielx
      28.04.2026 10:01

      Но вроде как ICQ New был на той же кодовой базе, что и Там-Там.


  1. Tomasina
    28.04.2026 10:01

    Технически одно приложение может "перехватить" данные другого приложения? Ранее ктото писал что Макс видит переписки в других приложениях.


    1. dsrk_dev
      28.04.2026 10:01

      Нет конечно, в мобильных ОС все приложения живут в песочницах, приложение никак не может выбраться из песочница


    1. khimick
      28.04.2026 10:01

      конечно может, если это клавиатура.


  1. kenomimi
    28.04.2026 10:01

    Ватсапп и прочие поделки меты проверьте. Тоже много чудных открытий ждет вас...

    А так давно уже есть сборки андроида типа e/OS, которые спуфят большинство известных методов идентификации, искажают неолокацию, запрещают детекцию впн (не наши это первые начали делать, потому уже давно функционал есть), блокируют трекеры и метрики, и так далее. Причем на те же пиксели встает даже с сохранением safetynet и прочих проверок целостности.


  1. Konstantin_Burov
    28.04.2026 10:01

    Спасибо за публикацию! Было интересно читать