Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

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

#2 Февраль 2005

B

B.B. Корнеев, д-р техн. наук, А.И. Масалович, канд. техн. наук, Е.В. Савельева, А.Е. Шашаев, НИИ "КВАНТ"

 

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

 

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

 

1. Постановка проблемы

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

·        хорошо формализованных моделей, основанных на точных аналитических зависимостях;

·        экспертных систем с правилами типа "если А, то делай В";

·        нечеткой логики;

·        нейросетевых алгоритмов.

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

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

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

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

Далее в ходе эксплуатации нейросеть должна выявлять факты отклонения поведения программы от демонстрировавшегося при обучении, в том числе выполнение действий, которые однозначно трактуются как несанкционированные. Например, признаком наличия несанкционированных действий может считаться запись на диск по абсолютному адресу (CYL = О, Side = 1, SEC = 1 - Boot Sector), или использование прерывания INT = 21h, Func = 31h (запуск резидентной программы).

 

2. Постановка эксперимента

Применение нейросетей требует определения совокупности входов и выходов нейросети. Это самая трудная проблема в рассматриваемом подходе. Возможны различные варианты постановок задач. Например, в качестве входов можно выбрать некоторую совокупность регистров и ячеек памяти. Тогда значения, содержащиеся в регистрах и ячейках памяти в определенные моменты времени, будут образовывать входные векторы нейросети. В качестве фиксируемых моментов времени могут использоваться либо отсчеты астрономического времени, либо наступление прерываний (внутреннее время компьютера). В данной экспериментальной работе в качестве входов нейросети выбраны все функции прерывания 21Н (функции DOS), прерывания 10Н (функции работы с экраном) прерывания 13H (работа с дисковыми устройствами), 14Н (работа с СОМ-портами), 25Н и 26Н (абсолютные чтение и запись на диск). Использование большего числа контролируемых прерываний, с одной стороны, повысило бы точность распознавания, а с другой - сделало бы процесс обучения и тестирования более трудоемким.

В качестве несанкционированных действий рассматривались только запись в ВООТ-сектор и PARTITION TABLE, хотя можно определить и большее число контролируемых действий, например, обращение к СОМ-портам, floppy-дискам, определенным областям памяти. Ниже будет приведен пример нейросети, в которой имеются пять условных признаков наличия несанкционированных действий.

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

Значение каждого входа сети задает вероятность появления соответствующего входу прерывания при исполнении программы. Часть прерываний может характеризоваться самим фактом вызова этого прерывания. Этим входам соответствуют значения 1 или 0. Например, так задаются прерывания, соответствующие известным несанкционированным действиям.

Для эксперимента были выбраны примерно однотипные программы ARJ, LHA, PKZIP и некоторые утилиты CHKDSK, LONG, XCOPY и антивирус AIDSTEST.

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

Значения в остальных колонках соответствовали частотам вызываемых прерываний программ.

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

В качестве нейросети была применена трехслойная сеть из нейропакета BrainMaker [4] с одним внутренним слоем. Использованная нейросеть содержала внутренний слой с 84 нейронами и 7140 связями. В выходном слое было 7 нейронов и 595 связей.

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

 

PROG INT=VIR BOOT INT=21/19 INT-21/1A В INT-21/1C 4 INT=21/25 INT=21/2A

ARJ                 0.0000             0.0021             0.0712             0.0000             0.0304             0.0178

ARJ                 0.0000             0.0025             0.0709             0.0000             0.0367             0.0177

ARJ                 0.0000             0.0049             0.0394             0.0000             0.0714             0.0099

ARJ                 0.0000             0.0080             0.0239             0.0000             0.0677             0.0040

ARJ                 0.0000             0.0057             0.0227             0.0000             0.0511             0.0000

ARJ                 0.0000             0.0054             0.0435             0.0000             0.0788             0.0109

ARJ                 0.0000             0.0037             0.0375             0.0000             0.0562             0.0000

ARJ                 0.0000             0.0015             0.0623             0.0000             0.0697             0.0000

ARJ                 0.0000             0.0042             0.0169             0.0000             0.0381             0.0000

LHA                0.0000             0.0000             0.0020             0.0000             0.0082             0.0000

LHA                0.0000             0.0000             0.0012             0.0000             0.0025             0.0000

LHA                0.0000             0.0000             0.0115             0.0000             0.0092             0.0000

LHA                0.0000             0.0000             0.0216             0.0000             0.0108             0.0000

LHA                0.0000             0.0000             0.0216             0.0000             0.0108             0.0000

LHA                0.0000             0.0000             0.0216             0.0000             0.0108             0.0000

LHA                0.0000             0.0000             0.0216             0.0000             0.0108             0.0000

CHKDSK        0.0000             0.0022             0.0043             0.0000             0.0043             0.0000

CHKDSK        0.0000             0.0022             0.0043             0.0000             0.0043             0.0000

CHKDSK        0.0000             0.0037             0.0074             0.0000             0.0074             0.0000

CHKDSK        0.0000             0.0040             0.0080             0.0000             0.0080             0.0000

LONG             0.0000             0.0362             0.3553             0.0000             0.0822             0.0033

LONG             0.0000             0.0261             0.4022             0.0000             0.0466             0.0019

LONG             0.0000             0.0466             0.4275             0.0000             0.0031             0.0005

LONG             0.0000             0.0320             0.3198             0.0000             0.0727             0.0029

LONG             0.0000             0.0723             0.3017             0.0000             0.0517             0.0021

LONG             0.0000             0.0779                         0.2541             0.0000             0.1025             0.0041

XCOPY                       0.0000             0.0019             0.0019             0.0000             0.0038             0.0000

XCOPY                       0.0000             0.0270             0.0000             0.0000             0.0541             0.0000

XCOPY                       0.0000             0.0022             0.0022             0.0000             0.0044             0.0000

AIDSTEST                  0.0000             0.0.000            0.3348             0.0086             0.0258             0.0043

AIDSTEST                  0.0000             0.0000             0.0339             0.0339             0.1017             0.0169

AIDSTEST                  0.0000             0.0000             0.0850             0.0057             0.0170             0.0000

AIDSTEST                  0.00000                       0.0000             0.0993             0.0029             0.0088 0.0000

AIDSTEST                  0.0000             0.0000             0.1767             0.0016             0.0049             0.0000

 

3. Результаты экспериментов и анализ функционирования сети

В качестве примеров для тестирования были выбраны программные модули, которые позволили:

·        использовать архиваторы ARJ и LHA более поздних версий;

·        добавить примеры работы архиватора PKZIP, который не включался в примеры для обучения;

·        проводить запуск и анализ прерываний в другой программной среде;

·        в качестве фона работы программ использовать различные CACHE модули (Smartdrv, PcCache).

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

Интересно отметить тот факт, что изменение значения определенного входного нейрона в диапазонах 10—20 % от возможного минимума и максимума не вызывало значительных изменений в выходном результате.

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

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

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

Чем отличается работа "неизвестной" программы от "известной", если она не выполняет запрещенных действий, которые можно описать и натренировать на них нейросеть? Только частотой использования некоторых прерываний, отличающейся от частоты использования тех же прерываний известных программ.

Для эмуляции отчета действий неизвестных программ были подсчитаны минимум и максимум частоты вызова каждого прерывания из обучающего примера. Логично было бы предположить, что прерывания, которые вообще не использовались (min=max=0), могут оказать наиболее существенное влияние на обнаружение неизвестной программы, если она использует эти прерывания и сеть этому обучена. Однако, если придать этим нейронам большую значимость, то повышается вероятность ошибки принять известную программу за неизвестную, а маленькие веса данных нейронов не оказывают существенного влияния на распознавание.

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

·        разрешение на использование USE-[YES,NO];

·        условный класс программы CLASS=[EDIT, ARC или ANY для неизвестных программ].

Первая половина таблицы содержала статистику прерываний программ LEXICON, Multi Edit, Norton Editor, NCEdit, ARJ и LHA. Вторая половина содержала те же данные, но в колонках, где min=max=0 были проставлены случайные числа (эмуляция вызова нового прерывания) в диапазоне от 0.0001 до 0.1 сначала по одному, а потом по три на каждую строку.

За 3 ч обучения сети (Pentium-100) в первом случае при значении То1егапсе=0.1 сеть так и не нашла решения. Во втором случае сеть нашла решение за 10 мин, но при прогоне тестового примера было много ошибок как первого, так и второго рода, т.е. известные программы принимались за неизвестные и наоборот.

Третий эксперимент был основан на том, что частота использования прерываний обучаемых программ, которая варьируется в широком диапазоне (MAX-MIN > 0.1), в случае действия неизвестной программы тоже должна находиться в данном диапазоне от MIN до МАХ и тем самым данные колонки не окажут существенного влияния на распознавание.

Напротив, если частота использования прерываний варьируется в узком диапазоне (MAX-MIN < 0.1), то в случае действия неизвестной программы она может выйти из этого диапазона.

Таблицы чувствительности нейронов YES и NO

 

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

·        имя программы - UNKNOWN;

·        класс - ANY;

·        разрешение-NO.

В качестве тестовых примеров были выбраны статистические данные о работе обученных програм (LEXICON, Multi Edit, Norton Editor, NCEdit, ARJ, LHA) и необученных (PKZIP, PKUNZIP, RAR, LONG).

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

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

В некоторых тестовых примерах вероятности выходных значений NO, ANY и UNKNOWN, которые были проставлены на сгенерированных случайных векторах, были близки к 0. Но, учитывая, что тестируемые программы были одного класса с обученными, этот результат можно было предвидеть. Однако интрактивное изменение значений частот во входных параметрах привело к повышению вероятностей параметров NO, ANY и UNKNOWN. Для примера можно привести таблицы чувствительности нейронов YES и N0 (см. рисунок).

При добавлении еще одного внутреннего слоя с числом нейронов 49 повысилась вероятность ошибки 2 рода (вероятность идентифицировать неизвестную программу как известную).

Уменьшение числа нейронов в единственном внутреннем слое с 89 до 60 дало наиболее хорошие результаты.

* * *

В заключение сделаем выводы.

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

2. При постановке задачи распознавания известных программ и обнаружения фиксированных фактов несанкционированного доступа (НСД) достаточно использования аналога сети из первого эксперимента.

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

4. Увеличение числа выходов сети повышает точность распознавания. Окончательное решение должно приниматься на основе постобработки выходных данных.

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

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

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

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

·        возможна установка в компьютер платы-ускорителя нейросетевых вычислений, а также, возможно, сбора статистической информации. В этом случае появляется супервизорная система наблюдения за компьютером, которая в состоянии своевременно пресечь попытки НСД.

 

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

1. Расторгуев С. П. Программные методы защиты информации в компьютерах и сетях. М.: Изд-во Агентства "Яхтсмен", 1993, 188 с.

2. Корнеев В.В. Использование нейросетей для аутентификации классов пользователей, операторов, идентификации управляющих воздействий и технологических процессов в компьютерах // Сб. докл. Республиканской научно-технической конференции "Методы и технические средства обеспечения безопасности информации" 17-19 окт. 1995. С. 95-97.

3. Lawrence J. Introduction in Neural Networks: Design, Theory and Applications. California Scientific Software. 1994. 423 p.

4. California Scientific Software, 10024, Newtovvn Rd., Nevada City. Ca. 95959-9794, USA.

 

НЕИРОСЕТИ И НЕЙРОКОМПЬЮТЕРЫ

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ, № 10. 1997

 

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

Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2018 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)