Хотите дальше читать devby? 📝
Support us

«Система enterprise уровня за три недели». Павел Либер рассказал, как делали «Голос»

20 августа платформа «Голос» представила итоговый отчёт, который должен доказать то, что президентские выборы прошли с серьезными нарушениями. Разработчик платформы Павел Либер подробно рассказал dev.by про безопасность «Голоса», обработку персональных данных, атаки со стороны властей и перспективы проекта.

Оставить комментарий
20 августа платформа «Голос» представила итоговый отчёт, который должен доказать то, что президентские выборы прошли с серьезными нарушениями. Разработчик платформы Павел Либер подробно рассказал dev.by про безопасность «Голоса», обработку персональных данных, атаки со стороны властей и перспективы проекта.

«Нас не только обманули, но и серьёзно недооценили»

Как прошли последние недели работы?

Мы собирали и проверяли данные для отчёта. Информации было очень много: тысячи протоколов, сотни тысяч бюллетеней. Всё это нужно было обработать, проанализировать, сопоставить и пересчитать, найти несоответствия, нарушения и фальсификации. А ещё структурировать и объяснить суть расхождений в результатах выборов.

Самый большой массив данных — 550 тысяч фотографий бюллетеней. Кстати, присылали нам не только их, но и котиков, фотографии побоев, благодарности команде «Голос» и даже угрозы: писали, что проект — «фальшивка, сделанная в Польше».

Но судя по откликам, большинство людей смотрели на «Голос» как на инструмент надежды. И сегодня мы чувствуем волну благодарности: люди получили вещественное доказательство фальсификаций. Отчёт «Голоса» стал частью иска, который адвокаты уже подали в Верховный суд, чтобы опровергнуть результаты выборов.

Что дальше? Помимо работы адвокатов, мы бы хотели, чтобы люди начали самоорганизовываться — обходить свои подъезды, знакомых, друзей, собирать физические подписи — кто за кого проголосовал, сравнивать с показателями ЦИК.

В этом сезоне белорусы показывают всему миру просто чудеса самоорганизации. Так наше общество становится всё более и более гражданским и вовлекается в процесс защиты своих голосов.

Также мы подготовили англоязычную версию отчёта, которую представим иностранным СМИ. С этим отчётом я уже выступал перед сеймом Литвы, показывая, что выборы нельзя признать состоявшимися. Сейм выслушал мой доклад и несколько других убедительных выступлений и проголосовал — почти единогласно — за непризнание Лукашенко президентом Беларуси. Мы хотим проделать это упражнение и перед другими странами.

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

Это вы о чём, например?

Например, смешная ситуация, когда ЦИК не сходится с ЦИК. Ермошина объявила, сколько голосов собрала Светлана Тихановская в Минске. У нас в распоряжении были официальные протоколы голосования, подписанные председателями избирательных комиссий — более 1310 по стране. По Минску — 432 протокола (это 59% от общего количества участков в столице). Подсчитав голоса за Тихановскую только в этих протоколах, мы насчитали голосов больше, чем официально заявил ЦИК по всем минским участкам. Это значит, что ЦИК своих же протоколов в глаза не видел, ничего не считал, а просто озвучил нужный им результат. А весь процесс голосования — абсолютная фальшивка. И Центризбирком даже не пытается это скрыть.

Выборы должны были пройти как дежурное событие, спокойно и тихо. Государство оказалось не готово к тому, что ИТ-решения смогут так быстро внедриться в годами отшлифованный избирательный процесс и повлиять на него. «Голос» сыграл свою роль ещё до публикации финального отчета: своим появлением мы поменяли психологию избирательного процесса. Стали посредником между комиссиями и избирателями.

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

Параллельно наши партнеры из «Честных людей» и платформы «Зубр» собирали протоколы, обрабатывали их, фиксировали нарушения на участках. Все данные мы смогли свести в одну систему, несмотря на попытки властей создавать препятствия. Несмотря на то, что на несколько дней отключили интернет.

Не исключаем, на итоговой карте фальсификаций могут быть мелкие неточности — мы сделали форму для обратной связи и оперативно их исправляем. Погрешность не превышает и 2%. Наш отчёт — абсолютно репрезентативный. Протоколы стекались к нам со всех областей, из городов и деревень.

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

Сначала нейросеть, потом волонтёр, потом модератор

Расскажите про команду, которая работала над проектом.

Команда — больше 40 человек — поделена на независимые группы. Каждая — занимается своим блоком: самой платформой и её основной страницей; чат-ботом; безопасностью и отказоустойчивостью; нейросетью и распознаванием бюллетеней. Есть команда, которая собирает волонтёров. Есть специалисты, которые курируют продвижение и пиар. Это абсолютно классический стартап: собрались люди по интересам, никому ничего не платят, всё делают в свободное время. Я, как и положено в стартапе, занимаюсь всем по чуть-чуть: менеджментом, дизайном, фронтендом, коммуникацией.

Абсолютное большинство наших людей находится вне Беларуси: работают в других странах либо вынуждены были временно выехать. Так безопаснее и проекту, и людям. При этом все мы — белорусы. 

Как проверяли бюллетени?

Первый уровень проверки делала нейросеть. Там, где она не могла  стопроцентно определить, что сфотографирован именно бюллетень в правильном виде, картинка переходила на уровень проверки волонтёрами.

Волонтёров мы тоже искали за рубежом — для безопасности. Они отсматривали бюллетени, убирали изображения паспортов или лица, если они были на фото. Какое-то время по соцсетям гуляла информация, что нужно фотографировать бюллетень вместе с паспортом. Несмотря на то, что «Голосу» это было не нужно (мы не хотели никаких персональных данных, кроме номера телефона), какое-то количество людей фотографировали документы. И нам пришлось заблюривать все эти фото, чтобы ни в коем случае данные не попали в публичный доступ.

Следующий уровень — модераторы, люди, которым мы абсолютно доверяем. Они перепроверяли данные после волонтёров.

«Теперь вы не можете доверять ни одному сайту, если заходите не под VPN»

Как вы решали вопрос с атаками на платформу? Когда пользователей с главной страницы «Голоса» перенаправляли на другой сайт.

Когда «Голос» только появился, нас не восприняли всерьёз и относились, как к очередной интернет-голосовалке. Но когда эта «интернет-голосовалка» за неделю зарегистрировала почти миллион человек — власти поняли, что это грозит большим количеством фотографий, информационного шума, волнениями. И начали на нас давить.

Сначала информационно — нас активно пропесочили государственные СМИ (ОНТ и БТ), которые пытались убеждать зрителей, что их данные — под угрозой. Пугали, что нас спонсируют «зарубежные кукловоды». Манипулировали законом и убеждали людей, что фотографировать бюллетень нельзя (хотя по закону — можно). Даже сделали скриншот нашей главной страницы и  отфотошопили на нем счётчки — показали, будто у нас 700 млрд. регистраций. Очень нелепо пытались подорвать к нам доверие.

Мы, признаться, разочарованы таким уровнем. Рассчитывали на более прогрессивные методы. Но с законным и честным ИТ-решением из 21 века боролись инструментами 20-го. Пресловутая цифровая трансформация, которую в Беларуси так ждали, началась не в том время и не в том месте, где властям было выгодно.

Александр Лукашенко поручил разобраться, что это за альтернативный подсчёт голосов. Лидия Ермошина назвала нас преступным проектом и теневым центризбиркомом.

Когда мы проектировали платформу, просчитывали варианты, как власть будет пытаться нам помешать. Мнения разошлись: часть команды считала, что нужно строить бесконечно глубокую систему защиты и безопасности от взломов и DDoS атак. Другая часть (включая меня) говорила, что базового уровня достаточно, потому что технологическими инструментами с нами вряд ли будут бороться.

Истина оказалась посередине. В день выборов усилиями, предполагаю, ОАЦ (Оперативно-аналитический центр) и НЦОТ (Национальный центр обмена трафиком) произошла подмена главной страницы «Голоса» — только для жителей Беларуси. Люди начали массово регистрироваться на платформе, чтобы отправлять фотографии бюллетеней. В какой-то момент мы обнаружили, что трафик из Беларуси резко упал — буквально обвалился. Начали выяснять и узнали, что в Беларуси по адресу нашей платформы открывается какая-то фальшивая заглушка, где пользователю прямо на странице предлагают ввести номер телефона и отправить бюллетень. Полагаю, чтобы перехватить у нас поток бюллетеней и получить номера телефонов людей — для последующих «разоблачений» на ТВ, мол, смотрите, ваши телефоны никак не защищены. Хотя наш метод регистрации был защищённым, а это — уровень «картонки».

Мы быстро выяснили, где располагается хостинг этой страницы, обратились к хостеру, объяснили ситуацию и за полтора часа заблокировали подделку. Но сам этот факт — вопиющий. Государство показало, что в попытках удержать власть оно готово на всё — даже на преступление. И так оно относится не только в выборам, но и к свободе интернета.

Если вы пользуетесь интернет-банком, то теперь не можете быть уверены, что заходя туда — заходите в свой интернет-банк. И у вас никто не перехватит по пути ваши секретные данные. 

Если в стране есть механизмы, которые позволяют государству так просто совершить подобные действия, завтра вы вообще не должны доверять в принципе любому сайту, на который заходите, находясь в Беларуси не под VPN. Это дискредитирует наши госорганы и их методы работы в цифровом поле.

В сухом остатке — платформа «Голос» продолжала прекрасно работать через VPN, фотографии через чат-боты доходили. А людей мы оперативно проинформировали. Вся наша госмахина не смогла сломать платформу, сделанную весёлой группой стартаперов-волонтёров за три недели. И у меня до сих пор после этого случая в голове сидит вопрос:  может ли наша страна отражать реальные угрозы и обеспечивать кибербезопасность?

А как «Голос» обеспечивал безопасность данных?

Безопасности данных и надёжности хранения мы уделяли особое внимание. Мы  понимали: людей будут запугивать «сложной» айтишной терминологией, чтобы те боялись регистрироваться. Поэтому направляли много ресурсов, чтобы объяснять, как всё устроено и почему им ничего не угрожает.

По сути, мы запрашивали номер телефона через чат-бот, хэшировали его с солью, после чего диалог человека и платформы происходил в уже зашифрованном виде. Даже мы не сможем установить, с какого номера телефона голосовали на «Голосе» за определенного кандидата. Нам достаточно было проверить, что номер белорусский и он в системе ещё не зарегистрирован. 

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

После регистрации, всё взаимодействие с пользователем происходило исключительно в чат-ботах. Мы выбрали их, потому что через чат-бот можно сообщить уникальный номер телефона и чат-боты в мессенджерах — гораздо стабильнее, их практически невозможно выключить или заблокировать. Более того, чат-бот в мессенджере прячет за собой бэкенд, с которым он работает, и заблокировать этот бек-энд очень сложно.

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

Было ещё одно опасение — мошенники с десяткой симкарт, которые будут голосовать за одного кандидата с разных номеров.

Таких случаев не может быть много на уровне страны. Но даже если они и были, мы анализировали не только с какого номера нам отправили данные, но и качество бюллетеней — чтобы в системе не было одинаковых, загруженных разными людьми. Тут нам помогла нейросеть. Мы допускали, что если очень извратиться, какой-то человек сможет отправить дубликат. Но когда речь идёт про 1,26 млн зарегистрированных на платформе людей, отклонение в пару процентов допустимо. При этом комбинация «уникальный номер телефона + многоуровневая проверка» была признана нами как надежная. Поэтому мы запустили проект с такой механикой.

«Людей из команды арестовали»

Вы сегодня находитесь за пределами Беларуси. Собираетесь приезжать назад?

Думаю, сейчас мне опасно возвращаться. Сегодня генпрокуратура считает, что «Голос» — это незаконный экзитпол и рассматривает его создание как административное правонарушение. Но я не уверен, что завтра оно не превратится в уголовное.

За неделю до выборов мы ощущали не только информационное давление. Нескольких людей из команды арестовали. По нашей информации, было дано распоряжение искать каждого, кто имеет отношение к «Голосу». Потому что на глазах у всех (и, в первую очередь, у властей) формировался проект, мощности которого хватит, чтобы опровергнуть результаты ЦИК.

Есть ли план по масштабированию? Предлагать решения другим странам, например. 

Когда мы публично отвечали на обвинения ЦИК в наш адрес, мы обещали выложить код платформы в open source.

Многие специалисты в ИТ-сообществе интересовались, как устроен «Голос». До выборов мы не рассказывали в деталях, чтобы не подсказать потенциальные уязвимости. Но сейчас, когда выборы прошли, мы готовимся показать, что у «Голоса» под капотом.

Сегодня мы видим, что платформу можно трансформировать под новые задачи. Например, она может стать крупнейшей в стране площадкой для опросов и голосований. Сейчас мы общаемся с Координационным Советом на эту тему.

Что касается применения нашего опыта в других странах: сегодня высокий интерес мы видим со стороны России и Казахстана. В Казахстане скоро выборы — и, судя по обращениям, проблема доверия избирательной системе актуальна и для них. Демократическим странам вряд ли нужно такое решение. Но для них мы будем интересны как кейс, необычный опыт, когда ИТ-проекты надстраиваются над гражданскими процессами, чтобы сделать их прозрачными и легитимными.

Помните, 22 июля вы написали пост в Фейсбуке, что выборам нужны digital-инструменты для проверки голосов? Мы с вами это обсудили, потом вы пропали. Я так понимаю — искать команду.

Я решил сохранять анонимность для безопасности проекта, команды и своей собственной. После поста в Фейсбуке меня познакомили с инициативой «Честные люди» и с представителями штаба Виктора Бабарико. Я взялся помогать им с двумя проектами: «Скорая взаимопомощь» и интеграция «Честных людей» с платформой «Зубр». Попутно познакомился с прекрасным разработчиком, который стал одним из наших главных координаторов и продакт оунеров. У него была идея платформы, похожей на «Голос», он тоже читал мой пост, мы задружились.

Решили, что проект надо делать. Вместе с «Честными людьми» и платформой «Зубр» создали и запустили эту совершенно новую экосистему. И, честно, для меня это настоящее чудо: как всё сложилось в единый связанный продукт, где данные перетекают из одной системы в другую, анализируются. Мы построили сложную систему enterprise уровня. Это потрясающе!

Я достаточно долго и много работаю в крупной ИТ-компании. И у меня были сомнения, что люди могут самоорганизоваться и сделать такого уровня продукт без всех этих 20 слоёв менеджмента. Но это произошло, исключительно на энергии небезразличных людей, которые хотят помочь миллионам таких же небезразличных. 

Вы остались не в Беларуси, ваша команда — тоже. Есть ли вероятность, что все светлые головы так и не вернуться сюда, а те, что остались — уедут? Ради чего тогда всё это было?

Делая этот и другие проекты, мы верим, что они создают новую Беларусь и формируют новое гражданское общество. Думаю, вы сами увидели, как страна изменилась и как изменились люди. Это уже то, ради чего всё стоило затевать. Я искренне верю, что мы вернёмся — и вернёмся в новую Беларусь. Из которой никому и никогда не захочется уезжать. А тем, кто по разным причинам уехал раньше, — обязательно захочется вернуться.

Лукашенко озаботился альтернативным подсчётом голосов на выборах
Лукашенко озаботился альтернативным подсчётом голосов на выборах
По теме
Лукашенко озаботился альтернативным подсчётом голосов на выборах
Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
Количество вредоносных элементов в открытом коде выросло в 20 раз с февраля
Количество вредоносных элементов в открытом коде выросло в 20 раз с февраля
Количество вредоносных элементов в открытом коде выросло в 20 раз с февраля
Российские разработчики могут лишиться поддержки открытого кода
Российские разработчики могут лишиться поддержки открытого кода
Российские разработчики могут лишиться поддержки открытого кода
Виртуализация корпоративной инфраструктуры: доклад о новинках и подходах
Виртуализация корпоративной инфраструктуры: доклад о новинках и подходах
Виртуализация корпоративной инфраструктуры: доклад о новинках и подходах
Р.Столлман — Дзен свободного программирования. Часть 2
Р.Столлман — Дзен свободного программирования. Часть 2
Р.Столлман — Дзен свободного программирования. Часть 2
Это вторая, заключительная часть нашего большого интервью с Р.Столлманом. Сегодня мы проведем неформальное знакомство с личностью нашего героя. В первой половине интервью («Save the planet; kill yourself») мы поговорим о его воззрениях на childfree и свободу выбора. Во второй («Stallman eating his foot») — об истории GNU и принятии Ричардом святой либеральной веры, о кока-коле и странных пищевых пристрастиях гуру свободного ПО.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.