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-объекта — это позволяет зафиксировать видеокарту, объем оперативной памяти, версию драйверов и процессора компьютера. Там же есть диагональ экрана, время обработки звукового файла, другие параметры — набор этих, не уникальных по отдельности данных, позволяет выбрать из множества устройств нужное. Или хотя бы значительно сократить поиск. Главное грамотно собирать информацию.

Теперь представьте, что Fingerprint активна на достаточно большом количестве популярных сайтов. Если пользователь однажды зайдет хотя бы на один из них без VPN или другого анонимайзера, то к его прежнему набору характеристик быстро добавится реальный IP-адрес. С этого момента для него бесполезно защищаться через VPN, прокси или инкогнито — его все равно покажет идентификатор. Нужно лишь менять устройство.
Но особенно эффективно все это работает при использовании платной версии Fingerprint.js с удаленным анализом. Ниже приведен пример результата ее работы после захода пользователя на сайт. Там есть как детальные сведения о системе, так и локация и почтовый индекс.
Стоит отметить, что такой метод идентификации наиболее эффективен для десктопных компьютеров и ноутбуков. Со смартфонами он работает хуже, особенно если речь идет о бесплатной версии скрипта.
Дело в том, что базовый Fingerprint не сможет отличить между собой два устройства одинаковой модели, с одинаковыми браузерами и версией ОС. Со смартфонами такие совпадения распространены. Бесплатная версия — просто JavaScript-файл, который умеет генерировать хеш. А вот платная версия отправляет хеш на внешний сервер, где проводится анализ большого количество дополнительных показателей.
Наши права нарушили?
Как конкретно использовали Fingerprint в Киберполиции — неизвестно. Как неизвестно и то, этот ли скрипт подразумевался в письмах к СМИ. Но если предположить, что речь идет о той же технологии, то ее распространение в уанете действительно может решить вопрос деанонимизации.
Была ли установка такого скрипта на сайте Киберполиции официальным нарушением приватности — пока сказать сложно. Ранее в комментарии AIN.UA юристы с беспокойством говорили о планах ведомства «деанонимизировать» пользователей. К примеру, указывая на широкие критерии определения персональных данных.
Персональными данными в сети считаются наши IP-адреса, идентификационные данные устройства и другие цифровые «отпечатки», по которым нас можно идентифицировать. Это, например, информация про диагональ экрана, тип браузера или историю посещений.
Лидия Климкив, Equity Associate в Axon Partners
Всю эту информацию обработчики (то есть сайты) в Украине могут использовать только после согласия пользователя. Это закреплено в законе «Про защиту персональных данных». Как его будут исполнять, занимаясь деанонимизацией — еще предстоит узнать.
AIN.UA направил в пресс-службу запрос о происхождении скрипта Fingerprint на сайте Киберполиции и ждет ответа.