Регионы
НовостиМненияАналитикаСервисыОбучениеО движенииСтать наблюдателемПоддержатьEn
Иван Шукшин
Программист, исследователь выборов. Краснодарский край
Коллаж: Ксения Тельманова

В 2020 году «Голос» неоднократно писал (здесь, здесь, здесь и здесь), что было сделано ЦИК для воспрепятствования получения данных с их сайта. ЦИК начали уничтожать открытость общественно значимых данных с декабря 2019 года, когда 25 декабря 2019 было принято решение N 236/1760-7, снимающее с ЦИК обязательство заботиться об автоматическом сборе данных.

Постановление ЦИК от 2010 года, цветом выделен удалённый в 2019 фрагмент

Сразу скажу, что сайты избиркомов не независимые, они разрабатываются и управляются централизованно. Избирком Кубани использует тот же код и ту же сетевую инфраструктуру, что и избирком Приморья, а сетевая система, защищающая сайт www.vybory.izbirkom.ru, защищает и каждый региональный сайт. Поэтому далее я буду употреблять термин «сайты ЦИК».

Скриншот с сайта избиркома Кубани со включённой панелью разработчика

Изучая код регионального сайта ЦИК, а именно скрипт fp.min.js, я обнаружил новую уловку. 

Во-первых, ЦИК начал следить за посетителями своих сайтов. Регулярно идут отправки на адрес /send, в отправляемых параметрах указан тип события (клик мышкой, скролл, закрывание страницы), там указано даже время, проведённое на сайте. Чтобы идентифицировать уникального пользователя, используется обфусцированная библиотека FingerprintJS версии 3.3.0. Без обфускации код можно прочесть на github.

Библиотека составляет что-то вроде отпечатка пальцев пользователя, чтобы в дальнейшем его же узнавать повторно. Также найденный отпечаток сохраняется в cookie с именем ​​izbFP и отправляется в ЦИК на адрес /send.

Согласно ст. 3 п. 5 ФЗ-67, деятельность избирательных комиссий должна быть гласной. Для чего ЦИК собирает сведения о посетителях своего сайта, они не раскрывают. 

Собирать и идентифицировать пользователей сайтов ЦИК можно для одной вредной задачи — затруднять автоматический сбор данных с результатами выборов. Например, чтобы детектировать сбор данных программным способом с помощью selenium, ЦИК также следит за свойством navigator. webdriver, тоже отправляемым на адрес /send.

Сайты знакомств

Но давайте вернёмся к секс-знакомствам. Чтобы определить уникальные особенности посетителя сайта (отправляемые затем в ЦИК), библиотека добавляет на сайт различные рекламные объявления, а затем изучает, какие из них были заблокированы блокировщиками рекламы. Блокировщики бывают разными, их настройки тоже, так ЦИК узнаёт отличительные особенности посетителя. Помимо изучения блокировщиков посетителя, библиотека проверяет работу со шрифтами, с cookies, с localStorage и десятками других настроек и свойств. 

Список добавляемой на сайт ЦИК рекламы содержится в коде fp. min. js. Там порядка 50 различных сайтов из пары десятков стран. Например, в ключевой переменной H 45 свойств, и одно из них, adGuardGerman, содержит ссылку на немецкий сайт, продающий сатисфаеры и прочие секс-игрушки. При этом свойство easyListGermany содержит ссылку на сайт секс-знакомств.

Ссылка на сайт секс-знакомств в коде всех сайтов ЦИК с результатами выборов

Уже в декабре, в следующей версии FingerprintJS этого сайта уже нет, видимо, разработчики посчитали, что обнажёнка — это перебор, когда есть проверенные варианты онлайн-казино и сайта с сатисфаерами. Но ЦИК пока не спешит обновлять свой код.

Скрин с сайта знакомств, используемого в коде сайтов ЦИК

Код ЦИК следит, как браузер посетителя сайта реагирует на эту и другую рекламу — и так отделяет одного пользователя от другого. У кого-то браузер заблокирует ссылку на сайт онлайн-казино, у кого-то — на сайт онлайн-знакомств, так пользователи и отличаются. Полный код добавляемого на каждый сайт блока можете просмотреть на github.

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

Отправляемое в ЦИК: событие прокрутки страницы и время на странице — 55 секунд


Блокировка по IP

Также в последний год ЦИК ввели новое средство борьбы с автоматическим сбором данных — блокировку по IP. И эта мера потенциально опаснее. Если к сайту ЦИК обратиться не через браузер, а через программу curl, чтобы программно собрать данные, первый ответ будет «Forbidden», а второй ответ уже не будет получен, запрос вылетит с ошибкой «Network is unreachable». То есть ЦИК настолько боится автоматически собранных данных и их анализа, что банит по IP с первого раза. 

Что любопытно, как только это поведение серверов ЦИК мною было опубликовано в группе, посвящённой открытым данным, настройки поменялись, и ЦИК более не банит за программные запросы. То ли они вспомнили о гласности, то ли мы просто случайно увидели, как ЦИК тестирует свои антинаблюдательские инструменты, которые включат затем в полную силу в день выборов. 


Что прячет ЦИК

Конечно, мне могут возразить, что ссылки на сайты добавляются всего на долю секунды, да и js-библиотека написана не в ЦИК. Но то, что вместо доступности данных, которую от ЦИК требуют годами, избирком использует сайты знакомств и блокировки по IP, чтобы эту доступность уничтожить, чтобы спрятать данные от граждан, поражает воображение. ЦИК явно озабочен не тем. 

ЦИК прячет от общественности две вещи:

  1. возможность получить составы всей сотни тысяч избирательных комиссий. Это может быть полезно для того, чтобы гражданское общество могло в дальнейшем привлечь сотни тысяч преступников к ответственности или отстранить их от должностей в политически ключевых институтах, когда власть сменится.
  2. возможность получить результаты по УИКам. Это полезно как для нахождения уже начавшихся фальсификаций в ходе дня (дней) голосования математическими методами, так и для анализа общих данных по методу Кислинга-Шпилькина, позволяющего сразу после публикации результатов выборов измерить уровень фальсификаций.

Важно заметить, что хотя у ЦИК и есть раздел «Открытые данные», но ЦИК не публикует открытые данные в разрезе по каждому УИК, ограничиваясь лишь публикацией сводных данных (номер 86 на странице), и лишь спустя два месяца после выборов.

Элла Александровна, кому не стыдно — тот ничего не прячет от своих граждан. Это единственная хорошая новость о ваших выборах — ЦИКу пока ещё стыдно.

Послесловие

Мы отправили запрос создателям FingerprintJS с просьбой прокомментировать использование их библиотеки ЦИК России, а также уточнить, планирует ли ЦИК использовать их платную, продвинутую версию FingerprintJS Pro. Ответ на момент публикации не получен. Будут ли ЦИК использовать сайты онлайн-казино, ставок и секс-знакомств, чтобы не только следить за посетителями, но и препятствовать получать данные о ходе и результатах выборов, мы увидим уже в сентябре.

Другие записи по теме «Избиркомы»
МнениеИзбиркомы3 месяца назад
Давайте разберёмся, что ЦИК уже сделали ужасного, а что ещё планируют
Иван Шукшин
НовостьИзбиркомы4 месяца назад
Как пройдет голосование по выборам президента России
В Центризбиркоме рассказали первые подробности
РазборИзбиркомы8 месяцев назад
Кто руководит участковыми комиссиями: по партиям и по регионам
Летом обновили составы почти все УИКи страны — мы продолжаем анализировать новые данные
МнениеИзбиркомы8 месяцев назад
Если учесть выдвиженцев «собраний избирателей по месту жительства» и «по месту работы» — власть контролирует в 40 раз больше участков, чем любая из других парламентских политических сил
Иван Шукшин
Иван Шукшин: другие материалы автора
МнениеДеньги на выборах2 месяца назад
При заполнении формы на перечисление средств отображается неверная дата рождения, исправить ее нельзя — а если данные неверны, кандидат обязан вернуть деньги
МнениеИзбиркомы3 месяца назад
Давайте разберёмся, что ЦИК уже сделали ужасного, а что ещё планируют
МнениеНаблюдатели7 месяцев назад
Давайте рассмотрим на всего один УИК № 940 и всего один день голосования, субботу 9 сентября 2023
МнениеФальсификации7 месяцев назад
Как члены комиссий фальсифицируют и как нейтрализуют наблюдателей