«Яндекс» и Meta✴ уличили в тайной слежке за миллионами пользователей Android

Коды JavaScript от американской Meta✴ и российского «Яндекса», которые владельцы многих сайтов устанавливают для сбора статистики о посещаемости, лишают их посетителей анонимности. Браузеры скрытным образом отправляют уникальные идентификаторы в установленные на те же мобильные устройства приложения обеих компаний — это расценивается как злоупотребление возможностями интернет-протоколов. Google пообещала провести проверку по данному факту.

«Яндекс» и Meta✴ уличили в тайной слежке за миллионами пользователей Android

На проблему указали учёные института IMDEA Networks (Испания), Университета Неймегена (Нидерланды) и Лёвенского католического университета (Бельгия) — их исследование посвящено сервисам Meta✴ Pixel и «Яндекс Метрика». Это аналитические скрипты, помогающие собирать статистику посещаемости сайтов и эффективности рекламных кампаний; по оценкам, они установлены на 5,8 млн и 3 млн сайтов соответственно. Реализованные в этих трекерах механизмы скрытого слежения позволяют компаниям Meta✴ и «Яндекс» обходить основные средства безопасности и защиты конфиденциальности, предоставляемые как ОС Google Android, так и браузерами, работающими на её основе.

В Android существует песочница — защитный механизм, изолирующий процессы друг от друга. Он не позволяет процессам осуществлять некоторые формы взаимодействия с системой и другими установленными на устройстве приложениями, перекрывая несанкционированный доступ к конфиденциальным данным и привилегированным системным ресурсам. В браузерах используются механизмы изоляции состояния (state partitioning) и изоляции хранилища (storage partitioning): файлы cookie и другие связанные с сайтами данные хранятся в контейнерах, уникальных для каждого домена верхнего (второго) уровня, что гарантирует их недоступность для других сайтов.

«Яндекс» начал обходить эти средства защиты в 2017 году; Meta✴ ввела аналогичную практику в сентябре прошлого года. Разработанные компаниями методы позволяют передавать файлы cookie и другие идентификаторы из браузеров на базе Firefox и Chromium не в другие браузеры, а в собственные приложения разработчиков — в клиенты Facebook✴ и Instagram✴ в случае Meta✴ и в приложения «Яндекса», ассортимент которых достаточно обширен. После передачи данных история просмотров сопоставляется с владельцем учётной записи, вошедшим в соответствующее приложение.

Эти недобросовестные схемы обнаружены только в экосистеме Android, и собранные исследователями данные свидетельствуют, что Meta✴ Pixel и «Яндекс Метрика» реализовывали их только с пользователями Android. Однако существует техническая возможность повторить их и на Apple iOS, так как браузеры на этой платформе позволяют разработчикам устанавливать соединения с приложениями, прослушивающими локальные порты. В отличие от iOS, платформа Android менее строго контролирует локальные подключения и фоновую работу мобильных приложений, а в магазинах приложений под Android осуществляется менее строгий контроль, что облегчает проведение подобных злоупотреблений.

Благодаря чрезмерной свободе действий Meta✴ Pixel и «Яндекс Метрика» прямо из мобильных браузеров без уведомления пользователя отправляют веб-запросы с идентификаторами отслеживания на определённые локальные порты (localhost или IP-адрес 127.0.0.1), которые постоянно прослушиваются клиентами Facebook✴, Instagram✴ и приложениями «Яндекса». В этих приложениях используемые в качестве псевдонимов идентификаторы связываются с фактическими идентификационными данными пользователей даже в режиме приватного просмотра. В итоге при просмотре сайтов, содержащих эти трекеры, пользователь лишается анонимности.

Представитель Google заявил, что такие схемы нарушают условия обслуживания платформы «Play Маркет» и обманывают ожидания пользователей Android в плане конфиденциальности. Компания уже развернула некоторые изменения для смягчения последствий таких злоупотреблений и напрямую связалась с замешанными в инциденте сторонами.

В Meta✴ не дали прямого ответа на вопросы, относящиеся к сомнительной схеме, но предоставили следующее заявление: «Мы вступили в переговоры с Google, чтобы устранить возможное непонимание в отношении действия их политик. Узнав о проблеме, мы решили приостановить работу функции, пока работаем с Google над решением проблемы». В «Яндексе» также заявили, что отказались от сомнительных действий и связались с Google. «„Яндекс“ строго соблюдает стандарты защиты данных и не деанонимизирует пользовательские данные. Эта функция не собирает никакой конфиденциальной информации и предназначается исключительно для улучшения персонализации в наших приложениях», — заявили в российской компании.

Читать также:
Госдума определила, сколько россияне будут платить налогов с майнинга и сделок с криптовалютой

В сентябре прошлого года сервис Meta✴ Pixel начал отправлять HTTP-запросы на порт 12387. Месяц спустя служба прекратила отправку данных, но приложения Facebook✴ и Instagram✴ продолжали слушать порт. В ноябре Meta✴ Pixel переключился на другой метод, вызывающий протокол двусторонней связи WebSocket через тот же порт 12387. В ноябре же сервис развернул новый метод, в основу которого лёг протокол одноранговой связи WebRTC, который обычно используется для совершения аудио- и видеозвонков через браузер. В этом методе использовался сложный процесс SDP-манинга — изменение данных протокола описания сеанса (SDP) перед их отправкой. Этот метод применяется и по сей день: ключевые данные файла cookie «_fbp» вставляются в поля, предназначенные для информации о подключении. Браузер отправлял эти данные в рамках запроса STUN на локальный хост Android, где приложения Facebook✴ или Instagram✴ считывали их и связывали с пользователем. В мае в бета-версии Chrome используемый сервисом Meta✴ Pixel тип SDP-манинга заблокировали, и Meta✴ заменила запросы STUN на TURN.

Первый известный случай деанонимизации пользователей сервиса «Яндекс Метрика» датировали маем 2017 года, когда трекер начал отправлять HTTP-запросы на локальные порты 29009 и 30102. В мае 2018 года служба начала отправлять данные по защищённому HTTPS на порты 29010 и 30103 — оба метода по состоянию на вчерашний день продолжали работать.

Некоторые браузеры блокировали потенциально опасные директивы JavaScript в трекерах. Например, DuckDuckGo блокировал связанные с трекерами IP-адреса, не позволяя отправлять идентификаторы в Meta✴; большинство доменов «Яндекс Метрики» также блокировались браузером. Браузер Brave внёс трекеры в чёрные списки и блокировал отправку данных без явного согласия пользователя. Браузер Vivaldi отправлял данные на локальные порты только при настройках конфиденциальности по умолчанию, но при включении блокировки трекеров закрывал утечку истории просмотров. Но, предупреждают исследователи, Meta✴ и «Яндекс» в любой момент могут обойти эти меры защиты.

Надёжное и долгосрочное решение проблемы должно предусматривать создание средств управления конфиденциальностью на каналах localhost, чтобы пользователи знали об этом методе утечки данных, могли его контролировать и ограничивать подобные злоупотребления. Chrome и большинство браузеров на базе Chromium выполняли директивы JavaScript так, как хотели в Meta✴ и «Яндексе»; Firefox тоже вёл себя послушно, но по неизвестной причине не мог производить SDP-манинг в более поздних версиях кода. Две недели назад общедоступная версия Chrome начала блокировать как STUN-, так и TURN-запросы в рамках скрипта, и, вероятно, в ближайшее время такие же изменения ждут прочие браузеры на базе Chromium. Представитель разработчиков Firefox заявил, что компания всерьёз отнеслась к инциденту.

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

Google пока не дала никаких намёков, что намеревается внедрить новую реализацию обработки доступа к локальным портам на уровне Android. Самым надёжным способом защититься от злоупотреблений пока является отказ от клиентов Facebook✴ и Instagram✴, а также приложений «Яндекса» для Android.

НОВОЕ НА САЙТЕ

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

Первый шаг в выборе натуральной молочной продукции - обращать внимание на состав. Ищите продукты с коротким списком ингредиентов, где первое место занимает молоко. Избегайте продуктов с добавлением растительных жиров, ароматизаторов, красителей и консервантов. Второй важный...

Как использование промокодов на покупку техники позволяет сэкономить.

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

Процесс получения лицензии на работу с опасными отходами и переработку металлолома.

Если вы хотите начать бизнес по утилизации опасных отходов или переработке металлолома, первое, что вам нужно сделать, это получить лицензию. Процесс лицензирования может показаться сложным, но мы поможем вам понять этапы процесса и предоставим...

Процесс получения визы в Китай: сбор требуемых бумаг.

Если вы планируете посетить Китай, вам необходимо оформить визу в визовом центре Китая. Процесс может показаться сложным, но следуя нашим пошаговым инструкциям, вы сможете справиться с этим без проблем. Первый шаг - определить тип визы,...

Угрозы ЗАЭС из-за обстрела промзоны нет, станция работает штатно

Дзен Радиационный фон на Запорожской АЭС находится в пределах естественных природных значений, станция после атаки ВСУ на промзону работает штатно, сообщила пресс-служба станции в Telegram-канале.Мирный житель погиб в автомобиле при обстреле промзоны в районе...