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

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

CC BY
201
63
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / УЯЗВИМОСТИ / ВЕРИФИКАЦИЯ / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / НЕЙРОННАЯ СЕТЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Беляков И.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Беляков И.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The Method of Generating Variety of Training Exa m ples for a Neural Network Solving Verifi cation Problem

Software security is an essential criterion of information systems confi dence, which is of particular importance when they are aimed the process of critical resources, the preservation of which is sine qua non for normal functioning of companies. The current software security verifi cation systems are a powerful tool for security audit, but they have signifi cant drawbacks. Foremost among these is an unacceptable time of software security check. Reduction of the time required can be achieved by the use of intellectual verifi cation. However, to apply them the training problem is to be solved. The method presented in the article, allows to achieve the required quality of training neural network used in the intelligent verifi cation systems.

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

Информационные технологии

19

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

УДК 004.056.57 И. А. Беляков

Петербургский государственный университет путей сообщения

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

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

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

Введение

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

Принимая во внимание существенную стоимость активов, основная обработка которых осуществляется различными информационными и автоматизированными системами, можно отметить, что наличие уязвимостей в программном обеспечении (ПО) является серьезным риском для любой организации, активно использующей в своей деятельности информационные и автоматизированные системы [5, 6, 7]. Этим

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

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

ISSN 1815-588Х. Известия ПГУПС

2012/3

20

Информационные технологии

1 Модель системы интеллектуальной верификации

Система интеллектуальной верификации (СИВ) решает задачу оценки соответствия программного обеспечения требованиям безопасности, её можно представить в виде функции от исходных данных (файла проекта, исходных текстов, исполняемых файлов, контрольных сумм), предоставляемых заказчиком или разработчиком ПО, результат которой R принимает значения {0; 1} [8, 9]:

R = Рсш (ФП, ИФ, ИТ, ПФ, УР) е

е {0; 1}, ()

где ФП - файл проекта; ИФ - множество исполняемых файлов; ИТ - множество исходных текстов; ПФ - перечень предоставляемых файлов; УР - уровень требований безопасности.

Значение функции, равное нулю, показывает, что ПО не соответствует заявленным требованиям безопасности, если же функ-

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

На рис. 1 показана модель соответствия СИВ (рис. 1), функциональное взаимодействие ее основных компонентов, а также существующие информационные потоки.

Основными компонентами системы интеллектуальной верификации соответствия ПО требованиям безопасности являются:

- комплекс средств анализа (анализатор), решающий задачи автоматизированной обработки предоставленных исходных данных в соответствии с определенной методикой;

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

- компилятор - необходим для подтверждения соответствия исходных текстов исполняемым файлам;

- подсистема определения ключевых характеристик, решающая задачи анализа

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

ИТ - исходные тексты; ФП - файл проекта; ИФ (ИФ) - исполняемые файлы;

СФ - список избыточных файлов; КС (КС) - контрольная сумма; ГВФ - граф вызова функций; ГПП - граф передачи переменных; МИ - матрица вызова информационных объектов;

УР - уровень контроля; БСА - блок-схема алгоритма программы;

СОК - список опасных конструкций

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

21

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

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

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

- выбор модели и расчет мощности искусственной нейронной сети (ИНС);

- обучение ИНС.

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

2 Методика обучения ИНС для

решения задачи верификации

Наиболее подходящими для решения задачи верификации из всего множества моделей ИНС являются нейронные сети прямого распространения сигнала, в которых наиболее подходящим и изученным является алгоритм обратного распространения ошибки [10, 11]. Он основан на расчете разницы между существующим весом нейронной сети и необходимым для получения требуемого результата на заранее определенном множестве входных сигналов, которое называется обучающим. Метод обратного распространения ошибки направлен на минимизацию разницы между реальным и ожидаемым выходами сети за счет изменения

весов синапсов. Пусть есть Р пар входных и выходных образов ((-, -), (x2, -2), ..., (xp, lp)),

= (xp, x2^ ..., xPl tP = (tp, ^ ..., tp) тогда

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

E=llXW - y k )2. (2)

2 p k

где tp - k-е значение в p-м выходном образе; yp - k-е значение в реальных выходных данных, полученных при подаче на вход p-го входного образа xp (k = 1, 2, ..., m).

Суммирование ведется по всем входным последовательностям xp, т. е. сначала через сеть пропускают все наборы входных сигналов x], Зс2, ..., х получая при этом наборы выходных сигналов — — ...,yp, а затем вычисляют Е. Метод обратного распространения ошибки заключается в изменении весов связей каждого слоя на величины, определяемые через полученное значение Е.

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

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

ISSN 1815-588Х. Известия ПГУПС

2012/3

22

Информационные технологии

g N +

Он

<D

s s a a о «

H о

s

ч

Область

несоответствия

Область

соответствия

XNs

н—

Ф

Оцениваемая характеристика

Рис. 2. График распределения значений характеристики безопасности

в обучающей выборке

0

1

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

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

Рис. 3. Функциональная схема генератора обучающих примеров

Результатом генерации примера является вектор Х [21], первые четыре элемента которого показывают уровень контроля безопасности, последний элемент представляет собой требуемый результат, а остальные элементы являются значениями характеристик программного обеспечения. За генерацию значений характеристик отвечает функция Fgen (Si, Cnt), в основе этой функции лежит биномиальный закон распределения, который позволяет акцентировать внимание ИНС на области переходного значения характеристики:

Fgen (Si) = P(Y < Si) =

pY

Si e{0; 1}.

(3)

При определении необходимости генерации корректного значения характеристики для указанного уровня контроля безопасности используется дополнительная матрица учета M (рис. 6).

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

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

23

Рис. 4. Алгоритм генерации обучающей матрицы:

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

Рис. 5. Алгоритм генерации примера:

М - матрица учета требования; Cnt - счетчик количества генераций; Lvl - уровень требований безопасности; Flag - значение соответствия; Fgen - функция генерации значения

ISSN 181 5-588Х. Известия ПГУПС

2012/3

24

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Информационные технологии

J

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1

1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0

1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0

Рис. 6. Матрица учета характеристик безопасности:

i - уровень контроля безопасности; j - номер характеристики программного обеспечения

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

Результатом генерации является матрица X, содержащая N обучающих примеров и матрица Y, содержащая N результатов:

У1,1 y1,2

^yN ,1 yN ,2 ^

(4)

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

В матрице X приведены также примеры для каждого уровня требований безопасности. Строки с 1-й по (N-1)-ю содержат приме-

4 ,N. „ Л N

ры для первого уровня, с (^)-й по (-^- - 1)-ю -для второго, с (^)-й по (^ - 1)-ю - для тре-

3N

тьего и с (^)-й по N-ю - соответственно для четвертого. Матрица Y определяет значения двух результирующих нейронов для каждого обучающего примера - строки из матрицы X. Опираясь на полученные значения вектора Y = {y1, y2}, где y1 е {0:1}, y2 е {0:1}, СИВ принимает решение о соответствии ПО требованиям безопасности согласно правилу:

X =

X1,1 • X1,4 X1,5 X1,20

XN --1,1 4 XN --1,4 4 XN --1,5 4 XN --1,20 4

XN 1 • 4 , XN —,4 4 XN 5 • 4 , XN —,20 4

X 2 N --1,1 4 X 2 N --1,4 4 X 2 N --1,5 4 X 2 N --1,20 4

X2 N 1 • 4 , X2N „ ,4 4 X 2 N 5 • 4 , X2 N —,20 4

X3 N —-1,1 4 X3 N —-1,4 4 X3 N —-1,5 4 X3 N —-1,20 4

X3 N 1 • 4 , X3N „ ,4 4 X3 N 5 • 4 , X3 N —,20 4

XN ,1 XN ,4 XN ,5 XN ,20

Решете =

соответствует, если ух > у2 - ylb; не соответствует, если У2>У\~ У^Ь\ (5) иначе — требует дополнительной проверки.

Теоретически все положительные решения должны быть сконцентрированы в области {1, 0}, а отрицательные - в области {0, 1}. Значения, которые нельзя отнести ни к одной из областей, являются неопределенными и требуют дополнительной экспертной проверки (рис. 7).

3 Практический эффект

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

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

25

множество содержало 2000 наборов характеристик, соответствующих требованиям безопасности и 2000 - не соответствующих. Значения этого множества подавались на вход обученной ИНС, а полученный результат сравнивался с известным. Полученные результаты полностью совпали с ожидаемыми (рис. 8).

При этом полученные значения были достаточно плотно распределены (рис. 9).

Была также проанализирована работа обученной нейронной сети в зависимости от уровня требований безопасности. Для этого были генерированы по 1000 примеров для каждого уровня. Эти значения были поданы на вход нейронной сети и во всех случаях принималось корректное решение (рис. 10).

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

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

^ ПО соответствует требованиям ^ ПО не соответствует требованиям Я ПО требует дополнительной проверки + Положительный результат О Отрицательный результат

Рис. 7. Правила принятия решения о безопасности ПО

Рис. 8. Распределение полученных результатов по решениям

ISSN 1815-588Х. Известия ПГУПС

2012/3

26

Информационные технологии

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

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

27

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

Rep = ./1 £ (a, - b, )2. (6)

V n ,=1

В серии из 4000 испытаний (по 1000 для каждого класса) среднеквадратичное отклонение полученного решения от эталонного составило менее 0,09, что составляет 6,4 % от максимально возможного отклонения (Rmax = 1,4142). При этом оцениваемое ПО в полной мере соответствовало всем требованиям безопасности, однако следует заметить: чем менее строгие требования предъявляются к ПО в рамках класса безопасности, тем больший разброс наблюдается в отклонении получаемых решений:

R4 = 0,0879, R3 = 0,0451,

4 3 (7)

R2 = 0,0427, R1 = 0,0285. w

Сравнение результатов работы СИВ, обученной в соответствии с классическим алгоритмом обратного распространения ошибок, и предложенным алгоритмом показало, что точность работы ИНС при решении задачи верификации увеличилась на 18,7 % (см. табл.).

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

Заключение

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

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

ТАБЛИЦА. Результаты тестирования ИНС

Параметры эксперимента Алгоритм обратного распространения ошибок Расширенный алгоритм обратного распространения ошибок

Класс безопасности

4 3 2 1 4 3 2 1

Количество элементов в выборке: положительных отрицательных 4000 4000

500 500 500 500 500 500 500 500

500 500 500 500 500 500 500 500

Количество верных решений 640 795 871 934 991 997 999 1000

Процент верных решений 64 79,5 87,1 93,4 99,1 99,7 99,9 100

Количество верных решений 3240 3987

Процент верных решений 81 % 99,7 %

ISSN 1815-588Х. Известия ПГУПС

2012/3

28

Информационные технологии

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

Нейронная сеть, обученная на примерах, генерированных в соответствии с принципами предложенного метода, показала высокие результаты по точности принимаемых решений. В ходе тестирования ее работоспособности установлено, что вероятность некорректного решения составила 6,4 %. Это означает, что только в шести случаях из ста потребуется вмешательство эксперта в работу СИВ. Причем 100 % неверных решений пришлись на четвертый и третий классы безопасности, имеющие наименьшее количество требований к оцениваемым характеристикам.

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

Библиографический список

1. IBM X-Force Threat Analysis / Аналитический отчет корпорации IBM за 2011 г. [Электронный ресурс]. - Режим доступа: http://www-935.ibm.com/services/us/index.wss/offering/iss/ a1026943.

2. Глобальное исследование утечек - Info-Watch / Аналитический отчет компании Info-Watch за 2010 г. [Электронный ресурс]. - Режим доступа: http://www.infowatch.ru/analytics/ reports. - 11 с.

3. Coverity scan: 2010 open source integrity report / Аналитический отчет компании Coverity за 2010 г. [Электронный ресурс]. - Режим доступа: http://www.coverity.com/html/press/coverity-scan-2010-report-reveals-high-risk-software-flaws-in-android.html. - 129 с.

4. Выявление уязвимостей программного обеспечения в процессе сертификации / А. С. Марков, С. В. Миронов, В. Л. Цирлов и др. // Информационное противодействие угрозам терроризма: научно-практический журнал. - 2006. - № 7. -С. 177-186.

5. Безопасность ПО компьютерных систем : монография / О. В. Казарин. - М. : МГУЛ, 2003. -212 с.

6. Automatic vulnerability detection using static source code analysis / A. Ivanov-Sotirov. - Alabama, 2005. - 108 pages.

7. Разработка методов и средств поисков уязвимостей при сертификационных испытаниях защищенных вычислительных систем : дис. ... канд. техн. наук : 05.13.19 : защищена 25.03.99 / С. С. Корт. - СПб. : СПбГПТУ, 1999. -120 с.

8. Принципы построения автоматизированной системы проведения верификации программного обеспечения / А. А. Корниенко, М. Л. Глу -харев // Известия Петербургского университета путей сообщения. - СПб. : Петербургский гос. ун-т путей сообщения, 2005. - Вып. 3 (5). -С. 69-74.

9. Secure programming with static analysis / Chess, Brian. - Addison-Wesley, 2007. - 588 pages.

10. Нейронные сети. Полный курс / С. Хай-кин. - М. : Издательский дом «Вильямс», 2006. -1104 с.

11. Нечеткая логика и искусственные нейронные сети / В. В. Круглов, М. И. Дли. - М. : Физматлит, 2001. - 224 с.

12. Применение искусственных нейронных сетей при поиске уязвимостей в исходных текстах программного обеспечения / И. А. Беляков // Известия Петербургского университета путей сообщения. - СПб. : Петербургский гос. ун-т путей сообщения, 2011. - Вып. 1 (26). -С. 120-129.

2012/3

Proceedings of Petersburg Transport University

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.