29 января в редакции региональных СМИ поступили письма с официальной почты местного отделения Киберполиции. Правоохранители предлагали установить на сайтах некий скрипт для деанонимизации интернет-пользователей и борьбы с преступностью. 

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

Копия письма Киберполиции

Тем временем редакции AIN.UA удалось ознакомиться с записью разговора между сотрудником Киберполиции и представителем одной из IT-компаний. В ней просьбу установить скрипт объясняли борьбой с VPN-сервисами, маскирующими реальный IP-пользователя. Но подробностей не было и в этом источнике.

По просьбе журналиста AIN.UA, разработчик Эльдар Аватов рассказал, о каком скрипте могла идти речь и на что он способен.

Что за скрипт пытались предложить СМИ?

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

Анализ сохраненных копий исходного кода сайта Киберполиции показал, что до 30 января там в общей сложности было 15 активных скриптов. К концу дня — когда история с письмами в СМИ набрала резонанса — количество скриптов сократилось на один. Что удалили? Как свидетельствуют строки загрузки и файлы, речь идет о бесплатной версии Javascript-библиотеки Fingerprint. Ее исходный код опубликован на GitHub.

Библиотека предназначена для обнаружения пользователей и по ряду косвенных признаков присваивает браузеру уникальный идентификатор. Это не просто обнаружение по файлам cookie, которые можно легко очистить в настройках. Создание «цифрового отпечатка» позволяет обойти режим приватности, VPN и другие средства анонимизации. Основные сферы использования технологии — настройка персонализированной рекламы, аналитика, защита от мошенничества.

Откуда появилась библиотека?

Создатель Fingerprint — программист Валентин Васильев. Ее разработку он начал еще в 2012 году, а в 2015 году представлял ее публично на конференции «Онтико». Уже тогда библиотекой, по его оценкам, пользовались 6-7% самых посещаемых интернет-сайтов.

Fingerprint собирает все уникальные настройки и данные о браузере, системе, компьютере, группирует их в единую строку, делает из них идентификатор и хеширует его.

Сам Васильев — российский программист, библиотеку создал во время работы в компании «КупиКупон».

С 2015 года Васильев живет и работает в США, там же зарегистрировал компанию FingerprintJS. Она по подписке продает Pro-версию одноименной библиотеки, которая собирает больше данных, делает это быстрее и использует единые сервера в США и ЕС для идентификации. Цены начинаются от $100/месяц.

Что с приватностью?

Судя по тому, что удалось найти в коде сайта Киберполиции, правоохранители установили на сайт бесплатную версию библиотеки Fingerprint. Произошло это примерно в августе 2019 года.

Бесплатная версия умеет собирать данные. Написав несложный дополнительный скрипт, их можно отправлять на сервер для внутренней аналитики. Так было и в этом случае. То есть информацию обрабатывал разработчик сайта — в данном случае Киберполиция — никаких сторонних запросов скрипт не отправлял.

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

В сети также есть скриншот, на которых видны запросы в адрес сайта webstatstat.info с регистрацией в России. Связать изображение с работой скрипта Fingerprint на сайте Киберполиции редакции AIN.UA пока что не удалось.

Скриншот с запросом в адрес российского сайта

Обновлено: отправка данных на домен с российской регистрацией действительно происходила, но по вине самих сотрудников Киберполиции — детально об этом написано в отдельно материале.

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

AIN.UA удалось установить URL, на который отправлялись данные этим скриптом. Он ведет на сайт Киберполиции, но выдает ошибку № 504. Это позволяет с высокой долей вероятности говорить, что сервер был внутри инфраструктуры Киберполиции. Скорее всего, там просто находилась бекенд-часть для сбора и анализа информации. Сейчас она отключена.

Эта технология действительно может справиться с анонимайзерами?

Да, если распространить ее на достаточном количестве популярных сайтов. VPN и другие средства защиты не скроют всей информации об устройстве. И «цифровой отпечаток» этим воспользуется.

Даже бесплатная версия Fingerprint умеет, к примеру, определять время прорисовки 3D-объекта — это позволяет зафиксировать видеокарту, объем оперативной памяти, версию драйверов и процессора компьютера. Там же есть диагональ экрана, время обработки звукового файла, другие параметры — набор этих, не уникальных по отдельности данных, позволяет выбрать из множества устройств нужное. Или хотя бы значительно сократить поиск. Главное грамотно собирать информацию. 

Изображение с сайта FingerprintJS

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

Но особенно эффективно все это работает при использовании платной версии Fingerprint.js с удаленным анализом. Ниже приведен пример результата ее работы после захода пользователя на сайт. Там есть как детальные сведения о системе, так и локация и почтовый индекс.

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

Дело в том, что базовый Fingerprint не сможет отличить между собой два устройства одинаковой модели, с одинаковыми браузерами и версией ОС. Со смартфонами такие совпадения распространены. Бесплатная версия — просто JavaScript-файл, который умеет генерировать хеш. А вот платная версия отправляет хеш на внешний сервер, где проводится анализ большого количество дополнительных показателей. 

Наши права нарушили?

Как конкретно использовали Fingerprint в Киберполиции — неизвестно. Как неизвестно и то, этот ли скрипт подразумевался в письмах к СМИ. Но если предположить, что речь идет о той же технологии, то ее распространение в уанете действительно может решить вопрос деанонимизации.

Была ли установка такого скрипта на сайте Киберполиции официальным нарушением приватности — пока сказать сложно. Ранее в комментарии AIN.UA юристы с беспокойством говорили о планах ведомства «деанонимизировать» пользователей. К примеру, указывая на широкие критерии определения персональных данных.

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

Лидия Климкив, Equity Associate в Axon Partners

Всю эту информацию обработчики (то есть сайты) в Украине могут использовать только после согласия пользователя. Это закреплено в законе «Про защиту персональных данных». Как его будут исполнять, занимаясь деанонимизацией — еще предстоит узнать.

AIN.UA направил в пресс-службу запрос о происхождении скрипта Fingerprint на сайте Киберполиции и ждет ответа.