Томас Даннинг говорил: «При 300 процентах [прибыли] нет такого преступления, на которое он [капитал] не рискнул бы, хотя бы под страхом виселицы». Эти слова, сказанные в XIX веке, актуальны до сих пор. Компании, которые ведут бизнес в интернете, изобретают все более изощренные способы слежки за пользователями.
История кукисов пережила несколько скандалов, связанных с нарушениями приватности, работа браузеров с ними постепенно менялась и, казалось бы, окончательно вошла в цивилизованное русло. Мы научились защищать свои данные и кушать печеньки стало относительно безопасно.
Но потом появились Supercookies — довольно липкая штука, которую буквально не обойти.
На самом деле Supercookies не какая-то определенная технология, а общее название для разных средств сбора и хранения приватной информации, скрыто работающих в обход известных ограничений. Давайте разберемся, какие суперпеченья бывают, как именно они собирают наши данные и как от них защититься.
Как наивность разработчиков создала основы для сбора персональных данных
Идея сохранять локально данные сайтов возникла на самой заре развития интернета. Изначально технологии печенек преследовали исключительно благие цели, но, как и большинство протоколов и технологий, они создавались идеалистами, не особо переживающими о безопасности, которые просто не могли предположить реальных масштабов развития сети в будущем.
Эти проблемы зарождались, когда компьютеры были большими, а программисты — несколько наивными. Например, одна из уязвимостей сотовых сетей возникла по той же причине наивности: Страх и ужас SS7.
Также и с печеньками. Идея запоминать товары, которые пользователь добавил в корзину, не заставлять его вводить пароль каждый раз при заходе на страницу, запомнить внешний вид сайта и тому подобное, отличная. Что может пойти не так?
Статистика — это лакомый кусочек информации для рекламы. Информация о пользователях, их поведении на сайтах, предпочтения в выборе товаров, время проведенное на странице. Коммерсанты готовы на все ради нее, по ней выстраивается стратегия рекламы.
Первая тревога была поднята в 1996 году. Всего через пару лет после внедрения cookie Financial Times опубликовала в своей газете статью об угрозе приватности:
Итогом расследований 1996 и 1997 годов, которые прошли в Федеральной комиссии по торговле США, стала спецификация, регламентирующая работу с куками. Одним из ее положений было то, что сторонние cookie должны или полностью блокироваться, или, как минимум, не работать по умолчанию.
Кроме возможности скрытно следить за действиями пользователей, первые версии имели другие недостатки. Например, их можно было перехватить и подменить, а потом использовать для входа на сайт с паролем другого пользователя. В процессе эволюции работы с cookies было выпущено несколько директив, ужесточающих политику использования cookies, например: ограничение времени их действия.
Впоследствии, файлы кукисов приравняли к персональным данным и постепенно ужесточали требования по сбору информации о пользователях, вплоть до самого нелепого и раздражающего решения: всплывающее уведомление о том, что на сайте используются куки, и предложение согласиться с этим фактом. Оно всех достало настолько, что некоторые браузеры включили в свои настройки возможность удалять эти баннеры, и было написано несколько расширений для блокировки назойливых предупреждений.
Как Flash-Supercookie собирали персональные данные
Изначально Supercookie были неприятным и потенциально опасным явлением. В отличии от обычных куков, их источник был не от адреса конкретного сайта, а домена более высокого уровня. Например, вместо привязки к сайту habr.com, файл куки прописывался к доменному имени com и мог контролировать работу пользователя с любыми сайтами в этой доменной зоне. Эта возможность была настолько очевидной, что блокировалась браузерами с самого начала. Но, когда появились способы хранить приватную информацию другими способами, это название вспомнили и оно прижилось.
Очень долго возможность обеспечить изощренный интерактив интернет-сайту (показ видеороликов, анимированные баннеры и браузерные игры) можно было почти что исключительно с помощью технологии Flash. Печально известный Adobe Flash Player сильно нагружал процессор, не позволял нормально отлавливать возникающие ошибки, из-за чего браузер падал и тормозил. Ко всему прочему движок содержал множество уязвимостей, которые нещадно эксплуатировались злоумышленниками всех мастей.
Так как коммерческие компании мало чем отличаются от негодяев в выборе средств, они не гнушались задействовать возможности flash для сбора информации о пользователях. Для этого применялась технология под названием «Локальные общие объекты» (LSO, Local Shared Objects). Изначально она предназначалась, к примеру, для сохранения прогресса в браузерной flash-игре или настройки громкости в аудио-плеере. LSO доступны из разных браузеров, потому что относятся к флеш-плееру. С их помощью можно восстанавливать обычные http-cookie, если пользователь их удалил, а внутри самих LSO можно хранить много собранной информации о пользователе компьютера.
Довольно долго эта технология не попадала в поле зрение специалистов по безопасности, но в 2009 году Джереми Кирк опубликовал свое исследование, посвященное проблемам приватности: Study: Adobe Flash cookies pose vexing privacy questions. Постепенно начали появляться сторонние расширения, позволяющие контролировать и удалять флеш-куки, но неповоротливые производители браузеров и компания Adobe не торопились обратить внимание на эту проблему. Только в 2011 году распространенные браузеры научились работать с этими печеньками так же, как и с обычными.
Но в конце-концов дырявый и тормозной Flash-player всех окончательно достал, а HTML5 получил достаточно широкое распространение, что позволило полностью избавиться от технологии Флеш. Убивали его долго и мучительно, компания-производитель очень неторопливо отказывалась от своего детища. В 2012 году Adobe пообещала, что прекратит поддержку технологии примерно в течение десятка лет. В 2017 был назван срок удаления флеш-плеера с сайта — декабрь 2020 года. Эти три года, по словам компании, были необходимы для того, чтобы разработчики адаптировали свои сайты под HTML5. Месяц назад этот срок подошел к концу, и назойливые предупреждения о том, что плагин, окончательно и бесповоротно, отовсюду удаляется, стали появляться во всех браузерах, хотя непонятно, зачем уведомлять об этом пользователей, которых не особо интересуют тонкости внутреннего устройства сайтов.
На этом можно считать тему флеш-куков — окончательно исчерпанной.
Примерно по тому же механизму работали супер-куки на основе ETag, одного из идентификаторов HTTP-заголовка, отвечающего на запрос, отличается ли текущая версия ресурса от загруженного. Подобные куки были обнаружены примерно в одно время с Flash-Supercookie и, после иска в 2011 году, встречались относительно редко.
HTTP-Supercookie: как Verizon и Access втихую продавали данные
Флеш не единственный способ слежки за пользователями через куки.
Обе эти истории сбора и торговли данными были возможны благодаря тому, что обычные пользователи не особо разбирались в тонкостях технологии. Специалисты по безопасности старательно били тревогу, но их не слушали и очень долго приватности HTTP-соединения уделялось мало внимания.
Протокол HTTP без SSL-шифрования прожил очень долго: SSL-сертификаты были платными, порой совсем не дешевыми (некоторые компании продавали их дороже 100 долларов). Вторая причина — сложность использования. Это сейчас сертификат ставится и обновляется запуском одного скрипта, а до того как Mozilla раскрутила свою инициативу Let’s Encrypt, не каждый админ считал необходимым изучить установку SSL.
Но пока суд да дело, интернет-провайдеры эксплуатировали и продавали рекламщикам возможность отслеживать пользователей через HTTP.
Работало это довольно изощренным образом. Когда пользователь заходил на сайт, его провайдер вставлял в HTTP-заголовок особую информацию: UIDH (Unique Identifier Headers), уникальную для каждого пользователя, что позволяло совершенно однозначно идентифицировать компьютер или смартфон, с которого открывают страницу. Для подобной операции использовалась нашумевшая технология DPI.
Проблема была в том, что пользователь практически никак не может повлиять на этот процесс, потому что все происходит на стороне поставщика услуг доступа в интернет. ID встраивается уже после того, как запрос уйдет из браузера, по пути на сайт.
Информация из этого супер-печенья не сохраняется локально, соответственно ее нельзя удалить. Программы-блокировщики рекламы тоже ничего не могут сделать. Кроме адреса сайта, на который идет браузер и времени запроса, UIDH может передавать информацию о номере мобильного телефона, с которого пользователь сидит в интернете, время запроса и другие данные.
Самый известный скандал с использованием этого способа отслеживания пользователей связан с компанией Verizon, американским провайдером сотовой связи. В Verizon начали использовать UIDH в 2012 году для показа персонализированной рекламы, активно торгуя личными данными своих клиентов. Только в 2014 году компания публично призналась в этом факте, закопав упоминание о нем глубоко в Q&A на своем сайте. Тем не менее это заметили, и на Verizon обрушился шквал критики за такое беспардонное отношение к своим пользователям. В 2015 году компанию вынудили добавить в личный кабинет пользователя настройку, позволяющую отключить использование UIDH для своих устройств, а в 2016 году окончательно добили. Федеральная комиссия по связи США взыскала с компании штраф в 1,35 миллиона долларов.
Увы, Verizon не одни такие хитрые.
Компания Access создала специальный сайт Amibeingtracked.com (актуальный адрес: www.accessnow.org/aibt/) и стала анализировать заголовки HTTP пользователей мобильных телефонов, которые согласились на тестирование. Выяснилось, что 15,3% запросов содержали супер-куки. В участии принимали пользователи со всего земного шара. Оказалось, что почти все крупные мобильные операторы следили за своими пользователи таким образом.
Есть подозрение, что Verizon пошла на попятный только потому, что этот способ перестал быть актуальным из-за повсеместного внедрения SSL, о котором я упоминал выше. Да и сумма не кажется внушительной по сравнению с недавними антимонопольными штрафами, где счет идет на сотни миллионов долларов. Вполне вероятно, что Verizon заработал на продаже ПД куда больше.
Кроме того надо отметить, что не только сайты работающие по протоколу HTTPS способны защитить от подобной слежки, но и серфинг через VPN. В этом случае провайдер тоже не может подставить UIDH. Обы способа защиты актуальны, а недавние ковровые блокировки научили многих компьютерной грамотности, и про VPN узнали очень многие.
HSTS-Supercookie: почему SSL нас не спасет
Казалось бы, шифрование должно обеспечить защиту от прослушивания, но выяснилось, что и это не является гарантией приватности. Следующий способ чисто академический, вряд ли его можно использовать на практике, и является демонстрацией изощренности
Основан он на том, что для каждого сайта в браузере есть специальная булева переменная, которая хранит состояние того, как пользователь заходил на сайт: через HTTPS или HTTP. Например, последний раз пользователь заходил на сайт habr.com через HTTPS, а на сайт flibusta.is — через HTTP (увы, это сейчас актуально из-за нерасторопности админов библиотеки). В браузере будут данные примерно такого вида:
habr.com: 1;
А сайт flibusta.is не будет упомянут в HSTS-базе.
Таким образом можно зарегистрировать несколько доменов вида: 00-hsts-supercookie.net, 01-hsts-supercookie.net, 02-hsts-supercookie.net, 03-hsts-supercookie.net.
Затем написать скрипт, который при заходе на ваш сайт, будет генерировать обращения к «кукис-сайтам» по шаблону, уникальному для каждого пользователя, формируя в HSTS-базе его браузера таблицу со значениями вида:
00-hsts-supercookie.net: 1;
02-hsts-supercookie.net: 1;
И потом считывать данные для «кукис-сайтов», подставляя 0 на место сайтов, которых нет в базе. В этом примере будет сформировано число 1010. Если зарегистрировать два-три десятка сайтов, то уникальных идентификаторов будет достаточно, чтобы снабдить ими вообще всех абонентов, которые, теоретически, могут зайти на сайт.
Справедливости ради надо заметить, что разработчики браузеров отреагировали на эту информацию, и куки теперь очищаются вместе с данными этой таблицы. Но, кроме этого флага, современные браузеры хранят множество другой информации, о которой пойдет речь ниже.
HTML5-Supercookie
Прогресс идет вперед, HTML5 уверенно завоевал интернет, флеш убили, возможности нового стандарта позволяют творить на страницах чудеса, недоступные ранее. Но безопаснее ли стало в интернете? Увы, нет.
Все эти технологии предоставляют много информации, через которую можно сформировать уникальный «цифровой отпечаток» браузера.
Если вы посещаете современные сайты, то вы пользуетесь возможностями HTML5, а значит информация про: user-agent, размер canvas, разрешение экрана и глубину цвета, системные шрифты и многое другом, будет передаваться на сайт, для того, чтобы адекватно его отрисовать в браузере. Кроме того стандарт HTML5 позволяет сохранять данные в Localstorage, специальном хранилище, которое недоступно пользователю через обычное меню по чистке кукисов, истории посещения или кеша браузера.
Посмотреть все, что передает браузер на сайт, можно на сайте www.deviceinfo.me. Попробуйте зайти — количество информации впечатляет!
Также существуют сайты, которые сопоставляют всю передаваемую информацию и вычисляют то, насколько уникально ваше конкретное устройство среди множества остальных. К примеру, я зашел на coveryourtracks.eff.org, сайт продвигаемый некоммерческой правозащитной организацией Фонд электронных рубежей (Electronic Frontier Foundation, EFF) и выяснил, что:
Your Results
Your browser fingerprint appears to be unique among the 300,802 tested in the past 45 days.
Currently, we estimate that your browser has a fingerprint that conveys at least 18.2 bits of identifying information.
The measurements we used to obtain this result are listed below. You can read more about our methodology, statistical results, and some defenses against fingerprinting here.
В теории, считается, что немного уменьшить уникальность браузера можно с помощью использования прокси или VPN и приватного режим браузера. Увы, это не сильно мне помогло, результаты полученные в приватной вкладке через встроенный в Opera VPN, выдали практически те же самые результаты:
Your Results
Your browser fingerprint appears to be unique among the 300,854 tested in the past 45 days.
Currently, we estimate that your browser has a fingerprint that conveys at least 18.2 bits of identifying information.
The measurements we used to obtain this result are listed below. You can read more about our methodology, statistical results, and some defenses against fingerprinting here.
Хотя одно устройство из трехсот тысяч — в море, где плавают сотни миллионов смартфонов и десктопов, есть где спрятаться.
Cache-Supercookie: изощренный способ идентификации пользователя через кэш
Еще один способ слежки за пользователем — изощренное использование кэшированной информации. Некоторые сайты используют одни и те же изображения на своих страницах, браузеры экономят место на диске и трафик, кэшируя данные. Изображение или шрифт скачиваются один раз, а потом подгружается уже из локального хранилища. Технология стара как интернет, но и тут нашелся способ отличить одного пользователя от других.
Например, трекер кодирует уникальный ID в кэшированное изображение с одного сайта. На другом используется тоже самое изображение, и трекер извлекает ID из кэшированного изображения, когда пользователь заходит на второй сайт.
Бороться с такими супер-куками можно с помощью разделения кешей для разных сайтов. Неделю назад команда Firefox сообщила, что они включили этот механизм в 85 версию браузера. Объем кэшируемых данных увеличивается, но зато отследить пользователя становится сложнее.
Какими печеньками нас будут кормить в будущем?
Вся эта борьба кажется правильной, приватность — это то, что в современном мире у нас пытаются оторвать любыми способами. Камеры подключенные к сервисам распознавания лиц и номеров машин уже давно стали реальностью, они ловят преступников и выписывают штрафы за превышения скорости. DPI у мобильных операторов шейпит трафик немногих оставшихся торрнет-клиентов и сужает им полосу пропускания, чтобы они не мешали другим смотреть видео с YouTube. Блокируются «запрещенные» сайты.
Мне недавно рассказали историю, как в одном небольшом русском городе с помощью камер наблюдения, поймали группу гопников, которые развлекались тем, что избивали одиноких прохожих, а потом запугивали их, чтобы те ничего не рассказали полиции. Когда патрульные выехали на место происшествия, гопники спокойно стояли, не переживая за свою безопасность, но вышедшие из машин полицейские даже не стали задавать вопросов, просто скрутили всех причастных. Потому что камеры, заснявшие избиение, распознали их всех по лицам, и дополнительные свидетельские показания не понадобились.
Поэтому так ли страшно отслеживание рекламными фирмами наших действий в интернете?
Сложно сказать. Дело не только в слежке, но и в назойливой «персонализированной» торговле. С одной стороны, на моей памяти, я только раз воспользовался рекламным предложением из поисковой выдачи, которое было с пометкой «Реклама». За много лет у людей выработалась «баннерная слепота», и даже без блокировщика рекламы этот метод уже не особо работает. С другой стороны, высокая релевантность поиска в Google, Amazon или AliExpress работает благодаря хитрым трекерам, отслеживающих нашу активность.
Но практически каждый может вспомнить загадочную историю, когда в реальном разговоре или чате Телеграма упоминали какую-то категорию товаров, а через несколько минут смартфон показывал сайты с баннерами обсуждаемых вещей. А самое раздражающее нововведение, это вылезающие отовсюду предупреждения об использовании кукисов, не пропадающие, пока не нажмешь кнопку согласия с ними.
Хорошо это или плохо? Наверное, уже ни то и ни другое. Это стало привычным, а приватность — иллюзией.
Автор: ruvds