ИСПОЛЬЗОВАНИЕ НЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙ ДЛЯ ИДЕНТИФИКАЦИИ АТАК В КОРПОРАТИВНЫХ ИНФОРМАЦИОННЫХ СЕТЯХ - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

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

Бибиков А.С. 1, Ивашкин Ю.А. 1
1МТУСИ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

Нейронные сети (НС) могут применяться в компонентах систем оповещения об атаках (СОА), а также в системах обнаружения уязвимостей (СОУ). С помощью многослойного персептрона решается задача распознавания реализации атаки на компьютерную систему. СОА на основании НС получили распространение, однако они обладают рядом существенных недостатков, которые ограничивают их практическую ценность [1]. К указанным недостаткам относятся: высокий уровень ложных тревог, сложность подбора оптимальных граничных параметров, сложность ввода в систему нового субъекта/объекта наблюдений, недостаточная адаптация ко многим особенностям современного состояния отрасли информационных технологий. Это свидетельствует о необходимости дальнейшего усовершенствования таких систем. При этом следует учитывать определенный прогресс в развитии теории НС, что должно отражаться в методике их использования в задачах защиты информации (ЗИ) [2].

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

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

Методика эксперимента

Построим обучающую выборку для многослойного персептрона, определяющего, «заражена» ли данная программа (ее исполняемый файл) «вирусом» или нет. Входными параметрами НС будут служить различные атрибуты и метаданные, извлеченные из PE-структуры (Portable Executable structure) исполняемого файла, так как они предоставляют достаточно много информации о коде внутри исполняемых файлов и которые могут помочь определить, является ли файл зараженным (любой зараженный файл имеет похожие значения атрибутов PE-структуры) [4]. Преимуществом такого подхода является то, что необходимая для обучения НС информация может быть получена без запуска исполняемого файла, что минимизирует риск заражения компьютерной системы вирусом.

PE-формат (Portable Executable) это формат всех 32- и 64-разрядных исполняемых файлов в ОС Windows. Такой формат имеют файлы EXE, DLL, SYS, DRV, MSSTYLE, MUI, CPL, OCX, BPL, DPL, SCR [5]. Каждый исполняемый файл формата PE состоит из множества взаимосвязанных структур, содержащих информацию о самом файле, об импортируемых и экспортируемых им функциях, о перемещаемых элементах, ресурсах и т. д. (рис. 1).

Каждый PE-файл состоит из вышеперечисленных элементов, они являются обязательными. Любой PE-файл состоит из нескольких заголовков и нескольких (от 1 до 96) секций [4]. Заголовки содержат служебную информацию, описывающую различные свойства исполняемого файла и его структуру. Секции содержат данные, которые размещаются в адресном пространстве процесса во время загрузки исполняемого файла в память [5].

Рис. 1. Структура PE-файла

Сверху находится MS-DOS заголовок и MS-DOS заглушка – наследие времен, когда происходил переход с DOS на Windows, поддерживающий новый PE-формат. Далее идет сигнатура PE-файла (4 байта: 'P', 'E', 0, 0), после которой начинается структура IMAGE_FILE_HEADER, содержащая в себе следующие поля [5]:

  1. Machine − архитектура, на которой может запускаться файл;

  1. NumberOfSections − количество секций в PE-файле. Допустимое значение от 1 до 0х60. Секция − это некая область памяти, обладающая определенными характеристиками и выделяемая системой при загрузке исполняемого файла;

  1. SizeOfOptionalHeader − размер структуры опционального заголовка в байтах;

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

Далее идет опциональный заголовок PE-файла. На самом деле, никакой он не опциональный, без него файл загружен не будет, хотя размер этого заголовка может варьироваться. Его основные поля [5]:

  1. Magic − для 32-разрядных PE-файлов это поле должно содержать значение 0х10B, а для 64-разрядных − 0х20B;

  •  
    1. AddressOfEntryPoint − адрес точки входа относительно базового адреса загрузки файла

(ImageBase);

  •  
    1. ImageBase − базовый адрес загрузки PE-файла. Если у файла имеется таблица перемещаемых элементов, то этот адрес может варьироваться, а ImageBase будет содержать лишь рекомендуемый адрес загрузки;

  •  
    1. FileAlignment и SectionAlignment − файловое и виртуальное выравнивание секций. В обязательном порядке должны быть выполнены следующие условия: SectionAlignment >= 0х1000; FileAlignment >= 0х200; SectionAlignment >= FileAlignment.

  •  
    1. SizeOfImage − это поле содержит размер в байтах загруженного образа PE-файла, который должен быть равен виртуальному адресу последней секции плюс ее виртуальный выровненный размер.

  •  
    1. SizeOfHeaders − размер всех заголовков. Это поле говорит загрузчику, сколько байт считать от начала файла, чтобы получить всю необходимую информацию для загрузки файла. Значение поля не должно превышать относительного виртуального адреса первой секции.

  •  
    1. CheckSum − контрольная сумма файла, которая проверяется загрузчиком только для самых важных системных файлов.

  •  
    1. Subsystem − подсистема файла. Самые распространенные − IMAGE_SUBSYSTEM_WIND OWS_GUI (GUI-интерфейс Windows) и IMAGE_SUBSYSTEM_WINDOWS_CUI (консольный интерфейс).

  •  
    1. SizeOfStackReserve и SizeOfStackCommit, SizeOfHeapReserve и SizeOfHeapCommit −

размер соответственно стека и кучи, которые должны быть зарезервированы и выделены для PE-

файла. 0 − значение по умолчанию; в случае, если SizeOfStackCommit > SizeOfStackReserve или SizeOfHeapCommit > SizeOfHeapReserve, то файл загружен не будет.

Для извлечения атрибутов и метаданных из PE-структуры исполняемых файлов используется программа PE Explorer, которую можно скачать на официальном сайте [6]. Исполняемые файлы, как «чистые», так и зараженные вирусами, были предоставлены отделами информационной безопасности СП ЗАО «IBA Group». Обучающая выборка была составлена из метаданных 100 файлов. Все файлы поочередно загружались в PE Explorer, откуда их атрибуты

  • метаданные в шестнадцатеричном представлении сохранялись в Excel-таблицу. Сравнительный анализ атрибутов и метаданных чистых и зараженных вирусами файлов

показал, что значения некоторых полей, составляющих структуру PE-файла, представленную на рис. 1, являются одинаковыми для обоих типов файлов. Такими полями являются: PointerToSymbolTable, NumberOfSymbols, SizeOfOptionalHeader, Magic, BaseOfCode, ImageBase, SectionAlignment, Win32VersionValue, Subsystem, SizeOfStackReverse, SizeOfHeapCommit,

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

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

Итоговая выборка состоит из таких полей, как NumberOfSections, TimeDateStamp, Characteristics, LinkerVersion, SizeOfCode, SizeOfInitializedData, SizeOfUninitializedData, AdressOfEntryPoint, BaseOfData, FileAlignment, OperatingSystemVersion, ImageVersion, SubsystemVersion, SizeOfImage, SizeOfHeaders, Checksum, DllCharacteristics, SizeOfStackCommit. Обучение сети проводится с использованием SPSS Statistics – ПО компании IBM и предназначенного для статистической обработки информации и данных, а также являющегося лидером среди программных продуктов для статистического анализа.

  • SPSS Statistics предусмотрены два вида нейронной сети: многослойный персептрон и радиальная базисная функция. Многослойный персептрон в SPSS Statistics может содержать одну или более зависимых величин, значения которых определяются как функции независимых величин. Зависимые величины могут быть: номинальные, или категориальные; ординальные, или порядковые; численные. Независимые величины могут быть как категориальными, так и

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

Многослойный персептрон в SPSS Statistics может иметь один или два скрытых слоя. Количество нейронов в скрытых слоях может быть определено автоматически программой или установлено вручную. Активационная функция может быть четырех видов: единичная

активационная

функция

 ( с)  c ;

логистическая

функция

 (с ) 

 

eck

   

,

применяется для

 

c j

   
               

k

             
                 

c j

               

категориальных

величин;

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

тангенс

 (с)  th(c) 

 

(e c

ec)

,

преобразует

 
 

(e c

ec)

 
                                 
             

сигмоида  (с) 

 

1

         

реальные значения аргументов к

диапазону

 

(1,1) ;

     

,

преобразует

 
             
                       

(1  ec )

   

значения аргументов к диапазону (0,1) .

  • обучаемой НС будет 18 входных нейронов и 1 выходной. SPSS Statistics предлагает два варианта обучения многослойного персептрона: с одним либо с двумя скрытыми слоями, для решения задачи защиты информации будет обучать персептрон с двумя скрытыми слоями, в первом из которых будет три нейрона, а во втором – два.

  • SPSS Statistics предусмотрены три режима обучения многослойного персептрона.

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

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

  • этом случае наиболее эффективен Online-режим.

  •  
    1. Mini-batch-режим. Разбивает обучающую выборку на группы приблизительно одинакового размера, после чего подстраивает веса после «прогона» каждой группы обучающих примеров по НС. Данный режим обучения отлично подходит для выборок, средних по величине.

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

Результаты.

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

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

Табл. 1 отражает информацию о конфигурации НС, а также о типе используемых активационной функции и функции ошибок.

Рис. 2. Конфигурация многослойного персептрона

Таблица 1. Конфигурация нейронной сети,типы активацинной функции и функции ошибок

     

Network Information

 
           

Input Layer

 

Covariates

1

Number of sections

           
     

2

Time Date Stamp

           
     

3

Characteristics

           
     

4

Linker Version

           
     

5

Size of Code

           
     

6

Size of Initialized data

           
     

7

Size of Uninitialized data

           
     

8

Adress of Entry Point

           
     

9

Base of Data

           
     

10

File Alignment

           
     

11

Operating System Version

           
     

12

Image Version

           
     

13

Subsystem Version

           
     

14

Size of Image

           
     

15

Size of Headers

           
     

16

Checksum

           
     

17

Dll Characteristics

           
     

18

Size of Stack Commit

           
       

Number of Units

18

           
       

Rescaling Method for Covariates

Standardized

           

Hidden Layer(s)

     

Number of Hidden Layers

2

           
       

Number of Units in Hidden Layer 1

3

           
       

Number of Units in Hidden Layer 2

2

           
       

Activation Function

Hyperbolic tangent

         

Output Layer

 

Dependent Variables

1

STATE

           
   

Number of Units

   

1

       
   

Rescaling Method for Scale Dependents

Adjusted normalized

           
   

Activation Function

   

Hyperbolic tangent

           
   

Error Function

   

Sum of Squares

           

Таблица 2.Описание результатов модели

 

Model Summary

       

Training

Sum of Squares Error

2,429

       
 

Relative Error

0,071

       
 

Stopping Rule Used

 

1 consecutive step(s) with

     

no decrease in errora

 

Training Time

0:00:00.047

       

Testing

Sum of Squares Error

2,577

       
 

Relative Error

0,266

       

Holdout

Relative Error

0,001

Dependent Variable: STATE

Error computations are based on the testing sample

Табл. 2 отображает результаты обучения и применения НС к контрольной выборке исполняемых файлов.

Рис. 3. Результаты предсказания состояний исполняемых файлов из тестовой выборки на этапе дообучения НС

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

Заключение

Рассмотрены основные нейросетевые структуры, используемые для решения задачи ЗИ. Построена выборка атрибутов и метаданных исполняемых файлов двух состояний: чистых и зараженных вирусом. Данная выборка использовалась для обучения многослойного персептрона – наиболее распространенной нейросетевой структуры. Обучение проводилось в SPSS Statistics – программе, произведенной компанией IBM и предназначенной для статистической обработки информации и данных.

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

Список литературы

  1. Головко В.А. Нейронные сети: обучение, организация и применение.М., 2001.

  1. Вишняков В.А. Информационное управление и безопасность: методы, модели, программно-аппаратные решения. Минск, 2014.

  1. Bishop C.M. Neural Networks for Pattern Recognition. Oxford, 1955.

  1. Shivani Shah, Himali Jani, Sathvik Shetty et.al. // International Journal of Computer Applications. 2013. Vol.84, № 5. P. 17–23.

  1. Matt Pietrek «Peering Inside the PE: A Tour of the Win32 Portable Executable File Format» [Электронный

ресурс]. − Режим доступа : https://msdn.microsoft.com/en-us/library/ms809762.aspx. Дата доступа: 10.12.2017.

  1. Программа PE Explorer [Электронный ресурс]. − Режим доступа: http://www.pe-explorer.com/. Датадоступа: 10.12.2017.

Просмотров работы: 58