автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.19, диссертация на тему:Высокопараллельная система выявления сетевых уязвимостей на основе генетических алгоритмов

кандидата технических наук
Печенкин, Александр Игоревич
город
Санкт-Петербург
год
2013
специальность ВАК РФ
05.13.19
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Высокопараллельная система выявления сетевых уязвимостей на основе генетических алгоритмов»

Автореферат диссертации по теме "Высокопараллельная система выявления сетевых уязвимостей на основе генетических алгоритмов"

На правах рукописи

Печенкин Александр Игоревич

ВЫСОКОПАРАЛЛЕЛЬНАЯ СИСТЕМА ВЫЯВЛЕНИЯ СЕТЕВЫХ УЯЗВИМОСТЕЙ НА ОСНОВЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

Специальность 05.13.19

Методы и системы защиты информации, информационная безопасность

Автореферат диссертации на соискание ученой степени кандидата технических наук

21 НОЯ 2013

Санкт-Петербург - 2013

005539132

005539132

Работа выполнена в Федеральном государственном бюджетном образовательном учреждении высшего профессионального образования «Санкт-Петербургский государственный политехнический университет»

Научный руководитель:

Зегжда Дмитрий Петрович, доктор технических наук, профессор

Официальные оппоненты:

Саенко Игорь Борисович, доктор технических наук, профессор, ведущий научный сотрудник лаборатории проблем компьютерной безопасности СПИИРАН

Трифаленков Илья Анатольевич, кандидат технических наук, директор Центра информационной безопасности группы компаний «R-Style»

Ведущая организация: ФГУП «Главный научно-исследовательский

вычислительный центр Федеральной налоговой службы»

Защита состоится « » декабря 2013 г. в ^^ часов на заседании диссертационного совета Д 212.229.27 при ФГБОУ ВПО «Санкт-Петербургский государственный политехнический университет» (по адресу 195251, Санкт-Петербург, ул. Политехническая, д.29/1, ауд. 175 главного здания)

С диссертационной работой можно ознакомиться в Фундаментальной библиотеке ФГБОУ ВПО «Санкт-Петербургский государственный политехнический университет».

Автореферат разослан <(/jy> ноября 201 Зг.

Ученый секретарь диссертационного совета

f Платонов Владимир Владимирович

Общая характеристика работы

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

Методы обнаружения уязвимостей делятся на два класса: статические, проводящие анализ кода без его исполнения, и динамические, основанные на контроле различных параметров в ходе работы ПО. Одним из основных показателей эффективности динамических методов является покрытие кода программы за минимальное время. Необходимость улучшения данного показателя привела к формированию двух направлений совершенствования методов динамического анализа:

— увеличению полноты покрытия программного кода при фиксированном времени проведения анализа;

— сокращению времени анализа для достижения заданного уровня покрытия программного кода.

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

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

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

1. Исследование современных методов поиска сетевых уязвимостей.

2. Построение формальной модели сетевых уязвимостей, позволяющей сформулировать необходимое и достаточное условие наличия сетевой уязвимости.

3. Формализация постановки задачи динамического поиска сетевых уязвимостей в виде задачи максимизации покрытия графа передачи управления.

4. Разработка метода поиска сетевых уязвимостей на основе максимизации покрытия графа передачи управления с помощью генетического алгоритма.

5. Построение модели масштабирования динамического поиска сетевых

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

6. Разработка архитектуры и экспериментального макета высокопараллелыюй системы выявления сетевых уязвимостей на основе генетических алгоритмов и оценка эффективности его работы.

Научная новизна диссертационной работы состоит в следующем:

- разработана формальная модель сетевых уязвимостей, позволившая доказать необходимое и достаточное условие наличия сетевой уязвимости;

- формализована задача динамического поиска сетевых уязвимостей в виде задачи максимизации покрытия графа передачи управления;

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

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

Теоретическая и практическая значимость работы. Полученные теоретические и экспериментальные результаты могут быть использованы при анализе безопасности программного обеспечения как в процессе его сертификации и аттестации автоматизированных информационных систем, так и при разработке сетевых сервисов. Теоретические и экспериментальные результаты работы используются для подготовки специалистов в области защиты вычислительных систем по дисциплине "Разработка Интернет-приложений" в ФГБОУ ВПО "СПбГПУ", а также использованы в НИР "Исследование и разработка макета программного комплекса высокоскоростного процессинга (обработки) сетевого трафика в режиме реального времени" (шифр 2012-1.4-07-514-0011-007) по государственному контракту от 23 мая 2012 г. № 07.514.11.4122, при разработке метода высокоскоростного анализа сетевого трафика на многопроцессорном кластере в СПБГУТ им. М.А. Бонч-Бруевича, при проведении работ по анализу безопасности и последующей доработке телекоммуникационных систем в ЗАО "Голлард", что подтверждается соответствующими актами об использовании.

Методология и методы исследования. Для решения поставленных задач использовались системный анализ, теория алгоритмов, теория распределенных вычислений, методы математического и эволюционного моделирования, методы решения задач оптимизации.

Положения, выносимые на защиту:

1. Формальная модель сетевых уязвимостей, формулировка теоремы о необходимом и достаточном условии наличия сетевой уязвимости.

2. Формальная постановка задачи динамического поиска сетевых уязвимостей в виде задачи максимизации покрытия графа передачи управления.

3. Метод поиска сетевых уязвимостей на основе максимизации покрытия графа передачи управления с помощью генетического алгоритма.

4. Полученные в результате исследований оптимальные значения параметров генетического алгоритма для поиска сетевых уязвимостей.

5. Модель масштабирования динамического поиска сетевых уязвимостей, основанного на использовании генетических алгоритмов.

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

Апробация результатов работы. Основные теоретические и практические результаты диссертационной работы доложены и обсуждены: на Санкт-Петербургской межрегиональной конференции "Информационная безопасность регионов России" (Институт информатики и автоматизации РАН, 2011 г.), на всероссийской конференции "Проведение научных исследований в области обработки, хранения, передачи и защиты информации" ("МСП ИТТ", 2011 г.), на 20-ой и 21-ой научно-технической конференции "Методы и технические средства обеспечения безопасности информации" (СПбГПУ, 2011 г., 2012 г.), на 15-ой международной научно-практической конференции "РусКрипто" (Ассоциация "РусКрипто" и Академия Информационных Систем, 2013 г.), на 12-ой всероссийской конференции "Информационная безопасность. Региональные аспекты. ИнфоБЕРЕГ-2013" (Академия Информационных Систем, 2013 г.). Работа представлена к присуждению премии правительства Санкт-Петербурга победителям конкурса грантов для студентов вузов,

расположенных на территории Санкт-Петербурга, аспирантов вузов, отраслевых и академических институтов, расположенных на территории Санкт-Петербурга.

Публикации. По теме диссертации опубликовано 13 научных работ, в том числе 6 в изданиях из перечня ВАК.

Объем и структура. Диссертация состоит из введения, четырех глав, заключения и списка литературы из 73 наименований.

Основное содержание работы

Во введении сформулирована и обоснована задача работы, дано определение понятия сетевой уязвимости.

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

В работе рассмотрены существующие методы и средства динамического поиска сетевых уязвимостей и показано, что они используют два подхода к получению тестовых данных: генерация и мутация. Генерация — создание входных данных согласно заданным правилам, в том числе случайным образом. Такой подход используется, например, программой виПеу, которая генерирует данные по заданным оператором спецификациям протокола. Мутация — создание входных данных путем внесения модификаций в использовавшийся ранее набор данных. Такой подход реализуется в программе НспРигг, которая модифицирует данные предварительно собранного дампа сетевого трафика. В работе показано, что зависимость существующих методов от априорных знаний (спецификации протокола, дампа сетевого трафика и т.д.) неизбежно приводит к ухудшению одного из основных показателей эффективности динамического анализа ПО - покрытия программного кода. Ограниченность рамками априорных знаний не позволяет выйти за их пределы. В свою очередь, действия злоумышленника, направленные на поиск и эксплуатацию уязвимости, заключаются как раз в обходе этих ограничений.

В основе разработанной модели сетевых уязвимостей лежит представление сетевого протокола в виде кортежа

PROTOCOL = (PROGRAM, I). Программа-обработчик сетевого протокола (сетевой сервис) представляется ориентированным графом передачи управления PROGRAM = (INSTR, Е), который описывается множеством инструкций программного кода INSTR (вершин графа) и множеством переходов Е с INSTR2 (ребер графа). Элементами множества входных данных / являются сетевые пакеты. Выполнение обработки входных данных описывается отображением run: I -* R, где элементы множества R - все возможные результаты обработки входных данных. Оператор execution(instrk,fk{inputj~j) = (instrn, fn(fk(input ¡~)У) описывает выполнение инструкции instrk с данными fk(input¡) и переход к выполнению следующей инструкции instrn, a fk и /п описывают преобразования входных данных программы PROGRAM в ходе её выполнения. Обработка входных данных inputj Е I происходит по трассе TRACE = trace (inputj). TRACE является подграфом графа PROGRAM, а множество инструкций этой трассы определяется отображением traceINSTR: / -»P(INSTR), где Т - обозначение булеана.

При проявлении в сетевом сервисе уязвимостей, позволяющих злоумышленнику выполнить произвольный код, происходит либо попытка исполнения кода, не являющегося корректной инструкцией, либо попытка выхода за пределы адресного пространства сервиса. Некорректным результатом работы программы гк 6 R в этом случае является попытка применения оператора execution(instrn, data) к инструкции instrn & INSTR. В соответствии с формальным представлением программы и протокола в рамках предложенной модели уязвимость программы PROGRAM, реализующей сетевой протокол PROTOCOL = (PROGRAM,I), представляет собой существование таких входных данных input¡ В I, обработка которых приводит к некорректному результату rk = run(inputj). Такие входные данные составляют множество данных VULN, приводящих к проявлению уязвимостей.

Определение 1: инструкция instrk € INSTR достижима на входных данных inputj е I, если instrk £ traceINSTR (input¡).

Определение 2: инструкция instrk £ ¡NSTR приводит к ошибке на входных данных inputj £ /, если execution(instrk,/(inputу-)) Й INSTR.

На основе модели сетевых уязвимостей в работе сформулировано и

доказано необходимое и достаточное условие наличия сетевой уязвимости:

Теорема 1. Сетевая уязвимость проявляется при обработке входных данных inputj 61 тогда и только тогда, когда существует инструкция instrk е INSTR, которая одновременно достижима и ошибочна на этих входных данных:

. Г instrk £ trace,NSTR(inputj),

input, e VULN о 3 instrk 6 INSTR: { , instrk p jj>

J [executwn(instrk,f (inputj)) € INSTR.

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

Следствие 1. Для обнаружения всех сетевых уязвимостей в сетевом сервисе с использованием динамических методов необходимо обеспечить полное покрытие его графа передачи управления.

В работе предлагается описывать покрытие графа передачи управления сетевого сервиса функцией used(ITEST) = \USED\, где USED - множество покрытых инструкций после тестирования на множестве входных данных 1ТЕ5Т-Следствие 1 позволило формализовать задачу динамического поиска сетевых уязвимостей в виде задачи used(JTEST) max максимизации покрытия графа передачи управления сетевого сервиса.

В работе введены понятия скорости тестирования v = tests/t, где tests -количество тестов, проведенных за время тестирования t, и среднего числа впервые покрытых инструкций за один тест q = \USED\/tests. Для функции покрытия графа передачи управления получено соотношение used(lTEST) = t ■ v • q, позволившее сформулировать и доказать следующее утверждение:

Теорема 2. Показатель покрытия графа передачи управления при динамическом поиске сетевых уязвимостей прямо пропорционален скорости тестирования и среднему числу впервые покрытых инструкций за один тест.

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

в работе с помощью организации параллельных вычислений на многопроцессорном кластере.

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

Формальная постановка задачи динамического поиска сетевых уязвимостей в виде задачи максимизации покрытия графа передачи управления сетевого сервиса (used(lTEST) -» max) позволила предложить метод, направленный на максимизацию покрытия кода за счет применения основного механизма теории эволюционных вычислений: генетического алгоритма. Основными циклически выполняемыми этапами метода являются:

1. Генерация популяции l[ входных тестовых данных. На первой итерации цикла производится генерация случайной начальной популяции 1[, на последующих производится наследование путем применения операторов скрещивания и мутации к множеству эталонных данных: = inker it (I^-^).

2. Анализ обработки особей популяции: получение трассы trace(input), проверка условия наличия уязвимости, оценка покрытия кода used(l^).

3. Оценка целевой функции fitness (input) для особей популяции.

4. Отбор эталонных данных /£ = selection(/J).

Критерием отбора особей на каждой итерации является наименьшее значение целевой функции fitness (input), оценивающей расстояние от трассы обработки данных trace (input) до ближайшего непокрытого участка кода (инструкций множества UNUSED). Множества покрытых и непокрытых инструкций изменяются после каждой обработки входных данных: USEDtests = USEDtests_1 UNUSEDtests = UNUSEDlest<;_1 \ traceiNSTR(inputi).

Функция = i?i/ierit(/^_1) обеспечивает выполнение операторов скрещивания (используется одноточечное скрещивание) и мутации эталонных особей для рождения особей нового поколения. В работе экспериментально подтверждены теоретические предположения о том, что использование генетического алгоритма позволяет достичь улучшения показателя покрытия кода (рисунок 1).

3S000

; isooo I

I 10000

о с

? 5000

400 500 600 700 Количество поколений

Без генетического алгоритма {нижняя линия)

С генетическим алгоритмом, pmut = 0.1, puoss =0.1 {средняя линия} ■ С генетическим алгоритмом, prout = 0.01, pcfoss = 0.6 {верхняя линия)

Рисунок 1 - Покрытие кода при различных значениях параметров генетического алгоритма

В работе определены значения параметров генетического алгоритма (параметров скрещивания и мутации), позволяющих достичь наилучших показателей покрытия кода, для чего проведены экспериментальные исследования на девяти протоколах операционной системы семейства Windows (Л/ = 9). Для каждого из них экспериментально оценено количество покрытых инструкций при различных значениях вероятности мутации pmut £ (ОД] и вероятности скрещивания pcross 6 (ОД].

Экспериментальные данные позволили получить значения функций v¿{pmut, peross~) - средней скорости прироста покрытых инструкций графа передачи управления обработчика /-го исследуемого протокола в зависимости от параметров генетического алгоритма. Для нормирования значений введены

функции относительных средних скоростей rviipmut,pcross) —

где

максимальная

скорость

для

каждого

Vi(pmut,pcross)

протокола

^ГаХ = тахртиГ6(0,11,рсгох5б(0,1](1;[(Рти^ рСГОЗЗ)).

Для получения совокупной оценки по всем исследуемым протоколам введена функция зависимости выборочного среднего значения показателей относительной скорости от параметров генетического алгоритма

-/ ^ л Т.'СУ Г1;г(р??1иС,рсгохх) тт -

гу{ртги,рсго55) = ---. На рисунке 2 представлен график

функции гу(ртиЬ,рсго55), значения которой вычислены на основе полученных экспериментальных данных.

Рисунок 2 — Аппроксимированная функция гу(рти1, рсгозз)

В результате проведенных исследований получены оптимальные значения параметров генетического алгоритма: ртиЬ = 0.01, рсгозз = 0.6, при которых выборочное среднее п7 = 0.99 и коэффициент вариации V = о/гг> = 0.46%. Значения выборочного среднего и коэффициент вариации показывают, что при данных значениях параметров генетического алгоритма обеспечивается высокое покрытие кода для всех исследуемых протоколов.

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

Теорема 2 показывает, что одним из способов улучшения показателя покрытия кода при динамическом поиске сетевых уязвимостей является повышение скорости обработки тестовых данных, которого можно достичь с помощью использования вычислительных мощностей многопроцессорных кластеров. Для решения данной задачи разработана модель, представляющая собой кортеж {К, С, 1/5, УА, /), где К — множество узлов многопроцессорного кластера, С - виртуальная машина генерации данных, 1/5 - множество виртуальных машин отправки данных, VА — множество виртуальных машин обработки данных. Общее число виртуальных машин атоипЬу равняется атоип^в + атоиМуд + 1, где атоиШу$ = |1/5|, а атоиМУА = |1Л4|.

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

Vs —* шах, VA —» max, \Vs~VaI -»min, amounty = amountK,

где - интегральная скорость отправки данных со всех виртуальных машин множества VS, VA - интегральная скорость обработки данных всеми виртуальными машинами множества V A, amountк =

В работе показано, что для выполнения критериев необходимо обеспечить масштабирование задачи (для выполнения условий amounty = amountк и | Vs — VA | —* min) и балансировку нагрузки (для выполнения условий Vs —> шах и VA —» шах).

Разработанный алгоритм масштабирования задачи, описанный в работе, основывается на динамическом изменении соотношения количества виртуальных машин отправки данных и виртуальных машин обработки в соответствии с правилами, приведенными в таблице 1.

Таблица 1 - Правила алгоритма масштабирования

Условие Действие

Vs > VA, amounty < amountK запуск виртуальной машины обработки

Vs < VA, amounty < amountK запуск виртуальной машины отправки

Ks < vA, amounty = amountK остановка виртуальной машины обработки, запуск виртуальной машины отправки

Г Ух > Va, Vs VA (Ks--5-) > (Уа +---) amountys amountVA amount^ = amountK остановка виртуальной машины отправки, запуск виртуальной машины обработки

Алгоритм балансировки нагрузки balance: I —> (KS, VA) ставит в соответствие данным inputi Е /, поступившим от машины генерации, виртуальную машину vsm € l/S, которая будет выполнять их отправку, и виртуальную машину van G VA, которая будет выполнять их обработку. Критерием выбора виртуальных машин является наименьшая загруженность вычислительного процессора: b al an се (input ¿) = (vsm,van), где тип таковы, что V vsj 6 VS и V vak G VA выполняются неравенства loadCURR(ysm) < loadCURR(vSj) и loadCURR(van) < loadCURR(vak). Здесь loadCURR(v) — загрузка процессора виртуальной машины v.

Представленная в работе модель масштабирования динамического поиска сетевых уязвимостей, основанного на использовании генетических алгоритмов, в совокупности с алгоритмами масштабирования задачи и балансировки нагрузки обеспечивает:

- минимизацию числа незадействованных вычислительных узлов многопроцессорного кластера путем запуска в динамической пропорции виртуальных машин отправки и обработки данных;

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

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

Предложенная в работе архитектура высокопараллельной системы выявления сетевых уязвимостей (рисунок 3) основывается на разработанной модели масштабирования. Возможность масштабирования и балансировки нагрузки обеспечивается за счет наличия непрерывного многосвязного цикла в процессе динамического поиска.

Модуль оценки данных

Модуль бзлансироеки

Виртуальная машина обработки данных

виртуальная машина генерации данных

,_¿У X_

Виртуальная машина отправки данных

Модуль масштабирования

Рисунок 3 - Масштабируемая архитектура высокопараллельной системы выявления сетевых уязвимостей на основе генетических алгоритмов

Исследование полноты покрытия кода, обеспечиваемого использованием генетического алгоритма, проводилось на реализации протокола FTP операционной системы Windows Server 2012. Разработанный макет сравнивался с программными средствами Sulley и HotFuzz, также реализующими динамический поиск сетевых уязвимостей (рисунок 4). Из-за отсутствия возможности распределенной работы вышеуказанные средства тестировались на одном персональном компьютере (процессор Core i7 - 4 выч. ядра, 8 Гб RAM). Исследование экспериментального макета проводились на персональном компьютере и многопроцессорном кластере (суммарно 160 выч. ядер, 600 Гб RAM).

< *> ■ <

f'* ——

с» у 1™ *

„J 0¡r* ** ^жгт __£ сw

: ís „ ом,

»»»í1

О 24 48 72 96 1 20 144 168 192 216 240 264 288 312 336

Время, ч.

• »HotFuzz, ПК --"»«»«»Экспериментальный макет, ПК

Suíley, ПК Экспериментальный макет, многопроцессорный кластер

Рисунок 4 — Покрытие кода сетевого сервиса

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

Низкая начальная скорость покрытия кода полностью компенсируется эффективным использованием вычислительных мощностей

многопроцессорного кластера, которое стало возможным благодаря масштабированию динамического поиска сетевых уязвимостей. Разработанный алгоритм обеспечивает линейность масштабирования при увеличении числа вычислительных узлов кластера (рисунок 56). На рисунке 5а представлен график загрузки вычислительных узлов кластера при работе экспериментального макета. Каждая линия отображает загрузку одного процессора. Из графика видно, что предложенный алгоритм балансировки нагрузки обеспечил загрузку всех вычислительных узлов кластера, близкую к 50%, что является максимально возможным значением для процессоров с технологией Hyper Threading.

а) балансировка нагрузки б) масштабирование

Рисунок 5 - Результаты балансировки нагрузки и масштабирования системы выскокопараллельного поиска сетевых уязвимостей

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

Таблица 2 - Результаты обнаружения уязвимостей

Средство Предварит, исследования Кол-во обнаруж. уязв. (обиар. только данным средством) Соотношение множеств обнаруженных уязвимостей

Sulley Описание спецификации протокола 7(1) Эксп.макет HotFuzz ¿ляшёт*?^ ................-в / ■ щшш Sullej ^ч* *s

HotFuzz Сбор дампа трафика 5 клиентов за 3 часа 3(0)

Эксп. макет нет 8(2)

В заключении приведены результаты и выводы, полученные автором в ходе выполнения работы.

'Заключение

В работе получены следующие основные результаты:

1. Выявлены основные недостатки методов анализа безопасности сетевого программного обеспечения, и определены направления совершенствования динамического поиска сетевых уязвимостей.

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

3. Формализована задача динамического поиска сетевых уязвимостей в виде задачи максимизации покрытия графа передачи управления.

4. Разработан метод динамического поиска сетевых уязвимостей на основе максимизации покрытия графа передачи управления с использованием генетического алгоритма, и получены оценки оптимальных значений параметров генетического алгоритма для поиска сетевых уязвимостей.

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

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

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

Список работ, опубликованных автором по теме диссертации:

1. Печенкин, А. И. Моделирование высокоскоростной параллельной обработки сетевого трафика на многопроцессорном кластере [Текст] / А. И. Печенкин, Д. С. Лаврова // Журнал "Проблемы информационной безопасности. Компьютерные системы".— СПб.: Изд-во Политехи, ун-та,

2012.—№4. —С. 33-39.

2. Печенкин, А. И. Параллельный анализ безопасности сетевого трафика на многопроцессорном кластере [Текст] / А. И. Печенкин, Д. С. Лаврова // Журнал "Проблемы информационной безопасности. Компьютерные системы". — СПб.: Изд-во Политехи, ун-та, 2013. — №1.— С. 55-62.

3. Печенкин, А. И. Архитектура масштабируемой системы фаззинга сетевых протоколов на многопроцессорном кластере [Текст] / А. И. Печенкин, А. В. Никольский // Журнал "Проблемы информационной безопасности. Компьютерные системы".—СПб.: Изд-во Политехи, ун-та,

2013.—№1. — С. 63-72.

4. Печенкин, А. И. Применение генетических алгоритмов для поиска уязвимостей в сетевых протоколах методом фаззинга/ А. И. Печенкин // Журнал "Системы высокой доступности". —М.: Изд-во Радиотехника, 2013.—№3. —С. 63-70.

5. Печенкин, А. И. Моделирование поиска уязвимостей методом фаззинга с использованием автоматного представления сетевых протоколов [Текст] / А. И. Печенкин, Д. С. Лаврова // Журнал "Проблемы информационной безопасности. Компьютерные системы".— СПб.: Изд-во Политехи, ун-та, 2013.—№2. — С. 59-67.

6. Печенкин, А. И. Безопасность АСУ ТП энергосистем, использующих промышленные протоколы передачи данных [Текст] / П. Д. Зегиеда, Т. В. Степанова, А. И. Печенкин // Журнал "Известия

Российской Академии Наук. Энергетика". —М.: Изд-во Наука, 2013.— №5. — С. 59-64.

7. Печенкин, А. И. Анализ достоверности результатов поиска уязвимостей в программных продуктах [Текст] / А. И. Печенкин // Сб. материалов 19-й научно-технической конференции "Методы и технические средства обеспечения безопасности информации".— СПб.: Изд-во Политехи, ун-та, 2010, —С. 123-124.

8. Печенкин, А. И. Мониторинг сетевой активности вредоносного программного обеспечения [Текст] / Д. А. Москвин, А. И. Печенкин // Сб. материалов XII Санкт-Петербургской международной конференции "Региональная информатика". — СПб.: Изд-во СПИИРАН, 2010. — С. 125-126.

9. Печенкин, А. И. Универсальная платформа распределенных вычислений на базе АРМ пользователей сети Интернет, облако своими руками [Текст] / А. И. Печенкин // Сб. материалов 20-й научно-технической конференции "Методы и технические средства обеспечения безопасности информации". — СПб.: Изд-во Политехи, ун-та, 2011. — С.148-149.

10. Печенкин, А. И. Обнаружение несанкционированной сетевой активности вредоносного программного обеспечения [Текст] / А. И. Печенкин // Материалы VII межрегиональной конференции "Информационная безопасность регионов России". — СПб.: СПОИСУ, 2011. — С.87-88.

11. Печенкин, А. И. Построение облачных вычислений на базе АРМ пользователей сети Интернет [Текст] / А. И. Печенкин // Материалы VII межрегиональной конференции "Информационная безопасность регионов России". — СПб.: СПОИСУ, 2011. — 87 с.

12. Печенкин, А. И. Применение генетических алгоритмов для повышения эффективности поиска уязвимостей в системном и прикладном ПО [Текст] / Д. А. Москвин, А. И. Печенкин, Д. В. Мельницкий // Сб. материалов 21-й конференции "Методы и технические средства обеспечения безопасности информации". — СПб.: Изд-во Политехи, ун-та, 2012. — С. 165-167.

13. Печенкин, А. И. Применение генетических алгоритмов для повышения эффективности поиска уязвимостей в системном и прикладном ПО [Текст] / А. И. Печенкин, В. А. Мацуев // Сб. материалов 21-й научно-технической конференции "Методы и технические средства обеспечения безопасности информации". — СПб.: Изд-во Политехи, ун-та, 2012. — С. 71-73.

Подписано в печать 12.11.2013. Формат 60x84/16. Печать цифровая. Усл. печ. л. 1,0. Тираж 100. Заказ 11227Ь.

Отпечатано с готового оригинал-макета, предоставленного автором, в типографии Издательства Политехнического университета. 195251, Санкт-Петербург, Политехническая ул., 29. Тел.: (812)550-40-14 Тел./факс: (812)297-57-76

Текст работы Печенкин, Александр Игоревич, диссертация по теме Методы и системы защиты информации, информационная безопасность

Государственное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет"

На правах рукописи

04201453768

Печенкин Александр Игоревич

ВЫСОКОПАРАЛЛЕЛЬНАЯ СИСТЕМА ВЫЯВЛЕНИЯ СЕТЕВЫХ УЯЗВИМОСТЕЙ НА ОСНОВЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

Специальность:

05.13.19 - Методы и системы защиты информации, информационная безопасность

Диссертация на соискание ученой степени кандидата технических наук

Научный руководитель: доктор технических наук, профессор Зегжда Дмитрий Петрович

Санкт-Петербург — 2013

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ......................................................................................................................4

1 ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ ПОИСКА СЕТЕВЫХ УЯЗВИМОСТЕЙ..........................................................................................................10

1.1 Исследование современных методов и средств поиска сетевых уязвимостей...................................................................................................................10

1.1.1 Статические методы поиска сетевых уязвимостей.....................................10

1.1.2 Динамические методы поиска сетевых уязвимостей.................................15

1.1.3 Средства поиска сетевых уязвимостей.........................................................31

1.2 Уязвимости в реализациях сетевых протоколов.............................................36

1.3 Формальная модель сетевых уязвимостей.......................................................41

1.4 Условие наличия уязвимости в реализации сетевого протокола................44

1.5 Формальная постановки задачи динамического поиска сетевых уязвимостей...................................................................................................................46

1.6 Выводы.....................................................................................................................49

2 МЕТОД ПОИСКА СЕТЕВЫХ УЯЗВИМОСТЕЙ НА ОСНОВЕ МАКСИМИЗАЦИИ ПОКРЫТИЯ ГРАФА ПЕРЕДАЧИ УПРАВЛЕНИЯ С ПОМОЩЬЮ ГЕНЕТИЧЕСКОГО АЛГОРИТМА................................................54

2.1 Генетический алгоритм........................................................................................55

2.1.1 Алгоритм работы генетического алгоритма................................................58

2.1.2 Операторы генетического алгоритма...........................................................59

2.1.3 Генетические алгоритмы с хромосомами переменной длины...................63

2.2 Применение генетического алгоритма для повышения эффективности поиска уязвимостей.....................................................................................................70

2.2.1 Общая схема поиска уязвимостей сетевых сервисов с применением генетического алгоритма...........................................................................................71

2.2.2 Целевые функции генетического алгоритма для фаззинга сетевых протоколов..................................................................................................................75

2.3 Оценка оптимальных значений параметров генетического алгоритма....77

2.4 Выводы.....................................................................................................................87

3 МАСШТАБИРОВАНИЕ ДИНАМИЧЕСКОГО ПОИСКА СЕТЕВЫХ УЯЗВИМОСТЕЙ НА МНОГОПРОЦЕССОРНОМ КЛАСТЕРЕ.......................90

3.1 Использование многопроцессорных кластеров для параллельной обработки сетевого трафика......................................................................................90

3.1.1 Параллельный анализ сетевого трафика......................................................91

3.1.2 Анализ безопасности сетевого трафика на многопроцессорном кластере.....................................................................................................................100

3.2 Модель масштабирования динамического поиска сетевых уязвимостейПО

3.3 Алгоритм масштабирования задачи динамического поиска сетевых уязвимостей.................................................................................................................112

3.4 Алгоритм балансировки нагрузки...................................................................114

3.5 Выводы...................................................................................................................116

4 ВЫСКОКОИАРАЛЛЕЛЬНАЯ СИСТЕМА ВЫЯВЛЕНИЯ СЕТЕВЫХ УЯЗВИМОСТЕЙ........................................................................................................118

4.1 Состав высокопараллельной системы выявления сетевых уязвимостей! 18

4.2 Масштабируемая архитектура системы.........................................................120

4.3 Алгоритмы функционирования системы поиска уязвимостей.................122

4.3.1 Общий алгоритм динамического поиска сетевых уязвимостей..............122

4.3.2 Получение трассы обработки......................................................................124

4.4 Экспериментальные исследования эффективности функционирования системы.........................................................................................................................125

4.4.1 Сравнительные исследования эффективности покрытия кода................125

4.4.2 Исследования эффективности масштабирования и балансировки нагрузки.....................................................................................................................126

4.4.3 Оценка эффективности выявления сетевых уязвимостей........................130

4.5 Выводы...................................................................................................................131

ЗАКЛЮЧЕНИЕ..........................................................................................................133

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ..............................................136

ВВЕДЕНИЕ

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

Методы обнаружения уязвимостей делятся на два класса: статические, проводящие анализ кода без его исполнения, и динамические, основанные на контроле различных параметров в ходе работы ПО. Одним из основных показателей эффективности динамических методов является покрытие кода программы за минимальное время. Необходимость улучшения данного показателя привела к формированию двух направлений совершенствования методов динамического анализа:

- увеличению полноты покрытия программного кода при фиксированном времени проведения анализа;

- сокращению времени анализа для достижения заданного уровня покрытия программного кода.

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

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

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

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

1. Исследование современных методов поиска сетевых уязвимостей.

2. Построение формальной модели сетевых уязвимостей, позволяющей сформулировать необходимое и достаточное условие наличия сетевой уязвимости.

3. Формализация постановки задачи динамического поиска сетевых уязвимостей в виде задачи максимизации покрытия графа передачи управления.

4. Разработка метода поиска сетевых уязвимостей на основе генетической максимизации покрытия графа передачи управления.

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

6. Разработка архитектуры и экспериментального макета высокопараллельной системы выявления сетевых уязвимостей на основе генетических алгоритмов и оценка эффективности его работы.

Научная новизна диссертационной работы состоит в следующем:

- разработана формальная модель сетевых уязвимостей, позволившая доказать необходимое и достаточное условие наличия сетевой уязвимости;

- формализована задача динамического поиска сетевых уязвимостей в виде задачи максимизации покрытия графа передачи управления;

- разработан метод поиска сетевых уязвимостей на основе генетической максимизации покрытия программного кода и определены оптимальные значения параметров генетического алгоритма;

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

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

разработка макета программного комплекса высокоскоростного процессинга (обработки) сетевого трафика в режиме реального времени" (шифр 2012-1.4-07514-0011-007) по государственному контракту от 23 мая 2012 г. № 07.514.11.4122, при разработке метода высокоскоростного анализа сетевого трафика на многопроцессорном кластере в СПБГУТ им. М.А. Бонч-Бруевича, при проведении работ по анализу безопасности и последующей доработке телекоммуникационных систем в ЗАО "Голлард", что подтверждается соответствующими актами об использовании.

Методология и методы исследования. Для решения поставленных задач использовались системный анализ, теория алгоритмов, теория распределенных вычислений, методы математического и эволюционного моделирования, решения задач оптимизации.

Положения, выносимые на защиту:

1. Формальная модель сетевых уязвимостей, необходимое и достаточное условие наличия сетевой уязвимости.

2. Формальная постановка задачи динамического поиска сетевых уязвимостей как задачи максимизации покрытия графа передачи управления.

3. Метод поиска сетевых уязвимостей на основе генетической максимизации покрытия графа передачи управления.

4. Полученные в результате исследований оптимальные значения параметров генетического алгоритма для поиска сетевых уязвимостей.

5. Модель масштабирования динамического поиска сетевых уязвимостей, основанного на использовании генетического алгоритма.

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

Апробация результатов работы. Основные теоретические и практические результаты диссертационной работы доложены и обсуждены: на Санкт-Петербургской межрегиональной конференции "Информационная безопасность

регионов России" (Институт информатики и автоматизации РАН, 2011 г.), на всероссийской конференции "Проведение научных исследований в области обработки, хранения, передачи и защиты информации" ("МСП ИТТ", 2011 г.), на 20-ой и 21-ой научно-технической конференции "Методы и технические средства обеспечения безопасности информации" (СПбГПУ, 2011 г., 2012 г.), на 15-ой международной научно-практической конференции "РусКрипто" (Ассоциация "РусКрипто" и Академия Информационных Систем, 2013 г.), на 12-ой всероссийской конференции "Информационная безопасность. Региональные аспекты. ИнфоБЕРЕГ-2013" (Академия Информационных Систем, 2013 г.). Работа представлена к присуждению премии правительства Санкт-Петербурга победителям конкурса грантов для студентов вузов, расположенных на территории Санкт-Петербурга, аспирантов вузов, отраслевых и академических институтов, расположенных на территории Санкт-Петербурга.

Публикации. По теме диссертации опубликовано 13 научных работ.

Объем и структура. Диссертация состоит из введения, четырех глав, заключения и списка литературы из 73 наименований.

Во введении сформулирована и обоснована задача работы, дано определение понятия сетевой уязвимости.

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

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

В третьей главе построена модель масштабирования динамического поиска сетевых уязвимостей, основанного на использовании генетического алгоритма,

предложены алгоритмы масштабирования задачи и балансировки нагрузки при поиске уязвимостей на многопроцессорном кластере.

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

В заключении приведены результаты и выводы, полученные автором в ходе выполнения работы.

1 ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ ПОИСКА СЕТЕВЫХ

УЯЗВИМОСТЕЙ

1.1 Исследование современных методов и средств поиска сетевых уязвимостей

Программы для поиска уязвимостей могут быть представлены двоичными файлами, либо исходными текстами. Двоичный анализ обладает некоторым сходством с анализом исходных текстов: оба вида анализа направлены на выявление одних и тех же классов дефектов в программном обеспечении. Тем не менее, методы поиска значительно различаются. Если исследователь знаком с анализом исходных текстов, то вероятно, не придется особенно сильно менять свой стиль поиска, однако методология основательно изменится. Прежде всего, потребуется знание ассемблера той платформы, на которой будет работать двоичный файл. Недостаточно четкое понимание важных команд обычно приводит к неверной интерпретации кода и путанице, поэтому необходимо отметить, что в дальнейшем приводимый в качестве примеров дизассемблерный код будет относиться к архитектуре Intel х86. При изучении вопроса о наличии уязвимостей в исполняемом коде выделяют два направления [ 1 ]:

- статический анализ кода;

- динамический анализ выполнения кода;

Рассмотрим каждый из них в отдельности.

1.1.1 Статические методы поиска сетевых уязвимостей

Статический анализ кода - это анализ программного обеспечения, который производится над кодом программ (исходным или бинарным) и реализуется без их реального исполнения [2]. Основами поиска уязвимостей бинарного кода являются дизассемблирование и отладка программ.

В начале важно отметить тот факт, что с точки зрения статического анализа кода нет разницы между типами исследуемого объекта. Все методы, касающиеся анализа просто программного обеспечения относятся и к анализу сетевого ПО, и

наоборот. Поэтому рассматриваемые ниже методы поиска уязвимостей в ПО автоматически применимы и для сетевого программного обеспечения (чего, однако, нельзя сказать при применении динамических методов, о которым будет говориться ни