No tracking android browser

Хватит за мной следить! Тестируем мобильные браузеры на Android с защитой от отслеживания

Содержание статьи

Представь себе картину: май, ты приходишь в супермаркет и покупаешь грабли. Через неделю снова заходишь, и навстречу выбегает орава продавцов-консультантов, наперебой предлагая купить различные виды граблей. Наиболее продвинутые из них пытаются втюхать тебе тяпки, а некоторые даже лопаты. И никакие твои объяснения, что весь инвентарь у тебя остался с прошлого сезона и на самом деле ты зашел купить газонокосилку, не работают.

Ты кое-как отбиваешься от консультантов, прокладывая себе дорогу с помощью лопаты, которую они таки сумели тебе всучить, и уходишь. Но по пути домой замечаешь на заборе рекламный плакат, который сообщает, что все владельцы граблей, купленных на прошлой неделе в три часа дня, и лопат, купленных сегодня в 5:40, получают скидку на оптовую партию семян редиса, продажей которого занимается компания из соседнего города.

Именно так работает таргетированная реклама и трекинг пользователей на веб-сайтах. Ты заходишь на сайт, он присваивает тебе идентификатор и начинает отслеживать твои действия. Если эта система действует только в рамках одного веб-сайта — ничего страшного. Но существует масса контор (в основном, но не только рекламных сетей), которые могут проследить твои перемещения по многим сайтам и составить целую карту твоих сетевых похождений и интересов.

Кроме конфиденциальности, также страдает и скорость. Каждый трекинг-скрипт, размещенный на сайте, замедляет загрузку веб-страницы, а когда их много — такое замедление становится заметным даже невооруженным глазом. Пару лет назад разработчики Mozilla протестировали скорость загрузки сайтов с включенным режимом защиты и без него и выяснили, что среднее время загрузки страницы в режиме защиты от трекинга сократилось на 44%. На мобильных устройствах блокировка трекинга дает и другой плюс: меньшее количество получаемых данных.

Методы отслеживания (трекинга) пользователей

В этой статье мы рассмотрим, как бороться с трекингом, но для начала разберемся, как он работает. Трекинг — это отслеживание пользователя с помощью различных техник идентификации браузера. Существует как минимум пять техник: Cookie, Evercookie, fingerprinting, IP, поведенческий анализ.

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

Теперь (в теории) при следующих визитах сайт сможет распознать пользователя по уникальному идентификатору, который был записан в cookie-файлы на его компьютере. Понятное дело, что после очистки всех cookie-файлов юзер становится анонимным абсолютно для всех сайтов. Однако, кроме HTTP Cookie, также существуют Flash Cookie и Silverlight Cookie. И очищать их нужно отдельно.

Evercookie

Данный вид трекинга можно смело именовать «проектом деанонимизации интернета». Он сохраняет идентификатор пользователя везде, где это возможно. Используются как стандартные хранилища: HTTP, Flash, Silverlight Cookie, так и различные трюки вроде PNG Cookies (сервер отдает браузеру индивидуальную картинку с записанным в нее идентификатором, она попадает в кеш браузера, и при последующем визите пользователя сайт вставляет картинку в canvas и считывает записанную в нее информацию), а также хранилища HTML5 (Session Storage, Local Storage, Global Storage, Database Storage через SQLite и так далее), журнал посещенных веб-страниц (только для старых браузеров), ETag header, java persistence API. Все, что возможно использовать, используется.

Читайте также:  Как установить android pay

Удалить Evercookie очень сложно. Однако есть у него один недостаток — так же как и в случае с кукисами, данные сохраняются на жесткий диск (или в NAND-память телефона). А это значит, что обычный режим инкогнито неуязвим перед Evercookie.

Отпечаток браузера

В этом случае пользователя распознают, считывая данные о браузере, его настройках и устройстве, с которого юзер заходит на сайт. Много ли этих данных? Да, очень много. Самые простые: user agent (название, версия и разрядность браузера и ОС, тип устройства, на котором установлен браузер, поддерживаемые браузером функции и прочее), язык браузера, часовой пояс, разрешение экрана, глубина цвета, поддержка технологий HTML5 (привет, любители копаться в скрытых настройках браузера), наличие doNotTrack, cpuClass, platform, установленные плагины и информация о них, шрифты, доступные в системе.

Также используются и различные хитрые техники: Canvas Fingerprint, WebGL Fingerprint, WebRTC Fingerprinting. По утверждению создателей скриптов, вероятность распознавания уже сейчас превышает 90%. А в некоторых случаях составляет 99,(9)% (не так уж и много людей любят ставить Canary-версию Google Chrome и копаться в настройках chrome://flags для активации новых фишек HTML5). Недостаток технологии: на практике распознавание не может быть стопроцентным, потому что основано на статистических данных и вероятность ошибки будет всегда.

Отслеживание по IP

Используя твой IP-адрес, можно узнать местоположение (часто с ошибкой) и имя провайдера. Однако из-за периодической смены IP как в проводных, так и в беспроводных сетях этот метод крайне ненадежный и на практике используется только для приблизительного определения местоположения.

Поведенческий анализ

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

Как браузеры борются с отслеживанием

Как видишь, есть только два надежных метода идентифицировать пользователя: Cookie и Evercookie. Чтобы защититься от них, достаточно ходить на все сайты в режиме инкогнито, который есть практически в любом современном браузере. Но тогда ты столкнешься с другой проблемой: кроме отслеживания, печеньки применяются и для многих других полезных задач. Например, для хранения токена авторизации, который позволяет не вводить свои логин и пароль при каждом входе на сайт. На трафике и скорости загрузки страниц с помощью инкогнито тоже сэкономить не получится.

Браузеры с защитой от отслеживания работают по-другому: они используют черные списки трекинг-скриптов (вроде таких) и просто блокируют их исполнение.

В большинстве браузеров для анонимного серфинга (Firefox Focus, Yo Browser, InBrowser, Ghostery, Cliqz и в некоторых обычных браузерах) также есть возможность автоматической очистки приватных данных при выходе. Для смартфона такой очистки вполне хватит, чтобы справиться с Evercookie.

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

Тестовый стенд

Для теста браузера был использован смартфон Samsung Galaxy S7 и следующие страницы:

  • https://xakep.ru
  • https://xakep.ru/2017/08/15/mobile-mesh/
  • https://www.svyaznoy.ru/
  • http://www.theworldsworstwebsiteever.com/
  • http://www.samsung.com/ru/

Brave

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

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

Основное отличие от Chrome — нет новостей на главной странице и режима экономии трафика.

  • Страница в Google Play
  • Движок: Blink
  • Потребление ПЗУ (без учета данных приложения): 108 Мбайт
  • Потребление ОЗУ (открыта только домашняя страница): 130 Мбайт
  • Потребление ОЗУ (открыто пять тестовых сайтов): 372 Мбайт
  • Количество заблокированных трекеров (для пяти тестовых сайтов): 29
Читайте также:  Андроид сам выключает экран
Главная страница браузера и настройка блокировки трекеров

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

User behavior data

Yandex Browser for Mobile allows you to prevent websites from tracking what you do online, and it does not allow websites to detect the battery charge on your smartphone .

Disable user tracking

is an option that prevents websites from tracking your online activity. For example, web analytics services and ad networks may collect information about your online activity and use it to show you targeted ads.

The Do Not Track option is turned off by default in Yandex Browser.

To prohibit sites from collecting information:

Battery level tracking

By default, Yandex Browser for Mobile hides the smartphone battery level from programs, because this information can be used to track your online behavior. The battery charge level can be used to identify the user even after changing the IP address and other public data. There is also a risk that online stores and services might raise prices on urgent items or services when your battery is almost empty, because you don’t have time to look for an alternative.

If you want to allow websites to track your battery level:

If you can’t find the information you need in Help or you are having issues with Yandex Browser, please describe your actions step by step. Take a screenshot if possible. This will help our support specialists quickly find a solution for the issue you’re experiencing.

User behavior data

Yandex Browser for Mobile allows you to prevent websites from tracking what you do online, and it does not allow websites to detect the battery charge on your smartphone .

Disable user tracking

is an option that prevents websites from tracking your online activity. For example, web analytics services and ad networks may collect information about your online activity and use it to show you targeted ads.

The Do Not Track option is turned off by default in Yandex Browser.

To prohibit sites from collecting information:

Battery level tracking

By default, Yandex Browser for Mobile hides the smartphone battery level from programs, because this information can be used to track your online behavior. The battery charge level can be used to identify the user even after changing the IP address and other public data. There is also a risk that online stores and services might raise prices on urgent items or services when your battery is almost empty, because you don’t have time to look for an alternative.

If you want to allow websites to track your battery level:

If you can’t find the information you need in Help or you are having issues with Yandex Browser, please describe your actions step by step. Take a screenshot if possible. This will help our support specialists quickly find a solution for the issue you’re experiencing.

Источник

Защищаемся от трекеров на мобильных платформах

Отслеживание в интернете

Многие пользователи сталкиваются с отслеживанием в интернете повседневно. Одним из самых явных и крупных следствий является таргетированная реклама. Любой, кто хоть раз имел дело с такими гигантами как, например, Google AdWords, знает насколько обширны настройки целевой аудитории, доступные рекламодателю.

Особенные опасения вызывает мобильный таргетинг, который к обыкновенным сведениям прикрепляет геолокацию и время пользователя. Вопрос о защите приватности в интернете на мобильных устройствах возникает у многих пользователей.

Читайте также:  Для начинающих андроид разработчиков

Как происходит отслеживание пользователей

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

Есть только один способ избежать идентификацию в целях таргетированной рекламы — перехватить обращение к стороннему сервису.

Идентификация трекеров

Для идентификации трекера можно использовать существующие списки доменов (disconnectme). При отправке пакетов с устройства проверять адрес назначения, и блокировать пакеты если они должны были попасть на трекер.

Есть сложные решения (Pi-hole и другие), но нам преимущественно интересны Android и iOS.

Фильтрация трафика на Android

Один из способов – конвертировать доменные имена трекеров в IP-адреса и блокировать их с помощью iptables. Принципиальная проблема такого подхода – необходимость root-прав для выполнения, так как Android не дает прав на модификацию параметров брандмауэра. Но есть способ обойти это ограничение без root.

Если выделить весь трафик в отдельный виртуальный слой позволяющий фильтрацию на уровне приложения. Такой способ существует. С помощью VpnService можно создать локальный VPN, посредством которого можно фильтровать трафик по необходимым параметрам. Для реализации мы можем создать три очереди: сеть-устройство, устройство-сеть-tcp, устройство-сеть-udp. Сырой входящий/исходящий трафик записывается в очереди. Посредством четырех объектов TcpIn, TcpOut, UdpIn, UdpOut обрабатывать пакеты, в том числе утилизируя не проходящие проверку. Пример реализации можно посмотреть на Github (LocalVPN).

Фильтрация трафика на iOS

Для фильтрации трафика будем использовать NetworkExtension.
Как и на Android, ОС не дает нам прямого доступа к настройке брандмауэра. Но при этом есть возможность задать фильтр для сетевого контента из коробки посредством NEFilterControlProvider и NEFilterDataProvider. Мы данный вариант рассматривать не будем, так как Content Filter Providers работают только в контролируемом (supervised) режиме, из-за чего публикация такого приложения в AppStore становится невозможной. Если же такой подход интересен можно рассмотреть пример рабочего приложения на Github (sift-ios, FilterControlProvider, FilterDataProvider).

Для нашего решения мы также будем использовать локальный VPN. В NetworkExtension есть три варианта работы с VPN.

Personal VPN. Использует только встроенные протоколы. Нам это не подходит, так как необходим пользовательский протокол.

App Proxy Provider. Используется для создания пользовательского потокоориентированного VPN протокола. Для нас важна фильтрация отдельных пакетов, что приводит нас к.
Packet Tunnel Provider. Используется для создания пользовательского пакетоориентированного VPN протокола. Мы будем использовать именно его.

Для реализации мы наследуемся от NEPacketTunnelProvider. При запуске тоннеля нам необходимо указать конечную точку – укажем в её качестве локальный прокси сервер, для этого можем использовать, например, GCDHTTPProxyServer, так как он используется в примере который я приведу позже. С помощью прокси сервера на выбор мы утилизируем не нужные нам пакеты. Рабочий пример приложения с использованием NEPacketTunnelProvider и GCDHTTPProxyServer на Github (lockdown-ios PacketTunnelProvider).

Проблема приватности, при использовании удаленного VPN

Во всех примерах выше опускался вариант простого подключения к удаленному VPN, на котором настроена фильтрация. Такой вариант имеет серьезные плюсы – простоту создания клиентов под любую систему (на которой есть возможность использовать VPN) и возможность скрыть фильтры. Но критическим минусом является необходимость проводить трафик через сторонний удаленный сервер. Это требует наличия сетевой инфраструктуры и вызывает недоверие пользователей (так как трафик проходит через сторонний сервер для фильтрации). Данный вариант хоть и имеет свое место и значимость, но не является целью данной статьи.

Несколько слов в заключение

Сегодня мы рассмотрели способы реализации фильтров трафика для ОС Android и iOS. Рассмотрели самый не ограничивающий способ – локальный VPN и основы его реализации с примерами готовых продуктов и примеров. Для этого мы воспользовались возможностью создания пользовательских протоколов VPN. С их помощью мы с прикладного уровня получили доступ к сетевому, что позволило нам применить фильтр к входящим/исходящим пакетам. Фильтр мы основываем на черных списках доменов трекеров, доступных в сети интернет.

Статья подготовлена для Telegram канала @paradiSEcurity.

Источник

Оцените статью