Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Туманов, Юрий Михайлович

Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств
<
Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Туманов, Юрий Михайлович. Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств : диссертация ... кандидата технических наук : 05.13.19 / Туманов Юрий Михайлович; [Место защиты: Нац. исслед. ядерный ун-т].- Москва, 2012.- 135 с.: ил. РГБ ОД, 61 12-5/3576

Содержание к диссертации

Введение

1 Анализ сред облачных вычислений и методик выявления вредоносных свойств программного обеспечения 16

1.1 Анализ моделей реализаций сред облачных вычислений 17

1.1.1 Способы реализации сред облачных вычислений 18

1.1.2 Требования к программному обеспечению, разрабатываемому для выполнения в средах облачных вычислений. 22

1.1.3 Распространённые виды атак на по, осуществимые за счёт ошибок при его реализации 24

1.2 Методики выявления вредоносного по 29

1.2.1 Сигнатурные методики 29

1.2.2 Проактивные методики 30

1.3 Методики верификации программного обеспечения 35

1.4 Существующие меры обеспечения безопасности сред ов 39

1.5 Выводы 43

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

2.1 Модель нарушителя 45

2.2 Математическая модель представления по 48

2.3 Математическая модель деструктивного свойства ПО 53

2.4 Постановка задачи 61

2.5 Формализованное решение поставленной задачи 66

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

2.7 Выводы 77

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

3.1 Архитектура программного комплекса 79

3.2 Описание функций, выполняемых модулями программного комплекса 83

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

3.4 Выводы 97

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

4.1 Преимущества предложенного решения, относительно иных способов выявления деструктивных свойств по 108

4.2 Основные характеристики программной реализации методики 113

4.3 Результаты внедрения работы 117

4.3.1 Реализация методики верификации программного обеспечения на наличие деструктивных свойств для сред облачных вычислений в центре вирусных исследований и аналитики «eset» 118

4.3.2 Внедрение элементов методики при создании системы верификации по в компании 000 «связьмонтажкомплектация» 119

4.3.3 Внедрение элементов методики при оценке рисков в компании ооо «тсс» 120

4.3.4 Разработка лабораторных работ «введение в верификацию по» и «разработка по для сред ов» для курса «языки программирования» кафедры «криптология и дискретная математика» нияу мифи 121

4.4 Выводы 122

Заключение 125

Список использованных источников 127

Введение к работе

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

Среды облачных вычислений (ОВ) являются очередным звеном в эволюционной цепочке подходов к предоставлению удалённого доступа к данным после выделенных серверов. Впервые идея среды ОВ была выдвинута в 1961 году Дж. Маккарти. Среда облачных вычислений - это модель программно-аппаратных средств вычислительной техники, позволяющая получать удалённый доступ к вычислительным ресурсам в любой момент времени. Среда ОВ позволяет динамически выделять требуемое программному обеспечению (ПО) процессорное время и память в зависимости от текущей нагрузки на это ПО. Впервые услуга предоставления доступа к данным на основе среды ОВ была предложена компанией Salesforce в 1999 году. Впоследствии, услуги предоставления доступа к данным с использованием сред ОВ стали предлагать на рынке Amazon (2002), Google (2005), Microsoft(2008) и множество других компаний.

Однако применение сред облачных вычислений ведет к появлению новых проблем информационной безопасности, таких как:

проблема распространения вредоносного программного обеспечения (ВПО) посредством сред ОВ;

проблема доверия поставщику услуг среды ОВ;

проблема выявления ВПО, ориентированного на среды ОВ;

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

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

Задача обеспечения доверия поставщику услуг среды ОВ решается посредством административно-правовых и технических мер.

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

Таким образом, к настоящему времени являются актуальными и требуют решения следующие задачи:

задача выявления ВПО, ориентированного на среды облачных вычислений;

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

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

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

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

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

Michael Miller - провёл анализ механизмов безопасности сред облачных вычислений и выделил общие неустранимые недостатки;

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

Subashini S. - рассмотрел проблемы применения верификации в средах облачных вычислений и сделал вывод о сложности применения существующих методик верификации для ПО, передаваемого в среды ОВ, для выполнения.

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

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

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

Объект исследования. Среды облачных вычислений.

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

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

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

Для решения поставленной задачи необходимо:

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

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

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

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

создать алгоритм классификации программного обеспечения;

синтезировать методику верификации ПО для сред ОВ;

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

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

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

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

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

предложен подход к оценке подобия различных экземпляров программного обеспечения, основанный на мере Дамерау - Левенштейна;

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

Практическая значимость результатов заключается в следующем:

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

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

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

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

Внедрение результатов исследований.

Предложенная методика верификации программного обеспечения на наличие деструктивных свойств для сред облачных вычислений реализована в Центре вирусных исследований и аналитики «Eset» для осуществления формального вывода при анализе ПО о наличии в нём деструктивных свойств ПО.

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

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

свойств ПО реализованы в компании ООО «ТСС» для проведения оценки рисков информационной безопасности и создания моделей информационных систем.

Теоретические и прикладные результаты, полученные в ходе выполнения диссертационной работы, использованы в учебном курсе «Языки программирования» кафедры «Криптология и дискретная математика» НИЯУ МИФИ при создании лабораторных работ по курсу «Языки программирования 2».

Публикация и апробация работы. Результаты диссертации изложены в 11 публикациях, 7 из которых опубликованы в журналах рецензируемых ВАК РФ. Результаты работы докладывались на конференциях и семинарах различного уровня:

7-я Курчатовская молодёжная научная школа - 10-12.11.2009г, г. Москва;

«Умник сколковец» - 15.03.2011г., г. Москва, МТЦ. «Победитель конкурса «Кадровый резерв молодых ученых и специалистов «Сколково» 15.03.2011г.;

«Microsoft Research Summer School 2011» - 27.06-01.07.2011г, Великобритания, Кембридж;

11-й Национальный форум информационной безопасности «Информационная безопасность России в условиях глобального информационного общества» 29-30 января 2009 г.;

Конкурс молодёжных предпринимательских проектов «Своё дело» 18 мая 2011 г, г. Москва;

X конкурс молодёжных инновационных проектов технопарка МИФИ. 2011г. г. Москва;

XIV международная телекоммуникационная конференция молодых учёных и студентов «Молодежь и наука». 2011г. г. Москва.

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

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

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

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

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

программный комплекс, повышающий защищённость сред ОВ, с использованием предложенной в работе методики.

Структура работы. Работа состоит из введения, четырех глав, заключения, списка литературы, включающего 106 наименований. Текст диссертации изложен на 135 страницах, включая 15 рисунков и 3 таблицы.

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

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

Основными требованиями, предъявляемыми к ПО поставщиками сред ОВ, являются следующие: требования к языку программирования, на котором разрабатывается ПО - поскольку существует множество языков программирования, для каждого из которых существуют различные версии интерпретаторов или компиляторов, существует проблема совместимости виртуальной среды ОВ, в которой будет происходить выполнение ПО, и версий сборок ПО. Поэтому, зачастую, поставщик услуг сред ОВ указывает набор поддерживаемых средой ОВ языков программирования и компиляторов или интерпретаторов, с использованием которых необходимо осуществлять сборку ПО; требования к наборам подключаемых библиотек - в процессе сборки и выполнения ПО может использоваться ряд подключаемых библиотек для выполнения каких-либо наборов функций. Поскольку подключаемые библиотеки обычно ориентированы на использование в определённой среде вычислений, то при их использовании в среде ОВ может возникнуть проблема в совместимости вызовов программных интерфейсов. В связи с этим поставщики услуг сред ОВ зачастую приводят список подключаемых библиотек которые возможно или невозможно использовать в реализованной поставщиком среде ОВ. Также стоит отметить возможную несовместимость различных версий библиотек, в связи с чем возможны ограничения по их версиям; требования к сетевым протоколам - исходя из характерных особенностей сред ОВ, перечисленных выше, поставщики услуг сред ОВ от разработчиков ПО требуют использования наиболее распространённых протоколов сетевого взаимодействия; требования к СУБД - в случае использования СУБД в среде ОВ поставщик может потребовать использования ряда СУБД, права на использования которых ему принадлежат. Также для конкретной СУБД поставщиком услуг среды ОВ может поддерживаться лишь ряд механизмов, предоставляемых СУБД. Разработчику ПО необходимо соблюдать подобные ограничения; требования к операционным системам(ОС) - в случае, если среда ОВ поддерживает возможность размещать в ней виртуализированную ОС, то, зачастую, количество видов ОС, возможных к виртуализации ограничен по причине большой трудоёмкости интеграции произвольной ОС и программных интерфейсов среды ОВ ; требования по безопасности - поставщик среды ОВ, основываясь на политике безопасности компании и договоров, установленных с пользователями среды ОВ, обычно выдвигает ряд требований по безопасности к предоставляемому разработчиком программному обеспечению. Выполнение требований повышает безопасность среды ОВ, однако, не обеспечивает полной защищённости. В данном разделе описываются виды атак на ПО, осуществимые за счёт того, что при реализации ПО разработчиками были допущены ошибки. Ошибки могут быть допущены на любом из этапов цикла создания программного обеспечения таких как: спецификация требований, проектирование, реализация, тестирование, внедрение и поддержка. На каждом этапе возможно возникновение ситуации, в которой программное обеспечение может быть модифицировано некорректно, как за счёт ошибок разработчика, так и из за сбоев программной или технической составляющей среды облачных вычислений, при некорректной модификации ПО. В контексте сред облачных вычислений ошибки так же могут возникать за счёт особых условий, в которых программное обеспечение исполняется. Причины могут быть следующими [21, 22, 37]: особенности спецификации среды облачных вычислений - так как для различных сред ОВ существуют свои требования к созданию ПО, то для обеспечения совместимости уже разработанного ПО может потребоваться вносить изменения в программный код. В связи с этим разработчику приходится изменять корректно работающее ПО в соответствии со спецификацией, что может привести к изменению как логики работы ПО, что, при недостаточном тестировании, может привести к ошибкам; особенности виртуализации программного обеспечения в конкретной среде облачных вычислений - в различных средах ОВ используются различные технологии виртуализации исполнения программного кода. В случае, ПО не было создано с учётом конкретной технологии виртуализации, а было модифицировано для совместимости с ним, в ПО могут остаться наборы программных инструкций, которые будут некорректно виртуализироваться, что может привести к возникновению ошибок; особенности технологий физической составляющей сред облачных вычислений - в случае повышенной нагрузки на ПО или иных воздействий среда облачных вычислений выделяет дополнительные емкостные и вычислительные ресурсы исполняемому ПО. Таким образом, при некорректной реализации ПО возможны ситуации, когда ПО начнёт некорректно использовать ресурсы, выделяемые для его исполнения. Исходя из выше сказанного, становится очевидно, что количество путей для некорректной работы программного обеспечения в контексте сред облачных вычислений становится больше, по сравнению со «стандартными» (такими как выделенные серверы, пользовательские операционные системы) средами вычислений. Ниже перечислены как «классические» виды атак на ПО -возможные в «стандартных» вычислительных средах, так и специфические для сред облачных вычислений, рассмотренные в статьях [21,22,37].

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

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

Математическая модель деструктивного свойства ПО

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

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

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

Пусть задан граф потока управления GR. Тогда входной всршиной(входным блоком) графа потока управления ugrb Є GR называется вершина, с которой начинается любой путь, входящий в граф потока управления GR.

Пусть задан граф потока управления GR. Тогда конечной вершиной(конечным блоком) графа потока управления ugre Е GR называется вершина, в которой оканчивается любой путь, входящий в граф потока управления GR.

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

Пусть для определённой среды облачных вычислений задана спецификация [89, 90] на программное обеспечение, передаваемое в среду облачных вычислений для выполнения. Тогда под деструктивным свойством программного обеспечения сг понимается наличие у образца ПО свойства, не соответствующего спецификации программного обеспечения установленной для рассматриваемой среды облачных вычислений. Экземпляр ПО может содержать одно или несколько деструктивных свойств. Множество всех деструктивных свойств для сред облачных вычислений обозначим за CR.

Пусть D - множество доминаторов [91] в графе потока управления GR. Вершина dEDcz.GR называется доминатором вершины ugrEGR, если любой путь, достигающий вершины ugr должен содержать вершину d. Непосредственным доминатором вершины ugrEGR называется вершина idED czGR, если любой путь, достигающий вершины ugr должен содержать вершину id, и в пути от вершины id к вершине ugr отсутствуют иные вершины, доминирующие вершину ugr. Пусть PD - множество постдоминаторов [91] в графе потока управления GR. Вершина pdEPDaGR называется постдоминатором вершины ugrEGR, если любой путь к вершине являющийся конечной в графе потока управления GR, из вершины ugr содержит вершину pd. Непосредственным постдоминатором вершины ugrEGR называется вершина ipdED czGR, если любой путь к конечному блоку из вершины ugr содержит вершину ipd и в пути от вершины ipd к вершине ugr отсутствуют иные вершины, постдоминирующие вершину ugr. Пусть DPD - множество доминаторов-постдоминаторов в графе потока управления GR. Вершина dpdEDPD с GR называется доминатором-постдоминатором вершин ugrh ug EGR, если любой путь, достигающий вершины ugri должен содержать вершину dpd и, если любой путь к вершине являющийся конечной в графе потока управления GR, из вершины ugr} содержит вершину dpd. Пусть результатом выполнения ПО является последовательное выполнение базовых блоков, входящих в свойства программного обеспечение. Пусть деструктивным результатом выполнения ПО является последовательное выполнение базовых блоков, входящих в деструктивное свойство программного обеспечения. Пусть у образца программного обеспечения, описанного графом потока управления GR, присутствует деструктивное свойство crEGR. Пусть вершина ugrEGR. Вершина ugr будет существенной для деструктивного свойства вершиной сг, если ugrEcr. Если ugr сг, то вершина ugr является несущественной вершиной для свойства prop.

Пусть в графе потока управления GR присутствуют, без ограничения общности, два связных подграфа потока управления sgrj, sgr2 EGR. Вершина ugrEGR называется связующей вершиной, если любой путь из подграфа потока управления sgr} в подграф потока управления sgr2 включает в себя вершину ugr. Слабо связующими вершинами wbp называются вершины ugr1} uSr2, ugr..., ugrnEwbpaGR, такие, что все пути из подграфа потока управления sgrt в подграф потока управления sgr2 включают в себя все вершины ugrj, ugr2, ugr..., ugr„EGR. Иными словами из потока управления sgrj в подграф потока управления sgr2 невозможно попасть, не пройдя через слабо связующие вершины. Так же стоит заметить, что при удалении части вершин из wbp, либо оставшиеся вершины станут связующими вершинами, либо подграф потока управления sgrj и подграф потока управления sgr2 перестанут быть связными. Пусть вершины ugr}, ugr2Ewbp a GR являются слабо связующими и существует вершина ugr3EGR. Вершины ugrj, ugr2 слабо доминируют вершину ugr3, если, без ограничения общности, при удалении любой из вершин ugr/ или ugr2 оставшаяся вершина будет непосредственно доминировать ugr3. Пусть вершины ugrj, ugr2Ewbp a GR являются слабо связующими и существует вершина ugr3EGR. Вершины ugrj, ugr2 слабо постдоминируют вершину ugr3, если, без ограничения общности, при удалении любой из вершин ugr} или ugr2 оставшаяся вершина будет непосредственно постдоминировать ugr3. Пусть вершины ugrj, ugr2Ewbp cz GR являются слабо связующими и существуют вершины ugr3, ugr4EGR. Вершины ugrj, ugr2 слабо доминируют-постдоминируют вершины ugr3 ugr4, если, без ограничения общности, при удалении любой из вершин ugrj или ugr2 оставшаяся вершина будет непосредственно доминировать ugr3 и непосредственно постдоминировать ugr4.

Описание функций, выполняемых модулями программного комплекса

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

Модуль построения графа потока управления верифицируемого ПО. Как сказано выше, модулю построения графа потока управление на вход подаётся исходный код программного обеспечения. К подаваемому на вход исходному коду предъявляется требование: необходимо чтобы по исходному коду программного обеспечения, для заданного языка программирования возможно было полностью восстановить его граф потока управления, с точки входа и методом обхода «в глубину» [97, 98] прохождения по всем ветвям графа. Таким образом, модуль построения графа потока управление, с использованием реализованного для заданного языка, алгоритма производит попытку построения его графа потока управления. Если построение графа потока управления невозможно по каким-то причинам, например: использование многовложенных циклов, использование неописанных запутывающих преобразований, вызовы программных инструкций из сторонних библиотек, и т.п; то генерируется сообщение для модуля передачи программного обеспечения об ошибке, произошедшей при построении графа потока управления и передача программного обеспечения в среду облачных вычислений блокируется. В случае, если ошибок в ходе построения графа потока управления верифицируемого программного обеспечения не произошло, то его исходный код, за исключением данных, то есть наборы программных инструкций, и построенный по ним граф потока управления передаются на вход иным модулям.

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

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

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

Внедрение элементов методики при создании системы верификации по в компании 000 «связьмонтажкомплектация»

Программный комплекс, реализующий методику верификации программного обеспечения на наличие деструктивных свойств ПО, был использован в Центре вирусных исследований и аналитики «Eset» при создании формального доказательства для ряда эвристически проанализированных образцов ПО. Программный комплекс реализован с использованием технологии Microsoft .NET и внутренней СУБД компании «Eset».

Ряду клиентов, пользующихся услугами Центра вирусных исследований и аналитики «Eset», требуется предоставление формального вывода о наличии или отсутствии деструктивных свойств у определённого экземпляра ПО, а также формальная оценка ошибок первого и второго рода, полученная при анализе ПО на наличие деструктивных свойств. При оценке стандартными методами анализа программного обеспечения на наличие деструктивных свойств ПО формальный вывод возможно было дать только при использовании сигнатурных методик. В случае использования проактивных методик при анализе ПО предоставление формального вывода о наличии или отсутствии деструктивных свойств было невозможным. Таким образом, при внедрении в Центре вирусных исследований и аналитики «Eset», были использованы следующие элементы синтезированной в работе методики верификации программного обеспечения на наличие в нём деструктивных свойств для сред облачных вычислений: математическая модель верифицируемого ПО; внутреннее представление программного обеспечения; математическая модель описания деструктивных свойств ПО; внутреннее представление описаний деструктивных свойств программного обеспечения; подход, предложенный в методике, к решению задачи классификации программного обеспечения. Стоит отметить, что данный программный комплекс верификации ПО на наличие в нём деструктивных свойств, был специально переработан для применения в данном проекте. Были значительно модифицированы модуль хранения внутреннего представления ПО и алгоритмы, реализующие преобразование Дамерау-Левенштейна. Подобная модификация потребовала значительного времени и не предполагается при внедрении предложенного в работе программного комплекса в средах облачных вычислений.

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

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

Программный комплекс, реализующий предложенную в работе методику, полностью соответствует представленной в главе 3 архитектуре системы. Программный комплекс реализован с использованием технологии Microsoft .NET и бесплатной СУБД MySQL.

В результате внедрения программного комплекса, реализующего верификацию программного обеспечения для сред облачных вычислений, в компании ООО «Связьмонтажкомплектация», были достигнуты следующие результаты: процесс тестирования ПО на содержание в нём деструктивных свойств для сред облачных вычислений был автоматизирован; ошибки, возникавшие до внедрения предложенной в работе методики, связанные с не выявлением деструктивного свойства ПО стали невозможны; на 30% снизилась нагрузка на аппаратную платформу выделенного сервера, эмулирующего среду облачных вычислений, что позволило повысить скорость тестирования ПО; процесс выявления известных и новых деструктивных свойств для сред облачных вычислений в тестируемом программном обеспечении был ускорен на 21%; результат тестирования ПО на наличие в нём деструктивных свойств для сред облачных вычислений стал основан на формальном выводе о наличии или отсутствии в тестируемом образце ПО деструктивных свойств для сред облачных вычислений. Практические и теоретические результаты внедрены в компании ООО «ТСС», занимающейся оценкой рисков информационной безопасности. До внедрения программной реализации элементов синтезированной в ходе выполнения работы методики, для каждой новой информационной системы было необходимо проводить создание новых моделей описания недостатков анализируемой информационной системы. В связи с этим, использование моделей недостатков, созданных для проанализированных ранее информационных систем было затруднительно или невозможно. Внедрение программного комплекса, реализующего модель представления ПО, модифицированную для информационных систем, модель описания деструктивных свойств и модель классификации позволило получить следующие результаты: было автоматизировано создание модели информационной системы, оценку рисков которой требуется произвести; стало возможно использование полученных ранее оценок рисков для оценок рисков информационной безопасности; получаемая в результате работы внедрённого программного комплекса оценка рисков стала формализованной. Таким образом, результатом внедрения разработанного программного комплекса, является автоматизация и формализация процесса оценки рисков систем информационной безопасности, предоставляемая компанией ООО «ТСС» как услуга.

Похожие диссертации на Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств