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

кандидата технических наук
Туманов, Юрий Михайлович
город
Москва
год
2012
специальность ВАК РФ
05.13.19
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Защита сред облачных вычислений путём верификации программного обеспечения на наличие деструктивных свойств»

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

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

005017022

Туманов Юрий Михайлович

ЗАЩИТА СРЕД ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ ПУТЁМ ВЕРИФИКАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА НАЛИЧИЕ ДЕСТРУКТИВНЫХ

СВОЙСТВ

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

АВТОРЕФЕРАТ

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

1 о и;;^ ш

Москва-2012

005017022

Работа выполнена в Национальном исследовательском ядерном университете «МИФИ» (НИЯУ МИФИ)

Научный руководитель: кандидат физико-математических наук,

доцент кафедры №42 «Криптология и дискретная математика», Велигура Александр Николаевич

Официальные оппоненты: Доктор технических наук,

ведущий научный сотрудник ИПИ РАН, Королёв Вадим Иванович

Кандидат технических наук, заместитель начальника отдела разработок ООО «КРИПТО-ПРО», Смирнов Павел Владимирович

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

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

Защита состоится «28» мая 2012 г. в 16 часов 00 минут на заседании диссертаци онного совета ДМ 212.130.08 при Национальном исследовательском ядерном универ ситете «МИФИ»: 115409, г. Москва, Каширское ш., д.31. Тел. для справок: +7 (495 323-95-26, 324-73-34.

С диссертацией можно ознакомиться в библиотеке Национального исследове тельского ядерного университета «МИФИ».

Отзывы в двух экземплярах, заверенные печатью, просьба направлять по адрес} 115409, г. Москва, Каширское ш., д.31, диссертационные советы НИЯУ МИФИ, тел +7 (495) 323-95-26.

Автореферат разослан «25» апреля 2012 г.

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

кандидат технических наук, доцент /ryd^^S Горбатов B.C.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- разработать архитектуру программного комплекса и реализовать его.

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

з! теории графов, теории множеств.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5

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

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

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

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

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

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

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

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

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

СОДЕРЖАНИЕ РАБОТЫ

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

6

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

Рисунок 1 - Схема сред облачных вычислений

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

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

- административные;

- нормативно-правовые;

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

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

- административные и нормативно-правовые меры не защищают от передачи

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

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

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

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

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

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

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

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

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

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

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

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

выявления деструктивных свойств, реализованных в антивирусном ПО, системах обнаружения, системах предотвращения вторжений, методиках проведения верификации 10. Результаты анализа методик представлены в таблице 1. 'аблица 1

анализируемая Критерий сравнения

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

Летодики сигна-урного анализа + + — + —

Летодики стати-тического анаша + +

Летодики эври-тического ана-¡иза + + — —

Летодики пове-[енческого ана-[иза + +

Летодики вир-уализации рабо-[его окружения + +

Летодики авто-итизируемой ;ерификации, [роводимой с частием челове-:а + + + +

Летодики авто-гатической ве-1ификации исходного кода + + + +

Летодики авто-штической ве-шфикации ис-юлнимого кода + + + +

Авторская мето-1ика + + + + +

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

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

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

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

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

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

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

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

ОВ;

- нарушитель обладает всеми необходимыми ресурсами для создания ПО для рассматриваемой среды ОВ;

- нарушитель имеет возможность передачи ПО в среду ОВ только штатным путем.

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

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

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

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

конечная последовательность элементов и> = у/, , где символ / е Ь, г = \,к, к Е /V,,.

Пусть граф потока управления ПО (?={1/,К} задается набором множеств: Ы-множество вершин рассматриваемого графа, V - множество дуг рассматриваемого графа. В графе потока управления каждая вершина и £ и соответствует линейному

10

блоку ПО - участку кода, не содержащему в себе ветвлений и циклов. Линейные блоки ПО (в дальнейшем базовые блоки ПО) - участки программного кода приложения, не содержащие ветвлений, переходов и инструкций передачи управления. Множество дуг К включает в себя пары элементов из множества V, то есть Ус {1/хЩ, таким образом, что дуга между двумя вершинами существует тогда и только тогда, когда переход из одной вершины в другую осуществим. Таким образом, если набор инструкций ПО, представленных вершиной графа ик, будет вызван сразу после обращения к инструкциям, представленных вершиной графа и„ то вершины ик и и, будут связаны между собой дугой {и*,«,-}. Существенно, что рассматриваемый граф потока управления ПО является ориентированным в связи с тем, что при исполнении кода приложения важен порядок вызова базовых блоков ПО.

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

Л = {и,1У,11,ис,У/,Ус}, где II- множество вершин графа потока управления ПО, IV - множество слов на рассматриваемом языке программирования, Л - отображение разметки вершин графа потока управления Г/, А: 1Ух[1 —>Г7С, где ис - множество размеченных вершин графа потока управления (далее вершин), V— множество дуг графа потока управления ПО,/- отображение/:У—*УС, где множество дуг Ус с [исх1/с} включает в себя пары элементов из множества 11с, таким образом, что дуга между двумя вершинами существует тогда и только тогда, если она существовала во множестве дуг V. Тогда под вс ={ис,Ус\ понимается размеченный граф потока управления С ={и,У}. В дальнейшем под путём gcSGc будет пониматься последовательность связанных переходами базовых блоков программного обеспечения, от входного блока, с которого начинается выполнение ПО, до конечного блока, в котором завершается выполнение ПО. Внутреннее представление программного обеспечения, используемое непосредственно в реализации методики, схематично изображено на рисунке 2.

.Метка вершины графя

Граф потока _>' 11а,!ЛС,|Ш'

унравлени» ^начало")

а ■= Н1%1г|

Р = мшг2

У

5 = Ш!йг4

V) = ш«^

Набор инструкций, представляемый словом

( Конец )

Рисунок 2 - Размеченный граф потока управления программного обеспечения

11

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

СИ = [ 1У.р ,Рй ,ОРБ ,Р.ц/}, где IV - множество слов на рассматриваемом языке программирования, В - множество размеченных доминаторов (далее доминаторов), Рй - множество размеченных постдоминаторов (далее постдоминаторов), йРй -множество размеченных вершин, являющихся доминаторами и постдоминаторами (далее доминаторов-постдоминаторов), Р - множество всех путей из множества доминаторов в множество постдоминаторов, проходящих через множество вершин, являющихся доминаторами и постдоминаторами, у/ - отображение, ц/:ОхОРОхРО->Р. В дальнейшем под вершиной рЕР будет пониматься доминатор, постдоминатор или вершина, являющаяся доминатором и постдоминатором. Под путём 1ЕР будет пониматься заданное подмножество вершин рЕР, которые связаны отношениями доминирования и постдоминирования, описывающих определенное деструктивное свойство ПО. Иными словами, в соответствии с предложенным формальным описанием классифицирующего признака ПО для каждого нового образца ПО, обладающего деструктивными свойствами, в базу данных добавляются информация о: размеченных вершинах графа потока управления и в какой последовательности они должны вызываться в ходе выполнения ПО.

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

(.ШШЖ (Н-ршН11. дл» тормх вершина йвдиется постгоцинагороч

1[ау0(1 ннструкннй,

нрс к'|;т.]и(/чый С.ШНПМ

Ошшк всрншн. ки! 1у[пл\ вершин« ЯВДЯСТСЯ

Рисунок 3 - Схематичное изображение формального описания классифицирующего признака ПО

Вершины рЕР и нсе(гс рассматриваются как подобные, если £>£(р,ис)<0, где ¿)£(р,нс) - преобразование Дамерау - Левенштейна, позволяющее получить минимальное количество операций вставки, удаления, замены и перестановки одного символа алфавита необходимых для преобразования инструкций вершины рЕР в

12

вершину исЕСс, в - заданное количество редакционных преобразований над помеченной вершиной, в случае превышения которого вершины р€Р и исВ1/с не рассматриваются как подобные. Если ОЦр,ис)=0, то вершины р£Р и исЕСс рассматриваются как эквивалентные.

Пути gcSGc и <еР рассматриваются как подобные, если для каждой вершины р. входящей в путь существует вершина и,., входящая в путь такая, что ВЦрмс)<0. Пути gceGc и /еЯ рассматриваются как эквивалентные, если для каждой вершины р, входящей в путь существует вершина ис, входящая в путь gc, такая, что ОЦр.ис)=() V р,ис, и в пути gc отсутствуют вершины, кроме эквивалентных вершинам, входящим в I.

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

Критерием классификации является наличие подобных или эквивалентных путей *ЕР и gcSGc. Таким образом, ЛсС(М), если существует хотя бы один путь gcEGc, такой, что для него существует подобный путь 1ЕР, для всех описаний классифицирующих признаков, представленных кортежами СИ. К с С(М), если для любого пути gcEGc, не существует подобного пути ¿еР, для всех классифицирующих признаков, представленных кортежами СД.

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

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

— получение исходного кода программного обеспечения;

— построение графа потока управления ПО;

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

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

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

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

— передача ПО в среду облачных вычислений для выполнения или блокирование передачи.

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

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

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

13

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

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

- модуль разметки вершин графа потока управления верифицируемого ПО;

- модуль хранения внутреннего представления верифицируемого ПО;

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

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

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

- модуль классификации верифицируемого ПО;

- модуль передачи ПО в среду ОВ.

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

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

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

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

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

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

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

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

обладающее деструктивными свойствами.

Архитектура программного комплекса представлена на рисунке 4.

Иеймйый кЬжПО ;

Модуль поетроени* графа потока управления

"V

Модуль ра тетки вергааш графа потока управления

.-К

Модуль хранен«« внутреннего

представления

Передача зашшх

Молуль поиска пути в решеченном графе потока управления

X

Модуль классификации верифицируемого НО

-К "V

Модуль сравнения помеченных вершин

Модуль переплат НО э среду ОП

А—

Модуль храненн«

ОН! !СШ) 1!Н

деструктивных

СВОЙСТВ

:: Передача пл и передач« КС)

Рисунок 4 - Архитектура программного комплекса

На рисунке 5 представлена построенная автором модель работы программного комплекса, реализующего предложенную методику.

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

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

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

Разработка программного комплекса, реализующего методику, осуществлялась на языке программирования С# платформы .NET в связи с тем, что для работы с внутренним представлением .NET приложений наиболее полно подходят существующие в данном языке классы и пространства имен. Также для разработки использована СУБД Oracle llg, используемая для проведения поиска по табличным описаниям деструктивных свойств ПО.

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

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

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

Таблица 2- Доля ложных срабатываний в зависимости от количества редакционных преобразований над словом._____

Количество редакционных преобразований над словом, в 0 1 2 3 4 5

Доля ложных срабатываний 0,05 0,14 0,23 0,36 0,49 0,65

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

{ Начало )

Создание виутрспнсш представления НО

Выявление подооных вершин в графе потока управления верифицируемого 110 и описаниях деструктивных свойств

.......-К, ' ., .. - Л.н

-выявлены I'*

Ист

А.

Классификация

ПО, как не обладающего деструктивными свойствам»

Выявление подобных путей в 1-рафе потока управления верифицируемого 110 и описаниях деструктивных свойств

-Не1-

-''*' Пут 4,4 Да

Классификация ПО, как обладай шею деструктивными своПстюмн

( Конец

Рисунок 6 - Алгоритм программного комплекса

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

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

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

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

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

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ РАБОТЫ

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

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

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

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

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

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

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

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

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

ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

1. Туманов Ю.М. Обнаружение вредоносных сценариев JavaScript на основе поведенческих сигнатур. //Безопасность информационных технологий 2009. №4. С.63-65

2. Филоненко А. В., Исаев И. К., Сидоров Д. В., Туманов Ю. М.. Поиск уяз-вимостей по бинарному коду с помощью проверки выполнимости ограничений. //Безопасность информационных технологий 2010. №2. С.83-86

3. Гаврилюк С. В., Туманов Ю. М. Разработка метода защиты вычислительных Грид-сетей от намеренного искажения результата вычислений //Безопасность информационных технологий 2010. №1. С.53-54

4. Варфоломеев А. А., Коренева А. М., Краснопевцев А. А., Туманов Ю. М., Фомичев В. М. «О реализации метода полного опробования ключей криптосистем в условиях различных математических распределенных вычислений» //Безопасность информационных технологий 2011. №1. С.82-83

5. Станкевичус А. А., Туманов Ю. М. -Разработка системы обнаружения вредоносных сценариев JavaScript на основе поведенческих сигнатур //Бизнес и Безопасность в России 2009 июнь С.130-131

6. Гаврилюк С. В., Туманов Ю. М. Использование поведенческого анализа с применением поведенческих сигнатур для выявления вредоносного кода на примере JavaScript сценариев //Безопасность информационных технологий 2010. №1. С.115-117

7. Моисеев А.В. Станкевичус А. А., Туманов Ю.М. «Защита среды распределённых вычислений при помощи искусственных иммунных систем» //Безопасность информационных технологий 2011. №4. С.103-105

8. Туманов Ю. М. Выявление интерпретируемого вредоносного кода на основе поведенческих сигнатур. - Научная сессия НИЯУ МИФИ-2011. Аннотации докладов в 3 томах. Т. 3. М.:НИЯУ МИФИ, 2010. - с. 165.

9. Yury Tumanov «Behavioral détection of malicious interpreted code» [Электронный ресурс]: Microsoft Research Summer School 2011. Режим доступа к ресурсу: http://blogs.msdn.eom/b/msr_er/archive/2011/07/12/top-students-descend-on-microsoft-research-cambridge.aspx

Ю.Туманов Ю.М. «Использование поведенческого анализа для выявления вредоносного кода, на примере JavaScript сценариев» - сборник аннотаций работ «7-я курчатовская молодежная школа» 2009г. С.157

11. Туманов Ю.М., «Разработка программы обнаружения вредоносных сценариев JavaScript на основе поведенческих сигнатур» [Электронный ресурс] «Ру-сКрипто'2009». Режим доступа к ресурсу:

http://www.ruscrypto.org/sources/conference/rc2009/

Оглавление автор диссертации — кандидата технических наук Туманов, Юрий Михайлович

ВВЕДЕНИЕ.

1 АНАЛИЗ СРЕД ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ И МЕТОДИК ВЫЯВЛЕНИЯ ВРЕДОНОСНЫХ СВОЙСТВ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

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

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

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

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

1.2 Методики выявления вредоносного ПО.

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

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

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

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

1.5 Выводы.

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

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

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

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

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

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

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

2.7 Выводы.

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

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

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

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

3.4 Выводы.

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

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

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

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

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

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

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

4.3.4 Разработка лабораторных работ «введение в верификацию ПО» и «Разработка ПО для сред OB» для курса «Языки программирования» кафедры «Криптология и дискретная математика» НИЯУ МИФИ.

4.4 Выводы.

Введение 2012 год, диссертация по информатике, вычислительной технике и управлению, Туманов, Юрий Михайлович

Актуальность темы. С началом информационной эпохи стала возрастать потребность общества обрабатывать всё большие объёмы информации, а также предоставлять доступ к данным в произвольный момент времени. Для решения этой задачи используется подход, обеспечивающий хранение информации с использованием сред облачных вычислений (ОВ). Идея среды ОВ была впервые выдвинута в 1961 году Джоном Маккарти [1], однако в связи с относительно низкой пропускной способностью каналов передачи данных на тот момент, не могла быть реализована.

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

Среды ОВ являются следующим звеном в эволюционной цепочке моделей предоставления удалённого доступа к данным после модели выделенных серверов [3]. Выделенный сервер [4-5] это - программно-аппаратная платформа, обеспечивающая доступность информации, её хранение и защиту. Однако, в случае отключения выделенного сервера от сети Интернет или повышения на него нагрузки, программное обеспечение, выполняемое на выделенном сервере, становится недоступно пользователям. Кроме того, недостатком выделенных серверов является необходимость резервирования значительного количества ресурсов для обеспечения доступности ПО при пиковых нагрузках или случаях отказа аппаратной составляющей. При этом ПО выделяется большее количество ресурсов, чем ему необходимо, что приводит к их не оптимальному использованию.

С увеличением пропускной способности каналов передачи данных, предложенная концепция стала осуществимой, и поставщики услуг доступа к данным начали использовать среды облачных вычислений, которые лишены вышеперечисленных недостатков выделенных серверов. Впервые услуга предоставления доступа к данным на основе среды OB была предложена компанией Salesforce в 1999 году [6]. Впоследствии, услуги предоставления доступа к данным с использованием сред OB стали предлагать на рынке Amazon [7], Google [8], Microsoft [9] и множество иных компаний [10 - 18]. На рисунке 1 представлен прогноз роста популярности сред облачных вычислений относительно иных технологий предоставления доступа к данным и программному обеспечению удалённо[19].

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

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

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

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

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

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

Для решения задачи противодействия распространению вредоносного программного обеспечения посредством сред ОВ можно использовать существующий ряд продуктов - антивирусное ПО, например [23 - 24], системы обнаружения вторжений, например [25 - 27], системы предотвращения вторжений, например [28-30].

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

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

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

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

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

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

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

На данной момент проблема выявления программного обеспечения, содержащего ошибки, приводящие к возможности реализации атак на среды, в которых происходит выполнение ПО, стоит весьма остро. По статистике Лаборатории Касперского [31] 60% атак на среды, в которых происходит выполнение программного обеспечения, происходит за счёт содержания в программном коде ПО ошибок, позволяющих производить атаку «Межсайтового выполнения сценариев». С ростом популярности сред облачных вычислений проблема некорректно реализованного ПО становится актуальной. Количество единиц новых видов ПО, содержащего деструктивные свойства, представлено на рисунке 2 [32].

Количество единиц ВПО, млн 3

2,5 2 1,5 1

0,5 0

2,57

0,04

0,13

0,85

2006

2007

2008

2009

2010

2011 Год

Рисунок 2 - Количество единиц новых видов ПО, содержащего деструктивные свойства

Ранее подобные ошибки в программном коде можно было выявить, в общем случае, только за счёт формальной верификации кода ПО [33 - 34]. Предлагаемая в работе методика позволит выявлять, в частности, ошибку, приводящую к возможности реализации атаки «Межсайтового выполнения сценариев», автоматически.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• разработать архитектуру программного комплекса и реализовать его.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Логически, работа состоит из четырех глав. В первой главе проводилось исследование существующих реализаций сред облачных вычислений, а также документов, регламентирующих принципы реализации сред облачных вычислений, виды предоставляемых ими услуг и характерные особенности сред ОВ. В качестве регламентирующих документов были выбраны [1, 35-36], в связи с отсутствием документов в Российской Федерации, которые бы регламентировали принципы создания сред ОВ. На основе проведённого анализа предложена общая модель среды облачных вычислений, описывающая все виды реализаций сред ОВ. Так же в первой главе рассмотрены виды атак на среды облачных вычислений и даётся описание причин, приводящих к возможности реализации рассмотренных атак. Основной причиной возможности атак на среды облачных вычислений является наличие у программного обеспечения, выполняемого в средах ОВ, деструктивных свойств. Далее проводиться анализ существующих на данный момент методик, реализованных в виде ПО, направленных на выявление деструктивных свойств ПО. Результатом анализа является вывод о том, что существующие на данный момент методики и их реализации в общем случае, то есть при применении для произвольной из реализованных сред ОВ, являются неэффективными или неприменимыми. Результаты проведённого сравнительного анализа представлены в выводах к главе.

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

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

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

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

4.4 Выводы

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

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

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

Так же в главе приводится обоснование выбора определённых алгоритмов, на основании оценок их временных и емкостных сложностей.

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

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

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

Элементы предложенной методики верификации ПО, а именно:

• модель внутреннего представления ПО;

• модель описания внутреннего представления деструктивных свойств ПО;

• модель классификации ПО; были реализованы в программном модуле анализа ПО на наличие деструктивных свойств, в Центре вирусных исследований и аналитики «ЕзеЬ>. "

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

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

1. Douglas F. Parkhill. The Challenge of the Computer Utility Addison-Wesley Pub. Co., 1966 - 207 p

2. The NIST Definition of Cloud Computing -http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145 .pdf

3. Облачные вычисления Oracle -http://www.oracle.com/ru/technologies/cloud/cloud-computing-wp-ru-513234-ru.pdf

4. Возможные типы локальных сетей в офисе фирмы -http://www.referatcollection.ru/48469.html

5. Выделенный сервер http://dic.academic.ru/dic.nsf/ruwiki/98323

6. Salesforce. About us/overview http://www.salesforce.com/company/

7. Amazon Elastic Compute Cloud (Amazon EC2) -http://aws.amazon.com/ec2/

8. Google Apps -http://www.google.com/apps/intl/ru/business/index.html#utmcampaign=ru&utmso urce=ru-ha-emea-ru-bk&utmmedium=ha&utmterm=%2Bgoogle%20%2Bapps

9. Microsoft Windows Azure http://www.windowsazure.com/ru-ru/home/tour/overview/10 Мегапланhttp://www.megaplan.ru/?utmcampaign=VAFHA 1 ABDwVU&gclid=COyxqZ2bka 8CFQgm3godfHkLyg

10. Deskaway http://www.deskaway.com/12 Zoho http://www.zoho.com/

11. Engine Yard http://www.engineyard.com/

12. Heroku http://www.heroku.com/

13. Rackspace http://www.rackspace.com/

14. GoGrid http://www.gogrid.com/

15. Joyent http://www.joyent.com/

16. Rightscale http://www.rightscale.com

17. Cisco Global Cloud Index: Forecast and Methodology, 20102015 http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns 1175/CloudIndexWhitePaper.html

18. Шмойлов Д. В. Облачные вычисления: актуальность и проблемы http://fetmag.mrsu.ru/201 l-l/pdf/CloudComputing.pdf

19. Облака: легенды и мифы http://www.anti-malware.ru/node/2333

20. Threat Classification http://projects.webappsec.Org/w/page/13246978/Threat%20Classification

21. ESET NOD32 http://www.esetnod32.ru/

22. Kaspersky Internet Security http://www.kaspersky.ru

23. Open Source Host-based Intrusion Detection System http://www.ossec.net/

24. The Bro Network Security Monitor http://www.bro-ids.org/

25. Snort http://www.snort.org/

26. McAfee Network Security Manager http://www.mcafee.com/ru/products/network-security-manager.aspx

27. Check Point Power-1 Appliances http://www.checkpoint.com/products/power-l-appliances/index.html

28. Cisco IPS http://www.cisco.com/en/US/products/ps6751 /index.html

29. Kaspersky Security Bulletin 2010. Основная статистика за 2010 год http://www.securelist.com/ru/analysis/208050678/KasperskySecurityBulletin201 00snovnayastatistikaza2010god

30. Security Bulletin 2011, G Data Software

31. AG -http://www.npsod.ru/rus2/analitics/document33715.phtml

32. Кларк Э.М., Грамберг О., Пелед Д. Верификация моделей программ: Model Checking. / пер. с англ.; под ред. Р. Смелянского. М.: МЦНМО, 2002. - 416 е.: ил.

33. Cousot P. Abstract interpretation based formal methods and future challenges. Informatics, 10 Years Back 10 Years Ahead // Lecture Notes in Computer Science 2000. - Springer, 2001. - pp. 138-156.

34. US Government Cloud Computing Technology Roadmap Volume I Release 1.0 (Draft) http://www.nist.gov/itl/cloud/upload/SP500293volumeI-2.pdf

35. US Government Cloud Computing Technology Roadmap Volume II Release 1.0 (Draft) http://www.nist.gov/itl/cloud/upload/SP500293volumeII.pdf

36. Trendmicro 2011 Press Releases -http://emea.trendmicro.com/emea/about/news/pr/ru/article/20110809084629.html38 Сердюк В. Вы атакованы защищайтесь! http://www.bytemag.ru/articles/detail.php?ID=9036

37. Булахов Н. Г. Методы обнаружения компьютерных вирусов и сетевых червей http://bulakhov.com/Papers/tusurvestnik2008Bulakhov.pdf

38. Szor Peter. The Art of Computer Virus Research and Defense Pearson Education 2005-744 p.

39. Никишин А. Проактивная защита как она есть http://www.securelist.com/ru/downloads/vlpdfs/wpnikishinproactiveru.pdf

40. Chakrabarti A. Grid Computing Security. Springer, 2007. - 332 p.

41. Virtual Machine Technology Overview Электронный ресурс. -http://support.citrix.com/article/ CTX107587.

42. Самойленко А. Виртуализация для бизнеса Электронный ресурс. http://www.vmworld.ru/.

43. Thinstall, Application Virtualization: A Technical Overview of the Thinstall Application Virtualization Solution www.creekpointe.com/ helpdesk/pdf/ThinstallApplic Virtualization.pdf.

44. Altiris. http://www.altiris.com/Support/ Documentation.aspx.

45. AppZero. -http://www.appzero.com/content/what-appzero.48 27 App-V. -http://www.microsoft.com/systemcenter/ appv/default.mspx.

46. Potzl H. Linux-VServer technology 2004. - http://linux-vserver.org/Linux-VServer-Paper.

47. SWsoft. Virtuozzo for windows & Linux server virtualization -http ://www. virtuozzo. com/ en/products/virtuozzo/.

48. OpenVZ -http://wiki.openvz.org/.

49. Sun Microsystems. Sun Blueprint: Solaris Containers Technology Architecture Guide 2006. - http://www.sun.com/blueprints/0506/819-6186.pdf.

50. Jails: Confining the omnipotent root -http://phk.freebsd.dk/pubs/sane2000-jail.pdf.

51. Ермаков А.В., Никитин К.Е. Использование паравиртуального монитора XEN в Грид-сайте ИПМ : препринт ИПМ им. М.В.Келдыша РАН. -М., 2008.

52. Stockinger Н. Defining the Grid: A Snapshot on the Current View // The Journal of Supercomputing. Springer, 2006. - V. 42, N. 1. - pp. 3-17.

53. The User-mode Linux Kernel Home Page http://user-mode-linux.sourceforge.net/

54. VMware Products http://www.vmware.com/ products/.

55. Virtualiron -http://www.virtualiron.com/.

56. Microsoft Virtual PC -http://www.microsofl.com/ windows/products/winfamily/ virtualpc/default.mspx.

57. VirtualBox -http://www.virtualbox.org/.

58. Bochs. http://bochs.sourceforge.net/.

59. PearPC -http://pearpc.sourceforge.net/.

60. QEMU — http://www.nongnu.org/qemu/qemu-doc.html.

61. HerculesEmulator http://www.hercules-390.org/.

62. Станкевичус A.A. Разработка методики защиты Грид от вредоносного кода: Дис. канд. технич. наук. Москва. 2009. 145 с.

63. Кларк Э.М., Грамберг О., Пелед Д. Верификация моделей программ: Model Checking. / пер. с англ.; под ред. Р. Смелянского. М.: МЦНМО, 2002. - 416 е.: ил.

64. Cousot P. Abstract interpretation based formal methods and future challenges. Informatics, 10 Years Back 10 Years Ahead // Lecture Notes in Computer Science 2000. - Springer, 2001. - pp. 138-156.

65. Necula G. Proof carrying code // Principles of Programming Languages. -ACM, 1997.-pp. 106-119.

66. Necula G., Lee P. The design and implementation of a certifying compiler // Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation. New York: ACM, 1998. - pp. 333 - 344.

67. Клименко B.B. Мобильный код: классификация, технологии, архитектуры и области применения // Информационное противодействие угрозам терроризма 2005. - №3. - С. 109 -111.

68. Sekar R., Ramakrishnan C.R., Ramakrishnan I.V., Smolka S.A. Model-Carrying Code (MCC): A New Paradigm for Mobile-Code Security // Proceedings of the 2001 workshop on New security paradigms. New York: ACM, 2001. - pp. 23 -30.

69. Corbett J. C., Dwyer M. В., Hatcliff J., Laubach S., Pasareanu C. S., Robby, Zheng H. Bandera: Extracting finite-state models from Java source code // Proc. of the 22nd Int. Conf. on Software Eng., June 2000. Programs. John Wiley & Sons, 1999.

70. Naumovich G., Avrunin G.S., Clarke L.A. Data flow analysis for checking properties of concurrent java programs // Proceedings of the 21st international conference on Software engineering. New York, NY, USA: ACM, 1999.-pp. 399-410.

71. Bull J. M., Smith L. A., Pottage L., Freeman R. Benchmarking Java against С and Fortran for Scientific Applications // Proceedings of the 2001 joint

72. ACM-ISCOPE conference on Java Grande. New York, NY, USA: ACM, 2001. -pp. 97- 105.

73. Chaki S., Clarke E., Groce A. Modular Verification of Software Components in С // IEEE Transactions on Software Engineering. Piscataway, NJ, USA: IEEE Press, 2004. - V. 30 , I. 6. - pp. 388 - 402.

74. Valgrind -http://valgrind.org/.

75. PolySpace Embedded Software Verification -http://www.mathworks.com/ products/poly space/index.html.

76. Safer C: The toolset http://www.oakcomp.co.uk/ SCT.html.

77. The ASTREE Static Analyzer http://www.astree.ens.fr/.

78. Litzkow M J., Livny M., Mutka M.W. Condor A hunter of idle workstations // Proceedings of the Eighth International Conference on Distributed Computing Systems (ICDCS). - Washington, DC: IEEE Computer Society, 1988. -pp. 104-111.

79. Miller B.P., Christodorescu M., Iverson R., Kosar Т., Mirgorodskii A., Popovici F. Playing inside the black box: using dynamic instrumentation to create security holes // Parallel Process. Lett. 11 (2,3). 2001. - pp. 267-280.

80. Above the Clouds: A Berkeley View of Cloud Computing http://x-integrate.de/x-in-cms.nsf/id/DEVonRegenmachemundWolkenbruechen-Impact2009Nachlese/$file/abovetheclouds.pdf

81. Развенчивая мифы об облачныхвычислениях http://www.ibm.com/ru/cloud/pdf/Dispellingthevapor.pdf

82. Федеральный закон Российской Федерации от 10 января 2002 г. N 1-ФЗ ОБ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ.

83. Краснопевцев A.A. Защита от несанкционированного копирования приложений, компилируемых в промежуточное представление: Дис. . канд. технич. наук. Москва. 2011. 150 с.

84. Руководящий документ. Защита от несанкционированного доступа к информации. Термины и определения. http://www.fstec.ru/docs/doc33002.htm

85. Методика составления спецификаций требований к программному обеспечению (IEEE-830-1998) Функциональная спецификация. http://www.webisgroup.ru/services/programming/srs/ieee-830-1998/

86. Christoph Cullmann and Florian Martin Data-Flow Based Detection of Loop Boundshttp://www.irit.fr/WCET2007/finalpapers/cullmann.pdf

87. H. Heikki. A Bit-Vector Algorithm for Computing Levenshtein and Damerau Edit Distances http://dl.acm.org/citation.cfm?id=1274545

88. Л.М. Бойцов. Классификация и экспериментальное исследование современных алгоритмов нечеткого словарногопоиска http://rcdl.ru/doc/2004/paper27.pdf

89. Xin Hu. Large-Scale Malware Analysis, Detection, and Signature Generation http://deepblue.lib.umich.edU/bitstream/2027.42/89760/l/huxinl .pdf

90. K.H. Долгова, A.B. Чернов. О некоторых задачах обратной инженерии http://citforum.ru/security/software/decompilation/

91. М.А. Волк, А.С. Горенков, Р.Н. Гридель. Архитектура имитационной модели GRID-системы, основанная на подключаемых модулях http://www.nbuv.gov.ua/PORTAL/natural/SOI/2OlOl/Bolk.pdf

92. Анализ потока управления http://www.ict.edu.ru/ft/005128//chl2.pdf

93. Optimal communication algorithms on star graphs using spanning tree constructions http://citeseerx.ist.psu.edu/viewdoc/download?doi=l0.1.1.43.7336&re p=rep 1 &type=pdf

94. Консалтинговая компания TIOBE. -http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

95. Алгоритмы на графах http://pmkinfo.tversu.ru/dis/eac/alg-graphs.pdf

96. В.В. Миронов, Н.И Юсупова, Г.Р. Шакирова. Ситуационно-ориентированные базы данных: концепция архитектура, XML-реализация http://www.ugatu.ac.ru/publish/vu/stat/ugatu-2010-1 (37)/37.pdf

97. И.А. Ботыгин, К.А. Каликин. Исследование схем распределённого информационного взаимодействия компонентов программных комплексов с базами данных http://www.lib.tpu.rU/iulltext/v/BulletinTPU/2008/v312/i5/23.pdf

98. Keith D. Cooper, Timothy J. Harvey, and Ken Kennedy. A Simple, Fast Dominance Algorithm http://www.cs.rice.edu/~keith/Embed/dom.pdf104 .NET 4.0 And Our Parallel Future http://www.codethinked.com/net-40-and-our-parallel-future

99. Нахождение кратчайших путей от заданной вершины до всех остальных вершин алгоритмом Дейкстры http://e-maxx.ru/algo/dijkstra

100. Сайт кафедры «Криптология и Дискретная математика». -www.kaf42.ru