Скажем честно, эта заметка писалась не один день, а точнее, с 17 ноября, и была изначально запланирована для публикации после подведения итогов народных выборов. Еще при проработке проекта мы знали, что будут попытки фальсификаций. Можно было бы попробовать найти денег и сделать верификацию через СМС, но это, грубо говоря, 1.5 рубля за каждый голос, еще круче было бы прикупить базу данных MaxMind Anonymous IP, но за неё просят 2500 долларов в месяц, и всё равно бы это нас не спасло от фальсификаций, так как сим-карты покупаются пачками при необходимости, если нужно, докупаются платные сервера VPN, которые не всегда есть у MaxMind, так что мы пошли другим путем.

Идея изначально была проста — прикинуться чайниками, дать махинаторам расслабиться, собрать данные о поведении глупых фальсификаторов, чтобы на основе этих данных вычислить относительно умных. Так и случилось.

Больше недели мы вообще не обращали внимание на накрутки, а просто ждали, когда соберется статистика по средним показателям, коих, как писалось во время выборов, десятки. Как пример одного из параметров — тип устройства, компьютеры в среднем 70%, мобильные телефоны 24%, остальные 6% приходятся на планшеты, смарт-тв и так далее. Второй очевидный параметр — страна, в среднем по системе 93% голосов из России, даже невзирая на то, что бесплатная и не идеально точная база данных Крым и Севастополь к России не относит.

Собрав эту статистику, мы получили страничку, на которой нам машина высветила предупреждение, что у кандидата Биеца убийственные отклонения, что у него из России лишь 10% голосов, и при этом 95% стационарных компьютеров. Таким образом попался «гений», который решил вывести на первое место Сергея Николаевича. «Гений» полагал, что в Левом Фронте нет технаря, который знает, что gmail игнорирует точку в е-мейле и, будучи крайне ленив, зашпилил нечто вроде user@gmail.com, u.ser@gmail.com, u.s.er@gmail.com и так далее — всего более тысячи голосов. Самое забавное, что человек, который вот так элементарно «запалился» с адресом почты, непонятно для чего использовал TOR, всякий раз переключаясь при новом голосовании, и за это ему огромное спасибо, так как фактически его многодневный труд собрал для нас базу данных IP сети TOR и, тем самым, помог с выявлением накрутки у других кандидатов. Это не значит, что мы убрали все голоса, поданные через TOR, мы с уважением относимся к желанию людей оставаться анонимными, но когда за кандидата 5-7 голосов подряд из TOR — это слишком очевидно.

Вторым претендентом на «премию имени Чурова» у нас оказался некий сторонник кандидатов Бессонова и Коломейцева. Он оказался умнее, менял браузеры (правда, не часто) и использовал исключительно российские прокси-сервера, но ничего, кроме как пополнить нашу базу данных подозрительных IP адресов, понятное дело, добиться не смог.

Очень помог тот факт, что в первом туре каждый избиратель мог голосовать за трех кандидатов. Кто-то голосовал за одного — таковых было много, кто-то за двух, но их меньше всего, чаще за троих. Разумеется, наша система и это учитывала при анализе, включая порядок голосования. При нормальной картине, если даже где-то призывали голосовать за кандидата «А» и кандидата «Б», пользователь голосовал сначала за «АБ», а кто-то за «БА», но, понимая, что есть еще голос, изучив список, в большинстве случаев выбирал также кандидата «В». Откровенный же фальсификатор голосовал либо только за «А», либо за «АБ», причем, как показала практика, всегда соблюдая порядок, что логично и видно, особенно, когда таких «избирателей» много. Это можно сравнить с людьми в штатском на митинге. Один может затеряться в толпе, если их десять — то уже видно, если их 100 — то это ОМОН, а уж определить где ОМОНовцы, а где митингующие — много ума не нужно.

Люди разные, мы не пытались искать закономерностей типа «вот с этого IP много голосов», потому что это бред. Если пошла агитация на городском форуме, где 3 провайдера, а следовательно, 3 IP адреса, вполне реальные люди будут иметь на 1000 человек 3 IP адреса, мы не сильно смотрели на время, хотя посматривали, так как, конечно, бывают голосующие, работающие в ночную смену, но, все-таки, в 14 часов людей всегда больше, чем в 3 часа ночи, при этом, конечно, мы не забывали учитывать разницу в часовых поясах, ведь 3 часа ночи в Москве — это утро на Дальнем Востоке.

То, что человек голосует из Новой Зеландии или литовского городка, нет проблем, вполне вероятно, там живут наши сограждане, из 146 миллионов которых, кстати, 2 млн живет заграницей, это не показатель.

С какого браузера голосует человек, какая у него операционная система, с телефона или с компа — вообще не критерий.

НО! Когда в 3 часа ночи за кандидата, который днем набирает 5 голосов за час, голосуют из Удмуртии (хотя он из другого региона), 50 человек, при этом все с 15 IP, а в Ижевске нет столько провайдеров, и у всех у них разные операционные системы, но одинаковые браузеры, возможно ли такое? Нет, это как раз та самая рота ОМОНа в штатском, которую система вычисляет на раз, а модератор подтверждает подозрения системы.

Что касается времени, мы понимали, что могут быть всплески, например по случаю репоста в соцсетях, это нормально, но в обычном режиме при таком репосте идет именно всплеск, который затухает со временем, в первую минуту 10 человек, потом 5, потом 3 и медленно выходит на ноль, а вот когда мы видим, что всплеск по часовому графику, разбирая его на минуты, обусловлен тем, что за кандидата голосовали каждые 2 минуты по одному голосу, плюс другие факторы — это накрутка.

Как результат — мы уверены, что все значимые накрутки мы вычислили и убрали, есть вариант, что у кого-то из кандидатов, которые ниже 20-30 позиции, задвоенные голоса (типа сам за себя дважды проглосовал с компьютера и телефона), но это не влияет на результат.

Оргкомитет народных праймериз