4. Постановка задачи обнаружения атак

advertisement
Московский Государственный Университет
им. М.В. Ломоносова.
Факультет Вычислительной Математики и Кибернетики.
Дипломная работа.
“ Разработка анализатора системы
обнаружения атак, основанного на методах
кластерного анализа”
студент 522 гр. Наградов Е.А
Научный руководитель:
д.ф.-м.н., проф. Смелянский Р.Л.
Москва, 2007 г.
Аннотация
В данной работе исследуется эффективность применения алгоритмов кластерного
анализа для решения задачи обнаружения сетевых атак и рассматривается реализация
анализатора системы обнаружения атак на основе методов кластерного анализа.
2
Содержание
1.
Введение .................................................................................................................................5
2.
Цель дипломной работы .....................................................................................................10
3.
Модель предметной области ..............................................................................................11
4.
Постановка задачи обнаружения атак ...............................................................................13
5.
Применение методов кластерного анализа для обнаружения атак ................................15
6.
5.1.
Этап обучения ..............................................................................................................15
5.2.
Этап обнаружения .......................................................................................................16
Обзор методов кластерного анализа ..................................................................................18
6.1.
Цели обзора ..................................................................................................................18
6.2.
Классификация методов .............................................................................................19
6.3.
Иерархические методы ...............................................................................................21
6.4.
Методы разбиения .......................................................................................................22
6.4.1.
Методы минимизации квадратичной ошибки ..................................................22
6.4.2.
Методы построения графа ..................................................................................23
6.4.3.
Методы, использующие нечеткие кластеры .....................................................24
6.5.
7.
8.
9.
Результаты обзора .......................................................................................................25
Тестирование алгоритмов ...................................................................................................26
7.1.
Исследование применимости инкрементальных алгоритмов .................................26
7.2.
Исследование применимости иерархических алгоритмов ......................................30
7.3.
Исследование применимости неинкрементальных алгоритмов .............................32
7.4.
Тестирование алгоритма Fuzzy c-means ....................................................................35
7.5.
Результаты тестирования алгоритмов .......................................................................37
Программная реализация анализатора системы обнаружения атак ...............................37
8.1.
Инфраструктура анализатора .....................................................................................37
8.2.
Схема работы анализатора .........................................................................................39
8.2.1.
Этап обучения ......................................................................................................40
8.2.2.
Этап обнаружения ...............................................................................................43
Тестирование реализованного анализатора на данных KDD..........................................45
9.1.
Тестирование анализатора на обучающей выборке, не содержащей векторов,
соответствующих атакам ........................................................................................................45
3
9.2.
Тестирование анализатора на обучающей выборке, содержащей вектора,
соответствующие атакам ........................................................................................................47
9.3.
Анализ результатов .....................................................................................................48
Интеграция анализатора в состав СОА МРВС-И .........................................................50
10.
10.1.
Описание входных данных .........................................................................................50
10.2.
Функционирование анализатора в составе СОА ......................................................50
10.3.
Интеграция анализатора в состав системы обнаружения атак ...............................50
10.4.
Тестирование в составе СОА .....................................................................................52
10.4.1.
Обучение анализатора .........................................................................................52
10.4.2.
Тестирование........................................................................................................52
11.
Полученные результаты..................................................................................................54
12.
Заключение.......................................................................................................................55
12.1.
Ограничения применимости .......................................................................................55
12.2.
Дальнейшее развитие разработанного подхода .......................................................55
13.
Список литературы ..........................................................................................................57
4
1. Введение
В данной работе рассматривается применение методов кластерного анализа для
решения задачи обнаружения атак. Оба направления имеют некоторую предысторию,
также существуют предположения о применимости кластерного анализа для обнаружения
атак. Далее в этом разделе приводится описание принципов функционирования систем
обнаружения атак, их основных достоинств и недостатков.
В связи с широким распространением информационных систем, в 90-х годах
появилась
необходимость
обеспечения безопасности информационных систем и
обнаружения атак на информационные системы. Бурное развитие систем обнаружения
атак началось в середине 90-х годов. В конце 90-х годов появляются две системы
обнаружения атак: система с открытым исходным кодом Snort [1], и коммерческая
система RealSecure [2]. Эти системы использовали в своей работе базу знаний, задаваемую
экспертом, поэтому они получили название экспертных систем [3].
Экспертные системы обнаружения атак, как правило, используют сигнатурные
методы для обнаружения атак. При условии своевременного обновления базы сигнатур,
такие системы показывают высокую эффективность обнаружения атак, вследствие чего
они
широко
распространены
в
настоящий
момент.
Например,
существуют
высокопроизводительные системы обнаружения атак, такие как Sentarus IPS [4],
использующие код системы Snort.
Сигнатурные
методы
описывают
атаку на
систему с
помощью
правил
специального вида, называемых сигнатурами. В качестве сигнатуры может применяться
строка символов, семантическое выражение на специальном языке или формальная
математическая модель [5]. Принцип работы сигнатурных методов основан на проверке
наличия сигнатур, представленных в базе сигнатур системы обнаружения атак, в
анализируемых входных данных. В том случае, когда в анализируемых входных данных
обнаруживается сигнатура атаки, система фиксирует факт совершения атаки.
Сигнатурные методы обладают высокой эффективностью при обнаружении
известных атак. Кроме того, достоинством сигнатурных методов является высокая
скорость работы при небольшом размере базы сигнатур. Но, сигнатурные методы
обладают рядом недостатков: проблемы выделения сигнатур, проблемы одновременного
использования большого количества сигнатур. Существенным недостатком сигнатурных
методов является невозможность обнаружения модифицированных и неизвестных
системе атак. С этим недостатком связана необходимость постоянного обновления базы
5
сигнатур системы обнаружения атак, использующей сигнатурные методы. Однако даже
периодические обновления системы не обеспечивают «защиты нулевого дня» [6] возможность обнаружения атаки на систему до появления сигнатуры соответствующей
атаки. В связи с этим возникает необходимость в исследовании альтернативных подходов
к обнаружению атак.
Альтернативой экспертных систем являются статистические системы обнаружения
атак [7]. Принцип работы статистических систем обнаружения атак основан на
построении статистической модели активности наблюдаемой системы и сравнении
текущего состояния наблюдаемой системы с построенной моделью активности системы.
Состояние наблюдаемой системы задается совокупностью вычисляемых статистических
характеристик системы.
Статистические системы обнаружения атак основаны на предположении о том, что
сходные действия, совершаемые в системе, осуществляются сходным набором
наблюдаемых операций (например, системные вызовы, сетевые взаимодействия), и при
наблюдении таких операций могут быть получены сходные статистики. Кроме того,
предполагается, что нормальное поведение системы, т.е. функционирование системы в тот
период времени, когда она не подвержена атакам, может быть статистически отличимым
от поведения системы в момент совершения атаки на систему. Таким образом, среди
состояний наблюдаемой системы можно выделить нормальные состояния и состояния
системы во время атаки на систему.
Методы, применяемые в системах обнаружения атак, обычно используют один из
следующих подходов:

подход обнаружения злоупотреблений,

подход обнаружения аномалий.
Подход обнаружения злоупотреблений заключается в обнаружении атак на
основании информации об атаках, примеры которых были представлены системе при
обучении. Накопление информации об атаках выполняется посредством построения
статистической модели атак на информационную систему – модели, описывающей
поведение наблюдаемой системы в процессе совершения атаки. Обучение систем
обнаружения атак, использующих подход обнаружения злоупотреблений, обычно
проводится на примерах атак и нормального поведения. Функционирование таких систем
заключается в выявлении состояний системы, которые сходны с примерами атак,
представленными при обучении. Примером такой системы обнаружения атак является
СОА Невод [8] в которой используются механизмы нейронных и иммунных сетей.
6
К достоинствам методов, использующих подход обнаружения злоупотреблений,
можно отнести высокую точность обнаружения известных системе атак, а также
способность обнаруживать некоторые неизвестные атаки, воздействие которых на
систему сходно с примерами атак, которые представлены системе во время обучения.
Подход обнаружения аномалий заключается в обнаружении аномалий активности
системы на основании информации только лишь о нормальном поведении системы.
Обучение систем обнаружения атак, использующих такой подход, проводится только на
примерах,
соответствующих
нормальным
состояниям
системы.
В
процессе
функционирования система обнаружения атак анализирует состояния наблюдаемой
системы и выявляет аномальные состояния - состояния, сильно отличающиеся от
состояний, представленных системе при обучении.
В отличие от подхода обнаружения злоупотреблений, методы, основанные на
подходе обнаружения аномалий, могут лишь обнаружить аномальное поведение системы,
но не могут классифицировать обнаруженную аномалию (например, как атаку одного из
классов атак). Достоинством подхода обнаружения аномалий является способность
обнаруживать ранее неизвестные атаки в том случае, когда поведение системы в процессе
атаки
является
статистически
отличимым
от
нормального
поведения
системы,
отраженного в построенной модели нормального поведения.
Особенность подхода обнаружения аномалий заключается в том, что обучение
производится только на примерах нормального поведения, что позволяет производить
сбор данных для обучения системы (обучающую выборку) в процессе работы системы.
Методы, использующие подход обнаружения аномалий, используют предположение о
том, что в обучающей выборке содержится достаточно малое количество статистических
данных, характерным атакам.
Основными
недостатками,
характерными
подходу обнаружения
аномалий,
являются высокая степень ошибок второго рода и неспособность работать в средах, для
которых характерна высокая изменчивость, т.е. высокая степень изменения нормального
поведения в процессе функционирования системы. Например, эффективность СОА,
наблюдающих за поведением процессов системы, уменьшится при добавлении в систему
новых процессов либо при изменении конфигурации системы, и для дальнейшего
функционирования потребуется дообучить систему. К недостаткам подхода обнаружения
аномалий также можно отнести сильное влияние шума в обучающей выборке –
статистических данных характерных поведению системы при атаке, на эффективность
обнаружения атак.
7
Одним из методов, реализующих подход обнаружения аномалий, является метод,
использующий
представление
модели
нормального
поведения
системы
в
виде
математического ожидания и дисперсии различных характеристик наблюдаемой системы
[9]. В системе NIDES [10] используется χ2 распределение для сравнения статистической
модели и состояния наблюдаемой системы. Также существуют примеры применения
сетей Кохонена [11] и методов опорных векторов [12] для обнаружения аномалий. Но,
кроме перечисленных выше методов, для решения задачи обнаружения атак могут
применяться и другие классы методов интеллектуального анализа данных. В данной
работе
рассматривается
класс
методов
анализа
данных,
использующих
подход
обнаружения аномалий – методы кластерного анализа.
Кластерный анализ
Термин «кластерный анализ» [13], впервые введенный Трионом (Tryon) в 1939
году, включает в себя множество различных алгоритмов (более 100). Кластерный анализ
представляет собой один из методов интеллектуального анализа данных, позволяющий
группировать объекты в кластеры на основании выбранной меры схожести между
объектами.
Общая идея алгоритмов основана на определении степени сходства объектов на
основании расстояния между объектами. Расстояние между объектами вычисляется на
основе
численных
параметров
объектов.
Степень
схожести
объектов
обратно
пропорциональна расстоянию между объектами.
Техника кластеризации, то есть группирования схожих объектов в кластеры,
применяется в самых разнообразных областях. Например, в области медицины
кластеризация заболеваний, лечения заболеваний или симптомов заболеваний приводит к
широко используемым таксономиям. В области психиатрии правильная диагностика
кластеров симптомов, таких как паранойя, шизофрения и т.д., является решающей для
успешной терапии. В археологии с помощью кластерного анализа исследователи
пытаются установить таксономии каменных орудий, похоронных объектов и т.д.
Известны разработки, использующие методы кластерного анализа в маркетинговых
исследованиях.
Применение кластерного анализа в системах обнаружения атак
В контексте решения задачи обнаружения атак на информационные системы,
кластерный анализ может применяться как один из методов, использующих подход
8
обнаружения аномалий. В качестве входных данных применяемые методы кластерного
анализа используют вектора, содержащие статистические характеристики активности
системы, например, такие как параметры сетевых соединений системы, степень
загруженности ресурсов системы или активность процессов, выполняющихся на узле
системы. На основании анализа векторов обучающей выборки производится построение
кластеров, описывающих нормальное поведение системы, после чего построенная
совокупность кластеров используется для обнаружения аномалий.
Пример использования методов кластерного анализа для решения задачи
обнаружения атак приводится в работе [14]. В работе приводится описание реализации
системы обнаружения атак CLAD, использующего один из методов кластерного анализа –
incremental k-means. Система CLAD в качестве входных данных получает вектора,
характеризирующие состояния наблюдаемой системы, содержащие информацию по
сетевым соединениям системы. В процессе обучения система описывает нормального
поведение системы в виде совокупности кластеров, после чего выполняет поиск аномалий
– состояний, сильно удаленных от выделенных кластеров нормального поведения.
9
2. Цель дипломной работы
Целью дипломной работы является разработка анализатора системы обнаружения
атак, использующего методы кластерного анализа для построения модели активности
системы. Для достижения указанной цели необходимо:

Исследовать эффективность применения различных методов кластерного
анализа для решения задачи обнаружения атак и выбрать принцип
функционирования анализатора на основании результатов исследования.

Выбрать алгоритмы кластерного анализа, применимые для решения задачи
обнаружения атак.

Реализовать
анализатор
системы
обнаружения
атак
на
основании
выбранных методов.

Провести исследование эффективности реализованного анализатора.
10
3. Модель предметной области
Формализуем основные понятия, используемые далее в работе. В качестве основы
для модели предметной области выбрана модель, разработанная Смелянским Р.Л. и
Гамаюновым Д.Ю., описанная в [15] и используемая в работах [15,16].
Будем рассматривать наблюдаемую систему как совокупность ресурсов системы и
наблюдателей системы.
Под ресурсами системы будем понимать компоненты системы, которые требуется
защитить от атак.
Под наблюдателем будем понимать сущность системы, которая позволяет
собирать характеристики активности ресурсов системы. Определим состояние ресурса
системы в каждый момент времени как совокупность характеристик активности ресурса,
получаемая от наблюдателей в данный момент времени. Характеристики активности
ресурса включают в себя общую информацию об активности ресурса (например,
загруженность ресурса) и характеристики взаимодействий, в которых принимает участие
данный ресурс (например, количество переданных данных для каждого взаимодействия).
Под взаимодействием между ресурсами будем понимать активность ресурсов по обмену
данными. Будем называть объектом ресурс (ресурс наблюдаемой системы либо
внешний), инициировавший взаимодействие.
Ресурсы могут быть как внутренними ресурсами системы, так и внешними по
отношению к наблюдаемой системе. Особенностью внешних ресурсов системы является
невозможность сбора наблюдателями информации об активности ресурса, которая не
связанна с взаимодействием с ресурсами наблюдаемой системы. Таким образом,
информация о внешних для системы ресурсах может быть получена наблюдателями
только посредством анализа взаимодействия этих ресурсов с ресурсами защищаемой
системы.
Определим состояние системы в определенный момент времени как совокупность
состояний всех ресурсов системы в данный момент времени. Таким образом, состояние
системы представляет собой совокупность характеристик загруженности ресурсов
системы и характеристик всех взаимодействий, в которых принимают участие ресурсы
системы.
Определим множество
нормальных состояний
системы как
совокупность
состояний системы в процессе штатного функционирования системы. Будем считать, что
нормальное состояние системы является безопасным, т.е. в таком состоянии системы
11
невозможны: нарушения конфиденциальности ресурсов системы, нарушение целостности
ресурсов системы, нарушение доступности ресурсов системы.
Расширим модель, определив множество аномальных состояний системы как
совокупность состояний системы, не принадлежащих множеству нормальных состояний.
В частности, к аномальным состояниям относятся состояния системы в процессе
совершения атаки на систему, т.е. множество аномальных состояний содержит в себе
множество состояний, не являющихся безопасными.
Под воздействием на ресурс будем понимать изменение состояния ресурса
посредством осуществления взаимодействия с данным ресурсом. Тогда воздействие на
систему представляет собой одно или несколько воздействий на ресурсы наблюдаемой
системы. Далее в работе будем рассматривать только воздействия, которые представляют
собой взаимодействия между ресурсами.
Под атакой на систему будем понимать воздействие на систему, которое
переводит систему из нормального состояния в аномальное. При этом предполагается, что
множество нормальных состояний системы может быть статистически отличимо от
множества состояний, наблюдаемых в процессе осуществления атак на систему.
Обнаружением атаки в данной работе будем считать выявление факта совершения
атаки на основе информации о состоянии системы, полученной от наблюдателей системы.
При этом задача определения конкретного типа атаки и, возможно, момента ее
совершения не ставится.
Точность обнаружения атак – величина, характеризующая количество ошибок,
совершаемых системой обнаружения атак. Ошибки могут быть двух видов: нормальное
состояние системы признано аномальным – ошибка второго рода, и опасное поведение,
вызванное атакой, признано нормальным – ошибка первого рода. Главной задачей
построения системы является уменьшение числа ошибок первого и второго рода.
12
4. Постановка задачи обнаружения атак
Согласно определениям, приведенным в <модель предметной области>, состояние
системы в каждый момент времени можно представить в виде вектора характеристик
активности ресурсов системы:
st(S,t) = ( st(R1,t), st(R2,t)), …, st(Rk,t)) )  ST, st(Ri,t)H
где S – наблюдаемая система, Ri – ресурс наблюдаемой системы, t – время
совершения замера состояния системы, ST – множество возможных состояний системы, H
– пространство характеристик, над которым определены вектора состояний ресурсов.
Определим множество NormS как множество нормальных состояний системы.
Тогда множество аномальных состояний определяется как ST \ NormS
По предположению о различимости состояний системы, приведенному в <модель
предметной области>, для данной наблюдаемой системы S с некоторой точностью может
быть построено отображение f: ST{0,1} такое, что для любого состояния системы
st=st(S,t):

f(st) = 0, если stNormS

f(st) = 1, если stST\NormS
Согласно определению атаки, задача обнаружения атак на наблюдаемую систему
сводится к вычислению значения отображения для наблюдаемых состояний системы в
процессе функционирования системы и выявлению состояния st(S,t) системы, для
которого f(st(S,t))=1. В том случае, если для состояния системы в момент времени t0
выполнено f(st(S,t0))=1, а для всех t<t0 f(st(S,t))=0, то, следовательно, на наблюдаемую
систему было оказано воздействие, которое перевело систему из нормального состояния в
аномальное, что, по определению, является атакой на систему.
Приведенное отображение зависит не только от анализируемого состояния, но и
неявно от поведения системы в процессе штатного функционирования. Для описания
поведения системы введем понятие обучающей выборки. Под обучающей выборкой
будем понимать совокупность состояний системы, которые представляют собой примеры
нормальных состояний системы.
Таким образом, задача обнаружения атак может быть сформулирована следующим
образом:
Задана обучающая выборка {x1,…, xn }, xiNormS
13
Требуется построить анализатор, реализующий отображение f, т.е. решающий
задачу определения принадлежности наблюдаемых состояний системы к множеству
NormS.
Для того чтобы обеспечить возможность использования анализатора в реальной
системе обнаружения атак, требуется обеспечить возможность функционирования
анализатора
в
режиме
реального
времени,
т.е.
вычисление
f(x)
для
каждого
анализируемого состояния системы xST должно выполняться не более чем за T секунд.
14
5. Применение методов кластерного анализа для
обнаружения атак
Разделим функционирование анализатора на два этапа [12]: этап обучения и этап
обнаружения. Этап обучения заключается в построении модели нормального поведения
системы на основании обучающей выборки, содержащей примеры нормальных состояний
системы. Этап обнаружения заключается в проверке принадлежности наблюдаемых
состояний системы к построенной модели нормального поведения.
5.1. Этап обучения
В качестве модели нормального поведения будем использовать описание
множества нормальных состояний системы посредством совокупности кластеров,
выделенных при помощи одного или нескольких алгоритмов кластерного анализа.
Кластеры модели нормального поведения обладает набором характеристик, на основании
которых может быть определена степень принадлежности анализируемого вектора к
данному кластеру или совокупности кластеров. Выбор конкретного представления
кластера зависит от используемых алгоритмов кластеризации.
Рассматриваемый метод обнаружения атак опирается на предположение о том, что
принадлежность анализируемого вектора состояния системы к множеству нормальных
состояний системы можно определить посредством определения принадлежности к
совокупности кластеров модели нормального поведения.
Таким образом, задача построения модели нормального поведения системы
сводится к задаче кластеризации векторов обучающей выборки.
Определим формально задачу этапа обучения.
Задана обучающая выборка NS={x1,…, xn }, xiNormS
Требуется построить модель нормального поведения Cl(NS), Cl(NS) = {p1, p2, …,
pk}, где pi – множество характеристик i-го кластера модели нормального поведения.
Для выполнения требований функционирования в режиме реального времени
дополнительно накладываются ограничения (ограничения, накладываемые этапом
обнаружения) на максимальное количество кластеров модели нормального поведения.
Таким образом, для решения задачи этапа обучения требуется выбрать
представление кластера, которое допускает возможность обнаружения атак в режиме
реального времени, а также выбрать метод либо последовательность методов,
15
используемых для построения модели нормального поведения, удовлетворяющей
ограничению на максимальное количество кластеров.
Для
того
чтобы
обеспечить
достаточную
точность
описания
множества
нормального поведения, требуется обеспечить полноту покрытия множества нормального
поведения системы примерами обучающей выборки. Следствием этого является большой
объем обучающей. Кроме того, для наиболее точного описания состояния ресурсов
системы могут использоваться вектора характеристик высокой размерности. Эти
требование
накладывает
ограничения
на
возможность
применения
алгоритмов
кластеризации:

алгоритм кластеризации должен обладать возможностью обрабатывать
вектора высокой размерности без потерь точности,

алгоритмы с квадратичной сложностью (временной или пространственной)
относительно
размера
обучающей
выборки
обладают
меньшей
применимостью в контексте решаемой задачи в связи с большим объемом
обучающей выборки.
Приведенные выше ограничения будем учитывать далее в главе 6 при
исследовании применимости методов кластерного анализа.
5.2. Этап обнаружения
Задача этапа обнаружения заключается в определении принадлежности вектора
наблюдаемого состояния системы к множеству нормальных состояний системы. Согласно
предположению о том, что принадлежность вектора к множеству нормальных состояний
может быть определена как принадлежность к совокупности кластеров модели
нормального поведения, определим формально задачу этапа обнаружения.
Заданы:

модель нормального поведения системы Cl(NS) = {p1, …, pk }, где pi –
множество характеристик i-го кластера модели нормального поведения.

множество анализируемых состояний системы A={xi}, xiST
Требуется для каждого анализируемого состояния определить принадлежность к
множеству NormS, т.е. вычислить значение f(xi).
Дополнительно накладывается ограничение на возможность обнаружения атак в
режиме реального времени. Требования реального времени накладывают ограничения на
16
представление кластера и количество кластеров в используемой модели нормального
поведения.
17
6. Обзор методов кластерного анализа
6.1. Цели обзора
Целями обзора являются:

выбор представления кластеров, удовлетворяющего ограничениям задачи,

определение способа применения методов в контексте решаемой задачи,

выбор алгоритма или последовательности алгоритмов для реализации
анализатора СОА.
В качестве критериев обзора рассмотрим следующие характеристики алгоритмов
кластерного анализа:

Возможность выполнять обнаружение атак в режиме реального времени на
основе используемого представления кластера.

Временная сложность обучения – функция, оценивающая время работы
алгоритма по размеру входных данных. В контексте решаемой задачи,
временная сложность определяет применимость конкретного алгоритма для
обработки обучающей выборки некоторого размера (числа обучающих
примеров). Алгоритмы с более чем линейной сложностью относительно
размера обучающей выборки плохо применимы для обработки большого
объема данных.

Возможность расширения размерности. Часть алгоритмов кластерного
анализа используется
для
анализа данных
с малой
размерностью
пространства, что ограничивает применимость в контексте решаемой
задачи.

Возможные варианты использования для решения задачи обнаружения атак.
В данной работе рассматриваются методы, перечисленные в классификации,
приведенной в работе [17]. Дополнительно, рассматривается метод кластеризации данных
большого объема, приведенный в работе [18].
18
6.2. Классификация методов
В связи с тем, что задача определения оптимального распределения векторов
обучающей выборки по кластерам принадлежит классу NP-полных [19], применяемые
методы кластерного анализа являются эвристическими.
Согласно [17], методы кластерного анализа можно разделить на 3 класса:

иерархические методы

методы разбиения

комбинированные методы
Результатом
работы
иерархического
метода
является
иерархия
кластеров
(таксономия). Сами кластеры могут быть получены путем разбиения дерева на основе
некоторого критерия (например, необходимый размер кластера или количество
кластеров).
Результатом работы алгоритма, основанного на методе разбиения, является
множество кластеров, не связанных между собой определенной иерархией.
Комбинированные методы используют и иерархические методы, и методы
разбиения. Наиболее часто используется последовательно сначала метод разбиения, а
затем строится иерархия на основании полученных кластеров (например, [20, 18]).
Методы кластерного анализа различаются также по используемому представлению
кластера. Наиболее распространенными представлениями кластера, используемыми в
методах кластерного анализа, являются:

представление
в
виде
совокупности
векторов
кластера
(например,
иерархические алгоритмы),

представление в виде графа,

представление в виде параметров случайного распределения (например,
EM-алгоритм для смеси Гауссовых распределений),

представление в виде центроида (алгоритмы минимизации квадратичной
ошибки, например, k-means и online k-means).
Кроме
перечисленных
выше
представлений
существуют
смешанные
представления. Например, применяемое в алгоритме BIRCH [18] представление кластера
в виде Cluster Feature представляет собой объединение последних двух представлений.
Представление в виде совокупности векторов кластера. При таком представлении
каждый кластер описывается множеством векторов, принадлежащих данному кластеру.
19
Примерами алгоритмов, использующих такое представление кластера, являются
иерархические алгоритмы single-linkage и complete-linkage [17,22]. При использовании
данного представления модель нормального поведения содержит в себе все вектора
обучающей выборки, в результате чего время проверки принадлежности вектора к
совокупности кластеров не удовлетворяет ограничениям задачи этапа обнаружения.
Представление в виде графа. При таком представлении каждый кластер
описывается графом, связывающим все вектора, принадлежащие кластеру [17].
Использование такого представления позволяет немного уменьшить вычислительную
сложность для алгоритмов этапа обнаружения, однако вычислительная сложность
алгоритмов обнаружения на основании графов не позволяет применять их в режиме
реального времени при использовании обучающей выборки большого объема. Кроме того,
модель нормального поведения, аналогично предыдущему представлению, содержит все
вектора обучающей выборки, что ограничивает применимость для решаемой задачи
разработки анализатора в связи с большим объемом обучающей выборки.
Представление в виде центроида. При таком представлении каждый кластер
описывается центроидом [17, 13] – средним арифметическим векторов кластера. Данное
представление является наиболее распространенным при решении задачи кластеризации.
Использование данного представления позволяет сократить размер модели нормального
поведения по отношению к размеру исходной обучающей выборки, кто позволяет
уменьшить временную сложность этапа обнаружения.
Представление в виде параметров случайного распределения. Применение данного
представления кластера основано на предположении о том, что вектора кластера
распределены согласно одному из распределений. В случае использования нормального
распределения, параметрами распределения являются [17,21] математическое ожидание
векторов кластера и ковариационная матрица. Такое представление кластера применяется,
например,
в
EM-алгоритме
[21].
Преимуществом
такого
представления
перед
представлением в виде центроида является возможность выделения кластеров не только
сферической формы.
20
6.3. Иерархические методы
Задачей алгоритмов, основанных на иерархическом методе, является построение
иерархии, связывающей все кластеры между собой. Для построения множества кластеров,
полученная иерархия разбивается на определенном уровне глубины или производится
разбиение до тех пор, пока оставшиеся кластеры не будут удовлетворять выбранному
критерию.
Алгоритм работы:
1. каждый входной вектор выделяется в отдельный кластер,
2. выбираются два кластера, такие, что мера их схожести является
минимальной среди всех пар векторов,
3. выбранные два кластера объединяются в один, вышестоящий по иерархии,
4. шаги 2 и 3 повторяются до тех пор, пока не останется всего один кластер.
Иерархические методы объединяют в себе алгоритмы, различающиеся по способу
представления кластера и используемой мере схожести кластеров. Наиболее часто
используемые представления – в виде совокупности векторов и в виде центроида.
Для первого представления используются метрики single-linkage и complete-linkage.
Эти метрики определяются как минимальное и максимальное расстояние между
векторами кластера соответственно. Для второго представления используются метрики,
основанные на вычислении расстояния между центроидами.
Особенности метода:

временная сложность зависит от используемой метрики, не меньше чем
квадратичная относительно размера обучающей выборки,

приведенный алгоритм можно использовать для входных векторов любой
размерности,

сильное влияние выбросов, т.к. возможно порождение множества кластеров,
состоящих из одного вектора, появляющихся на начальных этапах
разбиения.
Данные
методы
обладают
ограниченной
применимостью
для
решения
рассматриваемой задачи разработки анализатора в силу ограничений используемого
представления кластера и ограничений этапа обучения, т.к. высокая временная сложность
работы алгоритма не позволяет использовать его для обработки большого объема входных
данных. Однако в контексте решаемой задачи разработки анализатора, алгоритм может
быть применен для последующей обработки построенной модели нормального поведения,
в частности для объединения близко расположенных кластеров.
21
6.4. Методы разбиения
В данной работе рассматриваются следующие классы методов разбиения,
перечисленные в работе [17]:

методы минимизации квадратичной ошибки,

методы построения графа,

методы, использующие нечеткие кластеры.
6.4.1. Методы минимизации квадратичной ошибки
Основная идея методов заключается в распределении входных векторов по
кластерам с целью минимизации квадратичной ошибки (MSE), показывающей точность
кластеризации. Рассматриваемые алгоритмы используют представление кластера в виде
центроида – вектора, определяющего центр кластера.
Алгоритмы, использующие метод минимизации квадратичной ошибки, можно
разделить на инкрементальные и неинкрементальные по способу выделения кластеров.
Основная идея инкрементальных алгоритмов заключается в последовательной
обработке векторов обучающей выборки и проверке принадлежности векторов к
множеству созданных кластеров. В том случае, когда вектор не принадлежит ни одному
кластеру, создается новый кластер. Параметром инкрементальных алгоритмов является
максимальный размер кластера. Аналогичный инкрементальный алгоритм применяется в
системе обнаружения атак [23].
Примерами инкрементальных алгоритмов являются incremental k-means и birch.
Недостатками инкрементальных алгоритмов в контексте решаемой задачи разработки
анализатора является невозможность ограничить максимальное количество создаваемых
кластеров, а также зависимость результата работы алгоритма от порядка обработки
векторов обучающей выборки. Первый недостаток не позволяет применять данный класс
алгоритмов в качестве основного для построения обучающей выборки, т.к. нарушается
ограничение этапа обучения на максимальное количество кластеров.
Основная идея неинкрементальных алгоритмов заключается в итеративном
перераспределении векторов обучающей выборки между заданным количеством
кластеров. Параметрами неинкрементальных алгоритмов являются количество кластеров
и начальное расположение кластеров.
22
Примерами неинкрементальных алгоритмов являются batch k-means и online kmeans. Недостатком неинкрементальных алгоритмов является сильная зависимость
результата от выбора количества кластеров и начального расположения кластеров.
6.4.2. Методы построения графа
Методы построения графа основаны на следующем принципе: все входные вектора
соединяются таким образом, чтобы полученный граф являлся деревом, и ребра графа
имели минимально возможную длину (minimal spanning tree, MST).
Один из наиболее часто используемых [24] алгоритмов - алгоритм выделения
минимального покрывающего дерева из существующего графа (Kruskal’s algorithm) [25,
26]:
1. выбирается ребро минимального веса (в задаче кластеризации ребру
соответствует мера схожести двух концов ребра), отмечается определенным
цветом.
2. выбирается непомеченное ребро минимального веса, которое не образует
цикл в подграфе из помеченных ребер, выбранное ребро помечается.
3. шаг 2 выполняется до тех пор, пока не останется ни одной вершины, не
входящей в подграф из помеченных ребер.
После построения такого дерева выполняется его разбиение путем удаления ребер
наибольшей длины до тех пор, пока не получится необходимое число кластеров.
Временная сложность алгоритма O(n2log(n)), где n – число векторов.
Метод
работы является схожим с иерархическими методами. Кластеры,
получаемые при использовании иерархического алгоритма являются подграфами одного
из возможных минимальных связывающих деревьев [17]. По этой причине данный метод
не рассматривается на этапе реализации алгоритмов.
Существует способ построения минимального связывающего дерева, основанный
на построении триангуляции Delaunay [27] и выделении минимального покрывающего
дерева из нее. В двухмерном пространстве вычислительная сложность алгоритма
O(nlog(n)). Но, этот метод не применим в задачах с более высокой размерностью из-за
экспоненциального роста триангуляции [28], в связи с чем в контексте решаемой задачи
данный метод обладает ограниченной применимостью в силу высокой размерности
пространства характеристик векторов обучающей выборки.
23
6.4.3. Методы, использующие нечеткие кластеры
Особенностью
методов
данного
класса
является
использование
нечетких
кластеров: каждый вектор обучающей выборки может принадлежать каждому кластеру с
некоторой вероятностью. Примерами алгоритмов, использующих нечеткие кластеры,
являются EM-алгоритм для смеси нормальных распределений и Fuzzy c-means.
Fuzzy c-means
Описание алгоритма приводится в [29], данный алгоритм использовался для
решения задачи обнаружения атак в работе [30]. Алгоритм использует представление
кластера в виде центроида и является неинкрементальным. Для него характерны
недостатки, связанные с неправильным выбором начального расположения кластеров и
количества кластеров. Согласно [17], алгоритм обладает лучшей по сравнению с batch kmeans способностью избегать локального оптимума. Временная сложность алгоритма
O(n), n – количество векторов обучающей выборки.
Тестирование алгоритма при использовании в качестве начальных данных
результатов работы неинкрементального алгоритма выявило недостаток, связанный с
построением совпадающих кластеров, что снижает точность обнаружения атак по
сравнению с результатами применения алгоритмов четкой кластеризации. Описание
тестирование эффективности применения алгоритма в качестве алгоритма этапа обучения
приводится в главе 7.
EM-алгоритм
Алгоритм впервые предложил Dempster в работе [31], описание обобщенного EMалгоритма представлено в [32, 21]. Реализация EM-алгоритма для смеси нормальных
распределений описана в работе [33]. Временная сложность алгоритма O(n), n –
количество векторов обучающей выборки.
Недостатками алгоритма являются использование предположения о нормальности
распределения векторов в кластерах, потеря точности и скорости сходимости при
неудачном выборе начальных параметров распределений. Кроме того, существует
проблема применимости алгоритма для пространств высокой размерности. С ростом
размерности пространства происходит снижение точности кластеризации в результате
погрешностей при работе с вещественными числами. В контексте решаемой задачи
данный недостаток является существенным в связи с большой размерностью пространства
характеристик вектора.
24
6.5. Результаты обзора
Согласно ограничениям этапа обнаружения, в качестве представления кластера
может использоваться представление с помощью центроида и с помощью параметров
распределений.
По результатам обзора, в качестве основных алгоритмов кластеризации выбраны
неинкрементальные алгоритмы минимизации квадратичной ошибки и алгоритмы
нечеткой кластеризации, использующие представление кластера в виде центроида.
Параметрами неинкрементальных алгоритмов являются количество кластеров и
начальное расположение кластеров, причем точность работы алгоритма сильно зависит от
выбора значений параметров. Исходя из особенностей неинкрементальных алгоритмов,
выбрана следующая последовательность шагов этапа обучения:
1. Определение количества кластеров и начального расположения кластеров.
2. Объединение ближайших кластеров.
3. Применение неинкрементального алгоритма для минимизации ошибки
кластеризации.
На основании выбранного представления кластеров требуется выбрать алгоритм
этапа обнаружения. Выбор конкретных алгоритмов этапов обучения рассматривается
далее в главе 7.
25
7. Тестирование алгоритмов
В данной главе выполняется тестирование алгоритмов кластерного анализа,
которые могут использоваться в схеме этапа обучения, предложенной в главе 6.
Критериями применимости являются:

точность работы алгоритма,

временная сложность.
Оценка применимости производится путем обучения алгоритма на множестве
тестовых данных, выделенных из множества данных KDD Cup. Описание способа
предобработки данных приводится в главе 9.1.
7.1. Исследование
применимости
инкрементальных
алгоритмов
Исследуем применимость различных инкрементальных алгоритмов для решения
задачи этапа обнаружения. Для тестирования выбраны алгоритмы incremental k-means и
алгоритм
BIRCH,
который
представляет
собой
многошаговую
модификацию
инкрементального алгоритма, оптимизированную для работы с обучающими выборками
большого объема.
Incremental k-means
Принцип работы алгоритма описан в разделе 6.4.1. Аналогичный алгоритм
применяются в работе [23]. Рассмотрим временные характеристики алгоритма при
кластеризации обучающей выборки, построенной на основании данных KDD Cup.
Обучающая выборка содержит 57064 векторов.
При кластеризации данной обучающей выборки были получены следующие
показатели эффективности алгоритма:

количество кластеров: 469

время функционирования: 55719 мс

квадратичная ошибка кластеризации 1266.56

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 5965.26
26
BIRCH
Алгоритм BIRCH является инкрементальным алгоритмом, предназначенным для
обработки больших объемов данных. Алгоритм использует представление совокупности
кластеров в виде сильно ветвистых деревьев, что позволяет осуществлять проверку
принадлежности вектора к кластеру с логарифмической временной сложностью
относительно количества кластеров (в отличие от линейной временной сложности для
incremental k-means).
Подробное описание алгоритма приводится в работе [18]. Идея алгоритма
заключается в построении дерева кластеров, которое используется для быстрого поиска
кластера, ближайшего к анализируемому вектору. Дерево кластеров представляет собой
дерево, узлами которого являются кластеры, причем каждый узловой кластер
представляет собой объединение кластеров-подузлов. Алгоритм осуществляет изменение
дерева кластеров путем поочередного добавления векторов обучающей выборки в дерево
кластеров.
Алгоритм использует представление кластера в виде CF = (S, S2, N), где:

S   vi , где vi – вектор кластера,
i

S 2  ( (vi(1) ) 2 , (vi(1) ) 2 ,...,  (vi( d ) ) 2 ) , где d – размерность пространства
i
i
i
характеристик,

N – количество векторов кластера.
Центроид
кластера
можно
вычислить
как
Достоинствами
S/N.
данного
представления являются:

CF(C1  C2) = CF(C1) + CF(C2)

содержится информация о количестве векторов кластера

 S ( j)  S ( j) 2 
 
может быть определен радиус кластера как r    2  

N
N
j 1

 

d
В связи с тем, что представление в виде CF может применяться для любых
алгоритмов, использующих представление кластера в виде центроида, в дальнейшем в
данной работе рассматривается именно такое представление кластера.
Добавление вектора обучающей выборки к дереву кластеров осуществляется
следующим образом:
1. Определяется кластер-подузел, наиболее близко (по заданной мере
близости) расположенный к добавляемому вектору;
27
2. Выполняется добавление вектора к поддереву с корнем – выбранным
подузлом;
3. В том случае, когда достигнут листовой кластер, производится добавление
вектора к кластеру в том случае, когда соблюдаются ограничения на размер
кластера, иначе создается новый листовой кластер;
4. Производится
обновление
всех
кластеров-подузлов,
которые
были
пройдены в процессе добавления;
5. В том случае, когда узловой кластер содержит чрезмерное количество
подузлов, производится разбиение узлового кластера на несколько
кластеров-подузлов.
По результатам сравнения различных мер, в качестве меры близости вектора и
кластера, в данной работе была выбрана сумма расстояний до центроида кластера до и
после добавления вектора.
Алгоритм является итеративным, каждый шаг алгоритма состоит из двух этапов:
добавление всех векторов обучающей выборки к дереву кластеров и оптимизация дерева.
В данной работе используется модификация алгоритма, в которой оптимизация
дерева заключается в многократной проверке попаданий векторов в кластеры и удалении
пустых кластеров. Проверка попадания вектора в узловой кластер заключается в поиске
ближайшего к рассматриваемому вектору листового кластера путем просмотра дерева
(аналогично процессу добавления вектора) и определению расстояния до центроида
кластера. В том случае, когда расстояние меньше заданного максимального расстояния,
фиксируется попадание вектора в кластер, иначе фиксируется промах. Шаг проверки
позволяет выявить пустые кластеры – кластеры, в которые при проверке не попал ни один
вектор обучающей выборки. Пустые кластеры возникают вследствие того, что в
зависимости от порядка обработки векторов, в разных подузлах дерева могут
образовываться близко расположенные листовые кластеры, в результате чего может
происходить
перераспределение
векторов
по
таким
листовым
кластерам.
Этап
оптимизации выполняется до тех пор, пока не будут удалены все пустые кластеры.
Определение пустых кластеров может производиться как посредством проверки
попадания векторов обучающей выборки в ближайшие кластеры, так и посредством
проверки попадания центроидов кластеров в кластеры при поиске ближайших кластеров с
помощью дерева. Второй метод является более быстрым и применяется при
кластеризации обучающей выборки, содержащей большое количество векторов. Однако,
при достаточно малом количестве векторов, второй метод обладает меньшей точностью.
28
Рассмотрим применение первого этапа данного алгоритма (добавление векторов к
дереву). На рисунке 7.1 представлен график зависимости среднего времени обработки
одного вектора обучающей выборки в процессе кластеризации (вычисляется для каждых
100 векторов).
1.2
Среднее время обработки вектора
1
0.8
BIRCH
incremental k-means
0.6
0.4
0.2
54000
56000
50000
52000
48000
44000
46000
40000
42000
36000
38000
34000
30000
32000
26000
28000
22000
24000
20000
16000
18000
12000
14000
10000
6000
8000
2000
4000
0
0
Количество векторов
Рисунок 7.1. Среднее время обработки вектора для алгоритмов incremental k-means и BIRCH
По результатам первого этапа алгоритма получены следующие показатели
эффективности алгоритма:

количество кластеров: 819

время функционирования: 16408 мс

квадратичная ошибка кластеризации 581.308

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 4284.78
По результатам выполнения этапа оптимизации дерева:

количество кластеров: 492

время выполнения оптимизации дерева: 11079 мс

квадратичная ошибка кластеризации 808.802

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 4996.83
29
По результатам выполнения трех шагов алгоритма BIRCH:

количество кластеров: 499

квадратичная ошибка кластеризации 691. 534

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 4826. 35

время выполнения этапов:
o первый шаг: 16408 (добавление), 11079 (оптимизация)
o
второй шаг: 16016 (добавление), 6640 (оптимизация)
o третий шаг: 14109 (добавление), 7765 (оптимизация)
При использовании второго метода определения пустых кластеров, после трех
шагов алгоритма были получены следующие показатели эффективности:

количество кластеров: 498

квадратичная ошибка кластеризации 692.706

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 4833.94

время выполнения этапов:
o первый шаг: 15969 мс (добавление), 125 мс (оптимизация)
o
второй шаг: 13703 мс (добавление), 47 мс (оптимизация)
o третий шаг: 13750 мс (добавление), 47 мс (оптимизация)
По результатам данного тестирования в качестве основного алгоритма для
определения начального расположения кластеров выбрана модификация алгоритма
BIRCH, использующая второй метод определения пустых кластеров. Данный выбор
обусловлен тем, что алгоритм BIRCH показывает лучшие показатели точности при
меньшей временной сложности, по сравнению с алгоритмом incremental k-means.
7.2. Исследование
применимости
иерархических
алгоритмов
В связи с высокой временной сложностью иерархических алгоритмов относительно
числа векторов обучающей выборки, иерархический алгоритм не применим для
кластеризации исходного множества векторов. Поэтому в данной работе рассматривается
30
применение иерархического алгоритма для объединения кластеров, выделенных
посредством использования инкрементального алгоритма.
Сформулируем задачу объединения кластеров.
Задана модель нормального поведения системы Cl(NS) = {p1, …, pk}, где pi – i-ый
кластер модели нормального поведения
Требуется построить множество кластеров C = { p’1, …, p’m }, где p’i – кластер,
полученный посредством объединения кластеров множества Cl(NS). Используется
представление кластеров p’i в виде центроидов.
Дополнительно
накладывается
ограничение
на
максимальное
количество
кластеров: m ≤ M, где M – максимальное количество кластеров.
Рассматривается применимость следующих метрик, используемых в иерархических
алгоритмах, в контексте решаемой задачи объединения кластеров:

complete-linkage:
c(C1, C 2) 
max2
c1i C1, c j C 2
ci1  c 2j
, где C1i – центроид i-го кластера
множества C1, C2j– центроид j-го кластера множества C2

single-linkage
s(C1, C 2) 
min2
c1i C1, c j C 2
ci1  c 2j
, где C1i – центроид i-го кластера
множества C1, C2j– центроид j-го кластера множества C2

расстояние между центроидами множеств кластеров
d (C1, C 2) 
c  n c  n

n
n
1
i
2
j
i
j
j
i
i
j
i
, где c1i – центроид i-го
j
кластера множества C1, c2j– центроид j-го кластера множества C2, ni –
количество векторов кластера i-го кластера множества C1, nj – количество
векторов кластера j-го кластера множества C2.
Для тестирования в качестве начального расположения кластеров берутся
результаты применения трех шагов алгоритма BIRCH, приведенные в главе <7.3>.
Ограничение на максимальное количество кластеров: M = 300.
Результаты применения метрики complete-linkage:
31

квадратичная ошибка кластеризации 2824.74

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 10580.2

время выполнения: 1281 мс
Результаты применения метрики single-linkage:

квадратичная ошибка кластеризации 9990.64

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 19426.7

время выполнения: 2859 мс
Результаты применения метрики расстояния между центроидами множеств
кластеров:

количество кластеров: 300

квадратичная ошибка кластеризации 3285.4

сумма расстояний от каждого вектора до центроида ближайшего к данному
вектору кластера: 11330. 2

время выполнения: 938 мс
Таким образом, по результатам тестирования максимальная точность (минимальная
квадратичная ошибка) достигается при использовании метрики complete-linkage.
7.3. Исследование
применимости
неинкрементальных
алгоритмов
В данной главе рассматривается применение алгоритмов batch k-means и online kmeans для уменьшения квадратичной ошибки кластеризации. В качестве начального
расположения
кластеров
задаются
результаты
применения
инкрементального
и
иерархического алгоритмов.
Batch k-means
Алгоритм впервые предложил McQueen в 1967 году, алгоритм подробно описан в
работах [17, 13]. Данный алгоритм является наиболее простым и наиболее часто
используемым алгоритмом кластеризации методом разбиения. В контексте задачи
обнаружения атак, алгоритм применялся в работе [34], его модификация Y-means
применялась в работе [35].
32
Задача алгоритма состоит в определении центроидов K кластеров таким образом,
чтобы квадратичная ошибка была минимальна. Параметр K определяет количество
кластеров, на которое производится разбиение.
Расположение центроида кластера в алгоритме вычисляется как среднее
арифметическое векторов, принадлежащих кластеру.
Алгоритм работы [17]:
1. выбирается произвольное расположение центроидов,
2. каждый вектор заносится в ближайший по мере схожести кластер,
3. выполняется переопределение центроида каждого кластера,
4. шаги 2 и 3 выполняются до тех пор, пока не принято решение остановить
выполнение алгоритма.
Условием завершения алгоритма может являться выполнение определенного
количества итераций или достаточно малое изменение квадратичной ошибки. Условие
завершения задается в качестве параметра алгоритма.
Особенности алгоритма:

временная сложность O(n), где n – число векторов обучающей выборки,

пространственная сложность O(K), где K- число кластеров,

алгоритм может использоваться в пространстве любой размерности,

присутствие выбросов оказывает сильное влияние на распределение
кластеров, степень влияния зависит от начального распределения кластеров,

при больших значениях n и K кластеры принимают форму гипершаров.
Линейная временная сложность алгоритма позволяет использовать его для
обработки обучающей выборки большого объема. На результат работы алгоритма не
оказывает воздействие размерность пространства, что позволяет применять алгоритм для
кластеризации обучающей выборки с большой размерностью пространства.
Проблема применимости алгоритма заключается в правильном выборе количества
кластеров и начального расположения кластеров. Данная проблема существует при любой
размерности пространства, но с ростом размерности происходит ухудшение показателей
точности кластеризации при неправильном выборе начального расположения кластеров.
Online k-means
Алгоритм Online k-means предложен в работе [17] как альтернатива алгоритму
batch k-means. Алгоритм отличается от указанного выше методом переопределения
центроида кластеров.
33
Алгоритм работы:
1. выбирается произвольное расположение центроидов
2. для входного вектора выбирается ближайший кластер
3. выполняется переопределение центроида каждого кластера по следующей
формуле:
c ( n 1)  c ( n )    ( xi  c ( n ) )
, где xi – i-тый вектор обучающей
выборки, с – центроид ближайшего кластера, ε – скорость обучения
4. шаги 2 и 3 выполняются для каждого вектора входной выборки заданное
число раз
Особенности алгоритма:

временная сложность O(n), где n – число векторов обучающей выборки,

пространственная сложность O(K), где K- число кластеров,

алгоритм может использоваться в пространстве любой размерности,

присутствие шума оказывает сильное влияние на распределение кластеров,
степень влияния зависит от начального распределения кластеров.
Аналогично алгоритму batch k-means, данному алгоритму присущи проблемы
необходимости первоначального определения кластеров и проблема необходимости
определения числа кластеров.
В данной работе рассматриваются следующие модификации алгоритмов batch Kmeans и online K-means:
1. алгоритмы используют произвольное начальное расположение кластеров,
2. в качестве начального расположения кластеров используются результаты
применения инкрементального алгоритма (в данном тестировании –
incremental k-means).
Тестирование первой модификации алгоритма показала низкую точность в связи с
образованием большого числа кластеров, содержащих 1 вектор. При кластеризации 10%
данных HTTP-сессии при фиксированном числе кластеров K=200, число кластеров из
одного вектора составляло от 100 до 150 в зависимости от начального расположения
кластеров.
Первая модификация показывает точность кластеризации ниже, чем точность
кластеризации алгоритма incremental k-means при примерно одинаковом числе кластеров.
Поэтому, далее рассматривается только применение алгоритмов в качестве второго шага
после применения инкрементального алгоритма.
34
Рассматриваются последовательности применения:

incremental k-means, иерархический алгоритм, batch k-means

incremental k-means, иерархический алгоритм, online k-means
365
360
355
350
345
bkm
okm
340
335
330
325
320
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Рисунок 7.2. Зависимость квадратичной ошибки кластеризации от числа шагов алгоритмов
График зависимости квадратичной погрешности кластеризации каждым методом
от числа шагов приведен на рисунке 7.2. По результатам тестирования алгоритм batch kmeans показывает большую точность при обучении на основании начальных данных,
полученных посредством применения инкрементального алгоритма.
7.4. Тестирование алгоритма Fuzzy c-means
В данной главе выполняется сравнение точности обнаружения атак при обучении
системы посредством применения алгоритмов fuzzy c-means и batch k-means. В качестве
начального расположения кластеров задаются результаты применения инкрементального
и иерархического алгоритмов.
При тестировании алгоритм Fuzzy c-means применялся до тех пор, пока
максимальное изменение степени принадлежности вектора к кластеру не становилось
меньше 0.001.
35
Обнаружение атак выполняется посредством алгоритма определения степени
обособленности с индексом delta и алгоритмом, вычисляющим принадлежность вектора к
совокупности кластеров как сумму вероятностей принадлежности вектора к каждому
кластеру. Вероятности принадлежности вектора к кластеру вычисляется аналогично
методу, используемому в алгоритме Fuzzy c-means.
100
delta1
delta
90
точность обнраужения атак (%)
fcm1
80
70
60
50
40
30
delta
20
delta1
fcm1
10
0
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
ложные срабатывания (%)
Рисунок 7.3 Точность обнаружения атак при использовании алгоритма обучения batch k-means и fuzzy kmeans.
Результаты тестирования приведены на рисунке 7.3. График delta показывает
точность обнаружения атак для первого алгоритма при обучении посредством алгоритма
batch k-means. Графики delta1 и fcm1 показывают точность обнаружения атак для первого
и второго алгоритма соответственно при обучении посредством алгоритма fuzzy c-means.
Результаты тестирования показывают низкие показатели точности обнаружения атак при
обучении посредством алгоритма Fuzzy c-means.
36
7.5. Результаты тестирования алгоритмов
На основании реализации алгоритмов кластерного анализа, изучения их
особенностей и проведенного тестирования, для реализации анализатора СОА выбраны
следующие алгоритмы кластерного анализа:

алгоритм BIRCH выбран для определения начального расположения
кластеров,

иерархический
алгоритм
complete-linkage
выбран
для
объединения
кластеров,

алгоритм batch k-means выбран для уточнения расположения кластеров и
уменьшения квадратичной ошибки кластеризации,
8. Программная реализация анализатора системы
обнаружения атак
В
данном
разделе
описывается
реализация
анализатора
на
основе
последовательности алгоритмов, выбранных по результатам тестирования в главе 7.
8.1. Инфраструктура анализатора
Рассмотрим систему обнаружения атак как совокупность следующих компонентов:

датчики,

преобразователь данных,

анализатор,

интерпретатор.
Датчик является компонентом системы обнаружения атак, выполняющим функции
наблюдателя: датчик собирает данные о состоянии системы и передает их анализатору.
Собираемая датчиками информация может иметь представление, отличное от
используемого
рассмотренными
алгоритмами
представления
в
виде
векторов
пространства вещественных характеристик. В общем случае собираемая датчиком
информация может быть представлена в виде вектора неоднородных признаков. Согласно
[36], можно выделить следующие виды признаков:

количественные параметры,

категориальные параметры,

бинарные параметры.
37
Количественные признаки – значения вещественного либо целого типа. К
количественным признакам можно отнести ряд характеристик, собираемых на различных
уровнях (сетевом, узловом), например:

продолжительность сессии,

объем переданных данных,

количество переданных и полученных пакетов,

количество ошибок входа в систему,

количество соединений с определенной системой.
Категориальные признаки – значения произвольного типа, для которого
определено отношение неравенства. К категориальным признакам можно отнести часть
собираемых характеристик системы, которые не являются численными либо сильно
различают состояния системы, например:

название протокола соединения,

номер порта, с которым установлено соединение,

название сервиса.
Бинарные признаки – признаки, которые могут принимать значение 0 либо 1.
Примерами таких признаков являются:

была ли выполнена команда “su”,

успешность авторизации.
Отличие признаков различного типа заключается в степени влияния на меру
схожести объектов. Незначительное изменение количественного признака одного из двух
объектов может не оказывать сильного влияния на их схожесть, но изменение
категориального параметра одного из объектов делает их сильно различающимися.
Существует несколько путей решения проблемы неоднородности пространства
признаков [36]. В соответствии с выбранным в данной работе представлением кластера, в
данной работе применяются следующие методы предобработки входных данных
анализатора:
1. Построение различных моделей для каждого набора категориальных
параметров.
2. Проекция на пространство характеристик большей размерности, бинарное
кодирование
категориальных
характеристик.
Бинарное
кодирование
заключается в представлении n-значного категориального признака в виде n
характеристик, только одна из которых принимает значение 1, остальные
38
равны 0. Значению категориального признака k соответствует значение 1 kой характеристики.
Преобразователь берет на себя задачу проецирования категориальных признаков на
пространство
характеристик
и
нормализацию
количественных
признаков.
Преобразованные данные поступают на вход анализатору системы обнаружения атак. Для
уменьшения степени влияния характеристик, изменяющихся в большем по сравнению с
другими
характеристиками
диапазоне,
производится
преобразование
векторов
следующим образом:
n
xi
( new)

xi   i
i
, где
i 
 xi( k )
n
k 1
n
и
i 
 (x
k 1
(k )
i
 i ) 2
n
На входе анализатора информация о состоянии системы представляется в виде
векторов параметров состояния системы, часть из которых является категориальными,
часть – нормализованными количественными. Категориальные параметры состояния
определяют модель нормального поведения, на принадлежность к которой проверяется
входной вектор
Интерпретатор системы обнаружения атак является компонентом системы,
преобразующим результаты обработки анализатора в понятную для человека форму.
Одной из задач интерпретатора является информирование пользователя об обнаруженных
анализатором атаках.
8.2. Схема работы анализатора
Рассмотрим
реализацию
этапов
анализатора
основанного на методах кластерного анализа.
39
системы
обнаружения
атак,
Рисунок 8.1. Схема функционирования анализатора
Общий принцип функционирования анализатора приводится в главе 5. На рисунке
8.1 приводится схема функционирования анализатора. В данной главе рассматриваются
вопросы применения методов, выбранных по результатам обзора главы 6 и тестирования,
приведенного в главе 7.
8.2.1. Этап обучения
Этап обучения анализатора СОА реализован в виде последовательного применения
алгоритмов кластерного анализа для построения наиболее точной модели нормального
поведения для каждого отдельного набора категориальных признаков.
Реализованный анализатор считывает данные обучающей выборки из текстового
файла, в котором содержатся:

список значений категориальных признаков, для которых строится модель,

размерность пространства характеристик, на которую были спроецированы
вектора параметров состояний обучающей выборки,

совокупность векторов характеристик.
Предполагается, что обучающая выборка не содержит векторов состояний
системы, соответствующих поведению системы в процессе совершения атак на систему.
40
Определение количества и начального расположения кластеров
По результатам тестирования, приведенного в главе 7.1, в качестве алгоритма для
определения количества и начального расположения кластеров выбран алгоритм BIRCH.
В качестве основного представления кластеров используется представление
кластера в виде CF = (S, S2, N), где:

S   vi , где vi – вектор кластера,
i

S 2  ( (vi(1) ) 2 , (vi(1) ) 2 ,...,  (vi( d ) ) 2 ) , где d – размерность пространства
i
i
i
характеристик,

N – количество векторов кластера.
Выделение кластеров производится при фиксированном значении максимального
размера кластера. Размер кластера выбирается по результатам тестирования применения
алгоритма при различных значениях размера кластера на части обучающей выборки. В
данной работе выбирается такое значение размера кластера, при котором количество
выделенных кластеров не превосходит k*M, где M-максимальное количество кластеров,
задаваемое ограничением этапа обучения, k выбирается для достижения приемлемой
скорости работы алгоритма этапа объединения кластеров (в данной работе выбрано k=5).
По результатам тестирования для данных KDD Cup было выбрано значение
максимального размера кластера 0.5. При тестировании в составе системы «МониторингРВС-И» (см. главу 10.4), было выбрано значение максимального размера кластера 0.15.
На основании результатов тестирования иерархических алгоритмов, для разбиения
кластеров-узлов дерева был выбран иерархический алгоритм с метрикой complete-linkage.
Максимальный размер узлового кластера выбран равный 20. При таком значении лучшие
показатели эффективности достигаются при разбиении узлового кластера на 2 кластераподузла. При тестировании на обучающей выборке большого объема, для сокращения
количества разбиений кластеров, максимальный размер узлового кластера выбирался
равный 100, при этом разбиение производилось на 5 подузлов. Увеличение размера
узлового кластера приводит к замедлению работы каждого шага алгоритма, однако
уменьшает число шагов, требуемое для достижения достаточной точности кластеризации.
Объединение ближайших кластеров
41
По результатам тестирования, приведенного в главе 7.2, в качестве алгоритма для
объединения кластеров выбран иерархический алгоритм, использующий метрику
complete-linkage для определения схожести кластеров.
В связи с ограничением этапа обучения на максимальное количество кластеров,
возникает задача удаления кластеров малого размера. Под такими кластерами понимаются
кластеры, содержащие не более чем K векторов. Наличие кластеров малого размера может
привести к ухудшению показателей точности алгоритма. В частности, при наличии более
чем
M
малых
кластеров
(M-максимальное
количество
кластеров,
задаваемое
ограничением этапа обучения), сильно удаленных от кластеров с большим количеством
векторов, будет выполнено объединение больших кластеров, что приведет к значительной
потере точности.
Удаление кластеров с малым количеством векторов перед применением
инкрементального алгоритма может привести к удалению совпадающих кластеров,
расположенных в разных ветвях дерева кластеров. Для решения данной задачи процесс
объединения кластеров разбивается на 3 этапа:

первоначальное объединение кластеров,

удаление малых кластеров,

завершение объединения кластеров.
Первоначальное объединение кластеров выполняется до тех пор, пока метрика
complete-linkage не достигнет требуемого значения порогового значения. Пороговое
значение метрики выбирается на основании выбранного значения максимального размера
кластера. В данной работе выбрано пороговое значение, равное 0.15.
Завершение объединения кластеров выполняется до тех пор, пока не будет
достигнуто количество кластеров, заданное ограничением этапа обучения.
Применение
неинкрементального
алгоритма
для
минимизации
ошибки
кластеризации
По результатам тестирования, приведенного в главе 7.3, в качестве алгоритма
данного этапа выбран алгоритм batch k-means. Алгоритм выполняется до тех пор, пока
изменение средней квадратичной ошибки не станет меньше определенного порогового
значения, либо пока не будет выполнено фиксированное число шагов алгоритма. Данное
решение связано с проблемой сходимости алгоритма batch k-means [37]. В данной
реализации, максимальное число шагов алгоритма равно 20. Алгоритм завершается при
изменении квадратичной ошибки меньше чем на 0.1%.
42
В ходе применения алгоритма K-means возникает проблема, связанная с наличием
векторов, сильно удаленных от большинства векторов кластеров нормального поведения.
Такие вектора появляются при удалении кластеров, содержащих малое количество
векторов, на этапе объединения кластеров. Наличие сильно удаленных векторов приводит
к перемещению центроида кластера к границам области нормального поведения и
увеличению размера кластеров, что влияет на точность обнаружения атак. Для
минимизации влияния сильно удаленных векторов, в процессе применения алгоритма не
рассматриваются
вектора,
удаленные
от
центроида
кластера
на
расстояние,
превосходящее k*R, где R – текущий размер кластера. По результатам тестирования, в
данной работе выбрано значение k равное 5.
8.2.2. Этап обнаружения
На основании выбранного представления кластеров и общей последовательности
шагов этапа обучения, в качестве алгоритма этапа обнаружения были выбраны
следующие алгоритмы:
 анализ отклонений,
 алгоритм, основанный на определении степени обособленности векторов
(аналог k-NN).
Анализ отклонений. Данный алгоритм часто применяется для решения задачи
обнаружения исключений при использовании представления кластеров в виде центроидов
(например, в работах [23, 38]).
Основная идея алгоритма заключается в вычислении радиуса кластера как среднего
расстояния между векторами кластера и центроидом кластера. Алгоритм определения
принадлежности вектора к совокупности кластеров состоит из следующих шагов:
1. для анализируемого вектора x определяется расстояние до центроида
ближайшего кластера,
2. если расстояние до центроида больше чем r, где r – радиус кластера, то
вектор считается аномальным.
При использовании предположения о нормальности распределения векторов
внутри кластера, можно выбрать значение параметра  алгоритма исходя из особенностей
распределения.
43
Алгоритм, основанный на определении степени обособленности векторов. Данный
алгоритм является модификацией алгоритма определения выбросов на основании анализа
расстояний до «k ближайших соседей» (ближайших векторов нормального поведения).
Идея разработанного алгоритма заключается в вычислении степени обособленности как
среднего расстояния до заранее заданного количества ближайших векторов нормального
поведения. Но, в отличие от общего алгоритма, приведенного в [39], в качестве векторов
нормального поведения выбираются центроиды ближайших кластеров столько раз,
сколько векторов содержится в кластере.
В качестве используемых способов вычисления степени обособленности, в данной
работе используются индексы gamma и delta:
gamma(v, Cl ( NS )) 
delta(v, Cl ( NS )) 
В
качестве
 (n  || v, c
i
pi  P Cl ( NS )
i
||)
N
 (n
i
piP  Cl ( NS )
 (v  ci ))
N
параметра
алгоритма
задается
пороговое
значение
степени
обособленности и требуемое количество ближайших векторов N. На основании
вычисленного
значения
степени
обособленности
определяется
принадлежность
анализируемого вектора к выделенной совокупности кластеров следующим образом: если
значение степени обособленности ниже порогового значения, то входной вектор считается
принадлежащим совокупности кластеров. В противном случае, анализируемый вектор
считается аномальным.
44
9. Тестирование
реализованного
анализатора
на
данных KDD
Обучение и тестирование анализатора, реализованного на основе предлагаемого
метода, производилось на тестовом наборе данных KDD Cup 99. Целями тестирования
являлись:

сравнение эффективности алгоритмов этапа обнаружения,

определение изменения показателей эффективности при добавлении в
обучающую выборку векторов, соответствующих атакам (имитация шума).
Тестирование анализатора было разделено на два этапа. Этапы различались по
содержанию обучающей выборки, на которой производилось обучение анализатора:
1. обучающая
выборка
не
содержит
векторов
состояний
системы,
соответствующих атакам
2. обучающая
выборка
содержит
малое
количество
векторов,
соответствующих атакам.
9.1. Тестирование анализатора на обучающей выборке, не
содержащей векторов, соответствующих атакам
Тестирование проводится согласно методике KDD Cup. В качестве обучающей
выборки использовались вектора 10% выборки KDD. В качестве тестовой выборки
использовался тестовый набор KDD.
Характеристики обучающей выборки:

число примеров нормального поведения – 94 тысячи.
Характеристики тестовой выборки:

число примеров нормального поведения – 60 тысяч,

число примеров атак – 250 тысяч.
Тестирование алгоритмов, приведенных в главе 8.2.2, проводилось при различных
пороговых значениях степени обособленности, при различном количестве ближайших
векторов и при различном значении параметра .
Результаты тестирования приведены на рисунке 9.1. Точки графика на рисунке 9.1
соответствуют парам (100% - ошибка 1 рода, ошибка 2 рода) для различных пороговых
45
значений степени обособленности в алгоритме этапа обнаружения. Под точностью в
данной работе понимается процент правильно распознанных векторов тестовой выборки.
100%
точность обнаружения атак (%)
90%
80%
70%
60%
50%
k-NN (gamma)
40%
k-NN (delta)
30%
анализ отклонений
20%
расстояние до ближайшего
центроида
10%
0%
0%
1%
2%
3%
4%
5%
6%
7%
8%
ложные срабатывания (%)
Рисунок 9.1. Зависимость % обнаружения атак от % ложных срабатываний
По результатам тестирования, алгоритм с индексом обособленности gamma при
значении количества ближайших векторов равном 1 (расстояние до ближайшего
центроида) обладает большей точностью обнаружения атак значениях ошибки второго
рода меньше 3%.
Алгоритм с индексом обособленности delta при значении количества ближайших
векторов равном 10 обладает большей точностью обнаружения при количестве ошибок
второго рода больше 3%, при этом алгоритм показывает максимальную точность
распознавания
векторов
тестовой
выборки.
Алгоритм
определения
степени
обособленности с индексом gamma показывает меньшую точность обнаружения атак по
сравнению с алгоритмом с индексом delta.
46
9.2. Тестирование анализатора на обучающей выборке,
содержащей вектора, соответствующие атакам
При обучении системы обнаружения атак на реальной системе возможны
ситуации, когда вектора, соответствующие атакам, попадают в обучающую выборку как
примеры нормальных состояний системы, что приводит к снижению эффективности
обнаружения атак. Задача данного этапа тестирования – оценить потери эффективности
реализованного
анализатора
при
наличии
в
обучающей
выборке
векторов,
соответствующих атакам.
Выборка данных KDD содержит вектора атак, относящихся к 4 различным классам
(отказ в обслуживании (DoS), удаленный доступ к системе (r2l) , повышение прав доступа
(u2r) и сканирование системы (probe)). В связи с тем, в выборке KDD преобладают
вектора атак первого класса, тестирование на таком наборе данных будет в меньшей мере
учитывать характеристики обнаружения атак других классов. Для решения данной
проблемы тестовая выборка строилась из соображений уравнивания числа векторов атак
различных классов. Были выделены множества атак, присутствующих в выборке KDD.
После чего в тестовую выборку были произвольным образом включены вектора
различных классов таким образом, чтобы количество атак каждого класса совпадало. Для
оценки ошибки второго рода в тестовую выборку были произвольным образом добавлены
вектора нормального поведения.
В обучающую выборку были включены все вектора выборки, помеченные как
нормальные. Для того чтобы проверить способность анализатора к обобщению,
произвольным образом из обучающей выборки была исключена половина векторов.
Характеристики обучающей выборки:

число примеров нормального поведения – 47 тысяч

число векторов, соответствующих атакам (шум) – 1 тысяча
Характеристики тестовой выборки:

число примеров нормального поведения – 40 тысяч

число примеров атак каждого класса – 10 тысяч (всего 40 тысяч примеров
атак)
47
100%
точность обнаружения атак (%)
90%
80%
70%
60%
50%
40%
30%
расстояние до ближайшего центроида
k-NN (gamma)
анализ отклонений
k-NN (delta)
20%
10%
0%
0%
1%
2%
3%
4%
5%
6%
7%
8%
9%
10%
11%
12%
ложные срабатывания (%)
Рисунок 9.2. Зависимость % обнаружения атак от % ложных срабатываний
Тестирование производилось для различных пороговых значений степени
обособленности в алгоритме этапа обнаружения. Результаты тестирования приведены на
рисунке 9.2. Точки графика на рисунке 9.2 соответствуют парам (процент обнаруженных
атак, ошибка 2 рода) для различных пороговых значений степени обособленности в
алгоритме этапа обнаружения.
Алгоритм gamma со значением числа ближайших векторов 1 (расстояние до
ближайшего центроида) обладает низкой устойчивостью к наличию шума в обучающей
выборке, что характеризуется падением точности обнаружения атак. По результатам
тестирования, алгоритм определения степени обособленности delta при значении числа
ближайших векторов 441 показал наибольшую точность обнаружения атак по сравнению
с другими рассматриваемыми алгоритмами.
9.3. Анализ результатов
Тестирование предложенного метода обнаружения атак показало высокие
показатели эффективности на обоих этапах. Однако предложенный метод является слабо
устойчивым к наличию в обучающей выборке векторов, соответствующих атакам. Это
характеризуется высокими значениями ошибки первого рода при малых значениях
48
ошибки второго рода, что продемонстрировано на рисунке 9.2. Таким образом, для
эффективного применения предложенного метода требуется обеспечить отсутствие в
обучающей выборке векторов, соответствующих атакам.
Эффективность работы анализатора определяется выбором алгоритма этапа
обнаружения и значениями параметров алгоритма. При создании промышленной системы
обнаружения атак, выбор алгоритма и значений параметров алгоритма может
производиться с целью максимизации точности обнаружения атак определенного класса,
либо с целью достижения определенных показателей ошибки первого и второго рода.
Такое значение параметра может быть выбрано на основании тестирования системы
обнаружения атак на способность обнаружения атак различных классов.
49
10. Интеграция анализатора в состав СОА МРВС-И
10.1. Описание входных данных
Сенсоры системы обнаружения атак «Мониторинг-РВС-И» собирают информацию
о состоянии системы посредством анализа сетевых соединений. По каждому соединению
сенсором через равные интервалы времени выдается замер активности соединения –
вектор, содержащий в себе характеристики соединения и характеристики активности узла,
с которым устанавливается соединение. Замеры активности для каждого соединения
производятся один раз в 2 секунды.
10.2. Функционирование анализатора в составе СОА
Поставим в соответствие каждому сетевому соединению совокупность замеров,
полученных анализатором от сенсора системы обнаружения атак. Согласно используемой
модели предметной области, описанной в главе 3, состояние системы в каждый момент
времени определяется как вектор характеристик активности ресурсов системы в данный
момент времени. Под активностью ресурсов системы будем понимать сетевые
взаимодействия, осуществляемые ресурсами системы.
Согласно выбранной модели предметной области, под атакой будем понимать
взаимодействие ресурсов, переводящее систему из нормального состояния в аномальное.
Будем называть сетевое взаимодействие атакой, если хотя бы один замер данного
соединения не принадлежит множеству нормальных состояний системы.
Таким образом, функционирование реализованного анализатора заключается в
проверке принадлежности замеров сетевых соединений к множеству нормальных
состояний системы.
10.3. Интеграция
анализатора
в
состав
системы
обнаружения атак
Система
обнаружения
атак
«Мониторинг
РВС-И»
содержит
в
себе
интеллектуальный анализатор, основанный на использовании нейронных сетей. В связи с
схожим
представлением
входных
данных,
50
для
интегрирования
разработанного
анализатора в состав системы обнаружения атак был использован способ интеграции
нейросетевого анализатора.
узловой
сенсор
узловой
сенсор
сообщение об атаке
узловой
сенсор
локальный агент
реагирования
сетевой
сенсор
замеры с информацией
о результатах анализа
замеры сетевых соединений
анализатор
Рисунок 10.1. Взаимодействие анализатора с инфраструктурой системы обнаружения атак
Способ интеграции анализатора приведен на рисунке 10.1. Согласно принципу
интегрирования
интеллектуальных
анализаторов
в
систему
обнаружения
атак
«Мониторинг-РВС-И», обмен данными между анализатором и сенсором происходит
посредством использования именованных каналов. Анализатор создает исходящий и
входящий именованные каналы, после чего сетевой сенсор подключается к созданным
каналам для передачи данных.
В качестве анализируемых данных анализатор получает последовательно замеры
состояний активных сетевых соединений. В качестве результатов анализа анализатор
передает сенсору анализируемый входной вектор, в одно из полей которого заносится
информация об обнаруженных атаках. На основании данных от анализатора сенсором
создается сообщение об атаке, которое передается локальному агенту реагирования.
Обучение разработанного анализатора выполняется на основании записанных
замеров сетевых соединений, полученных от сетевого сенсора анализатором в режиме
сбора обучающей выборки. В данном режиме анализатор производит сохранение входных
данных в текстовый файл, не выполняя при этом анализ данных. Кроме того, анализатор
51
может выполнять сбор данных для пополнения обучающей выборки в процессе
обнаружения, сохраняя анализируемые данные для последующего обучения.
В режиме обнаружения анализатор выполняет анализ входных данных на
основании модели нормального поведения, полученной в процессе обучения.
10.4. Тестирование в составе СОА
10.4.1.
Обучение анализатора
Обучение анализатора проводилось на данных активности системы за один день.
Период сбора данных разбивался на интервалы по 15 минут. В течение каждого интервала
происходил сбор обучающей выборки. По окончании интервала выполнялся перезапуск
системы обнаружения атак.
Для того чтобы обеспечить отсутствие в обучающей выборке замеров,
соответствующих
атакам,
обучение
производилось
совместно
с
использованием
сигнатурной системы обнаружения атак Snort следующим образом: если системой Snort
были обнаружены атаки либо попытки совершения атак за интервал сбора обучающей
выборки, выборка признавалась недействительной. Обучение анализатора выполнялось
только на выборках, не содержащих атак.
10.4.2.
Тестирование
Тестирование анализатора выполнялось на следующих наборах входных данных:

участки нормальной активности системы из обучающей выборки,

собранные обучающие выборки, признанные недействительными,

данные активности системы в процессе проведения атак классов отказа в
обслуживании и удаленного доступа к системе.
Тестирование проводилось при различных значениях параметров алгоритмов этапа
обнаружения, аналогично тестированию на данных KDD Cup. На рисунке 10.2 приводится
график зависимости точности обнаружения атак от числа ложных срабатываний.
52
точность обнаружения атак (%)
100%
90%
80%
70%
60%
k-NN (N=100)
50%
40%
анализ отклонений
30%
расстояние до ближайшего
кластера
k-NN (N=10)
20%
10%
0%
0%
1%
2%
3%
4%
5%
6%
7%
8%
9%
10%
ложные срабатывания (%)
Рисунок 10.2. Зависимость % обнаружения атак от % ложных срабатываний
Алгоритмы этапа обнаружения показали примерно одинаковые показатели
эффективности. Алгоритм определения степени обособленности (k-NN) показал более
высокую точность при значении числа ближайших векторов равном 10, при увеличении
числа требуемых ближайших векторов происходит падение точности обнаружения атак.
53
11. Полученные результаты
В результате проведенных исследований были достигнуты следующие результаты,
отраженные в данной работе:
1. Проведено исследование эффективности применения различных методов
кластерного анализа для решения задачи обнаружения атак и выбран
принцип
функционирования
анализатора
на
основании
результатов
исследования.
2. Выбрана последовательность алгоритмов, применимых для решения задачи
обнаружения атак.
3. Реализован анализатор системы обнаружения атак на основании выбранных
методов, выполнена интеграция реализованного анализатора в состав
системы обнаружения атак МРВС-И.
4. Проведено исследование эффективности реализованного анализатора:
o проведено исследование эффективности анализатора на тестовых
данных KDD Cup,
o проведено исследование эффективности анализатора в составе
существующей системы обнаружения атак «Мониторинг-РВС-И».
54
12. Заключение
12.1. Ограничения применимости
Реализованный
анализатор
обладает
рядом
ограничений
применимости,
включающие в себя ограничения на датчики системы, на процесс обучения и ограничения
изменчивости системы.
Ограничения на датчики системы. Для обеспечения высокой точности работы
анализатора, принцип функционирования датчиков системы в процессе обучения и в
процессе обнаружения атак не должен изменяться. Кроме того, не должны изменяться
принципы опроса датчиков и механизмы обмена данными, так как такие изменения могут
отразиться на векторах состояний системы.
Ограничения на процесс обучения. Анализатор обладает низкой точностью
обнаружения атак при наличии в обучающей выборке векторов состояний системы,
соответствующих атакам, что требует применения альтернативной системы обнаружения
атак в процессе сбора обучающей выборки. Дополнительно требуется минимизировать
возможное влияние системы обнаружения атак на наблюдаемую систему.
Ограничения на степень изменчивости системы. В связи с тем, что реализованный
анализатор использует подход обнаружения аномалий, возникает проблема изменчивости
системы: при изменении наблюдаемой системы (добавление новых улов либо
программного обеспечения) возрастает число ложных срабатываний, что требует
переобучения системы.
12.2. Дальнейшее развитие разработанного подхода
Возможные направления дальнейшего развития разработанного подхода включают
в себя:

адаптация
последовательности
шагов
алгоритма
для
использования
кластеров более сложной формы нежели сферической,

оптимизация алгоритма объединения кластеров для уменьшения степени
влияния кластеров, содержащих малое количество векторов,

использование данных о примерах атак для уточнения модели нормального
поведения,
55

использование кластеризации без потери точности для оптимизации задачи
поиска ближайших кластеров в алгоритмах этапа обнаружения.
56
13. Список литературы
1. Snort: инструмент выявления сетевых атак [HTML]
(http://www.thg.ru/network/20051020/index.html)
2. Система обнаружения атак RealSecure [HTML]
(http://citforum.ru/security/internet/real_scan.shtml)
3. Ричард Кеммерер, Джованни Виджна “Обнаружение вторжений: краткая история и
обзор” [HTML] (http://www.osp.ru/text/302/181714.html)
4. Дэвид Ньюман. Системы предотвращения сетевых атак [HTML]
(http://www.osp.ru/text/302/3498912/)
5. Виктор Сердюк “Вы атакованы - защищайтесь!” [HTML] (http://inform.pstone.ru/libr/nets/security/data/public7/)
6. Проблема «нулевого дня» [HTML]
(http://itc.ua/article.phtml?ID=26845&IDw=38&pid=57)
7. Intrusion Detection Systems (IDS) Part 2 - Classification; methods; techniques [HTML]
(http://www.windowsecurity.com/articles/IDS-Part2-Classification-methodstechniques.html)
8. НИР «Невод», Промежуточный научно-технический отчет по первому этапу,
Москва, 2003
9. Neural Networks in Statistical Anomaly Intrusion Detection [PDF]
(http://web.njit.edu/~manikopo/papers/published/cscc01-final.pdf)
10. H. S. Javitz, A. Valdes, the NIDES Statistical Component: Description and Justification,
Technical report, SRI International, March 1993.
11. Host-Based Intrusion Detection Using Self-Organizing Maps [PDF]
http://users.cs.dal.ca/~mheywood/X-files/Publications/PeterSOM-ids.pdf
12. Петровский М.И. Применение методов интеллектуального анализа данных в
задачах выявления компьютерных вторжений // Труды Второй Всероссийской
научной конференции, Методы и средства обработки информации. М.: Изд-во
факультета ВМиК МГУ, 2005. С. 158-168.
13. Кластерный анализ [HTML]
(http://www.statsoft.ru/home/textbook/modules/stcluan.html)
14. Chan P., Mahoney M., Arshad M. Learning rules and clusters for anomaly detection in
network traffic // Managing Cyber Threats: Issues, Approaches and Challenges. 2005
[PDF] (http://www.cs.fit.edu/~pkc/papers/cyber.pdf)
57
15. Гамаюнов Д.Ю., Качалин А.И. Обнаружение атак на основе анализа переходов
состояний распределенной системы // Искусственный интеллект. 2004. N 2, С.4953.
16. Качалин А.И. Дипломная работа. “Применение нейросетей для обнаружения
аномального поведения объектов в компьютерных сетях”
17. Jain A.K, Murty M.N, Flynn P.J. Data Clustering A review // ACM Computing Surveys.
1999. 31. No. 3. [PDF]
(http://www.cs.rutgers.edu/~mlittman/courses/lightai03/jain99data.pdf)
18. Tian Zhang, Raghu Ramakrishnan, Miron Livny BIRCH: An Efficient Data Clustering
Method for Very Large Databases // ACM SIGMOD International Conference on
Management of Data. 1996. [PDF] (http://citeseer.ist.psu.edu/zhang96birch.html)
19. M.R. Garey, D.S. Johnson and H.S. Witsenhausen, The complexity of the generalized
Lloyd-Max problem, IEEE Transactions on Information Theory, 28(2): 255-256, March
1982.
20. ClustanGraphics8 [HTML] (http://www.clustan.com/clustangraphics.html)
21. Frank Dellaert, The Expectation Maximization Algorithm // College of Computing,
Georgia Institute of Technology, 2002 [PDF] (http://www.cc.gatech.edu/~dellaert/empaper.pdf)
22. Hierarchical Clustering [HTML]
(http://www.resample.com/xlminer/help/HClst/HClst_intro.htm)
23. Arnold A., Eskin E., Prerau M., Portnoy L., Stolfo S. A Geometric Framework for
Unsupervised Anomaly Detection: Detecting Intrusions in Unlabeled Data // Kluwer,
Applications of Data Mining in Computer Security, 2002, pp.272.
24. Minimum spanning tree [HTML]
(http://en.wikipedia.org/wiki/Minimum_spanning_tree#Algorithms)
25. Minimum Spanning Trees [HTML]
(http://www.cs.usask.ca/resources/tutorials/csconcepts/1999_8/tutorial/advanced/prim/ms
t.html)
26. Kruskal's algorithm [HTML] (http://en.wikipedia.org/wiki/Kruskal%27s_algorithm)
27. Delauney triangulation, QuickHull algorithm [HTML]
(http://www.cse.unsw.edu.au/~lambert/java/3d/quickhull.html)
28. Minimum Spanning Tree Clustering [HTML]
(www.tigr.org/~salzberg/murthy_thesis/node58.html,
58
http://66.249.93.104/search?q=cache:snomnp0zMewJ:www.tigr.org/~salzberg/murthy_th
esis/node58.html)
29. Fuzzy C-Means Clustering [HTML]
(http://www.elet.polimi.it/upload/matteucc/Clustering/tutorial_html/cmeans.html)
30. Dickerson J. E., Juslin J., Koukousoula O. Fuzzy Intrusion Detection [PDF]
(http://home.eng.iastate.edu/~julied/publications/NAFIPS2001%20Fuzzy%20Intrusion%20Detection,%20v6.pdf)
31. Dempster, A. P., Laird, N. M., Rubin, D.B. Maximum likelihood from incomplete data
via the EM algorithm. // Journal of the Royal Statistical Society. 1977. B. 39. С.1-38.
32. Javier R. Movellan. Tutorial on Generalized Expectation Maximization [PDF]
(http://mplab.ucsd.edu/tutorials/pdfs/EM.pdf)
33. Bayraktaroglu I. Expectation Maximization Algorithm [HTML] (http://wwwcse.ucsd.edu/users/ibayrakt/java/em/)
34. Shi Zhong, Taghi Khoshgoftaar, Naeem Seliya Clustering-based network intrusion
detection [PDF] (http://www.cse.fau.edu/~zhong/papers/idclust.pdf)
35. Yu Guan, Ali A. Ghorbani Y-Means: A clustering method for intrusion detection. [PDF]
(http://ias.cs.unb.ca/papers/ccece03.pdf)
36. Prerau M. J., Eskin E. Unsupervised Anomaly Detection Using an Optimized K-Nearest
Neighbors Algorithm [PDF]
(http://www.music.columbia.edu/~mike/publications/thesis.pdf)
37. K-means critique [HTML] (http://www.clustan.com/k-means_critique.html)
38. Chan P., Mahoney M., Arshad M. Learning rules and clusters for anomaly detection in
network traffic // Managing Cyber Threats: Issues, Approaches and Challenges. 2005
[PDF] (http://www.cs.fit.edu/~pkc/papers/cyber.pdf)
39. S. Harmeling, G. Dornhege, D. Tax, F. Meinecke, K.-R. Müller From outliers to
prototypes: ordering data // Neurocomputing, 2006 [PDF]
(http://ida.first.fhg.de/~harmeli/ordering.pdf)
59
Download