|
Скачать 205.42 Kb.
|
ISBN 978-5-7262-1226-5. НЕЙРОИНФОРМАТИКА – 2010. Часть 2 С.В. БЕЗОБРАЗОВ, В.А. ГОЛОВКО Брестский государственный технический университет, Республика Беларусь bescase@gmail.com, [email protected] АЛГОРИТМЫ ИСКУССТВЕННЫХ ИММУННЫХ СИСТЕМ И НЕЙРОННЫХ СЕТЕЙ ДЛЯ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ПРОГРАММ В работе представлены архитектура нейросетевого иммунного детектора, входящего в состав нейросетевой искусственной иммунной системы для обнаружения вредоносных программ, а также алгоритмы его обучения и функционирования. ^ нейросетевой искусственной иммунной системы для обнаружения вредоносных программ Рассмотрим процессы генерации, обучения, отбора и функционирования иммунных детекторов на основе нейронных сетей. Представим нейросетевой иммунный детектор (НИД) в виде черного ящика, который имеет n-входов и два выхода (рис. 1). ![]() Рис. 1. Нейросетевой иммунный детектор В (1) ыходные значения детектора формируются после подачи всех ![]() Обучающая выборка формируется из чистых файлов (класс чистых программ) и вредоносных программ (класс вредоносных программ). Желательно также иметь представителей всех типов вредоносных программ – черви, троянские программы, макровирусы и т.д. [5]. При обучении нейронной сети [6] указываем, где данные из чистых файлов, а где из вредоносных программ. П (2) усть ^ – множество вредоносных ф ![]() айлов. Из них случайным образом формируется множество входных образов для обучения i-го детектора. г (3.2) де L – размерность обучающей выборки. С ![]() (3.3) (3) оответственно, множество эталонных образов выглядят следующим образом: ![]() (4) талонные выходные значения для i-го детектора формируются следующим образом: (3.4) О (5) бучение каждого детектора осуществляется с целью минимизации суммарной квадратичной ошибки детектора. Суммарная квадратичная ![]() где Zijk – значение j-го выхода i-го детектора при подаче на вход его k-го образа. Общий алгоритм функционирования нейросетевой иммунной системы [1] можно представить в виде следующей последовательности: 1. Генерация начальной популяции иммунных детекторов, каждый из которых представляет собой искусственную нейронную сеть со случайными синаптическими связями: ![]() (6) г (3.6) де Di – i-й нейросетевой иммунный детектор, r – общее количество детекторов. 2. Обучение сформированных иммунных нейросетевых детекторов. Обучающая выборка формируется случайным образом из совокупности чистых файлов (как правило, это разнообразные системные утилиты операционной системы), и из совокупности вредоносных программ, или их сигнатур. Эталонные выходные значения нейронной сети формируются согласно (4). 3. Отбор (селекция) нейросетевых иммунных детекторов на тестовой выборке. На данной итерации уничтожаются те детекторы, которые оказались неспособны к обучению, и детекторы, в работе которых наблюдаются различные недостатки (например, ложные срабатывания). Для этого каждый детектор проверяется на тестовой выборке. В результате для каждого детектора определяется значение квадратичной ошибки Ei (5). ![]() (7) елекция детектора производится следующим образом: где 0 обозначает операцию уничтожения детектора. 4. Каждый детектор наделяется временем жизни и случайным образом выбирает файл для сканирования из совокупности файлов, которые он не проверял. 5. Сканирование каждым детектором выбранного файла, в результате которого определяются выходные значения детекторов Zi1, Zi2, i=1,…,r. 6. Если i-й детектор не обнаружил вирус в сканируемом файле, т.е. Zi1=1 и Zi2=0, то он выбирает следующий файл для сканирования. Если время жизни i-го детектора закончилось, то он уничтожается и вместо него генерируется новый детектор. 7 (8) . Если i-й детектор обнаружил вирус в сканируемом файле, т.е. Zi1=0 и Zi2=1, то подается сигнал об обнаружении вредоносного файла и осуществляются операции клонирования и мутации соответствующего детектора. Операция мутации заключается в дополнительном обучении детекторов-клонов на обнаруженном вредоносном файле. В результате создается совокупность детекторов, настроенных на обнаруженную вредоносную ![]() 8 (3.8) . Отбор клонированных детекторов, которые являются наиболее приспособленными к обнаружению вредоносной программы. Если Eij < Ei, то детектор прошел отбор. Здесь Eij – суммарная квадратичная ошибка j-го клона i-го детектора, которая вычисляется на вредоносном файле. 9. Детекторы-клоны осуществляют сканирование файлового пространства компьютерной системы до тех пор, пока не произойдет уничтожение всех проявлений вредоносной программы. 10. Формирование детекторов иммунной памяти. На этой итерации определяются нейросетевые иммунные детекторы, показавшие наилучшие результаты при обнаружении присутствующего в компьютерной системе вируса. Детекторы иммунной памяти находятся в системе достаточно длительное время и обеспечивают защиту от повторного заражения. Особенностью предложенного алгоритма является то, что каждый нейросетевой иммунный детектор является полностью самостоятельным объектом. Он случайным образом выбирает файл из списка для его проверки. После проверки одного файла детектор переходит к следующему случайно выбранному файлу. При этом соблюдается принцип децентрализации системы безопасности, построенной на основе комбинации методов нейронных сетей и искусственных иммунных систем, что значительно повышает отказоустойчивость и защищенность системы в целом. ^ В процессе циркуляции НИД происходит их непрерывная эволюция путем уничтожения старых и формирования новых детекторов [1]. После генерации новых детекторов происходит процесс их обучения, трудоемкость которого пропорциональна размерности обучающей выборки. Поэтому для увеличения быстродействия нейросетевой искусственной иммунной системы необходимо выбрать такой класс нейронной сети, который характеризуется минимальным размером обучающей выборки. Рассмотрим многослойный персептрон [6, 7], который состоит из n нейронов распределительного слоя, m нейронов скрытого слоя и 2 нейронов выходного слоя. Общее количество настраиваемых параметров (весовых коэффициентов и пороговых значений) в такой сети определяется следующим ![]() (9) бразом: (3.9) Д (10) ля хорошей классификации размер обучающей выборки должен оп ![]() где – допустимая точность классификации. Пусть n = 128, m = 10 и = 0,1. Тогда L ≈13120. Аналогичный результат можно получить для мультирекуррентных нейронных сетей [10, 11]. Р (11) ассмотрим аналогичную сеть встречного распространения [6, 7] с идентичным количеством нейронных элементов в слоях. В скрытом слое будем использовать нейронные элементы Кохонена. В этом случае нет жестких требований к размерности обучающей выборки. Достаточно, ![]() П (3.11) оэтому выберем в качестве основы нейросетевого иммунного детектора нейронную сеть встречного распространения. На рис. 2 изображена архитектура нейросетевого иммунного детектора, который состоит из трех слоев нейронных элементов и арбитра. На вход такого детектора в режиме функционирования подаются фрагменты проверяемого файла, которые формируются в соответствии с методом скользящего окна. Первый слой нейронных элементов является распределительным. Он распределяет входные сигналы на нейронные элементы второго (скрытого) слоя. Количество нейронных элементов распределительного слоя равняется размерности скользящего окна. Второй слой состоит из нейронов Кохонена, которые используют конкурентный принцип обучения и функционирования в соответствии с правилом «победитель берет все» [6, 7]. Третий слой состоит из двух линейных нейронных элементов, которые используют линейную функцию активации. Арбитр осуществляет процедуру окончательного решения о принадлежности сканируемого файла к вирусному или чистому классу. ![]() Рис. 2. Нейросетевой иммунный детектор Рассмотрим выбор количества нейронов в слое Кохонена. Нейронный слой Кохонена осуществляет кластеризацию входного пространства образов, в результате чего образуются кластеры различных образов, каждому из которых соответствует свой нейронный элемент. Количество нейронов слоя Кохонена равняется m. Причем ![]() (3.12) (12) де p – количество первых нейронов слоя Кохонена, которые соответствуют классу чистых программ, r – количество последних нейронов слоя Кохонена, активность которых характеризует класс вредоносных программ. При обучении нейросетевых иммунных детекторов используется обучающая выборка, состоящая из 80% образов чистого класса и из 20% образов вредоносного класса. Данное соотношение классов (1:4) было получено экспериментальным путем и показало наилучшие результаты [4]. Алгоритм формирования обучающей выборки состоит в следующем:
Для обучения нейронов слоя Кохонена используется контролируемое конкурентное обучение [6, 7]. При таком обучении весовые коэффициенты нейрона победителя модифицируются только тогда, когда происходит корректная классификация входного образа, т.е. входной образ соответствует заданному множеству нейронов в слое Кохонена. Так как в слое Кохонена используется p нейронов для чистых входных образов и r нейронов для вредоносных входных образов, то корректная классификация происходит, если при подаче на вход сети чистого фрагмента победителем является один из первых p нейронов слоя Кохонена. Аналогичным образом корректная классификация происходит, если при подаче на вход сети вирусного фрагмента победителем является один из r последних нейронов слоя Кохонена. В остальных случаях происходит некорректная классификация. П (13) усть P и J характеризуют соответственно чистый и вредоносный файл. Тогда правило корректной классификации можно представить в ![]() г (3.16) де Т обозначает корректную классификацию. П (14) ри корректной классификации весовые коэффициенты нейрона- ![]() (3.17) а при некорректной классификации ослабляются: ![]() (15) где γ – шаг обучения. Алгоритм обучения слоя Кохонена состоит из следующих шагов:
(3.19) (16) ![]() где ![]()
Т (18) ретий слой, состоящий из двух линейных нейронных элементов, осуществляет отображение кластеров, сформированных слоем Кохонена, в два класса, которые характеризуют чистые и вирусные входные образы. ![]() где ωij – весовой коэффициент между i-м нейроном слоя Кохонена и j-м нейроном линейного слоя. Е (19) сли нейрон-победитель в слое Кохонена имеет номер k, то выходное ![]() Д (3.24) (3.25) ля соответствующего отображения входных образов в два класса ![]() (20) атрица весовых коэффициентов третьего слоя должна формироваться следующим образом: Так, например, для p=8 и r=2, получается следующая матрица весовых коэффициентов: ![]() (21) А (3.26) рбитр принимает окончательное решение о том, является ли сканируемый файл вредоносным. Для этого он вычисляет количество чистых и ![]() (22) ледующими выражениями: ![]() (3.29) (3.30) (23) де L – множество образов сканируемого файла, Yik – выходное значение i-го нейрона линейного слоя при подаче на вход сети k-го образа. Д (24) алее определяются вероятности принадлежности сканируемого файла соответственно к чистому и вредоносному классу: ![]() (25) ![]() О (3.32) (26) кончательное решение о принадлежности файла к чистому классу ![]() (3.33) ![]() (3.34) (27) оответственно, решение о принадлежности сканируемого файла к ![]() Пространство выходных значений арбитра представлено в табл. 1. Если выходные значения арбитра имеют нулевые значения, то сканируемый файл отправляется на дополнительную проверку другому нейросетевому иммунному детектору. Таблица 1 ^
^ В процессе сканирования проверяемого файла на нейросетевой детектор последовательно подаются фрагменты файла по методу скользящего окна. Алгоритм функционирования нейросетевого иммунного детектора в режиме сканирования файла можно свести к следующей последовательности шагов: 1. Устанавливаются следующие начальные значения: ![]() (28) 2. По методу скользящего окна последовательно подаются входные образы (k=1,L) из сканируемого файла на нейронную сеть и для каждого входного образа производятся следующие вычисления:
3 (3.36) (3.37) . Вычисляются вероятности принадлежности сканируемого файла соответственно к чистому и вредоносному классу (формулы (24) и (25) соответственно). 4. На основании вычислений вероятностей принимается решение о принадлежности сканируемого файла к одному из классов, в соответствии с выражениями (26) и (27). 5. Если Z1=0 и Z2=0, то назначается другой нейросетевой иммунный детектор для повторной проверки файла. ^ В табл. 2 представлены результаты сравнительного анализа обнаружения вредоносных программ различными антивирусными продуктами. Для теста были выбраны следующие антивирусные продукты: Антивирус Касперского [8] с актуальными вирусными базами; Антивирус Касперского с устаревшими вирусными базами; антивирусный продукт NOD 32 [9] с отключенными вирусными базами, но с задействованным эвристическим анализатором; и разработанная нами нейросетевая искусственная иммунная система. В таблице «OK» означает решение антивирусной программы о том, что файл является чистым. Как видно из полученных результатов, антивирус с актуальными вирусными базами обнаружил все вредоносные программы, которые использовались в эксперименте. Это объясняется тем, что в антивирусных базах содержались сигнатуры используемых в эксперименте вредоносных программ. Антивирус с устаревшими базами обнаружил только половину присутствующих вирусов, что наглядно отражает неспособность сигнатурного метода обнаруживать неизвестные вредоносные программы. Антивирус NOD 32, который использовал эвристический анализатор, обнаружил только семь вирусов, что является очень низким показателем для надежной современной системы безопасности и отражает проблемную ситуацию обнаружения неизвестных вредоносных программ с помощью эвристических методов. Искусственная иммунная система показала наилучшие результаты. Один нейросетевой иммунный детектор способен обнаруживать несколько вредоносных программ. Причем детектор приобретает способность обнаруживать принципиально новые вредоносные программы. Рассмотрим приближенную оценку вероятности обнаружения вредоносных программ нейросетевой искусственной иммунной системой. Пусть Pi – вероятность обнаружения вредоносного файла i-м детектором. П (31) ри сканировании файлового пространства r независимыми детекторами ![]() (4.1) О (32) тсюда можно получить следующее выражение для оценки вероятности обнаружения вредоносной программы нейросетевой иммунной сис ![]() Таблица 2 ^
К (4.2) ак следует из последнего выражения, с увеличением количества детекторов увеличивается вероятность обнаружения вредоносной программы. Рассмотрим приближенную оценку количества детекторов для заданной достоверности обнаружения вредоносной программы P(r). Предположим, что вероятность обнаружения вредоносной программы каждым ![]() (33) етектором приблизительно одна и та же и равняется ^ (r) можно получить приближенную оценку количества детекторов в иммунной системе: ![]() Рассмотрим теоретическую и экспериментальную оценки вероятности обнаружения вредоносной программы в зависимости от количества детекторов. Экспериментальная оценка такова: ![]() (4.5) (35) де k=1,r, r – общее количество детекторов, n(k) – количество вредоносных программ, обнаруживаемых k-детекторами, n – общее количество вредоносных программ. Для получения приближенной теоретической оценки необходимо определить вероятность обнаружения детектором вредоносной программы. Предположим, что вероятность обнаружения вредоносной программы каждым детектором является приблизительно одинаковой и равняется P0. Тогда, согласно выражению (33) ![]() (4.6) (36) П (37) усть r = 24, тогда P(r) = 0,78. Отсюда P0 = 0,0325. Тогда теоретическая оценка вероятности обнаружения вредоносной программы в зависи ![]() На рис. 3 приведены результаты экспериментальной и теоретической вероятности обнаружения вредоносной программы в зависимости от количества детекторов. Как следует из рисунка, теоретическая вероятность хорошо аппроксимирует экспериментальную вероятность обнаружения вредоносных программ. P k ![]() Р k ис. 3. Вероятности обнаружения вредоносных программ детекторами Выводы Разработана структура нейросетевого иммунного детектора для обнаружения вредоносных программ, которая состоит из трех слоев нейронных элементов и арбитра. Она характеризуется малым объемом обучающей выборки и отношением количеств нейронов чистого и вредоносного классов в слое Кохонена как 4:1. Предложенный нейросетевой иммунный детектор способен обнаруживать неизвестные вредоносные программы. Список литературы
УДК 004.032.26(06) Нейронные сети |