BugTraq.Ru
Русский BugTraq
http://www.bugtraq.ru/library/misc/gas.html

ГАС "Выборы": проблемы безопасности
Дмитрий Леонов, //bugtraq.ru/
Опубликовано: dl, 20.11.02 22:20
Готовилась для спецвыпуска журнала Итоги от 23.12.99, куда и вошла с некоторыми изменениями под названием "Люки" и "закладки"

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

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

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

В принципе, использование стойкой криптографии позволяет построить достаточно надежную закрытую сеть передачи данных даже поверх сетей общего доступа. На самом же деле, системы, носящие стратегический характер, как в случае ГАС "Выборы", либо корпоративные системы наподобие банковских, просто изолированы от сетей общего доступа (как говорится, лучшая сетевая защита - 10 сантиметров чистого воздуха). И действительно, случаи успешных внешних атак на подобные закрытые системы крайне редки, и в подавляющем большинстве случаев становятся возможными именно благодаря утечке внутренней информации - например, в результате увольнения инсайдера (впору вспомнить совет из сисадминского фольклора: "Увольняя системного администратора, рассчитайтесь с ним по долгам, проводите до дверей и лично подайте пальто").

Первое, что приходит в голову при разговоре о внутренних атаках - так называемые "люки" или "закладки", встроенные в систему ее разработчиками. Под люком понимается недокументированная особенность программы, позволяющая знающему ее человеку выполнять некоторые действия в обход установленных правил работы с системой. Часть этих люков делается для более удобной отладки системы (например, чтобы не проходить при этом каждый раз через процедуру ввода пароля) и удаляются из конечного продукта, часть так и остается там по забывчивости программиста ("Червь Морриса", положивший одиннадцать лет назад половину тогдашней Internet, как раз использовал в своей работе один из таких люков в популярной почтовой программе), часть же оставляется сознательно (очень может быть, что до сих пор на военной кафедре одного из московских ВУЗов работает обучающая программа, написанная одним моим приятелем, которая при нажатии некой заветной комбинации клавиш выставляет отличную оценку при самых бредовых ответах). Некоторую гарантию отсутствия подобных люков может дать разделение процесса выпуска программы - когда она распространяется в исходных текстах, или хотя бы когда окончательной ее сборкой и контролем исходных текстов занимается отдельное подразделение.

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

Наконец, самым слабым звеном любой автоматизированной системы является человек - оператор, что вводит в нее исходные данные, администратор, который следит за сервером. Зачем тратить время на подбор паролей, когда можно просто подкупить оператора, зачем изобретать хитроумные способы атаки, когда можно просто попросить администратора сымитировать аппаратный сбой? Кроме того, людям вообще свойственно ошибаться. Банальная опечатка в программе - и один из "Аполлонов" вместо того, чтобы спокойно облетать Луну, начинает вращаться вокруг своей оси. Следовательно, обязательный компонент защищенной системы - контроль за действиями пользователя и максимально возможная защита от последствий возможных ошибок (т.наз. "защита от дурака").

Отталкиваясь от вышесказанного, посмотрим, как обстоят дела с защищенностью у ГАС "Выборы". Будучи введенной в строй к президентским выборам 1996 года (элементы системы использовались уже и на парламентских выборах в декабре 1995), сейчас она включает в себя программные комплексы "Планирование", "Кандидат/Депутат", "Итоги", "Территория", "Избиратель", "Картография", "Контроль финансов", "Кадры", "Право". Нижний уровень системы, на котором вводится основной объем информации, - территориальные избирательные комиссии (ТИК), верхний - Федеральный центр информатизации при Центральной избирательной комиссии РФ (ФЦИ).

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

Защита от внешнего доступа обеспечивается как с помощью аппаратных ключей, так и с помощью паролей, которые регулярно меняются. Действия пользователей протоколируются. Шифрование информации и электронная подпись не используются, и это основная претензия к защищенности системы. Конечно, возможность внешнего проникновения тут чисто теоретическая (пароль доступа понадобится в любом случае, а случаи ошибочного ввода фиксируются, так что попытка перебора паролей обречена на провал, да и ограничение по времени довольно жесткое), но подобное решение можно считать приемлемым лишь до тех пор, пока результаты работы ГАС не имеют юридической силы.

Работа оператора в любой момент может быть проконтролирована наблюдателями, ввод данных из протокола участковой избирательной комиссии производится при обязательном присутствии председателя участковой избирательной комиссии (а в его отсутствие - заместителя председателя, секретаря или уполномоченного члена участковой избирательной комиссии с правом решающего голоса) и члена контрольной группы из числа членов территориальной избирательной комиссии с правом решающего голоса. В процессе ввода автоматически проверяются контрольные соотношения между числовыми данными протокола, при несовпадении выдается сообщение об ошибке. В случае успешного ввода данные распечатываются, сверяются с протоколом УИК, и только после этого отправляются по электронной почте. Тут мне придраться не к чему, защита от ошибки/злого умысла оператора представляется исчерпывающей.

На серверах используется преимущественно Novell Netware, рабочее место оператора реализовано в среде MS-DOS. Конечно, хотелось бы видеть на клиентской стороне более современное решение на основе ОС, обеспечивающей ограничения доступа - любой Unix или Windows NT, но тут все уже упирается в существующую техническую базу, оставшуюся в основном на уровне четырехлетней давности. В утешение можно сказать, что доступ к компьютерам все же физически ограничен, а непосредственно перед выборами все программное обеспечение устанавливается с нуля. При запуске программных комплексов подсчитываются контрольные суммы исполняемых файлов, кроме того, обеспечивается антивирусная защита антивирусами компании "Диалог-Наука".

Наконец, мы подходим к самому интересному моменту - возможность существования люков в ГАС "Выборы" и возможность их использования на одном из уровней системы. С достаточно большой уверенностью можно исключить наличие люков, оставшихся по вине отдельных программистов - поскольку окончательной сборкой системы занимается независимое подразделение, контролирующее соответствие программных кодов техническому заданию. С другой стороны, кто может поручиться, что само техническое задание не включало требования ввести в систему подобные люки? Увы, тут мы вступаем на скользкий путь предположений. Лично мне такой поворот событий представляется крайне маловероятным - по крайней мере до тех пор, пока результаты работы ГАС носят чисто информационный характер и контролируются ручным пересчетом. Подобный заговор потребовал бы вовлечения слишком большого количества людей и явно неоправданных затрат - особенно с учетом того, что подобная акция с фальсификацией результатов может быть проделана ровно один раз, после чего, во-первых, доверие к ГАС будет подорвано раз и навсегда, во-вторых, это рикошетом очень больно ударит по действующей власти.

Подводя итоги вышесказанному, сделать однозначный вывод довольно сложно. Программные решения, используемые в системе, конечно же, далеки от идеала. Частично это обусловлено банальным отсутствием денег, которых требует внедрение некоторых современных информационных технологий, частично тем, что система несет на себе груз технологических решений пятилетней давности и некоторые ее компоненты откровенно устарели. Тем не менее, система постоянно развивается (сейчас в строю уже версии 5.1 большинства подсистем), использование той же цифровой подписи и стойкой криптографии уже в ближайших планах разработчиков.

Уровень безопасности, обеспечиваемый системой, можно оценить как удовлетворительный.

P.S. Интересующимся текущим состоянием дел и впечатлениями человека, непосредственно работавшего с ГАС, будет полезно ознакомиться с этим обсуждением.

обсудить  |  все отзывы (17)

[26219; 8; 7.87]




  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach