Расследование: как обезличенные данные становятся персональными и продаются на сторону
Неделю назад мне в очередной раз позвонили и предложили купить какой-то новый автомобиль в салоне, где я точно никогда не бывал. На простой вопрос о том, откуда звонивший взял мой номер телефона и мои имя и отчество, последовал прямой ответ — мы выбрали ваш номер случайным образом из номерной емкости. В это объяснение я не поверил, и решил поинтересоваться тем, как устроен рынок данных и понять, кто может сливать информацию о пользователях и как легко и виртуозно интернет-монополисты обходят стороной закон «О персональных данных» (№152-ФЗ).
Читайте под катом о том, кто монетизирует мои данные и как они попадают в руки компаний, услугами которых я никогда не пользовался — банков, страховых компаний, медицинских центров, застройщиков и прочих организаций с надоедливыми рекламными звонками. И да, это лонгрид, всё как вы любите.
Весну и начало лета 2020 года наша прекрасная страна провела на самоизоляции. Помимо очевидного роста финансовой нагрузки на бизнес, необходимости людям носить повсюду маски и вынужденно работать из дома, этот временной период наглядно показал, насколько легко и просто некоторые участники рынка обращаются с персональными данными россиян.
Предыстория
К написанию этой статьи меня подтолкнуло интервью Тиграна Оганесовича Худаверяна в СМИ (TheBell, Roem) о работе сервиса Яндекса по оценке индекса самоизоляции.
Напомню кратко в чем суть: практически одновременно с объявлением режима «как бы нерабочих дней по всей стране», интернет-гигант Яндекс стал регулярно рапортовать о соблюдении мер по самоизоляции гражданами. Чиновники и СМИ ежедневно обращались к этим данным. И хотя сейчас эта тема плавно уходит на второй план, но вопросы к первоисточнику таких данных никуда не делись.
Поскольку Яндекс и ранее был замешан в скажем так вольготном отношении к пользователям — вспомним хотя бы историю слежки через приложения — то разумно предположить, что данные о текущем местоположении граждан при самоизоляции собирались с помощью мобильных приложений с геолокацией. Да и сам по себе метод слежки через умные гаджеты — очевидный. В столице, например, вообще была вопиющая история — несмотря на обилие нарушений действующего законодательства, ДИТ Москвы заставлял людей подписывать кабальный договор с другим подобным «товарищем майором».
И хотя в своем интервью управляющий директор Яндекса заявляет:
«Мы ни в чем из этого не участвуем. Признаюсь, для нас это больное место, потому что нас постоянно подозревают, что мы в этой слежке участвуем. Но у нас внутри компании есть свой принцип: ни в коем случае, даже в сложной ситуации, не нарушать принципы, которыми «Яндекс» руководствуется со дня основания»
— веры в это нет никакой. Журналисты не задали самый главный вопрос – а на основе каких данных, Яндекс формировал свой «конфиденциальный» рейтинг? Это важно, ведь свободном доступе ответа нет — интернет-гигант просто не раскрывает свою методологию:
Разумно предположить, что под термином «данные об использовании различных приложений и сервисов Яндекса» имеется ввиду именно мониторинг перемещений граждан. Вот только вряд ли кто-то из нас с вами давал прямое согласие на такую слежку.
Как устроен рынок данных
В 90-х продавали базы данных на рыночных развалах с компакт-дисками. В наше время получить список нужных контактов можно еще быстрее — даже ехать никуда не надо.
Очевидные, но нелегальные способы
Чужие данные можно поискать в соцсетях, или в специальных телеграм-каналах, названия пабликов я приводить не буду, уверен, вы и сами их найдете при желании.
Некоторые более продвинутые граждане поступают немного иначе — они размещают на своих сайтах договор-оферту, из которой следует, что данные собираются из публичных источников и даже приводят отсылки на статьи закона, которые как бы разрешают им это делать:
Нюанс только в том, что в документах на сайте «Авито» сказано, что самостоятельно парсить базу контактов интернет-площадки avito.ru прямо запрещено правилами.
Подобным образом продавцы баз в интернете собирают информацию изо всех возможных источников. Все эти методы, будем говорить прямо, незаконны, так как нарушают положения закона «О персональных данных» (№152-ФЗ). Уверен на 100%, что ни один здравомыслящий человек из вот таких баз данных не давал своего согласия на публичное распространение подобными компаниями информации о себе через интернет.
Man-in-the-middle attack
Способ слива информации через сотрудников предприятий, имеющих доступ к базе клиентов тоже очевиден. Не будем уделять слишком много внимания этому аспекту.
Единственный способ борьбы с такими людьми — контроль доступа, грамотное проектирование базы контактов и применение механизмов борьбы со фродом, которые разрабатывают сотрудники информационной безопасности. Последние, к слову, регулярно ловят «продавцов» и передают их правоохранителям.
Завуалированные способы сбора данных
Интернет-компании, скажем прямо, совсем обнаглели и придумали новую методику свободного обращения с данными пользователей. Сегодня все крупнейшие игроки этого рынка собирают про нас, бедных пользователей, такое досье, что им позавидуют Джеймс Бонд, Рихард Зорге, Мата Хари и Остин Пауэрс вместе взятые. Причем, никто из пользователей и не уполномачивал интернет-компании собирать такую фактуру.
У всех на слуху история с американскими выборами, в которых победу республиканцев обеспечил таргетинг рекламы на пользователей Google и Facebook. Причем, эти компании делились данными со сторонней организацией Сambridge Analytics, которая и формировала «целевую аудиторию» рекламных объявлений. Сбором данных промышляют и в Китае — популярная ныне соцсеть тоже недавно прославилась использованием нелегальных методов слежки, которые запрещены даже правилами Google.
Должен сказать, что российский Яндекс внимательно следит за действиями иностранных коллег, и применяет схожие методы — компания прячется за ширмой «обезличенных данных», которая, как показал мой личный опыт непрограммиста, при должной сноровке расшифровывается даже сидя дома на диване.
В декабре прошлого года на РБК появилась интересная статья, в которой рассказывалось про совместный проект Яндекса и Бюро Кредитных Историй (БКИ) по передаче данных о пользовательском поведении в сети. По задумке авторов этого решения, банки смогут получать дополнительную информацию по нужным им персонам от Яндекса, обладая при этом лишь адресом электронной почты и номером мобильного телефона клиента.
Неназванный в статье источник сообщил, что Яндекс получает данные в хэшированном виде, после чего внутренние алгоритмы определяют некую оценку для конкретного человека, и именно эта оценка и возвращается в БКИ. Все это выглядит довольно складно, однако есть нюанс — в статье приводится мнение управляющего партнера УК «Право и бизнес» Александра Пахомова, который также как и я считает, что при выполнении этой процедуры обезличенные данные вновь становятся персональными:
Как обезличенные данные становятся персональными
Попробуем разобраться в том, что происходит «под капотом» у этого сервиса. Сразу скажу, что мне сделать это сложно, так как я часто наслаждаюсь грациозностью великой и прекрасной России, а не провожу рабочие дни на митингах в переговорках современного московского офиса Яндекса. Поэтому, призываю вас поделиться информацией и подправить меня, если я ошибаюсь или в чем-то не прав.
Шаг 1. Хэширование данных
Начнем с изучения того, что именно сам Яндекс вкладывает в понятие «зашифрованные», «хэшированные» или «обезличенные» данные. И поможет нам в этом публичный сервис Яндекс.Аудитория.
Из его описания следует, что сервис позволяет рекламодателям достучаться до своих клиентов. Причем, чтобы добиться этой цели потребуется всего лишь сообщить Яндексу некие идентификаторы клиентов — номера телефонов или адреса электронной почты. Эти данные можно сгрузить в явном виде, например, в виде текстового или табличного файла. А можно — также и в обезличенном виде. Для этого применяется алгоритм хэширования MD5.
Далее сервис работает следующим образом: Яндекс вычисляет конкретного пользователя, зная его персональные данные, и показывает ему таргетированные рекламные сообщения на различных сервисах и порталах Яндекса.
Детальное описание алгоритма можно найти на Хабре. Нам важно знать, что он был разработан и предназначался для создания и проверки отпечатков сообщений произвольной длины — например, пользовательских паролей или контактов.
Алгоритм MD5 создали в далеком 1991 году, и до 1993 он точно считался криптостойким. Именно тогда исследователи Берт ден Боер и Антон Боссиларис предположили, что в алгоритме возможны псевдоколлизии. Дальше было проведено несколько научных работ на эту тему, которые показали возможность «взлома» MD5. Практическая же реализация была продемонстрирована в 2008 году.
Шаг 2. Расшифровка MD5-хэшей
Технически, взлом MD5 может быть осуществлен одним из четырех способов:
- Перебор по словарю
- Brute-force
- Rainbow-crack
- Коллизия хэш-функций
Очевидно, что самый быстрый и простой вариант — использование радужных таблиц. По сути, для реализации этого способа потребуется лишь знать хэш и сделать свою таблицу под определенные критерии.
Знание этих критериев позволит быстро получить искомую таблицу с помощью специального программного обеспечения. Типичное содержание такого файла будет выглядеть примерно так:
Далее, вам потребуется взять в качестве референсного значения какой-нибудь условный телефонный номер. Возьмем для примера абстрактный номер 83910123456. Его MD5 хэш будет выглядеть так — fba55dd11f758ab4f03fad3c5f19ba75.
Подставляем этот хэш в софт, указываем расположение таблицы… пара секунд, и вуаля — видим исходный телефонный номер в поле Plaintext!
С адресами электронной почты, как вы уже догадались, дело обстоит ровно так же. Единственная лишь разница в том, что для определения имени почты используется больше данных — в набор символов должны входить буквы, цифры, средства пунктуации и спецсимволы.
В приведённом примере я сознательно не использую «соль» — понятно, что подсоливание хэшей усложняет их взлом. Но об этом немного позже.
Шаг 3. Сопоставление данных
Нет ни малейших сомнений в том, что Яндекс хранит данные в зашифрованном виде. Условно говоря, у поисковика есть профиль каждого зарегистрированного пользователя, где помимо прочего указаны адреса его электронной почты и номер телефона. Такие данные легко хэшируются и, при необходимости (как мы уже убедились выше) — дехешируются.
Далее, получив от рекламодателей в любом виде список контактов, Яндексу не составляет труда сопоставить их со своей внутренней базой, которая содержит эти же идентификаторы. Говоря проще, Яндекс делает кросс-матчинг идентификатора из профиля своего пользователя на соответствие запрашиваемым данным рекламодателя. Это и позволяет таргетированно показывать рекламу конкретному пользователю при заходе на страницу того или иного сервиса Яндекса.
Однозначная идентификация пользователей
Ни о каком обезличенном обмене данными при работе по такой схеме и речи идти не может. Все стороны однозначно идентифицируют конкретного пользователя в процессе оказания услуг. С кредитными бюро, судя по комментариям и описанию, применяется ровно эта же схема. И по всей видимости, на стороне Яндекса используется решение, подозрительно похожее на платформу Крипта.
Однако Яндекс публично никогда не заявлял о возможности сопоставления таких профилей с номерами мобильных телефонов или e-mail своих пользователей. Но, как нам стало известно из материалов СМИ, Яндекс именно это и делает как минимум при работе с Объединенным Кредитным Бюро.
Почему об этом честно не сказать своим клиентам, ведь все и так лежит на поверхности? Вместо этого спикеры Яндекса стыдливо говорят об отсутствии “личной информации" и приводят прочие выдуманные термины, которые отсутствуют в законодательстве РФ и позволяют обойти некоторые вопросы оборота и защиты данных граждан.
Немного практики: Яндекс, я нашел у тебя нарушение 152-ФЗ!
Солит ли Яндекс хэши? Я не могу однозначно ответить на этот вопрос, в конце концов, я не работаю в этой компании и не знаю внутренней кухни. Однако я могу сделать два допущения:
- серверные мощности Яндекса позволяют довольно быстро провести дехэширование несоленых MD5-хэшей;
- для работы с солеными хэшами обе стороны должны знать соль.
Очевидно, что в случае с сервисом для рекламодателей применяются несоленые хэши. Иначе в интерфейсе для рекламодателей должно было бы присутствовать поле для указания соли. А его там нет! Давайте внимательно посмотрим на скриншот в описании Яндекс.Аудитории:
Обратите внимание на вопросительный знак у чекбокса «Хэшированные данные». Давайте перейдем в сам сервис и подведем указатель мыши к этому вопросу.
Видим три хэша: a31259d185ad013e0a663437c60b5d0, 78ee6d68f49d2c90397d9fbffc3814d1 и 702e8494aeb560dff987e623e71bccf8. Причем, в первом явно чего-то не хватает: там всего 31 символ, а должно быть 32! Поэтому, этот хэш отбросим сразу.
Расшифровать вторые два хэша через ранее созданную радужную таблицу я тоже не смог. Но решил попробовать пройтись по ним брутфорсом. Для этого мне потребовалось перенастроить майнинг-ферму из 6 видеокарт класса GeForce GTX1060 с добычи эфира на работу с программой hashcat.
Я указал программе поиск по маске из 11 цифр (см на верхнюю стрелку на скриншоте). В результате, моя вполне обычная ферма произвела дехэширование номера телефона в одном из хэшей всего за 22 секунды. Просто представьте, с какой скоростью можно брутфорсить хэши на мощностях Яндекса!
Теперь давайте определим кому принадлежит этот номер, просто пробьем его через мобильное приложение Numbuster:
Теперь идем в поисковик, и за считанные мгновения получаем всю нужную нам информацию:
Шах и мат, Яндекс, благодаря открытой информации с твоего же сайта, я только что в пару кликов мышью узнал, кто именно делал твой сервис! Надо ли говорить, что такое же действие может легко повторить любой из тех, кто сейчас читает эту статью? За что же вы так с Ярославом-то поступили?
Какие данные могут быть в профиле каждого пользователя
Для использования сервисов Яндекса необходимо указать номер мобильного телефона и электронной почты. Через свои приложения и сервисы Яндекс знает обо мне практически все: от сайтов, которые я посещаю (где стоит Яндекс.Метрика, а таковых в Рунете более 54%), до номера телефона, который я указываю в приложениях. Ему известны мои маршруты из супераппа Яндекс.Go, мои заболевания, предпочтения в музыке. Яндекс знает, в какие театры я хожу, какие фильмы смотрю, какие товары покупаю в магазине и какую еду заказываю.
Эта информация, как утверждают в компании, «используется, в основном, для собственных нужд и размещения таргетированной рекламы за счет знаний о клиентских предпочтениях». Ключевое здесь – «в основном». Раньше считалось, что Яндекс – инновационная компания, которая предоставляет пользователям бесплатные сервисы и зарабатывает на рекламе в Интернете. Но как мы знаем из СМИ, теперь Яндекс как минимум продает данные через Бюро Кредитных Историй — работу самого механизма трансфера данных я покажу чуть ниже. Разумно предположить, что желающих купить у интернет-гиганта информацию о пользователях в привязке к номерам телефонов и адресам электронной почты, будет довольно много.
Другими словами — теперь банки, страховые и юридические компании, медицинские центры, застройщики могут получить номер человека, который заходил на определенный сайт или искал определенный товар, и звонить ему в своих рекламных целях. Или отказать в выдаче страховки или банковского кредита.
Кому Бюро Кредитных Историй продает данные
Не требуется быть особым аналитиком, чтобы понять, что БКИ консолидирует данные о конкретных людях не только для банков. На сайте той структуры, с которой работает Яндекс, можно увидеть, что кроме банковского скоринга клиентам также доступны и другие сервисы:
Сервис «Триггеры Бюро»
В Банки и Страховые компании передается информация о ваших действиях в триггерном режиме:
Обратите внимание на логику работы этого сервиса — вы ставите на мониторинг номера телефонов ваших клиентов, и как только они делают какое-либо действие, которое вас интересует, вы получаете об этом уведомление. При этом данные о конкретных действиях клиента не передаются. Просто факт целевого действия – подача или оформление полиса автострахования, заказ такси и прочее.
Удобно, правда? Особенно с точки зрения объяснения позиции «данные о клиентах не передаются и обрабатываются в Яндексе»? Ведь информацию о действии в виде захода на конкретный web-сайт, можно сообщить, просто передав захэшированный мобильный номер, без каких-либо данных о посещении сайта. А хэш, о чем я говорил выше, можно элементарно сопоставить с хэшами базы пользователей. Можно даже, для упрощения, взять базу всех возможных комбинаций мобильных номеров в России — она доступна на сайте Федерального агентства связи.
Опять получается, что «зашифрованные», «хэшированные», «обезличенные» данные в терминах Яндекса таковыми не очень-то и являются. И уж точно описанная Яндексом схема не мешает продавать эти данные в рамках рассмотренных сервисов кредитных бюро, которые как раз и могут быть тем самым источником спам-звонков на мой телефон.
Страховые компании, получив доступ к данным из картографических сервисов Яндекса и его шедеврального супераппа Яндекс.Go, могут определять:
- где я живу и работаю;
- как часто езжу на автомобиле;
- по каким маршрутам я езжу;
- с какой скоростью я езжу;
- какой у меня стиль вождения – резко я торможу, лихачу или езжу плавно.
И это не домыслы, факт сбора этих данных Яндексом стал известен в 2019 году, благодаря вводу в действие Европейского законодательства о защите данных граждан, так называемого GDPR. По нему любая компания обязана предоставлять гражданам Евросоюза информацию о том, какие данные она собирает и анализирует о нем.
Законом о GDPR воспользовались журналисты издания Meduza, которые из Литвы запросили данные по одному из своих сотрудников.
В статье Meduza говорится, что журналист получил от сотрудников Яндекса архив, в котором помимо прочего был файл со всей историей перемещений. Информация отслеживалась в тот момент, когда приложение было запущено на смартфоне, в том числе в фоновом режиме. Журналист это называет «историей запуска приложения «Карт» на айфоне с точными координатами, где это происходило» (файл traffic_sessions.csv).
Интересно, что гражданам РФ такая информация компанией Яндекс не предоставляется. Более того, до сего момента Яндекса даже не представил сервис, который позволил бы понять, кто и когда запрашивал накопленные данные о пользователе. Такой сервис есть даже у Facebook — и сам пользователь может запросить и просмотреть всю информацию о себе.
Какую персональную информацию точно собирает Яндекс?
Обратимся к правовым документам на сайте Яндекса. Из пункта 4 мы узнаем, что интернет-гигант может собирать следующие категории персональной информации пользователей во время использования сайтов и сервисов Яндекса:
- Персональная информация: имя, номер телефона, адрес и возраст;
- электронные данные (HTTP-заголовки, IP-адрес, файлы cookie, веб-маяки/пиксельные теги, данные об идентификаторе браузера, информация об аппаратном и программном обеспечении);
- дата и время осуществления доступа к сайтам и/или сервисам;
- информация об активности пользователя во время использования сайтов и/или сервисов: история поисковых запросов; адреса электронной почты тех, с кем пользователь ведёт переписку; содержание электронной почты и вложения, а также файлы, хранящиеся в системах Яндекса;
- информация о геолокации;
- иная информация о пользователях, необходимая для обработки в соответствии с условиями, регулирующими использование конкретных сайтов или сервисов Яндекса;
- информация, которую Яндекс получает от Партнеров в соответствии с условиями соглашений — заключенных между Яндексом и Партнером.
С какой целью Яндекс собирает все эти данные?
Ответ на этот вопрос можно найти в том же документе, внимательно смотрим пункт №5. Помимо понятных целей, таких как:
предоставление пользователям результатов поиска по поисковым запросам;
соблюдения установленных законодательством обязательств;
чтобы лучше понимать, как пользователи взаимодействуют с сайтами и сервисами,
Яндекс отдельно отмечает, что сбор персональных данных необходим для того, чтобы чтобы предлагать вам другие продукты и сервисы Яндекса или других компаний, которые, по нашему мнению, могут Вас заинтересовать (подпункт пункт «с» пункта 5).
Однако закон «О персональных данных» (№152-ФЗ) категоричен: статья 15 гласит, что «обработка персональных данных в целях продвижения товаров, работ, услуг на рынке путем осуществления прямых контактов с потенциальным потребителем допускается только при условии предварительного согласия субъекта персональных данных». На стороне пользователей контролирующие органы – ФАС, Роспотребнадзор и Роскомнадзор.
При этом интернет-гигант свободно передает другим компаниям базы данных с якобы обезличенными персональными идентификаторами, которые по мнению интернет-гиганта перестали быть персональными данными. И Яндекс обеспечил себе это право «делиться» за счет малозаметной строчки во внушительном тексте собственной политики конфиденциальности.
Вместо заключения
Законно ли всё это? Ведь я не давал права Яндексу разглашать информацию обо мне кому-либо. Знакомые юристы говорят, интернет-данные и интернет идентификаторы – это «серое» поле нашего законодательства и привлечь Яндекс к ответственности за продажу таких данных о вас невозможно.
И насколько справедливо, что Яндекс зарабатывает на моих данных, не объясняя мне как именно это происходит и за счет чего формируется этот заработок, ведь это уже давно не только пресловутая реклама утюгов, которая после поиска «утюга» догоняет тебя еще 2 недели на всех сайтах. Это и прямое влияние на качество моей жизни и доступность социальных сервисов и услуг – таких как кредитование, страховки, медицинская помощь.
Согласитесь, оценка меня как заемщика или страхователя на основе информации о моем поведении в интернете, которая к тому же происходит «в темную» и опирается только на завуалированные термины и оферты, скрытые в подвалах – выглядит абсолютно неэтично и непрозрачно. Это очень напрягает.
Несмотря на GDPR и ужесточение законов по использованию персональных данных граждан в России, интернет-гигант продолжает монетизировать информацию о нас и абсолютно открыто следит за всеми нашими действиями через свои сервисы. Пусть даже и прикрываясь социально важной темой информирования населения и властей о соблюдении режима изоляции, как в случае с коронавирусом. Возникает разумный вопрос – а кто ещё использует наши данные помимо Яндекса и его коммерческих клиентов?