Система интернет-голосования, испытания которой начались в округе Колумбия, США, в конце прошлого месяца, была взломана через 36 часов после начала работы. Исследователи из Мичиганского университета сумели получить "почти полный контроль" над системой. Система Digital Vote by Mail, на разработку которой было потрачено $300 тысяч из государственного бюджета, предназначена в первую очередь для использования гражданами США, находящимися за пределами страны. Избирателям предлагается скачать PDF-файл бюллетеня и либо распечатать его, заполнить от руки и отослать обычной почтой, либо внести в него изменения в электронном виде и выгрузить обратно на сервер. Именно вторая возможность и заинтересовала профессора Джей Алекса Хэлдермана, который с помощью двух своих студентов стал искать уязвимости в этой системе. На первый взгляд она представляется вполне безопасной: каждый избиратель заранее получает 16-значный PIN-код для входа в систему, заполненный PDF-бюллетень шифруется на стороне сервера и хранится в таком виде на жестком диске, а после выборов эти файлы переносятся на компьютер, не подключенный к сети, где расшифровываются и распечатываются для традиционной процедуры подсчета голосов. Однако Digital Vote by Mail, написана на стандартном языке программирования (а именно, в среде Ruby on Rails), использует стандартные средства для работы с базой данных (MySQL) и работает на стандартном веб-сервере (Apache). Более того, коды этой системы открыты. Соответственно, поиск уязвимостей в этой системе. Группа Хэлдермана обнаружила уязвимость в той части софта, который занимается обработкой заполненных PDF-бюллетеней. Оказалось, что при сохранении шифрованных файлов на сервер система генерирует для них собственные имена, однако сохраняет расширения, полученные от пользователей. В обычной ситуации таким расширением является ".pdf", но на практике система принимала в качестве расширения файла едва ли не любую строку. А поскольку при обработке PDF-бюллетеня использовалась утилита командной строки, которой имя файла передавалось в качестве параметра, это позволило исследователям осуществить шелл-инъекцию: передать в "расширении" собственную команду для сервера. Хакеры воспользовались уязвимостью в полной мере. Cначала они собрали массу хранившейся на сервере критической информации, включая логин и пароль к базе данных, а также публичный ключ, при помощи которого шифруются бюллетени. Затем они подменили все принятые "голоса" избирателей своими и настроили систему так, чтобы аналогичным способом подменять все новые бюллетени — благо ключ для шифрования у них уже был. Кроме того, они установили бэкдор, с помощью которого просматривали все новые "голоса", перехватывая и записывая их в незашифрованном виде вместе с именами избирателей. Наконец, поскольку перед ними не стояла задача действовать скрытно, исследователи модифицировали веб-страничку, которая демонстрируется пользователям после успешной выгрузки заполненного бюллетеня на сервер. Визуально эта страничка ничем не отличалась от оригинальной, разве что через 15 секунд после еt открытия проигрывался гимн футбольной команды Мичиганского университета. Только благодаря этой песне и было обнаружено вторжение в систему, да и то лишь через двое суток. Систему интернет-голосования тут же закрыли, и она возобновила работу лишь через несколько дней, но без возможности голосовать в электронном виде. Теперь специалисты Digital Vote by Mail будут целый год усиливать безопасность системы, хотя изначально планировалось использовать ее в "полевых условиях" уже через месяц после испытаний.
|