- PVSM.RU - https://www.pvsm.ru -

Как за вами следит Яндекс: часть 1-3

Как за вами следит Яндекс: часть 1-3 - 1

Яндекс - 69,9% поискового рынка РФ, 110+ млн пользователей в месяц, десятки сервисов: поиск, браузер, карты, маркет, такси, музыка, почта, диск, алиса, еда, погода, кинопоиск, плюс... Если у вас андроид - Яндекс.Поиск и Яндекс.Браузер почти наверняка стоят с завода. На Samsung, Xiaomi, Honor, Realme...

Мы взяли два APK Яндекса и отреверсили их.

Как за вами следит Яндекс: часть 1-3 - 2

Мы в телеграм

@openlibrecommunity [1]

Там прям плохо. Настолько, что MAX [2] и РУСТОР [3] на их фоне выглядит как детский сад.

В одну статью все это не влезает, придется разделить на несколько, а конкретно на 3.

Кстати подарочек - нейросеть от яндекса для т9 в виде GGUF [4].

Что там было

  • Аудио-претриггер буфер - микрофон пишет звук до того как вы сказали Алиса, и этот кусок звука улетает на сервер. При этом размер окна управляется с сервера - может быть 3 секунды, а может и больше.

  • WiFi-сканирование - Яндекс сканирует все точки вокруг, собирает BSSID/SSID/RSSI и шлёт на свой сервер для геолокации.

  • Платёжные данные (PAN + CVV) до токенизации - до того как карта затокенизируется, PAN и CVV уходят на mobpayment.yandex.net [5].

  • 94 JavaScript Bridge метода - 17 addJavascriptInterface() мостов. XSS на любом поддомене yandex.ru [6] = компрометация устройства.

  • Адресная книга в реальном времени - ContentObserver на всё устройство, любые изменения контактов улетают на сервер.

  • Logcat эксфильтрация с AES шифрованием - костыльный код.

  • Remote config (70+ флагов) - сервер может включить сохранение карт, форсировать Алису, отложить запрос разрешений на 3 года.

АУДИО-СЛЕЖКА PRE-TRIGGER БУФЕР

Голосовой помощник Алиса работает так: микрофон пишет звук постоянно, но не отправляет его пока не услышит «Алиса». Когда вы говорите «Алиса» - вы уже сказали это слово. То что было до слова «Алиса» - попадает в буфер.

И Яндекс этот буфер забирает на свои сервера.

Называется pre-trigger buffer. Кольцевой буфер куда микрофон пишет звук непрерывно. Когда wake word срабатывает - приложение вычитывает буфер и отправляет всё что было ДО ключевого слова вместе с командой.

Казалось бы ну ладно, что с того, может быть это для дебага или серверной валидации, только вот почему то ( а почему нам ответят в коментариях разработчики яндекса на что я очень надеюсь ) размер этого окна не фиксирован. Он управляется с сервера через параметры HasPreroll, buffer-size-ms, loggingSoundLengthBeforeTriggerMs. по умолчанию оно стоит 3 секунды, если бы так и было я бы не добваил пункт в статью... только вот его можно регулировать с сервера, сервер может выставить любое. Или вообще выключить pre-trigger.

Буфер по умолчанию 48000 сэмплов (3с)

Смотрим utw.java:42 - там конфигурация буфера Алисы. 48000 семплов при 16kHz = 3 секунды. Это дефолт.

audio buffer

В BaseAudioSource.java:303 создаётся объект захвата с микрофона. audioSource = 1 = MIC, 16kHz, моно, 16 бит.

audio record creation

BaseAudioSource.java:345-367. Работает пока сервис жив. Читает пачки звука, пробрасывает подписчикам.

audio loop

Куда улетает аудио

Шаг 1: Микрофон -> AudioRecord (PCM 16kHz)
Шаг 2: Кольцевой буфер 48000 сэмплов (pre-trigger)
Шаг 3: Wake word -> PhraseSpotter триггер
Шаг 4: Opus/AAC кодирование
Шаг 5: WebSocket.sendData() -> wss://uniproxy.alice.yandex.net/uni.ws
Шаг 6: Сервер Яндекса (расшифровка + биометрия + хранение)

Для контекста

Разумеется без pre-trigger буфера современный голосовой помощник не может нормально работать - ему нужно слышать контекст до команды. Но моя претензия не к этому, а вот к чему:

  1. Размер буфера управляется с сервера - а не фиксирован кодом. Сервер Яндекса в любой момент может выставить 30 секунд, минуту, сколько угодно.

  2. Pre-trigger включает биометрию - голосовой отпечаток строится в том числе по pre-trigger контенту.

  3. Пользователю не сообщается что pre-trigger активен, какого он размера, и что запись уже идёт.

  4. Наверное вы даже не знали что pre-trigger там вообще существует.

WIFI FINGERPRINTING

Яндекс сканирует все WiFi точки рядом, собирает MAC роутера, имя сети, силу сигнала и отправляет на сервер. У Яндекса есть база расположения WiFi точек - зная какие рядом, вычисляет ваши координаты с точностью до 10-50 метров. Работает внутри зданий, где GPS не ловит. Заходите в торговый центр - Яндекс знает в какой вы магазин зашли.

wifi scan

Куда шлётся

BuildConfig.java [7] - основной endpoint: https://startup.mobile.yandex.net [8]. Резервные: startup-mobile.ap.yandex-net.ru [9], startup.mobile.webvisor.com [10].

G2.java - SynchronizedDataCache с именем "wifi". Данные кэшируются и отправляются пачками.

Для контекста

В пользовательском соглашении (ToS) всё это официально прописано - мол, это нужно для обучения их алгоритмов, ( на деле для рекламы ). Да и не стоит забвать Google занимается ровно тем же самым. Становится ли от этого легче? Вообще ни капельки.

Решать тут вам, но я думаю у вас есть право знать что делает приложение на вашем телефоне ( не стоит забывать что ваша геолокация моментально уходит сторонним компаниям, а базы данных сливают до сих пор ) .

ПЛАТЁЖНЫЕ ДАННЫЕ (PAN + CVV) ДО ТОКЕНИЗАЦИИ

Когда вы вводите карту в приложении Яндекса, PAN (номер карты) и CVV летят на сервер до токенизации. Но не волнуйтесь, это абсолютно легально и соответствует PCI DSS. Яндекс же сертифицирован, все под контролем - примерно так же, как в 2023 году под полным контролем находился их исходный код до того, как утек на торренты.

АРХИТЕКТУРА БЕЗОПАСНОСТИ

Как за вами следит Яндекс: часть 1-3 - 7

Проблема в том что весь цивилизованный мир уже давно использует архитектуру на порядок элегантнее и безопаснее:

  • Client-side токенизация (iFrames / Hosted Fields, как у Stripe Elements или Braintree): Данные карты вообще не касаются ваших серверов. Поля ввода физически изолированы на стороне провайдера, приложение видит только готовый токен. Поверхность атаки на вашей стороне = ноль. Радиус поражения при взломе бэкенда = ноль.

  • Device-level токенизация (Apple Pay / Google Pay / EMVCo): Пользователь вообще не светит картой. Девайс генерирует одноразовую криптограмму на уровне железа (Secure Enclave). Даже если хакер перехватит этот токен по пути, он будет абсолютно бесполезен для любых других транзакций.

  • И, для сравнения, Server-side токенизация (как у Яндекса): Данные карты послушно летят через твой бэкенд, API-гейтвей, балансировщики, проходят через SIEM, ELK-stack и вообще через всё, что может в один прекрасный момент упасть с ошибкой и радостно плюнуть {pan, cvn} в файлик с логами.

Какие есть риски?

  • Логи. Сервер упал с 500-й ошибкой ровно в момент передачи карты? Поздравляю, {pan: "4276..., cvn: "123"} уже в логе. А лог читают 150 человек. Откуда мы это знаем? из 7e0ac90b489baee8a823381792ec67d465488fef

  • Промежуточные сервера. startup.mobile.yandex.net [11] - это не крепость, это обычный бэкенд с кучей эндпоинтов, аналитикой, экспериментами.

  • Инсайдер. Охранять один микросервис легко. Охранять всю инфраструктуру приложения, через которую транзитом проходят PAN+CVV - нужно, чтобы 100500 разработчиков, devops'ов и тестировщиков были в PCI DSS scope.

Для контекста

Юридически легально. Есть сертификат, есть изолированный CDE-контур.

Но архитектурно это код образца 2012 года. Stripe, Braintree, Adyen уже 10 лет назад доказали, что можно сделать так, чтобы сервер приложения вообще не видел карту.

Если mobpayment.yandex.net [5] взломают - всё, данные утекли. Яндекс взламывали. VK взламывали. АНБ взламывали

VPN DETECTION

За это их уже забуллили все, но грех упустить

Приложение проверяет наличие интерфейса tun0 (стандартное имя для VPN). Если найден - блокирует авторизацию.

Как за вами следит Яндекс: часть 1-3 - 8

Думаю не секрет что Яндекс заставляет отключать VPN и светить реальный IP, потому что полностью прогнулся под требования Роскомнадзора и Кремля по тотальной слежке и цензуре.

DNS HARDCODED

Приложение использует 77.88.8.8 и 77.88.8.1 в обход системного DNS, VPN DNS, DoH и Tor. Это DNS Яндекса. Даже если вы настроили Cloudflare DoH или используете Tor - Яндекс делает запросы к своим DNS напрямую.

dns hardcoded

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

NATIVE SURVEILLANCE ENGINE

Самое сладкое разработчики спрятали в native-библиотеке libquarkenstein_daemons.so [12].

native jni

Внутри зашито всё: пайплайны записи аудио с микрофона (с прямой отправкой на сервера), манипуляции с процессами в обход security-модели Android, нативная геолокация и шифрование. Это полноценный движок слежки, заботливо упакованный в один тяжело читаемый файл (в котором, кстати, по классике забыли затереть внутренние debug-пути сборки, денис опять ты?) вообщем это я так, чтобы вы не забывали о том что выйдет 2/3 часть, новости есть тут.

JAVASCRIPT BRIDGE

21 addJavascriptInterface() мостов. 94 @JavascriptInterface метода. Файл assets/api.js - 30+ функций.

Как за вами следит Яндекс: часть 1-3 - 11

Для контекста

Любая XSS-уязвимость на поддоменах yandex.ru [6] - это мгновенный билет к контролю над вашим устройством. Злоумышленникам нет смысла пробивать лбом неприступные главные серверы с их WAF и круглосуточным мониторингом. Достаточно найти одну незапертую форточку на заднем дворе экосистемы.

XSS - неизбежнен:

  • Кладбище поддоменов: У IT-гигантов их сотни, если не тысячи. От заброшенных промо-акций пятилетней давности до дев-песочниц, где выполнение пользовательского кода - это вообще основная функция.

  • Человеческий фактор: В инфраструктуре такого колоссального размера забытого, устаревшего или криво написанного кода невозможно избежать ( без формальной верификации ) . Уязвимый эндпоинт, позволяющий исполнить произвольный веб-скрипт, появится со стопроцентной вероятностью ( или уже тихо существует и ждет своего часа, без намека ).

  • Слепой Фейсконтроль" Как только хакерский скрипт запускается на таком уязвимом поддомене, мобильное приложение видит знакомое окончание .yandex.ru [6] и после чего радостно распахивает перед ним все 94 JS-моста, пропуская веб-пейлоад прямиком к нативным функциям.

КОНТАКТЫ

Приложение читает полную адресную книгу (имена, телефоны, email, почтовые адреса, организации, фото), а также журнал звонков. Установлен ContentObserver на ContactsContract.Contacts.CONTENT_URI - любое добавление, удаление или изменение контакта вызывает перечитывание данных. Контактные данные сериализуются через protobuf и отправляются на сервер Яндекса через HTTP POST (с OAuth-авторизацией).
VoIP / мессенджеры

Как за вами следит Яндекс: часть 1-3 - 12
Как за вами следит Яндекс: часть 1-3 - 13

Читает не только обычные телефоны, но и номера из WhatsApp, Telegram, Viber через фильтр MIME-типов phone_v2, viber, telegram, whatsapp.

павла Дурова причислили в РФ к "террористам и экстремистам"

павла Дурова причислили в РФ к "террористам и экстремистам"

Отправка на сервер

Ссобирает все контактные данные в UploadContactsRequest - протобаф-структуру с полями:

  • ContactInfo (ID контакта, id, lookup, displayname, account_type, account_name, times_contacted, timestamps)

  • PhoneInfo (номер, тип, приложение-источник)

  • LookupInfo (lookup-ключи)

Затем данные сериализуются через ae10.b(serializer, request) и отправляются HTTP POST на сервер Яндекса с заголовком Authorization: OAuth <token>.

ПАССИВНАЯ ГЕОЛОКАЦИЯ + СОТОВЫЕ ВЫШКИ

Как за вами следит Яндекс: часть 1-3 - 15
Как за вами следит Яндекс: часть 1-3 - 16
passive_gps

Приложение регистрирует пассивного провайдера геолокации - это позволяет перехватывать координаты, полученные другими приложениями на устройстве. Дополнительно собираются данные о сотовых вышках: MCC, MNC, Cell ID, LAC/TAC, что позволяет триангулировать положение устройства с точностью до 100-500 метров даже в помещениях. Пассивный провайдер доставляет обновления от любого приложения, уже имеющего координаты.

LOGCAT ЭКСФИЛЬТРАЦИЯ

Под капотом дёргается Runtime.getRuntime().exec("logcat -d") - попытка снять полный дамп системных логов. Дальше всё это пакуется, шифруется AES и летит к ним на сервер.

Как за вами следит Яндекс: часть 1-3 - 18

Для контекста

В теории, Logcat - это проходной двор, куда пишут логи вообще все приложухи на телефоне. То есть Яндекс должен пылесосить логи вашего банка, VPN, секретных чатов, историю URL-ов и краши

ситуация тут прям как с RuStore [3], повторяться не буду. Звучит страшно, но по факту это так только для юзеров старых ОС (ну или если вы сидите с кастомным рутом и выдаете права направо и налево).

Современный Android давно прикрыл эту лавочку на уровне песочницы: без системных привилегий (READ_LOGS) приложение может читать только свои собственные логи. Так что на актуальных прошивках Яндекс через этот логкат успешно соберет данные только о том, как забаговал сам Яндекс.

Если бы в Яндексе работали тру-профи, они бы изначально на уровне кода ограничили сбор логов только своим приложением. А попытка тянуть logcat -d целиком, в расчете на то, что «ОС сама обрежет лишнее» - это просто наглядный показатель того, как там пишется архитектура

APP INVENTORY

Приложение собирает полный список установленных пакетов на устройстве через два механизма: PackageManager.getInstalledApplications() и, как fallback, Runtime.getRuntime().exec("pm list packages"). Список приложений позволяет идентифицировать банки, VPN, мессенджеры, магазины, антивирусы и другие приложения пользователя.

Основной метод: getInstalledApplications()

Как за вами следит Яндекс: часть 1-3 - 19

Собирает все packageName установленных приложений.

Fallback: shell-команда

Резервный механизм при TransactionTooLargeException или DeadObjectException:

Как за вами следит Яндекс: часть 1-3 - 20

Парсит вывод package:com.example.app [13], извлекая имена пакетов.

Детектор контент-блокеров

После сбора всех пакетов v000.x() проверяет каждый на наличие meta-data:

  • "com.samsung.android [14].sbrowser.contentBlocker.interfaceVersion" - если "API_1.0", проверяется ContentProvider

  • Для подходящих приложений собирается signatureHash и displayLabel

  • Результат - список ej40{packageName, displayLabel, signatureHash}

СБП ( платежи, все вроде легально )

использует getInstalledApplications() для поиска установленных банковских приложений. Сверяет packageName со списком известных банков, результат показывается в UI оплаты.

VK Push SDK

При отсутствии master-host приложения шлёт аналитический ивент "vkcm_sdk_client_no_master_host_found" с параметром "installed_apps", содержащим список packageName всех установленных приложений. Этот ивент уходит на серверы аналитики VK.

CLID-детекция

Сохраняется в SharedPreferences и используется для аналитики/аттрибуции.

не особо легальный обход ограничений Android

«Но покроет ли это ограничения Android 11+, где Google ввёл Package Visibility и запретил приложениям просто так видеть чужие пакеты?»

Ещё как покроет! Разработчики Яндекса не дураки, чтобы просить у Google Play опасное разрешение QUERY_ALL_PACKAGES (за которое их выкинули бы из стора). Они поступили технически изящнее: захардкодили гигантский список целевых приложений прямо в тег <queries> своего AndroidManifest.xml.

В Android 11+ если пакет явно объявлен в <queries>, приложение имеет полное официальное право проверять его наличие через PackageManager.

Что именно Яндекс внес в свой список «разрешённого наблюдения»:

  1. Вся экосистема Яндекса и дочек: Такси, Карты, Лавка, Диск, Почта, Еда, Маркет, Дзен, Плюс, Яндекс Банк, Кинопоиск, Драйв, Мессенджер.

  2. Абсолютно ВСЕ конкурентные браузеры: Google Chrome (включая Beta/Dev/Canary), Mozilla Firefox, Opera (Mini/Beta/Touch), DuckDuckGo, Vivaldi, Samsung Internet, UC Browser, Via, Mi Browser.

  3. Все популярные мессенджеры и соцсети: Telegram, WhatsApp (+ Business), Viber, VKontakte, Instagram, Twitter, Reddit, Facebook (+ Lite/Messenger), ICQ, OK.ru [15].

  4. Все почтовые клиенты: Gmail (+ Lite), Mail.ru [16], Outlook, Spark, MyMail, Yahoo Mail, Samsung Email, BlueMail.

  5. Измерители аудитории и трекеры: Mediascope AppMeter (com.cifrasoft.mpm.medфiascope.appmeter) - главная российская система панели аудитории и телеизмерений.

Полный список

com.yandex [17].browser.alpha, com.yandex [17].browser.beta, com.yandex [17].browser.broteam, com.yandex [17].browser.canary, com.yandex [17].browser, com.intertechservices.browser, com.yandex [17].browser.corp, kz.aitu.browser, com.yandex [17].searchapp.beta, com.yandex [17].searchapp.canary, com.yandex [17].searchapp.nightly, com.yandex [17].searchapp, ru.yandex [18].searchplugin.beta, ru.yandex [18].searchplugin.canary, ru.yandex [18].searchplugin.nightly, ru.yandex [18].searchplugin, com.yandex [17].yazeka, com.intertechservices.searchplugin, com.yandex [17].browser.lite, ru.yandex [18].yandexmaps, ru.yandex.taxi [19], ru.beru.android [20], ru.beru.yandexnavi, ru.yandex.music [21], ru.yandex [18].translate, ru.foodfox.client, ru.foodfox.courier.debug.releaseserver, ru.foodfox.vendor, ru.yandex [18].taximetr, ru.yandex [18].taximetr.x, ru.yandex [18].taximetr.beta, ru.yandex [18].disk, ru.yandex [18].disk.beta, ru.yandex.money [22], ru.yandex [18].mail, ru.yandex [18].mail.beta, ru.yandex [18].weatherplugin, ru.yandex [18].metro, com.yandex.mobile.drive [23], ru.yandex.market [24], ru.yandex [18].rasp, com.yandex.mobile.realty [25], ru.yandex.mobile [26].gasstations, com.yandex [17].uslugi, com.yandex [17].lavka, ru.yandex [18].androidkeyboard, ru.yandex.radio [27], com.yandex.mobile [28].job, ru.yandex [18].key, com.yandex [17].launcher, ru.yandex.mobile [26].avia, ru.yandex [18].fines, com.yandex [17].yamb, com.yandex [17].yamb.canary, yandex.auto.mobile [29], com.yandex [17].courier, ru.yandex.direct [30], ru.yandex.med [31], com.yandex [17].maps.mrcpublic, com.yandex [17].widget, ru.yandex.mobile [26].metrica, ru.yandex.mobile [26].appmetrica, ru.yandex.mobile [26].telephony, ru.yandex [18].checkout.release, ru.yandex [18].yandextraffic, ru.yandex [18].subtitles, ru.yandex [18].edc.driver, ru.yandex [18].nokiasystemservice, ru.yandex.mobile [26].ofd, com.yandex [17].launcher.externaltheme.ny, com.yandex [17].zen, com.yandex [17].zen.logged, ru.yandex [18].svetofor, ru.yandex.telemed.doctor [32], ru.yandex [18].driverapp, com.yandex [17].bus.driver, ru.yandex [18].newperseusapp, ru.zen.android [33], com.yandex.bank [34], com.yandex.bank.dev [35], com.android [36].vending, com.google.market [37], com.huawei.appmarket, com.sec.android.app [38].samsungapps, com.android.chrome [39], com.chrome [40].beta, com.chrome.dev [41], com.chrome [40].canary, org.mozilla.firefox, org.mozilla.focus, org.mozilla.fenix, com.opera.browser, com.opera.browser.beta, com.opera.mini [42].native, com.opera.mini [42].beta, com.opera.mini [42].touch, om.microsoft [43].emmx, com.UCMobile.intl, com.ucturbo, ru.mail.browser, com.duckduckgo.mobile.android [44], com.mi.globalbrowser.mini [45], com.sec.android.app [38].sbrowser, mobi.mgeek.TunnyBrowser, com.transsion.phoenix, mark.via.gp [46], privacy.explorer.fast.safe [47].browser, com.vivaldi.browser, com.google.android.gm [48], com.google.android.gm [48].lite, ru.mail.mailapp, com.microsoft.office [49].outlook, com.samsung.android.email [50].provider, com.my [51].mail, com.yahoo.mobile.client.android [52].mail, com.readdle.spark, me.bluemail.mail, com.facebook.orca, com.facebook.mlite, com.facebook.katana, com.facebook.lite, com.viber.voip, com.google.android [53].apps.messaging, com.whatsapp, com.whatsapp.w4b, org.telegram.messenger, com.icq.mobile [54].client, ru.ok.messages, com.twitter.android [55], com.instagram.android [56], com.reddit.frontpage, com.tumblr, com.vkontakte.android [57], ru.vk.store [58], ru.vk.store.qa [59], com.android [36].printspooler, com.cifrasoft.mpm.mediascope.appmeter, com.samsung.android [14].mapsagent, com.idamob.tinkoff.android [60], ru.tinkoff.mb.kids [61], ru.rostel, com.yandex.mobile [28].gasstations, ru.rostel, com.whatsapp, com.whatsapp.w4b, com.idamob.tinkoff.android [60], ru.tinkoff.mb.kids [61], com.yandex.bank.dev [35], com.yandex.bank [34], com.huawei.appmarket, ru.yandex.music [21], ru.vk.store [58], ru.vk.store.qa [59], com.facebook.katana, com.instagram.android [56], com.facebook.lite, com.samsung.android [14].mapsagent

Пытаясь втихую обойти приватность Android 11+, Яндекс сам же выдал себя: захардкодив в <queries> сторонние браузеры, мессенджеры и Mediascope, они открыто выложили доказанный факт целенаправленного шпионажа за пользователем - были бы там только банки и сами Yandex-приложения, вопросов бы не было.

REMOTE CONFIG (70+ ФЛАГОВ)

Приложение управляется с сервера. Сервер может включить сохранение карт, форсировать Алису, отложить запрос разрешений на 3 года, включить pre-trigger на полный буфер, отключить валидацию TLS.

Как за вами следит Яндекс: часть 1-3 - 21
Все 70+ флагов

alice_proxy, alice_reader, CommittedOriginTracking_fix, delay_notification_first_permission_request, default_search_promo_on_serp, geo_settings, mobile_ads_sdk, morda_feed_ads, send_bidder_token_to_morda, features_onboarding, tab_folders, morda_force_alice, video_summarization, video_tutorial, common_mobile_menu, manage_cpu_affinity, flex_ntp, morda_modes, ssdk_searchapp_buttons_theme, ssdk_theme, alice_solver, turkish_redesign, force_show_neuro_entry_points, video_translation, video_translation_alice_shortcut, alice_videotranslation, video_translation_international, video_translation_target_kz, video_translation_direct_upload, yandex_href_translate, alice, website_reviews, feature_suggest, div_sovetnik, trust_cards_autofill, save_trust_cards_to_yandex, smart_camera, alice_language, alice_pro, image_search, book_reader, readability_ajax_delay, new_default_popup, turbo_apps, morda_update_on_start, tweak_searchapp_controls, search_2_bro, thumbnail_database, searchapp_user_agent, voice_search_2024, facebook_sdk, books_div_banner, modern_voice_search, voice_search, summarization, div_stories_tutorial, external_applinks, sections_v2, omnibox_visibility, ssdk_serp_line, ai_chat_alice, alice_v2, custom_nav_bar, context_search_serp, safe_browsing_delay_verify_local_database, transsion_widget_promo, xiaomi_widget_promo, widget_promo_environment, image_translator, searchapp_profile_login

Для контекста

Remote config - это стандартная технология. Но набор флагов говорит сам за себя. Это не A/B-тестирование кнопок. Это удалённое управление механизмами слежки и разрешениями. Сервер Яндекса может раздать разный набор слежки разным пользователям - одним 3 секунды pre-trigger, другим 30, третьим off.

ИТОГИ

Давайте подведём цифры того, что нам удалось раскопать ( многое в статью не влезло, но я подведу итоги того что будет в 2/3 частях ) :

  • 60+ механизмов слежки (из них 11 критических и 38 высокого риска).

  • 387+ сетевых эндпоинтов, 1500+ JNI-точек, 94 JavaScript Bridge API, 587 доменов.

Яндекс собирает абсолютно всё:

  1. Звук вокруг вас - ещё до того, как вы произнесли «Алиса» (через pre-trigger буфер).

  2. Звонки и контакты - через ContentObserver адресной книги.

  3. Локацию - через сканирование Wi-Fi сетей, GPS и триангуляцию по сотовым вышкам.

  4. Окружение - полный список ваших приложений (банки, VPN, мессенджеры).

  5. Платежи - данные карт (PAN/CVV) до токенизации.

И самое ироничное: вы за это ещё и платите, покупая подписку «Яндекс Плюс». Оплачивая из своего кармана тотальную слежку за собой же.

О наболевшем

Яндекс, если вы это читаете (а вы точно это читаете) - я провёл для вас
бесплатный публичный аудит! На одну только лицензию IDA для
реверс-инжиниринга я потратил $1 000 из своего кармана. Так что искренне жду от
вас занос за выявление архитектурных дыр!

Как за вами следит Яндекс: часть 1-3 - 22
Если вы хотите поддержать автора и развитие подобных расследований

Рубли (СБП, Карта): https://pay.cloudtips.ru/p/28c476e5 [62]

Крипта (USDT TRC-20): TR7XFzMiRXjwFw62gUQRQ4p3oDjdRbea6n

Крипта (BTC): 1FfaKocNVMFqiTfm9V1RvricomZ8GTcvzW

ЧТО ДАЛЬШЕ?

Это была только первая часть из масштабного цикла из 3 статей про экосистему
Яндекса. Впереди ещё много интересного.

Обязательно подписывайтесь на мой Telegram-канал openlibrecommunity [1] - именно
благодаря поддержке сообщества этот материал увидeл свет.

Автор: OwenEwansSweetGifts

Источник [63]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android/455918

Ссылки в тексте:

[1] @openlibrecommunity: https://t.me/openlibrecommunity

[2] MAX: https://habr.com/ru/articles/1036222/

[3] РУСТОР: https://habr.com/ru/articles/1046710/

[4] нейросеть от яндекса для т9 в виде GGUF: https://labs.owenewans.org/neurocorrect.gguf

[5] mobpayment.yandex.net: http://mobpayment.yandex.net

[6] yandex.ru: http://yandex.ru

[7] BuildConfig.java: http://BuildConfig.java

[8] https://startup.mobile.yandex.net: https://startup.mobile.yandex.net

[9] startup-mobile.ap.yandex-net.ru: http://startup-mobile.ap.yandex-net.ru

[10] startup.mobile.webvisor.com: http://startup.mobile.webvisor.com

[11] startup.mobile.yandex.net: http://startup.mobile.yandex.net

[12] daemons.so: http://daemons.so

[13] com.example.app: http://com.example.app

[14] com.samsung.android: http://com.samsung.android

[15] OK.ru: http://OK.ru

[16] Mail.ru: http://Mail.ru

[17] com.yandex: http://com.yandex

[18] ru.yandex: http://ru.yandex

[19] ru.yandex.taxi: http://ru.yandex.taxi

[20] ru.beru.android: http://ru.beru.android

[21] ru.yandex.music: http://ru.yandex.music

[22] ru.yandex.money: http://ru.yandex.money

[23] com.yandex.mobile.drive: http://com.yandex.mobile.drive

[24] ru.yandex.market: http://ru.yandex.market

[25] com.yandex.mobile.realty: http://com.yandex.mobile.realty

[26] ru.yandex.mobile: http://ru.yandex.mobile

[27] ru.yandex.radio: http://ru.yandex.radio

[28] com.yandex.mobile: http://com.yandex.mobile

[29] yandex.auto.mobile: http://yandex.auto.mobile

[30] ru.yandex.direct: http://ru.yandex.direct

[31] ru.yandex.med: http://ru.yandex.med

[32] ru.yandex.telemed.doctor: http://ru.yandex.telemed.doctor

[33] ru.zen.android: http://ru.zen.android

[34] com.yandex.bank: http://com.yandex.bank

[35] com.yandex.bank.dev: http://com.yandex.bank.dev

[36] com.android: http://com.android

[37] com.google.market: http://com.google.market

[38] com.sec.android.app: http://com.sec.android.app

[39] com.android.chrome: http://com.android.chrome

[40] com.chrome: http://com.chrome

[41] com.chrome.dev: http://com.chrome.dev

[42] com.opera.mini: http://com.opera.mini

[43] om.microsoft: http://om.microsoft

[44] com.duckduckgo.mobile.android: http://com.duckduckgo.mobile.android

[45] com.mi.globalbrowser.mini: http://com.mi.globalbrowser.mini

[46] mark.via.gp: http://mark.via.gp

[47] privacy.explorer.fast.safe: http://privacy.explorer.fast.safe

[48] com.google.android.gm: http://com.google.android.gm

[49] com.microsoft.office: http://com.microsoft.office

[50] com.samsung.android.email: http://com.samsung.android.email

[51] com.my: http://com.my

[52] com.yahoo.mobile.client.android: http://com.yahoo.mobile.client.android

[53] com.google.android: http://com.google.android

[54] com.icq.mobile: http://com.icq.mobile

[55] com.twitter.android: http://com.twitter.android

[56] com.instagram.android: http://com.instagram.android

[57] com.vkontakte.android: http://com.vkontakte.android

[58] ru.vk.store: http://ru.vk.store

[59] ru.vk.store.qa: http://ru.vk.store.qa

[60] com.idamob.tinkoff.android: http://com.idamob.tinkoff.android

[61] ru.tinkoff.mb.kids: http://ru.tinkoff.mb.kids

[62] https://pay.cloudtips.ru/p/28c476e5: https://pay.cloudtips.ru/p/28c476e5

[63] Источник: https://habr.com/ru/articles/1064698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1064698