Организация голосования в Интернет и безопасность

Организация голосования в Интернет и безопасность

Голосования в Интернет (Internet vote) приобретают все большую популярность. Многие интернет-ресурсы внедряют эти методы для решения самого широкого спектра вопросов начиная с моментов, связанных с оценкой эффективности построения собственных web-сайтов, и заканчивая проведением серьезных социологических опросов. Когда необходимо обеспечить широкую географию голосования и, например, оценить отношение к рассматриваемым вариантам русскоязычного населения стран бывшего СССР или определить период голосования неделей или месяцем, то соперничать с интернет-голосованием никакая система не сможет. Кроме того, выгодным аспектом этого способа является финансовая сторона, которая предполагает только разовую оплату труда программиста, вкладывающего выбранный механизм интернет-голосования в определенную программную реализацию.

В данной статье рассмотрены основные подходы к защите от накруток, применяемые в настоящее время при построении систем интернет-голосования. Дополнительно приводится некоторая полезная информация, непосредственно связанная с тематикой публикации. Здесь не рассматриваются простые для взлома реализации, к примеру, когда HTML-код голосования легко анализируется и предоставляет злоумышленнику возможности серьезно вмешиваться в ход голосования, просто изменяя данные ответов, отсылаемых на web-сервер по предоставленному для голосования бюллетеню. В статью не включены моменты, связанные с особенностями построения интернет-голосования для государственных избирательных систем, которое основывается на совершенно других принципах защиты.

Голосование, основанное на контроле IP-адресов
Наиболее распространенными в настоящее время в Интернет являются системы голосования, которые позволяют голосовать с одного IP-адреса только один раз в течение определенного интервала времени (один раз в час, один раз в сутки). Несмотря на его распространенность, этот вариант к настоящему времени несколько устарел, так как из-за проблем с адресным пространством в Интернет (по причине особенностей реализации протокола IP версии 4) работа основной части пользователей теперь реализуется через proxy-серверы, которые обеспечивают для всех своих пользователей один адрес, зарегистрированный в Интернет. Представим себе стандартную ситуацию, когда добропорядочный пользователь Интернет, пытаясь честно проголосовать, наблюдает следующее сообщение: "С данного IP-адреса уже голосовали. Попытайтесь повторить попытку позже". Вряд ли он предпримет повторную попытку. Используя данный подход, организаторы голосования теряют свой престиж и определенную часть аудитории, которая пыталась доверить им свое мнение и на которую было рассчитано голосование.
Кроме того, для обхода этого способа защиты злоумышленники могут воспользоваться услугами прокси-серверов или наиболее удобной их подкатегории — анонимайзеров, или CGI-proxy (например: http://proxy.max.ru, http://www.anonymizer.com, http://www.nonymouse.com и т.п.), которые позволяют, не меняя настроек и не используя дополнительных программ, анонимно путешествовать по Интернет. В настоящее время в Интернет можно найти значительное количество сайтов с подобного рода услугами (платными и бесплатными, требующими регистрации и нет). Таким образом, накрутить лишнюю сотню голосов за необходимый вариант не составит больших сложностей. Достаточно подробную информацию об обходе защиты, основанной на уникальности IP-адреса, вы можете найти в статье К. Касперского, ссылка на которую приведена в конце публикации. В качестве дополнения заметим, что вы можете попытаться проверить информацию о вас, доступную в Интернет, с помощью возможностей ресурса http://ipid.shat.net (с использованием анонимайзера и без него).

Использование cookies

Второе место по использованию в реализациях интернет-голосований занимает работа с cookie. Cookie — это маленький набор данных, который записывается на ваш компьютер после посещения того или иного web-сервера. В принципе, в том, что cookies остаются на диске компьютера пользователя, нет ничего плохого (разве что вы не хотели бы, чтобы хозяева сайта знали, что это именно вы приходили к ним или что вы заходите уже не первый раз), наоборот, они помогают серверу при вашем следующем посещении вспомнить ваши настройки и предпочтения.
Некоторые пользователи считают (и не без оснований), что использование cookie нарушает их свободы. Сделаем некоторое отступление: приведем интересную, на наш взгляд, информацию о том, как несколько лет назад крупная сетевая рекламная фирма DoubleClick признала, что следит за интернет-пользователями с помощью встроенных в cookies цифровых меток, данные о которых сопоставлялись с базами данных, составленными другими компаниями. Дело DoubleClick стало поводом для многочисленных расследований, которые проводили различные государственные органы Соединенных Штатов, в том числе прокуратуры десятка штатов. По решению суда компания DoubleClick была обязана выплатить штраф в размере 450 тысяч долларов.
Возвращаясь к теме статьи, заметим, что при посещении сайтов на вашем компьютере cookie могут создаваться, передаваться в Интернет, удаляться с использованием механизмов, заложенных в посещаемых вами web-сайтах. Для того, чтобы наиболее интересующиеся могли "потрогать" cookies собственными руками, ниже приводятся описания настроек для работы с cookie двух наиболее распространенных браузеров — Internet Explorer и Opera.

Работа с cookie в IE
Для Internet Explorer 5.0 (IE) настройки работы с cookie можно найти через пункты меню Сервис — Свойства обозревателя. В появившемся окне Свойства обозревателя необходимо активизировать закладку Безопасность и нажать кнопку Другой… После чего в окне Правила безопасности (рис. 1) можно увидеть действующие настройки и изменить варианты работы IE с cookies. Сookies для IE имеют вид отдельных файлов и располагаются по умолчанию в каталоге %Windir%\Cookies.
Удаление и просмотр их в IE компания Microsoft, видимо, при разработке основной функциональности не предусматривала. Удалить cookies можно выбрав закладку Общие в окне Свойства обозревателя с помощью достаточно трудоемкой процедуры. Сначала поместив информацию о файлах-cookies (рис. 2) в папку временных файлов Интернет (нажать кнопку Удалить файлы…, после чего завершить работу с окном Удаление файлов, выбрав кнопку OK), а затем выделив (нажать последовательно кнопки Настройка… и Просмотр файлов…) и удалив имеющиеся файлы-cookie, имена которых начинаются с cookie:. Заметим, что есть и несколько более легкий вариант решения — просто удалить файлы с расширением .txt из каталога, в котором IE хранит cookie:).
Дополнительно можем посоветовать для работы один из множества менеджеров cookie, которые предоставляют возможность просматривать и удалять cookies, сделанные Internet Explorer, — Winmag.com Co-okies View 3.3, а также утилиту IE Security Pilot 1.00, позволяющую сохранить текущее состояние и восстановить его в случае необходимости (все эти программы можно найти на http://www.downloads.ru ).

Работа с cookie в Opera
В браузере Opera 7.0 предусмотрены более продвинутые механизмы, которые поддерживают просмотр cookies и данных, их составляющих, позволяют удалять cookies полностью или их отдельные элементы, управлять их созданием. К этим элементам можно добраться с помощью меню Файл–Настройки (рис. 3, 4).

Применение уникального кода с графического изображения
Указанный подход наверняка известен многим по процессу регистрации почтового ящика на mail.ru. Предлагаемый вариант не позволяет злоумышленникам автоматизировать процесс накрутки голосов, однако никак не запрещает одному человеку проводить процедуру голосования многократно. При использовании этого способа необходимо реально рассчитывать общее количество посетителей и оценивать поток голосующих. В некоторых случаях, когда голосование должно занять минуты, применение такого варианта может быть самым оптимальным решением проблемы накруток. Для системы голосования с вводом уникального кода можно разработать дополнительный защитный механизм, который будет гарантировать, что процедура голосования займет не менее запрограммированного временного промежутка (например, 30 секунд).

Голосование с использованием электронных почтовых ящиков
Система голосования с использованием почтовых ящиков подразумевает, что на указанный голосующим почтовый ящик высылается уникальный код, который должен быть введен в качестве пароля при выборе варианта голосования. Либо после выполнения голосования на почтовый адрес пользователя будет выслана инструкция, в которой объясняется, по какому уникальному адресу проголосовавший должен подтвердить свое участие.
Данный вариант является достаточно неудобным. Он требует значительных временных затрат от голосующего. Неопытный еще пользователь может попросту не иметь почтового ящика, а умудренный опытом старожил Интернет, имеющий почтовый ящик, никогда не введет на непроверенном интернет-ресурсе адрес своего реального почтового ящика, опасаясь того, что на "засвеченный" ящик начнет валиться ненужная ему реклама. Тем более, что обычно, выбрав систему голосования с использованием электронных почтовых ящиков, устроители голосования пытаются решать дополнительные вопросы сбора информации о голосующих, чтобы, например, расширить или организовать рассылку своей рекламной информации. Добавим к вышесказанному то, что некоторые существующие в Интернет ресурсы позволяют выполнять автоматизированную регистрацию новых почтовых ящиков, что дает реальный шанс серьезно скомпрометировать проводимое по такому варианту голосование.

Применение для голосования специально разработанной программы, скачиваемой с сайта
Вариант с использованием специальных программ для голосующих, также как и ситуация с почтовыми ящиками, является весьма неудобным способом для пользователей. Первая проблема заключается в том, что программа просто не будет скачана с сайта, на котором проводится голосование (практика показывает, что более половины посетителей не скачивают программу). Причин этому великое множество:
— пользователь может не пожелать скачивать неизвестную ему программу для последующего запуска на локальном компьютере, опасаясь вирусов и программ-троянов;
— браузер пользователя может иметь такой уровень безопасности, который запрещает загрузку программ из Интернет;
— реализация корпоративной политики безопасности организации, в которой работает желающий проголосовать, не позволяет загружать exe-модули из Интернет.
Вторая проблема заключается в увеличении трафика за счет необходимости скачивания программы. При использовании услуг хостинг-провайдера владельцам интернет-ресурса необходимо предварительно оценить объемы исходящего и входящего трафика в период проведения голосования для принятия решения о возможности применения рассматриваемого способа.
Третья проблема состоит в том, что если речь ведется о долговременном использовании методики голосования, то злоумышленник может получить программу в изучение и определить способ защиты, который может быть основан на двух моментах:
— сохранение данных о проведенном голосовании в секретную область компьютера для проверки ее наличия в момент голосования;
— определение и использование при передаче данных о голосовании индивидуальных особенностей настройки системы и конфигурации оборудования голосующего для определения фактов повторного голосования.
Сложность задачи обойти защиту заключается только в профессионализме крэкера, который взламывает программу голосования, используя стандартные подходы применения пошагового трассировщика, сетевого анализатора (sniffer) и дедуктивного метода:).

Подводя предварительные итоги
В первой части статьи была сделана попытка систематизировать и осветить основные способы защиты при организации интернет-голосования. Чтобы подвести некоторые итоги, остановимся на главном. Несмотря на большое разнообразие подходов к способам защиты голосований с использованием Интернет, достичь полной объективности нельзя. Основными нерешаемыми проблемами являются анонимность Интернет и ненулевая вероятность нештатной работы интернет-сервисов (начиная с технической стороны вопроса и заканчивая программной). Необходимо учитывать те обстоятельства, что для обмана в Интернет могут быть использованы следующие способы:
— управление работой с куками;
— выход в Интернет через proxy-серверы (анонимайзеры);
— свободная и бесплатная процедура регистрации новых электронных почтовых ящиков;
— формирование на сайтах-страничках скриптов, которые незаметно для посетителей будут выполнять за них процедуру голосования.
Однако не все интернет-голосования являются потенциальным объектом атак действительно профессионалов. Кроме того, можно разработать определенную стратегию, позволяющую правильно организовать и контролировать объективность голосования (в какой-то мере). Сформулируем четыре группы вопросов, которые следует рассматривать при необходимости разработки системы голосования:

1. Выбор комбинированной реализации основы контроля при голосовании
Ни одна из возможных реализаций голосования не решает проблемы накрутки голосов. Каждая имеет свои плюсы и свои минусы, а значит, следует рассматривать комбинацию методов. Есть смысл остановиться на решениях:
1) не позволяющих злоумышленникам автоматизировать процесс голосования;
2) контролирующих запуск одновременно нескольких сеансов выполнения параллельных процессов по голосованию на одном компьютере;
3) препятствующих голосованию за пользователей, путешествующих по Интернет, без их согласия.
Можно, например, предложить вариант совместного использования cookie и ввода уникального кода с графического изображения. Голосующий загружает страницу с информацией для перехода к голосованию. При этом на его компьютере сохраняется cookie с отметкой об очередной попытке голосования (перед этим обязательно необходимо удостовериться, что подобного cookie на компьютере голосующего не было). После загрузки информация со страницей голосования, существующий cookie дополняется данными о том, что пользователь загрузил страницу голосования. Ему предлагается определиться с вариантом голосования и ввести уникальный код с графического изображения. После того как на адрес ресурса голосования поступает информация c вариантом голосования и корректным кодом, считается, что голосование прошло успешно, и голос засчитывается.

2. Применение дополнительных мер защиты
Для того чтобы повысить защищенность, можно использовать дополнительные способы защиты. Например, загрузка страницы голосования с интернет-ресурса происходит с задержкой (обязательным является информирование об этом голосующего). Ее длительность и способ информирования об этом разработчики должны определить сами и таким образом, чтобы не потерять особо нетерпеливых голосующих, но и не облегчить работу тем, кто пытается фальсифицировать результаты голосования.

3. Использование статистических и других методов анализа для контроля попыток накруток
Анализ данных голосования, а также некоторой дополнительно накапливаемой информации позволит статистическими методами обнаружить факты фальсификации. Что, впрочем, может серьезно усложнить программную реализацию интернет-голосования. В рассматриваемом нами примере злоумышленник может, удалив cookie с компьютера, повторить процедуру голосования. В связи с этим предлагается сохранять и анализировать, кроме самих данных голосования, еще и дополнительную информацию о каждом успешном голосовании:
— время голосования;
— IP-адрес голосующего в Интернет,
— IP-адрес и настройки proxy (если они доступны);
— тип браузера голосовавшего и его настройки, другие параметры работы, которые могут быть доступны интернет-ресурсу голосования.
Если злоумышленник попытается влиять на ход голосования, такие попытки будут определяться в ходе выполнения набора статистических критериев с выявлением конкретных наборов данных голосования (попыток фальсификации), которые имеют определенную систематизацию. При этом можно продумать решения автоматической коррекции накопленной информации путем исключения из подсчета результатов голосования фальсифицированных данных.

4. Решение вопросов, связанных с отображением информации о текущем состоянии голосования
Чтобы пояснить суть проблемы, рассмотрим конкретную ситуацию. Если голосующий видит до начала процедуры голосования, что число проголосовавших было, например, 100 и после голосования также осталось 100, у него возникает резонный вопрос о том, что он сделал не так или работает ли вообще процедура голосования? Для тех, кто пытается накрутить голоса, информация о точном количестве голосов, да еще с распределением за каждый из имеющихся вариантов, может быть использована при анализе возможности обхода системы защиты, а также выработки стратегии решения поставленной перед ними задачи.
В этой связи предлагается очень продуманно подходить к отображению данных о голосовании (не выдавать информацию о количестве проголосовавших, а только предлагать оценить график с процентным соотношением голосов) и не информировать голосующих о попытках неудачного голосования.
При использовании варианта работы с cookie можно предложить выдачу предупредительной информации только в тех случаях, если у голосующего не включено разрешение работы с cookie. Это сообщение может быть выдано уже при загрузке страницы, предваряющей переход к голосованию, и являться своего рода препятствием для начала голосования.

Заключение
При необходимости проведения голосования с использованием Интернет организаторы и разработчики должны реально оценивать, насколько возможны и сложны моменты, связанные с попытками фальсификации результатов. Повысить безопасность схемы голосования можно, предприняв шаги, которые препятствуют решению задач автоматизации процедуры голосования злоумышленниками, а также одновременного запуска нескольких сеансов выполнения параллельных процессов по голосованию на компьютере голосующего. Механизм проведения голосования должен ограничивать злоумышленникам возможности анализа результатов своей деструктивной деятельности. Кроме того, совместно с фиксацией данных голосования реализация должна предусматривать сбор и накопление максимальной информации о голосующем (для проведения анализа). В случаях, если интернет-ресурс является объектом хостинг-услуг, необходимо попытаться предварительно рассчитать показатели нагрузки на канал и оборудование хостинг-провайдера при проведении интернет-голосования, с тем чтобы возможные проблемы, связанные с этими вопросами, были решены заранее.
Для стандартных случаев проведения голосований разработчикам нет необходимости внедрения в процедуры криптографических схем защиты, так как никаких условий для их грамотного применения нет, и действительный эффект от их использования нулевой. Такие способы результативны и находят действительное применение в электронных вариантах голосования, проводимых государственными выборными органами. Однако это уже совсем другая история.
Система интернет-голосования должна строиться в расчете на необходимость ее перманентного развития. При разработке голосования с использованием Интернет следует предусматривать то, что по его результатам необходимо проводить всесторонний анализ данных. Аргументированные выводы должны служить основанием для дальнейшего улучшения и развития системы — не только с точки зрения безопасности от фальсификации, но и для решения элементарных вопросов оптимизации и удобства голосующих.

Использованные материалы
1. К.Касперски. "Накрутка банеров — приемы противодействия", http://daily.sec.ru/dailypblshow.cfm?rid=17&pid=9246 .
2. С.Келер. "Системы голосования на web-серверах", http://all4you.by.ru/Webmastering/Articles/Other/07.shtml .
3. "По WWW без следов", http://ccck.h10.ru/other/?what=8 .

Максим Костышин, Maxim_kostyshin@mail.ru


Компьютерная газета. Статья была опубликована в номере 07 за 2004 год в рубрике интернет :: разное

©1997-2024 Компьютерная газета