4 Обзор методов кластерного анализа

реклама
Московский Государственный Университет им. М.В. Ломоносова
Факультет Вычислительной Математики и Кибернетики
Кафедра АСВК
Дипломная работа
Разработка анализатора системы
обнаружения атак, основанного на методах
кластерного анализа
студент 522 гр. Наградов Е.А
Научные руководители:
д.ф.-м.н., проф. Смелянский Р.Л.
Качалин А.И.
Москва, 2007 г.
Аннотация
В данной работе исследуется эффективность применения методов кластерного
анализа для решения задачи обнаружения сетевых атак. В работе предложен метод
обнаружения атак, основанный на применении алгоритмов кластерного анализа, и
выполнена реализация анализатора статистической системы обнаружения атак на основе
предложенного метода. Проведено экспериментальное исследование реализованного
анализатора на тестовых данных KDD Cup 99 и в составе системы обнаружения атак
REDSecure и получены показатели эффективности.
2
Содержание
1
Введение .................................................................................................................................5
2
Цели и задачи работы..........................................................................................................10
3
Основные понятия и формальная постановка задачи ......................................................11
4
3.1
Модель предметной области ......................................................................................11
3.2
Постановка задачи обнаружения атак .......................................................................13
3.3
Применение методов кластерного анализа для обнаружения атак ........................14
3.3.1
Этап обучения ......................................................................................................14
3.3.2
Этап обнаружения ...............................................................................................15
Обзор методов кластерного анализа ..................................................................................17
4.1
Цели обзора ..................................................................................................................17
4.2
Классификация методов .............................................................................................18
4.3
Иерархические методы ...............................................................................................20
4.4
Методы разбиения .......................................................................................................21
4.4.1
Методы минимизации квадратичной ошибки ..................................................21
4.4.2
Методы построения графа ..................................................................................22
4.4.3
Методы, использующие нечеткие кластеры .....................................................22
4.5
Обзор существующих подходов, использующих кластерный анализ для решения
задачи обнаружения атак ........................................................................................................24
4.6
5
6
Результаты обзора .......................................................................................................25
Исследование применимости алгоритмов кластерного анализа ....................................26
5.1
Инкрементальные алгоритмы ....................................................................................26
5.2
Иерархические алгоритмы ..........................................................................................30
5.3
Неинкрементальные алгоритмы.................................................................................32
5.4
Алгоритм нечеткой кластеризации ............................................................................35
5.5
Результаты исследования ...........................................................................................36
Описание практической части ...........................................................................................37
6.1
Программная реализация анализатора системы обнаружения атак .......................37
6.1.1
Инфраструктура анализатора .............................................................................37
6.1.2
Схема работы анализатора .................................................................................39
6.1.3
Описание программной реализации ..................................................................44
6.2
Тестирование реализованного анализатора на данных KDD ..................................48
3
6.2.1
Тестирование анализатора на обучающей выборке, не содержащей векторов,
соответствующих атакам ....................................................................................................49
6.2.2
Тестирование анализатора на обучающей выборке, содержащей вектора,
соответствующие атакам ....................................................................................................51
6.2.3
6.3
Результаты тестирования ....................................................................................55
Интеграция анализатора в состав СОА REDSecure .................................................55
6.3.1
Описание входных данных .................................................................................55
6.3.2
Функционирование анализатора в составе СОА ..............................................55
6.3.3
Интеграция анализатора в состав системы обнаружения атак .......................56
6.4
Тестирование в составе СОА .....................................................................................57
6.4.1
Описание входных данных .................................................................................57
6.4.2
Тестирование........................................................................................................58
6.4.3
Результаты тестирования ....................................................................................59
6.5
Ограничения применимости .......................................................................................59
7
Заключение...........................................................................................................................61
8
Список цитируемой литературы ........................................................................................62
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,23,41]. В качестве входных данных применяемые методы
кластерного анализа используют вектора, содержащие статистические характеристики
активности системы, например, такие как параметры сетевых соединений системы,
степень загруженности ресурсов системы или активность процессов, выполняющихся на
узле системы. На основании анализа векторов обучающей выборки производится
построение кластеров, описывающих нормальное поведение системы, после чего
построенная совокупность кластеров используется для обнаружения аномалий.
9
2 Цели и задачи работы
Целью дипломной работы является разработка и исследование эффективности
метода обнаружения атак на основе алгоритмов кластерного анализа, допускающего
эффективное применение для обнаружения атак в реальной сети.
Для обеспечения возможности эффективного применения в реальной сети,
разработанный метод должен обладать следующими свойствами: возможность обучения
без использования примеров атак и возможность обнаружения атак в режиме реального
времени.
Для достижения цели работы необходимо:

Исследовать эффективность применения различных методов кластерного
анализа для решения задачи обнаружения атак.

Разработать
метод
обнаружения
атак,
основанный
на
алгоритмах
кластерного анализа.

Реализовать
анализатор
системы
обнаружения
атак
на
основании
разработанного метода.

Провести исследование эффективности реализованного анализатора по
критериям точности и временной сложности.
10
3 Основные понятия и формальная постановка
задачи
3.1 Модель предметной области
Формализуем основные понятия, используемые далее в работе. В качестве основы
для модели предметной области выбрана модель, разработанная Смелянским Р.Л. и
Гамаюновым Д.Ю., описанная в [15] и используемая в работах [15,16].
Будем рассматривать наблюдаемую систему как совокупность ресурсов системы и
наблюдателей системы.
Под ресурсами системы будем понимать компоненты системы, которые требуется
защитить от атак.
Под наблюдателем будем понимать сущность системы, которая позволяет
собирать характеристики активности ресурсов системы. Определим состояние ресурса
системы в каждый момент времени как совокупность характеристик активности ресурса,
получаемая от наблюдателей в данный момент времени. Характеристики активности
ресурса включают в себя общую информацию об активности ресурса (например,
загруженность ресурса) и характеристики взаимодействий, в которых принимает участие
данный ресурс (например, количество переданных данных для каждого взаимодействия).
Под взаимодействием между ресурсами будем понимать активность ресурсов по обмену
данными. Будем называть объектом ресурс (ресурс наблюдаемой системы либо
внешний), инициировавший взаимодействие.
Ресурсы могут быть как внутренними ресурсами системы, так и внешними по
отношению к наблюдаемой системе. Особенностью внешних ресурсов системы является
невозможность сбора наблюдателями информации об активности ресурса, которая не
связанна с взаимодействием с ресурсами наблюдаемой системы. Таким образом,
информация о внешних для системы ресурсах может быть получена наблюдателями
только посредством анализа взаимодействия этих ресурсов с ресурсами защищаемой
системы.
Определим состояние системы в определенный момент времени как совокупность
состояний всех ресурсов системы в данный момент времени. Таким образом, состояние
системы представляет собой совокупность характеристик загруженности ресурсов
системы и характеристик всех взаимодействий, в которых принимают участие ресурсы
системы.
11
Определим множество
нормальных состояний
системы как
совокупность
состояний системы в процессе штатного функционирования системы. Будем считать, что
нормальное состояние системы является безопасным [15], т.е. в таком состоянии системы
невозможны: нарушения конфиденциальности ресурсов системы, нарушение целостности
ресурсов системы, нарушение доступности ресурсов системы.
Расширим модель, определив множество аномальных состояний системы как
совокупность состояний системы, не принадлежащих множеству нормальных состояний.
В частности, к аномальным состояниям относятся состояния системы в процессе
совершения атаки на систему, таким образом, множество аномальных состояний содержит
в себе множество состояний, не являющихся безопасными.
Под воздействием на ресурс будем понимать изменение состояния ресурса
посредством осуществления взаимодействия с данным ресурсом. Тогда воздействие на
систему представляет собой одно или несколько воздействий на ресурсы наблюдаемой
системы. Далее в работе будем рассматривать только воздействия, которые представляют
собой взаимодействия между ресурсами.
Под атакой на систему будем понимать воздействие на систему, которое
переводит систему из нормального состояния в аномальное. При этом предполагается, что
множество нормальных состояний системы может быть статистически отличимо от
множества состояний, наблюдаемых в процессе осуществления атак на систему.
Обнаружением атаки в данной работе будем считать выявление факта совершения
атаки на основе информации о состоянии системы, полученной от наблюдателей системы.
При этом задача определения конкретного типа атаки и, возможно, момента ее
совершения не ставится.
Точность обнаружения атак – величина, характеризующая количество ошибок,
совершаемых системой обнаружения атак. Ошибки могут быть двух видов: нормальное
состояние системы признано аномальным – ошибка второго рода, и опасное поведение,
вызванное атакой, признано нормальным – ошибка первого рода. Главной задачей
построения системы является уменьшение числа ошибок первого и второго рода.
12
3.2 Постановка задачи обнаружения атак
Согласно определениям, приведенным в главе 3.1, состояние системы в каждый
момент времени можно представить в виде вектора характеристик активности ресурсов
системы:
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
По предположению о различимости состояний системы, приведенному в главе 3.1,
для данной наблюдаемой системы S с некоторой точностью может быть построено
отображение fS: ST{0,1} такое, что для любого состояния системы st=st(S,t):

fS(st) = 0, если stNormS

fS(st) = 1, если stST\NormS
Согласно определению атаки, задача обнаружения атак на наблюдаемую систему
сводится к вычислению значения отображения для наблюдаемых состояний системы в
процессе функционирования системы и выявлению состояния st(S,t) системы, для
которого fS(st(S,t))=1. В том случае, если для состояния системы в момент времени t0
выполнено fS(st(S,t0))=1, а для всех t<t0 fS(st(S,t))=0, то, следовательно, на наблюдаемую
систему было оказано воздействие, которое перевело систему из нормального состояния в
аномальное, что, по определению, является атакой на систему.
Приведенное отображение зависит не только от анализируемого состояния, но и от
поведения системы в процессе штатного функционирования. Для описания поведения
системы введем понятие обучающей выборки. Под обучающей выборкой будем понимать
совокупность состояний системы, которые представляют собой примеры нормальных
состояний системы.
Таким образом, задача обнаружения атак может быть сформулирована следующим
образом:
Задана обучающая выборка {x1,…, xn }, xiNormS
Требуется построить анализатор, реализующий отображение fS, т.е. решающий
задачу определения принадлежности наблюдаемых состояний системы к множеству
NormS.
13
Для того чтобы обеспечить возможность использования анализатора в реальной
системе обнаружения атак, требуется обеспечить возможность функционирования
анализатора в режиме реального времени, т.е. вычисление fS(x) для каждого
анализируемого состояния системы xST не должно превышать директивный срок Tmax.
3.3 Применение
методов
кластерного
анализа
для
обнаружения атак
Разделим функционирование анализатора на два этапа [12,41]: этап обучения и
этап обнаружения. Этап обучения заключается в построении модели нормального
поведения системы на основании обучающей выборки, содержащей примеры нормальных
состояний системы. Этап обнаружения заключается в проверке принадлежности
наблюдаемых состояний системы к построенной модели нормального поведения.
3.3.1 Этап обучения
В качестве модели нормального поведения будем использовать описание
множества нормальных состояний системы посредством совокупности кластеров,
выделенных при помощи одного или нескольких алгоритмов кластерного анализа.
Кластеры модели нормального поведения обладает набором характеристик, на основании
которых может быть определена степень принадлежности анализируемого вектора к
данному кластеру или совокупности кластеров. Выбор конкретного представления
кластера зависит от используемых алгоритмов кластеризации.
Применение методов кластерного анализа опирается на предположение о том, что
принадлежность анализируемого вектора состояния системы к множеству нормальных
состояний системы можно определить посредством определения принадлежности вектора
к совокупности кластеров модели нормального поведения.
Таким образом, задача построения модели нормального поведения системы
сводится к задаче кластеризации векторов обучающей выборки.
Определим формально задачу этапа обучения.
Задана обучающая выборка NS={x1,…, xn }, xiNormS
Требуется построить модель нормального поведения Cl(NS), Cl(NS) = {p1, p2, …,
pk}, где pi – множество характеристик i-го кластера модели нормального поведения.
14
Для выполнения требований функционирования в режиме реального времени
дополнительно накладываются ограничения (ограничения, накладываемые этапом
обнаружения) на максимальное количество кластеров модели нормального поведения.
Таким образом, для решения задачи этапа обучения требуется выбрать
представление кластера, которое допускает возможность обнаружения атак в режиме
реального времени, а также выбрать алгоритм либо последовательность алгоритмов,
используемых для построения модели нормального поведения, удовлетворяющей
ограничению на максимальное количество кластеров.
Для
того
чтобы
обеспечить
достаточную
точность
описания
множества
нормального поведения, требуется обеспечить полноту покрытия множества нормального
поведения системы примерами обучающей выборки. Следствием этого является большой
объем обучающей. Кроме того, для наиболее точного описания состояния ресурсов
системы могут использоваться вектора характеристик высокой размерности. Эти
требование
накладывает
ограничения
на
возможность
применения
алгоритмов
кластеризации:

алгоритм кластеризации должен обладать возможностью обрабатывать
вектора высокой размерности без потерь точности,

алгоритмы с квадратичной сложностью (временной или пространственной)
относительно
размера
обучающей
выборки
обладают
меньшей
применимостью в контексте решаемой задачи в связи с большим объемом
обучающей выборки.
Приведенные выше ограничения будем учитывать далее в главе 4 при
исследовании применимости методов кластерного анализа.
3.3.2 Этап обнаружения
Задача этапа обнаружения заключается в определении принадлежности вектора
наблюдаемого состояния системы к множеству нормальных состояний системы. Согласно
предположению о том, что принадлежность вектора к множеству нормальных состояний
может быть определена как принадлежность к совокупности кластеров модели
нормального поведения, определим формально задачу этапа обнаружения.
Заданы:

модель нормального поведения системы Cl(NS) = {p1, …, pk}, где pi –
множество характеристик i-го кластера модели нормального поведения.
15

множество анализируемых состояний системы A={xi}, xiST
Требуется для каждого анализируемого состояния определить принадлежность к
множеству NormS, т.е. вычислить значение fS(xi).
Дополнительно накладывается ограничение на возможность обнаружения атак в
режиме реального времени: вычисление fS(xi) не должно превышать директивный срок
Tmax. Требования реального времени накладывают ограничения на представление
кластера и количество кластеров в используемой модели нормального поведения.
16
4 Обзор методов кластерного анализа
4.1 Цели обзора
Целями обзора являются:

выбор представления кластеров, удовлетворяющего ограничениям задачи,

определение способа применения методов в контексте решаемой задачи,

выбор алгоритма или последовательности алгоритмов для реализации
анализатора СОА.
В качестве критериев обзора рассмотрим следующие характеристики алгоритмов
кластерного анализа:

Возможность выполнять обнаружение атак в режиме реального времени на
основе используемого представления кластера.

Временная сложность обучения – функция, оценивающая время работы
алгоритма по размеру входных данных. В контексте решаемой задачи,
временная сложность определяет применимость конкретного алгоритма для
обработки обучающей выборки
обучающих
примеров).
большого объема (большого числа
Алгоритмы
с
квадратичной
сложностью
относительно размера обучающей выборки плохо применимы для обработки
большого объема данных.

Возможность расширения размерности. Часть алгоритмов кластерного
анализа используется
для
анализа данных
с малой
размерностью
пространства, что ограничивает применимость в контексте решаемой
задачи.

Возможные варианты использования для решения задачи обнаружения атак.
В данной работе рассматриваются методы, перечисленные в классификации,
приведенной в работе [17]. Дополнительно, рассматривается метод кластеризации данных
большого объема, приведенный в работе [18].
17
4.2 Классификация методов
В связи с тем, что задача определения оптимального распределения векторов
обучающей выборки по кластерам принадлежит классу NP-полных [19], применяемые
методы кластерного анализа являются эвристическими.
Согласно [17], методы кластерного анализа можно разделить на 3 класса:

иерархические методы,

методы разбиения,

комбинированные методы.
Результатом
работы
иерархического
метода
является
иерархия
кластеров
(таксономия). Сами кластеры могут быть получены путем разбиения дерева на основе
некоторого критерия (например, необходимый размер кластера или количество
кластеров).
Результатом работы алгоритма, основанного на методе разбиения, является
множество кластеров, не связанных между собой определенной иерархией.
Комбинированные методы используют и иерархические методы, и методы
разбиения. Наиболее часто используется последовательно сначала метод разбиения, а
затем строится иерархия на основании полученных кластеров (например, [20, 18]).
Методы кластерного анализа различаются также по используемому представлению
кластера. Наиболее распространенными представлениями кластера, используемыми в
методах кластерного анализа, являются:

представление
в
виде
совокупности
векторов
кластера
(например,
иерархические алгоритмы),

представление в виде графа,

представление в виде параметров случайного распределения (например,
EM-алгоритм для смеси Гауссовых распределений),

представление в виде центроида (алгоритмы минимизации квадратичной
ошибки, например, k-means и online k-means).
Кроме
перечисленных
выше
представлений
существуют
смешанные
представления. Например, применяемое в алгоритме BIRCH [18] представление кластера
в виде Cluster Feature представляет собой композицию последних двух представлений.
Представление в виде совокупности векторов кластера. При таком представлении
каждый кластер описывается множеством векторов, принадлежащих данному кластеру.
18
Примерами алгоритмов, использующих такое представление кластера, являются
иерархические алгоритмы single-linkage и complete-linkage [17,22]. При использовании
данного представления модель нормального поведения содержит в себе все вектора
обучающей выборки, в результате чего время проверки принадлежности вектора к
совокупности кластеров зависит от объема обучающей выборки и не удовлетворяет
ограничениям этапа обнаружения.
Представление в виде графа. При таком представлении каждый кластер
описывается графом, связывающим все вектора, принадлежащие кластеру [17].
Использование такого представления позволяет немного уменьшить вычислительную
сложность для алгоритмов этапа обнаружения, однако вычислительная сложность
алгоритмов обнаружения на основании графов не позволяет применять их в режиме
реального времени при использовании обучающей выборки большого объема. Кроме того,
модель нормального поведения, аналогично предыдущему представлению, содержит все
вектора обучающей выборки, что ограничивает применимость для решаемой задачи
обнаружения атак в связи с большим объемом обучающей выборки.
Представление в виде центроида. При таком представлении каждый кластер
описывается центроидом [17, 13] – средним арифметическим векторов кластера. Данное
представление является наиболее распространенным при решении задачи кластеризации.
Использование данного представления позволяет сократить размер модели нормального
поведения по отношению к размеру исходной обучающей выборки, кто позволяет
уменьшить временную сложность этапа обнаружения.
Представление в виде параметров случайного распределения. Применение данного
представления кластера основано на предположении о том, что вектора кластера
распределены согласно одному из распределений. В случае использования нормального
распределения, параметрами распределения являются [17,21] математическое ожидание
векторов кластера и ковариационная матрица. Такое представление кластера применяется,
например,
в
EM-алгоритме
[21].
Преимуществом
такого
представления
перед
представлением в виде центроида является возможность выделения кластеров не только
сферической формы.
19
4.3 Иерархические методы
Задачей алгоритмов, основанных на иерархическом методе, является построение
иерархии, связывающей все кластеры между собой. Для построения множества кластеров,
полученная иерархия разбивается на определенном уровне глубины или производится
разбиение до тех пор, пока оставшиеся кластеры не будут удовлетворять выбранному
критерию.
Алгоритм работы:
1. каждый входной вектор выделяется в отдельный кластер,
2. выбираются два кластера, такие, что мера их схожести является
минимальной среди всех пар векторов,
3. выбранные два кластера объединяются в один, вышестоящий по иерархии,
4. шаги 2 и 3 повторяются до тех пор, пока не останется всего один кластер.
Иерархические методы объединяют в себе алгоритмы, различающиеся по способу
представления кластера и используемой мере схожести кластеров. Наиболее часто
используемые представления – в виде совокупности векторов и в виде центроида.
Для первого представления используются метрики single-linkage и complete-linkage.
Эти метрики определяются как минимальное и максимальное расстояние между
векторами кластеров соответственно. Для второго представления используются метрики,
основанные на вычислении расстояния между центроидами.
Особенности метода:

временная сложность зависит от используемой метрики, не меньше чем
квадратичная относительно размера обучающей выборки,

приведенный алгоритм можно использовать для входных векторов любой
размерности,

сильное влияние выбросов, т.к. возможно порождение множества кластеров,
состоящих из одного вектора, появляющихся на начальных этапах
разбиения.
Данные
методы
обладают
ограниченной
применимостью
для
решения
рассматриваемой задачи разработки анализатора в силу ограничений используемого
представления кластера и ограничений этапа обучения, т.к. высокая временная сложность
работы алгоритма не позволяет использовать его для обработки большого объема входных
данных. Однако в контексте решаемой задачи разработки анализатора, алгоритм может
быть применен для последующей обработки построенной модели нормального поведения,
в частности для объединения близко расположенных кластеров.
20
4.4 Методы разбиения
В данной работе рассматриваются следующие классы методов разбиения,
перечисленные в работе [17]:

методы минимизации квадратичной ошибки,

методы построения графа,

методы нечеткой кластеризации.
4.4.1 Методы минимизации квадратичной ошибки
Основная идея методов заключается в распределении входных векторов по
кластерам с целью минимизации квадратичной ошибки (MSE), показывающей точность
кластеризации. Рассматриваемые алгоритмы используют представление кластера в виде
центроида – вектора, определяющего центр кластера.
Алгоритмы, использующие метод минимизации квадратичной ошибки, можно
разделить на инкрементальные и неинкрементальные по способу выделения кластеров.
Основная идея инкрементальных алгоритмов заключается в последовательной
обработке векторов обучающей выборки и проверке принадлежности векторов к
множеству созданных кластеров. В том случае, когда вектор не принадлежит ни одному
кластеру, создается новый кластер. Параметром инкрементальных алгоритмов является
максимальный размер кластера. Аналогичный инкрементальный алгоритм применяется в
системе обнаружения атак [23].
Примерами инкрементальных алгоритмов являются incremental k-means и birch.
Недостатками инкрементальных алгоритмов в контексте решаемой задачи разработки
анализатора является невозможность ограничить максимальное количество создаваемых
кластеров, а также зависимость результата работы алгоритма от порядка обработки
векторов обучающей выборки. Первый недостаток не позволяет применять данный класс
алгоритмов в качестве основного для построения обучающей выборки, т.к. нарушается
ограничение этапа обучения на максимальное количество кластеров.
Основная идея неинкрементальных алгоритмов заключается в итеративном
перераспределении векторов обучающей выборки между заданным количеством
кластеров. Параметрами неинкрементальных алгоритмов являются количество кластеров
и начальное расположение кластеров.
Примерами неинкрементальных алгоритмов являются batch k-means и online kmeans. В контексте задачи обнаружения атак, алгоритм batch k-means применялся в работе
21
[34],
его
модификация
Y-means
применялась
в
работе
[35].
Недостатком
неинкрементальных алгоритмов является сильная зависимость результата от выбора
количества кластеров и начального расположения кластеров.
4.4.2 Методы построения графа
Методы построения графа основаны на следующем принципе: все входные вектора
соединяются таким образом, чтобы полученный граф являлся деревом, и ребра графа
имели минимально возможную длину (minimal spanning tree, MST).
Один из наиболее часто используемых [24] алгоритмов - алгоритм выделения
минимального покрывающего дерева из существующего графа (Kruskal’s algorithm)
[25,26]. После построения такого дерева выполняется его разбиение путем удаления ребер
наибольшей длины до тех пор, пока не получится необходимое число кластеров.
Временная сложность алгоритма O(n2log(n)), где n – число векторов.
Метод
работы является схожим с иерархическими методами. Кластеры,
получаемые при использовании иерархического алгоритма являются подграфами одного
из возможных минимальных связывающих деревьев [17]. По этой причине данный метод
не рассматривается на этапе реализации алгоритмов.
Существует способ построения минимального связывающего дерева, основанный
на построении триангуляции Delaunay [27] и выделении минимального покрывающего
дерева из нее. В двухмерном пространстве вычислительная сложность алгоритма
O(nlog(n)). Но, этот метод не применим в задачах с более высокой размерностью из-за
экспоненциального роста триангуляции [28], в связи с чем в контексте решаемой задачи
данный метод обладает ограниченной применимостью в силу высокой размерности
пространства характеристик векторов обучающей выборки.
4.4.3 Методы, использующие нечеткие кластеры
Особенностью
методов
данного
класса
является
использование
нечетких
кластеров: каждый вектор обучающей выборки может принадлежать каждому кластеру с
некоторой вероятностью. Примерами алгоритмов, использующих нечеткие кластеры,
являются EM-алгоритм для смеси нормальных распределений и Fuzzy c-means.
22
Fuzzy c-means
Описание алгоритма приводится в [29], данный алгоритм использовался для
решения задачи обнаружения атак в работе [30]. Модификация данного алгоритма
possibilistic c-means (PCM) описана в работе [40, 43]. Алгоритм использует представление
кластера в виде центроида и является неинкрементальным. Для него характерны
недостатки, связанные с неправильным выбором начального расположения кластеров и
количества кластеров. Согласно [17], алгоритм обладает лучшей по сравнению с batch kmeans способностью избегать локального оптимума.
Тестирование алгоритма при использовании в качестве начальных данных
результатов работы неинкрементального алгоритма выявило недостаток, связанный с
построением совпадающих кластеров, что снижает точность обнаружения атак по
сравнению с результатами применения алгоритмов четкой кластеризации. Описание
тестирование эффективности применения алгоритма в качестве алгоритма этапа обучения
приводится в главе 5.4.
EM-алгоритм
Алгоритм впервые предложил Dempster в работе [31], описание обобщенного EMалгоритма представлено в [32, 21]. Реализация EM-алгоритма для смеси нормальных
распределений описана в работе [33]. Временная сложность алгоритма линейная
относительно объема обучающей выборки.
Недостатками алгоритма являются использование предположения о нормальности
распределения векторов в кластерах, потеря точности и скорости сходимости при
неудачном выборе начальных параметров распределений. Кроме того, существует
проблема применимости алгоритма для пространств высокой размерности. С ростом
размерности пространства происходит снижение точности кластеризации в результате
погрешностей при работе с вещественными числами. В контексте решаемой задачи
данный недостаток является существенным в связи с большой размерностью пространства
характеристик вектора.
23
4.5 Обзор
существующих
подходов,
использующих
кластерный анализ для решения задачи обнаружения
атак
Рассматриваемые далее методы решают задачу обнаружения атак посредством
построения модели нормального поведения как совокупности кластеров и обнаружения
атак на основе анализа принадлежности к построенной модели.
Использование инкрементальных алгоритмов [23,41]. Система обнаружения атак,
основанная на использовании инкрементального алгоритма для построения кластеров
нормального поведения системы. Принадлежность вектора к модели определяется по
расстоянию до центроида. Проблема влияния выбросов и ограничения числа кластеров.
Невозможность ограничить число кластеров не позволяет выполнять обнаружение атак в
режиме реального времени.
K-Means (batch, online) [34]. Выполняется построение модели нормального
поведения посредством кластеризации методом batch k-means и online k-means с заданным
числом кластеров. Проблема применимости связана с особенностью неинкрементальных
алгоритмов, а именно, проблемой выбора начального расположения кластеров.
Y-means [35]. Y-means является модификацией алгоритма k-means. Модификация
заключается в возможности удаления кластеров, неудачно выбранных при определении
начального
расположения
кластеров.
Дополнительно
реализованы
механизмы
объединения кластеров. Возможность удаления неудачно выбранных кластеров позволяет
повысить точность кластеризации, однако не решает проблему снижения точности,
связанную с произвольностью выбора начального расположения.
Fuzzy Intrusion Recognition Engine (FIRE) [30]. Выполняется кластеризация
обучающей выборки посредством применения алгоритмов нечеткой кластеризации для
каждой компоненты вектора состояний системы. Обнаружение атак производится на
основании задаваемых экспертом правил, определяющих атаку по принадлежности
компонент наблюдаемого состояния системы к кластерам модели. Недостатком данного
подхода является необходимость использования экспертных знаний для описания правил,
24
а также проблема анализа векторов состояний системы большой размерности в режиме
реального времени.
k-NN с применением инкрементального алгоритма [36]. Метод использует
представление кластеров в виде центроида и совокупности векторов. Обнаружение атак
производится посредством вычисления расстояния до «k ближайших соседей».
Кластеризация позволяет ускорить вычисление k-NN за счет более эффективного поиска
ближайших векторов, но не позволяет выполнять обнаружение в режиме реального
времени.
Таким образом, приведенные выше решения обладают недостатками, не
позволяющими применять их с достаточной эффективностью в контексте решаемой
задачи.
4.6 Результаты обзора
Согласно ограничениям этапа обнаружения, в качестве представления кластера
может использоваться представление с помощью центроида и с помощью параметров
распределений.
По результатам обзора, в качестве основных алгоритмов кластеризации выбраны
неинкрементальные алгоритмы минимизации квадратичной ошибки и алгоритмы
нечеткой кластеризации, использующие представление кластера в виде центроида.
Параметрами неинкрементальных алгоритмов являются количество кластеров и
начальное расположение кластеров, причем точность работы алгоритма сильно зависит от
выбора значений параметров. Исходя из особенностей неинкрементальных алгоритмов,
выбрана следующая последовательность шагов этапа обучения:
1. Определение количества кластеров и начального расположения кластеров.
2. Объединение ближайших кластеров.
3. Применение неинкрементального алгоритма для минимизации ошибки
кластеризации.
На основании выбранного представления кластеров требуется выбрать алгоритм
этапа обнаружения. Выбор конкретных алгоритмов этапов обучения рассматривается
далее в главе 5.
25
5 Исследование
применимости
алгоритмов
кластерного анализа
В данной главе выполняется исследование применимости алгоритмов кластерного
анализа, которые могут использоваться в схеме этапа обучения, предложенной в главе 4.6.
Критериями применимости являются:

точность работы алгоритма,

временная сложность.
Оценка применимости производится путем обучения алгоритма на множестве
тестовых данных, выделенных из множества данных KDD Cup. Описание способа
предобработки данных приводится в главе 6.1.1.
5.1 Инкрементальные алгоритмы
Исследуем применимость различных инкрементальных алгоритмов для решения
задачи этапа обнаружения. Для тестирования выбраны алгоритмы incremental k-means и
алгоритм
BIRCH,
который
представляет
собой
многошаговую
модификацию
инкрементального алгоритма, оптимизированную для работы с обучающими выборками
большого объема.
Incremental k-means
Принцип работы алгоритма описан в разделе 6.4.1. Аналогичный алгоритм
применяются в работе [23,41]. Рассмотрим временные характеристики алгоритма при
кластеризации обучающей выборки, построенной на основании данных 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
Рассмотрим применение первого этапа данного алгоритма (добавление векторов к
дереву). На рисунке 5.1 представлен график среднего времени обработки одного вектора
обучающей выборки в процессе кластеризации (вычисляется для каждых 100 векторов).
1.2
Среднее время обработки вектора
1
0.8
BIRCH
incremental k-means
0.6
0.4
0.2
56000
54000
52000
50000
48000
46000
44000
42000
40000
38000
36000
34000
32000
30000
28000
26000
24000
22000
20000
18000
16000
14000
12000
10000
8000
6000
4000
2000
0
0
Количество векторов
Рисунок 5.1. Среднее время обработки вектора (в мс) для алгоритмов incremental k-means и BIRCH
По результатам первого этапа алгоритма получены следующие показатели
эффективности алгоритма:

количество кластеров: 819

время функционирования: 16408 мс

квадратичная ошибка кластеризации 581.308

сумма расстояний от каждого вектора до центроида ближайшего к данному вектору
кластера: 4284.78
По результатам выполнения этапа оптимизации дерева:

количество кластеров: 492

время выполнения оптимизации дерева: 11079 мс

квадратичная ошибка кластеризации 808.802

сумма расстояний от каждого вектора до центроида ближайшего к данному вектору
кластера: 4996.83
По результатам выполнения трех шагов алгоритма BIRCH:

количество кластеров: 499

квадратичная ошибка кластеризации 691. 534
29

сумма расстояний от каждого вектора до центроида ближайшего к данному вектору
кластера: 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.
5.2 Иерархические алгоритмы
В связи с высокой временной сложностью иерархических алгоритмов относительно
числа векторов обучающей выборки, иерархический алгоритм не применим для
кластеризации исходного множества векторов. Поэтому в данной работе рассматривается
применение иерархического алгоритма
для объединения кластеров, выделенных
посредством использования инкрементального алгоритма.
Сформулируем задачу объединения кластеров.
Задана модель нормального поведения системы Cl(NS) = {p1, …, pk}, где pi – i-ый
кластер модели нормального поведения
30
Требуется построить множество кластеров C = { p’1, …, p’m }, где p’i – кластер,
полученный посредством объединения кластеров множества Cl(NS). Используется
представление кластеров p’i в виде центроидов.
Дополнительно
накладывается
ограничение
на
максимальное
количество
кластеров: m ≤ M, где M – максимальное количество кластеров.
Рассматривается применимость следующих метрик, используемых в иерархических
алгоритмах, в контексте решаемой задачи объединения кластеров:

complete-linkage:
c(C1, C 2) 
max
c1i C1, c 2j C 2
ci1  c 2j
,
где
C1 i
–
центроид
i-го
кластера
i-го
кластера
множества C1, C2j– центроид j-го кластера множества C2

single-linkage
s(C1, C 2) 
min
c1i C1, c 2j C 2
ci1  c 2j
,
где
C1 i
–
центроид
множества C1, C2j– центроид j-го кластера множества C2

расстояние между центроидами множеств кластеров
d (C1, C 2) 
c  n c  n

n
n
1
i
2
j
i
j
i
i
i
j
, где c1i – центроид i-го кластера множества
j
j
C1, c2j– центроид j-го кластера множества C2, ni – количество векторов
кластера i-го кластера множества C1, nj – количество векторов кластера j-го
кластера множества C2.
Для тестирования в качестве начального расположения кластеров берутся
результаты применения трех шагов алгоритма BIRCH, приведенные в главе 5.1.
Ограничение на максимальное количество кластеров: M = 300.
Результаты применения метрики complete-linkage:

квадратичная ошибка кластеризации 2824.74

сумма расстояний от каждого вектора до центроида ближайшего к данному вектору
кластера: 10580.2

время выполнения: 1281 мс
Результаты применения метрики single-linkage:

квадратичная ошибка кластеризации 9990.64

сумма расстояний от каждого вектора до центроида ближайшего к данному вектору
кластера: 19426.7

время выполнения: 2859 мс
31
Результаты применения метрики расстояния между центроидами множеств
кластеров:

количество кластеров: 300

квадратичная ошибка кластеризации 3285.4

сумма расстояний от каждого вектора до центроида ближайшего к данному вектору
кластера: 11330. 2

время выполнения: 938 мс
Таким образом, по результатам тестирования максимальная точность (минимальная
квадратичная ошибка) достигается при использовании метрики complete-linkage.
5.3 Неинкрементальные алгоритмы
В данной главе рассматривается применение алгоритмов batch k-means и online kmeans для уменьшения квадратичной ошибки кластеризации. В качестве начального
расположения
кластеров
задаются
результаты
применения
инкрементального
и
иерархического алгоритмов.
Batch k-means
Алгоритм впервые предложил McQueen в 1967 году, алгоритм подробно описан в
работах [17, 13]. Данный алгоритм является наиболее простым и наиболее часто
используемым алгоритмом кластеризации методом разбиения. В контексте задачи
обнаружения атак, алгоритм применялся в работе [34], его модификация Y-means
применялась в работе [35].
Задача алгоритма состоит в определении центроидов K кластеров таким образом,
чтобы квадратичная ошибка была минимальна. Параметр K определяет количество
кластеров, на которое производится разбиение.
Расположение центроида кластера в алгоритме вычисляется как среднее
арифметическое векторов, принадлежащих кластеру.
Алгоритм работы [17]:
1. выбирается произвольное расположение центроидов,
2. каждый вектор заносится в ближайший по мере схожести кластер,
3. выполняется переопределение центроида каждого кластера,
4. шаги 2 и 3 выполняются до тех пор, пока не принято решение остановить
выполнение алгоритма.
32
Условием завершения алгоритма может являться выполнение определенного
количества итераций или достаточно малое изменение квадратичной ошибки. Условие
завершения задается в качестве параметра алгоритма.
Особенности алгоритма:

временная сложность O(n), где n – число векторов обучающей выборки,

пространственная сложность O(K), где K- число кластеров,

алгоритм может использоваться в пространстве любой размерности,

присутствие выбросов оказывает сильное влияние на распределение
кластеров, степень влияния зависит от начального распределения кластеров,

при больших значениях n и K кластеры принимают форму гипершаров.
Линейная временная сложность алгоритма позволяет использовать его для
обработки обучающей выборки большого объема. На результат работы алгоритма не
оказывает воздействие размерность пространства, что позволяет применять алгоритм для
кластеризации обучающей выборки с большой размерностью пространства.
Проблема применимости алгоритма заключается в правильном выборе количества
кластеров и начального расположения кластеров. Данная проблема существует при любой
размерности пространства, но с ростом размерности происходит ухудшение показателей
точности кластеризации при неправильном выборе начального расположения кластеров.
Online k-means
Алгоритм Online k-means предложен в работе [17] как альтернатива алгоритму
batch k-means. Алгоритм отличается от указанного выше методом переопределения
центроида кластеров.
Алгоритм работы:
1. выбирается произвольное расположение центроидов
2. для входного вектора выбирается ближайший кластер
3. выполняется переопределение центроида каждого кластера по следующей
формуле:
c ( n 1)  c ( n )    ( xi  c ( n ) )
, где xi – i-тый вектор обучающей
выборки, с – центроид ближайшего кластера, ε – скорость обучения
4. шаги 2 и 3 выполняются для каждого вектора входной выборки заданное
число раз
Особенности алгоритма:

временная сложность O(n), где n – число векторов обучающей выборки,
33

пространственная сложность 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 при примерно одинаковом числе кластеров.
Поэтому, далее рассматривается только применение алгоритмов в качестве второго шага
после применения инкрементального алгоритма.
Рассматриваются последовательности применения:

incremental k-means, иерархический алгоритм, batch k-means

incremental k-means, иерархический алгоритм, online k-means
34
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
Рисунок 5.2. Зависимость квадратичной ошибки кластеризации от числа шагов алгоритмов
График зависимости квадратичной погрешности кластеризации каждым методом
от числа шагов приведен на рисунке 5.2. По результатам тестирования алгоритм batch kmeans показывает большую точность при обучении на основании начальных данных,
полученных посредством применения инкрементального алгоритма.
5.4 Алгоритм нечеткой кластеризации
В данной главе выполняется сравнение точности обнаружения атак при обучении
системы посредством применения алгоритмов fuzzy c-means (в его модификации
possibilistic c-means) и batch k-means. В качестве начального расположения кластеров
задаются результаты применения инкрементального и иерархического алгоритмов.
При тестировании алгоритм Fuzzy c-means применялся до тех пор, пока
максимальное изменение степени принадлежности вектора к кластеру не становилось
меньше 0.001.
Обнаружение атак выполняется посредством алгоритма определения степени
обособленности с индексом delta и алгоритмом, вычисляющим принадлежность вектора к
совокупности кластеров как сумму вероятностей принадлежности вектора к каждому
кластеру. Вероятность принадлежности вектора к кластеру вычисляется аналогично
методу, используемому в алгоритме Fuzzy c-means.
35
Рисунок 5.3 Точность обнаружения атак при использовании алгоритма обучения batch k-means и fuzzy kmeans.
Результаты тестирования приведены на рисунке 5.3. Графики delta и fcm
показывают точность обнаружения атак для первого и второго алгоритма соответственно
при обучении посредством алгоритма batch k-means. Графики delta1 и fcm1 показывают
точность обнаружения атак для первого и второго алгоритма соответственно при
обучении посредством алгоритма fuzzy c-means. Результаты тестирования показывают
меньшую точность обнаружения атак при обучении посредством алгоритма Fuzzy cmeans.
5.5 Результаты исследования
На основании реализации алгоритмов кластерного анализа, изучения их
особенностей и проведенного тестирования, для реализации анализатора СОА выбраны
следующие алгоритмы кластерного анализа:

алгоритм BIRCH выбран для определения начального расположения
кластеров,

иерархический
алгоритм
complete-linkage
выбран
для
объединения
кластеров,

алгоритм batch k-means выбран для уточнения расположения кластеров и
уменьшения квадратичной ошибки кластеризации.
36
6 Описание практической части
6.1 Программная
реализация
анализатора
системы
обнаружения атак
В
данном
разделе
описывается
реализация
анализатора
на
основе
последовательности алгоритмов, выбранных по результатам тестирования в главе 5.
6.1.1 Инфраструктура анализатора
Рассмотрим систему обнаружения атак как совокупность следующих компонентов:

датчики,

преобразователь данных,

анализатор,

интерпретатор.
Датчик является компонентом системы обнаружения атак, выполняющим функции
наблюдателя: датчик собирает данные о состоянии системы и передает их анализатору.
Собираемая датчиками информация может иметь представление, отличное от
используемого
рассмотренными
алгоритмами
представления
в
виде
векторов
пространства вещественных характеристик. В общем случае собираемая датчиком
информация может быть представлена в виде вектора неоднородных признаков. Согласно
[36], можно выделить следующие виды признаков:

количественные параметры,

категориальные параметры,

бинарные параметры.
Количественные признаки – значения вещественного либо целого типа. К
количественным признакам можно отнести ряд характеристик, собираемых на различных
уровнях (сетевом, узловом), например:

продолжительность сессии,

объем переданных данных,

количество переданных и полученных пакетов,

количество ошибок входа в систему,

количество соединений с определенной системой.
Категориальные признаки – значения произвольного типа, для которого
определено отношение неравенства. К категориальным признакам можно отнести часть
37
собираемых характеристик системы, которые не являются численными либо сильно
различают состояния системы, например:

название протокола соединения,

номер порта, с которым установлено соединение,

название сервиса.
Бинарные признаки – признаки, которые могут принимать значение 0 либо 1.
Примерами таких признаков являются:

была ли выполнена команда “su”,

успешность авторизации.
Отличие признаков различного типа заключается в степени влияния на меру
схожести объектов. Незначительное изменение количественного признака одного из двух
объектов может не оказывать сильного влияния на их схожесть, но изменение
категориального параметра одного из объектов делает их сильно различающимися.
Существует несколько путей решения проблемы неоднородности пространства
признаков [36]. В соответствии с выбранным в данной работе представлением кластера, в
данной работе применяются следующие методы предобработки входных данных
анализатора:
1. Построение различных моделей для каждого набора категориальных
параметров.
2. Проекция на пространство характеристик большей размерности, бинарное
кодирование
категориальных
характеристик.
Бинарное
кодирование
заключается в представлении n-значного категориального признака в виде n
характеристик, только одна из которых принимает значение 1, остальные
равны 0. Значению категориального признака k соответствует значение 1 kой характеристики.
Преобразователь берет на себя задачу проецирования категориальных признаков на
пространство
характеристик
и
нормализацию
количественных
признаков.
Преобразованные данные поступают на вход анализатору системы обнаружения атак. Для
уменьшения степени влияния характеристик, изменяющихся в большем по сравнению с
другими характеристиками диапазоне, производится преобразование векторов согласно
формуле (6.1).
38
n
xi
( new)

xi   i
i
, где
i 
x
k 1
n
(k )
i
n
и
i 
 (x
k 1
(k )
i
 i ) 2
(6.1)
n
На входе анализатора информация о состоянии системы представляется в виде
векторов параметров состояния системы, часть из которых является категориальными,
часть – нормализованными количественными. Категориальные параметры состояния
определяют модель нормального поведения, на принадлежность к которой проверяется
входной вектор
Интерпретатор системы обнаружения атак является компонентом системы,
преобразующим результаты обработки анализатора в понятную для человека форму.
Одной из задач интерпретатора является информирование пользователя об обнаруженных
анализатором атаках.
6.1.2 Схема работы анализатора
Рассмотрим
реализацию
этапов
анализатора
системы
обнаружения
атак,
основанного на методах кластерного анализа.
этап обучения
BIRCH
шаг 1:
определение количества кластеров
и начального расположения кластеров
обучающая выборка
{xi}, xiNormSST
Cl1 = {pi}
complete-linkage
шаг 2:
объединение кластеров
Cl2 = {pi}, i = 1..K
batch k-means
шаг 3:
повышение точности кластеризации
анализируемые
данные
{yi}, yiST
Cl3 = {pi}, i = 1..K, MSE3<MSE2
этап обнаружения
анализ отклонений, k-NN
определение аномальных состояний
(вычисление fS)
результат анализа
fS(yi)
Рисунок 6.1. Схема функционирования анализатора
Общий принцип функционирования анализатора приводится в главе 4. На рисунке
6.1 приводится схема функционирования анализатора. В данной главе рассматриваются
39
вопросы применения методов, выбранных по результатам обзора главы 4 и тестирования,
приведенного в главе 5.
Этап обучения
Этап обучения анализатора СОА реализован в виде последовательного применения
алгоритмов кластерного анализа для построения наиболее точной модели нормального
поведения для каждого отдельного набора категориальных признаков.
Реализованный анализатор считывает данные обучающей выборки из текстового
файла, в котором содержатся:

список значений категориальных признаков, для которых строится модель,

размерность пространства характеристик, на которую были спроецированы
вектора параметров состояний обучающей выборки,

совокупность векторов характеристик.
Предполагается, что обучающая выборка не содержит (либо их число очень мало)
векторов состояний системы, соответствующих поведению системы в процессе
совершения атак на систему.
Определение количества и начального расположения кластеров
По результатам тестирования, приведенного в главе 5.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 выбирается для достижения приемлемой
40
скорости работы алгоритма этапа объединения кластеров (в данной работе выбрано k=10).
По результатам тестирования для данных KDD Cup было выбрано значение
максимального радиуса кластера 0.5. При тестировании в составе системы REDSecure (см.
главу 6.3), было выбрано значение максимального радиуса кластера 0.35.
На основании результатов тестирования иерархических алгоритмов, для разбиения
кластеров-узлов дерева был выбран иерархический алгоритм с метрикой complete-linkage.
Максимальное число подузлов узлового кластера выбрано равным 20. При таком
значении лучшие показатели эффективности достигаются при разбиении узлового
кластера на 2 кластера-подузла. При тестировании на обучающей выборке большого
объема, для сокращения количества разбиений кластеров, максимальный размер узлового
кластера выбирался равный 100, при этом разбиение производилось на 5 подузлов.
Увеличение размера узлового кластера приводит к замедлению работы каждого шага
алгоритма, однако уменьшает число шагов, требуемое для достижения достаточной
точности кластеризации.
Объединение ближайших кластеров
По результатам тестирования, приведенного в главе 5.2, в качестве алгоритма для
объединения кластеров выбран иерархический алгоритм, использующий метрику
complete-linkage для определения схожести кластеров.
В связи с ограничением этапа обучения на максимальное количество кластеров,
возникает задача удаления кластеров малого размера. Под такими кластерами понимаются
кластеры, содержащие не более чем K векторов. Наличие кластеров малого размера может
привести к ухудшению показателей точности алгоритма. В частности, при наличии более
чем
M
малых
кластеров
(M-максимальное
количество
кластеров,
задаваемое
ограничением этапа обучения), сильно удаленных от кластеров с большим количеством
векторов, будет выполнено объединение больших кластеров, что приведет к значительной
потере точности.
Удаление малых кластеров дополнительно позволяет выполнять обучение на
обучающей выборке, содержащей шум – непомеченные вектора состояний системы,
соответствующие атакам. При предположении о малом количестве шума, удаление малых
кластеров позволяет уменьшить влияние шума на эффективность работы анализатора.
Удаление кластеров с малым количеством векторов перед применением
инкрементального алгоритма может привести к удалению совпадающих кластеров,
41
расположенных в разных ветвях дерева кластеров. Для решения данной задачи процесс
объединения кластеров разбивается на 3 этапа:

первоначальное объединение кластеров,

удаление малых кластеров,

завершение объединения кластеров.
Первоначальное объединение кластеров выполняется до тех пор, пока метрика
complete-linkage не достигнет требуемого значения порогового значения. Пороговое
значение метрики выбирается на основании выбранного значения максимального размера
кластера. В данной работе выбрано пороговое значение, равное 0.15.
Завершение объединения кластеров выполняется до тех пор, пока не будет
достигнуто количество кластеров, заданное ограничением этапа обучения.
Применение
неинкрементального
алгоритма
для
минимизации
ошибки
кластеризации
По результатам тестирования, приведенного в главе 5.3, в качестве алгоритма
данного этапа выбран алгоритм batch k-means. Алгоритм выполняется до тех пор, пока
изменение средней квадратичной ошибки не станет меньше определенного порогового
значения, либо пока не будет выполнено фиксированное число шагов алгоритма. Данное
решение связано с проблемой сходимости алгоритма batch k-means [37]. В данной
реализации, максимальное число шагов алгоритма равно 10. Алгоритм завершается при
изменении квадратичной ошибки меньше чем на 0.1%.
В ходе применения алгоритма K-means возникает проблема, связанная с наличием
векторов, сильно удаленных от большинства векторов кластеров нормального поведения.
Такие вектора появляются при удалении кластеров, содержащих малое количество
векторов, на этапе объединения кластеров. Наличие сильно удаленных векторов приводит
к перемещению центроида кластера к границам области нормального поведения и
увеличению размера кластеров, что влияет на точность обнаружения атак. Для
минимизации влияния сильно удаленных векторов, в процессе применения алгоритма не
рассматриваются
вектора,
удаленные
от
центроида
кластера
на
расстояние,
превосходящее k*R, где R – текущий размер кластера. По результатам тестирования, в
данной работе выбрано значение k равное 2.33.
42
Этап обнаружения
На основании выбранного представления кластеров и общей последовательности
шагов этапа обучения, в качестве алгоритма этапа обнаружения были выбраны
следующие алгоритмы:
 анализ отклонений,
 алгоритм, основанный на определении степени обособленности векторов
(аналог k-NN).
Анализ отклонений. Данный алгоритм часто применяется для решения задачи
обнаружения исключений при использовании представления кластеров в виде центроидов
(например, в работах [23, 38]).
Основная идея алгоритма заключается в вычислении радиуса кластера как среднего
расстояния между векторами кластера и центроидом кластера. Алгоритм определения
принадлежности вектора к совокупности кластеров состоит из следующих шагов:
1. для анализируемого вектора x определяется расстояние до центроида
ближайшего кластера,
2. если расстояние до центроида больше чем r, где r – радиус кластера, то
вектор считается аномальным.
При использовании предположения о нормальности распределения векторов
внутри кластера, значение параметра  алгоритма может быть выбрано исходя из
особенностей нормального распределения.
Алгоритм обладает временной сложностью O(dM), где M – количество кластеров
модели нормального поведения, d – размерность векторов состояний системы.
Алгоритм, основанный на определении степени обособленности векторов. Данный
алгоритм является модификацией алгоритма определения выбросов на основании анализа
расстояний до «k ближайших соседей» (ближайших векторов нормального поведения).
Идея разработанного алгоритма заключается в вычислении степени обособленности как
среднего расстояния до заранее заданного количества ближайших векторов нормального
поведения. Но, в отличие от общего алгоритма, приведенного в [39], в качестве векторов
нормального поведения выбираются центроиды ближайших кластеров с весом, равным
числу векторов кластера.
В данной работе степень обособленности определяется как один из следующих
индексов:
43
gamma(v, Cl ( NS )) 
k  v c
i
p i Pd ( v )
i
,
K
delta(v, Cl ( NS )) 
 k  (v  c )
i
p i Pd ( v )
i
K
(6.2)
pi={Si, S2,i, Ni} – представление i-го кластера модели нормального поведения,
K – требуемое количество ближайших векторов,
ci 
Si
Ni
(6.3)
Pd (v)  Cl ( NS ) :
k
i
pi Pd ( v )
 K ,pk  Pd (v) : v  ck  max v  ci
pi Pd ( v )
j  i  v  ci  v  c j
(6.4)
(6.5)
i 1
ki  min( Ni , K   k j )
(6.6)
j 1
В
качестве
параметра
алгоритма
задается
пороговое
значение
степени
обособленности и требуемое количество ближайших векторов K. На основании
вычисленного
значения
степени
обособленности
определяется
принадлежность
анализируемого вектора к совокупности кластеров модели нормального поведения
следующим образом: если значение степени обособленности ниже порогового значения,
то анализируемый вектор считается принадлежащим совокупности кластеров. В
противном случае, анализируемый вектор считается аномальным.
Алгоритм обладает временной сложностью O(dM+Mlog(M)), где M – количество
кластеров модели нормального поведения, d – размерность векторов состояний системы.
На основании ограничений задачи на максимальное время анализа одного вектора,
максимальное количество кластеров M модели нормального поведения может быть
выбрано исходя из приведенных оценок временной сложности либо по результатам
тестирования.
6.1.3 Описание программной реализации
Алгоритмическая часть написана на языке С++. Ниже приводится краткое
описание основных классов разработанного анализатора:
44

Analyzer – класс, реализующий механизм обучения анализатора. Метод
Study выполняет обработку заданной обучающей выборки и сохранение
модели нормального поведения.

KDDAnalyzer : public Analyzer – класс, реализующий методы подготовки
обучающей выборки используя представление данных KDD Cup и
выполняющий тестирование эффективности работы анализатора.

RSAnalyzer : public Analyzer - класс, реализующий методы подготовки
обучающей выборки используя представление данных СОА REDSecure и
выполняющий тестирование эффективности работы анализатора. Метод Ids
реализует механизм анализа данных, полученных от сенсора СОА.

ConfigFileParser
–
класс,
реализующий
методы
обработки
файла
конфигурации анализатора. Методы GetVariable и SetVariable используются
для получения и изменения настроек работы анализатора.
Классы, реализующие представление входных данных:

RAWVector – реализует хранение вектора признаков произвольного вида

DVector2 – реализует операции над вектором вещественных признаков

KDDVector : public DVector2 – реализует механизмы преобразования
данных из формата данных KDD (записанных в RAWVector) в вектор
вещественных признаков. Реализует механизмы нормализации и бинарного
кодирования категориальных признаков.

RSVector : public DVector2 – реализует механизмы преобразования данных
из формата данных СОА REDSecure (записанных в RAWVector) в вектор
вещественных признаков. Реализует механизмы нормализации и бинарного
кодирования категориальных признаков.

StringConverter – класс, реализующий механизм обработки обучающей
выборки в формате RAWVector и выделения значений категориальных
признаков

Normalizer – класс, реализующий вычисление коэффициентов нормализации

RSMeasure – класс, содержащий информацию о наблюдаемом замере

RSSession – класс, содержащий информацию о наблюдаемой сессии

RSSessionController
–
класс,
реализующий
механизмы
соотнесения
наблюдаемых замеров и сессий, а также проверку точности обнаружения
атак и ложных срабатываний в режиме тестирования.
45
Классы, реализующие механизмы хранения данных и обмена данными с СОА:

RAWReader – класс, описывающий интерфейсы для чтения данных в
формате RAWVector

RAWReader_File : public RAWReader – класс, реализующий методы чтения
данных в формате RAWVector из файла

RAWReader_Pipe : public RAWReader – класс, реализующий методы чтения
данных в формате RAWVector из именованного канала

RAWWriter_Pipe – класс, описывающий интерфейсы записи данных в
формате RAWVector в именованный канал

RSWriter_Pipe – класс, реализующий методы записи результатов анализа
состояний системы в именованный канал в формате СОА REDSecure
Классы, реализующие применяемые алгоритмы:

Алгоритм BIRCH
o BUClusterTree – класс, реализующий механизмы работы с деревом
кластеров: добавление вектора к дереву (AddVector), определения
расстояния до ближайшего кластера (GetBestDistance), оптимизация
дерева (Cleanup), проверка корректности дерева (TraverseTree)
o BUCluster –
класс, содержащий информацию о кластере
и
описывающий интерфейсы для добавления вектора к кластеру
(AddVector),
определения
(InterClusterFitness)
и
метрика
определение
схожести
расстояния
кластеров
до
вектора
(DistanceTo)
o ClusterFeature – представление кластера в виде CF. Реализует методы
добавления вектора к кластеру, объединения кластеров, удаления
векторов из кластера, определение характеристик кластера (радиус,
диаметр, центроид)
o BUClusterLeaf
:
public
BUClusterNode
–
класс,
содержащий
информацию о листовом кластере дерева и реализующий механизмы
проверки корректности дерева и сбора статистики по дереву
(TraverseTree) и реализующий механизмы добавления вектора к
листовому кластеру (AddVector)
46
o BUClusterNode : public BUCluster - класс, содержащий информацию о
листовом кластере дерева и реализующий механизмы проверки
корректности
и
сбора
статистики
по
дереву
(TraverseTree),
добавления вектора к узловому кластеру (AddVector) и расщепления
узлового кластера (Split, Split_Half)

IncrementalKMeans – класс, реализующий алгоритм Incremental k-means ,
содержащий методы добавления вектора к совокупности кластеров и
определения расстояния до ближайшего кластера. В качестве представления
кластера используется представление в виде BUClusterLeaf.

BUIncrementalBubbling
–
класс,
реализующий
алгоритм
выделения
кластеров без перемещения центроидов.

BUClusterCombiner – класс, реализующий метод объединения кластеров
посредством применения иерархического алгоритма. Используемая метрика
схожести кластеров определяется используемой в классе BUCluster.
Варианты метрик:
o InterClusterFitness_pnn – метрика PNN,
o InterClusterFitness_complete – метрика complete-linkage,
o InterClusterFitness_single – метрика single-linkage,
o InterClusterFitness_complete_ward – модификация метрики Уорда,
o InterClusterFitness_ward – метрика Уорда (Ward’s).

FuzzyCMeans – класс, реализующий алгоритм нечеткой кластеризации Fuzzy
C-Means.

PCMeans – класс, реализующий алгоритм нечеткой кластеризации PCM
(possibilistic C-Means).

BUClusterKMeans – класс, реализующий алгоритмы batch k-Means и online
k-Means.

BUClusterGamma – класс, реализующий алгоритмы этапа обнаружения
(анализ отклонений и модифицированный k-NN с индексами delta и gamma)
Характеристики практической реализации:

число строк исходного текста: 11045 строк

объем исходных текстов: 234 кб
47
6.2 Тестирование реализованного анализатора на данных
KDD
Обучение и тестирование анализатора, реализованного на основе предлагаемого
метода, производилось на тестовом наборе данных KDD Cup 99. Целями тестирования
являлись:

сравнение эффективности алгоритмов этапа обнаружения,

определение показателей эффективности при добавлении в обучающую
выборку векторов, соответствующих атакам (имитация шума).
Тестирование анализатора было разделено на два этапа. Этапы различались по
содержанию обучающей выборки, на которой производилось обучение анализатора:
1. обучающая
выборка
не
содержит
векторов
состояний
системы,
соответствующих атакам,
2. обучающая выборка содержит малое количество непомеченных векторов,
соответствующих атакам.
Будем использовать следующие критерии оценки эффективности анализатора [40]:

точность обнаружения атак (коэффициент обнаружения, detection rate),

ложные срабатывания (коэффициент ложных положительных ошибок, false
positive rate).
Detection Rate 
# FP
# TP
FalsePositive Rate 
# TN  # FP
# TP # FN ,
(6.7)
Соотношение этих коэффициентов является основным критерием эффективности
алгоритмов выявления вторжений. Обычно сравнение производится с помощью ROCкривых (Receiver Operating Characteristic curves). По оси абсцисс графика кривой
откладываются значения коэффициента ложных положительных ошибок, по оси ординат
– значения коэффициента обнаружения [40]. Точки на ROC-кривой соответствуют
показателям эффективности анализатора при различных настройках.
Иногда вместо ROC-кривой или наряду с ней используют коэффициенты Recall (R)
и Precision (P), а так же их комбинацию – F-меру [40].
R
RP
# TP
# TP
F ( ) 
P
aR  (1   ) P
# TP # FN ,
# TP # FP ,
48
(6.8)
6.2.1 Тестирование анализатора на обучающей выборке, не
содержащей векторов, соответствующих атакам
Тестирование проводится согласно методике KDD Cup. В качестве обучающей
выборки использовались вектора 10% выборки KDD. В качестве тестовой выборки
использовался тестовый набор KDD.
Характеристики обучающей выборки:

число примеров нормального поведения – 94 тысячи векторов.
Характеристики тестовой выборки:

число примеров нормального поведения – 60 тысяч векторов,

число примеров атак – 250 тысяч векторов.
Ограничение по количеству кластеров: количество кластеров модели нормального
поведения не превосходит 150.
Настройки алгоритмов:

для k-NN задано k=10,

радиус кластера для алгоритма BIRCH равен 0.5,

количество шагов алгоритма BIRCH – 8 (первые 5 шагов с ускоренной
оптимизацией, см. главу 5.1),

количество шагов k-means – 10.
Время выполнения этапа обучения составило 28:29.96 (1504 секунды).
Тестирование алгоритмов этапа обнаружения, приведенных в главе 6.1.2,
проводилось при различных пороговых значениях степени обособленности, при
различном количестве ближайших векторов и при различном значении параметра .
Полученная ROC-кривая приведена на рисунке 6.2. Точки графика на рисунке 6.2
соответствуют показателям точности обнаружения и числа ложных срабатываний для
различных пороговых значений степени обособленности в алгоритме этапа обнаружения.
49
100%
точность обнаружения (%)
90%
80%
70%
60%
50%
40%
30%
20%
анализ отклоненеий
k-NN (delta)
10%
0%
0%
k-NN (gamma)
1%
2%
3%
4%
5%
6%
7%
8%
9%
10%
ложные срабатывания (%)
Рисунок 6.2. Полученные ROC-кривые при обучении на выборке без шума
По результатам тестирования, алгоритм анализа отклонений показывает большую
точность обнаружения атак по сравнению с алгоритмами определения степени
обособленности. При этом алгоритм k-NN (с индексом gamma) обладает меньшей
точностью обнаружения атак, чем алгоритм k-NN (с индексом delta).
В таблице 6.1 приведены значения показателя точности обнаружения для
различных категорий атак и F(0.5)-меры при различных значениях порога  алгоритма
анализа отклонений.
Таблица 6.1 – Точность обнаружения классов атак
F(0.5)-мера и
порог 
95.5% (19.90)
95.5% (7.4)
96.5% (0.45)
97.04 (0.25)
97,14 (0,15)
96,68 (0,1)
DoS
U2R
R2L
Probe
97.163%
97.199%
97.855%
99.192%
99.975%
99.990%
72.857%
74.286%
92.857%
95.714%
98.571%
98.571%
5.439%
6.463%
30.858%
31.889%
35.910%
43.059%
90.614%
98.344%
99.712%
99.880%
99.928%
99.928%
ложные
срабатывания
1.19%
2.01%
3.11%
4.31%
7.76%
13.54%
Таблица 6.2 – Точность обнаружения классов атак для метода Fuzzy SVM
DoS
U2R
R2L
Probe
97%
98%
89%
90%
97%
58%
51%
64%
28%
99%
100%
94%
ложные
срабатывания
3%
35%
2%
В таблице 6.2 приводятся показатели эффективности метода Fuzzy SVM,
приведенные в работе [40]. Сравнение с результатами эффективности разработанного
50
метода показывают, что разработанный метод обладает большей способностью к
обнаружению атак классов DoS, probe и U2R при малом количестве ложных
срабатываний, однако уступает по точности обнаружения атак класса R2L. Кроме того,
разработанный метод достигает большего значения F-меры (97.14% против 95% в
алгоритме Fuzzy SVM).
Данные точности обнаружения по классам атак показывают высокие показатели
для всех классов за исключением класса R2L. Это происходит в связи с тем, что
присутствующие в тестовом наборе данных атаки snmpguess и snmpgetattack мало
отличаются от многих примеров нормальных состояний системы. В тестовом наборе
содержится всего 14 тысяч примеров атак класса R2L, из которых только 32% не являются
атаками snmpguess либо snmpgetattack. С этой проблемой сталкивались авторы и других
алгоритмов выявления аномалий [23,40].
6.2.2 Тестирование
анализатора
на
обучающей
выборке,
содержащей вектора, соответствующие атакам
При обучении системы обнаружения атак на данных реальной системы возможны
ситуации, когда вектора, соответствующие атакам, попадают в обучающую выборку как
примеры нормальных состояний системы, что приводит к снижению эффективности
обнаружения атак. Задача данного этапа тестирования – оценить потери эффективности
реализованного
анализатора
при
наличии
в
обучающей
выборке
векторов,
соответствующих атакам.
Эксперимент 1
Для оценки изменения показателей эффективности по сравнению с первым этапом
тестирования, в обучающую выборку первого этапа были добавлены непомеченные 1%
векторов атак. Тестирование проводилось на тестовом наборе данных, используемом на
первом этапе при различных значениях параметров алгоритмов этапа обнаружения.
Полученные ROC-кривые приведены на рисунке 6.3.
Настройки алгоритмов:

для k-NN задано k=200,

радиус кластера для алгоритма BIRCH равен 0.5

количество шагов алгоритма BIRCH – 8 (первые 5 шагов с ускоренной
оптимизацией, см. главу 5.1),

количество шагов k-means – 10.
51

удаление кластеров с числом векторов меньше 10.

максимальное количество кластеров – 150.
Время выполнения этапа обучения составило 1412 секунд.
100%
точность обнаружения (%)
90%
80%
70%
60%
50%
40%
30%
20%
K-NN (delta)
k-NN (gamma)
10%
0%
0%
анализ отклонений
1%
2%
3%
4%
5%
6%
7%
8%
9%
10%
ложные срабатывания (%)
Рисунок 6.3. Полученные ROC-кривые при обучении на выборке с шумом (Э1)
Результаты тестирования, приведенные на рисунке 6.3, показывают низкую
устойчивость алгоритма анализа к наличию шума в обучающей выборке.
Эксперимент 2
В связи с тем, в выборке KDD преобладают вектора атак классов DoS и Probe,
тестирование на таком наборе данных будет в меньшей мере учитывать характеристики
обнаружения атак других классов. Для решения данной проблемы тестовая выборка для
следующего эксперимента строилась из соображений уравнивания числа векторов атак
различных классов [42]. Были выделены множества атак, присутствующих в выборке
KDD. После чего в тестовую выборку были произвольным образом включены вектора
различных классов таким образом, чтобы количество атак каждого класса совпадало. Для
оценки ошибки второго рода в тестовую выборку были произвольным образом добавлены
вектора нормального поведения.
В обучающую выборку были включены все вектора выборки, помеченные как
нормальные. Для того чтобы проверить способность анализатора к обобщению,
произвольным образом из обучающей выборки была исключена половина векторов.
52
Аналогично методике тестирования, приведенной в работах [23,40,42], в
обучающую выборку были добавлены 1% векторов, соответствующих атакам.
Характеристики обучающей выборки:

число примеров нормального поведения – 47 тысяч векторов

число векторов, соответствующих атакам (шум) – 500 векторов
Характеристики тестовой выборки:

число примеров нормального поведения – 40 тысяч векторов

число примеров атак каждого класса – 10 тысяч векторов (всего 40 тысяч
примеров атак)
Настройки алгоритмов:

для k-NN задано k=200,

удаление кластеров с числом векторов меньше 10.

максимальное количество кластеров – 150.
Время выполнения этапа обучения составило 750 секунд.
100%
90%
точность обнаружения (%)
80%
70%
60%
50%
40%
30%
анализ отклонений
20%
kNN (delta)
10%
0%
0%
kNN (gamma)
1%
2%
3%
4%
5%
6%
7%
8%
9%
10%
ложные срабатывания (%)
Рисунок 6.4. Полученные ROC-кривые при обучении на выборке с шумом (Э2)
Тестирование производилось для различных пороговых значений степени
обособленности в алгоритме этапа обнаружения. Полученные ROC-кривые приведены на
рисунке 6.4.
Рисунок 6.4 показывает меньшую устойчивость алгоритма анализа отклонений к
наличию шума в обучающей выборке, что характеризуется низкой точностью
обнаружения атак по сравнению с алгоритмами k-NN. По результатам тестирования,
53
алгоритм определения степени обособленности k-NN (с индексом delta) при значении
числа ближайших векторов 300 показал наибольшую точность обнаружения атак по
сравнению с другими рассматриваемыми алгоритмами.
В таблице 6.3 приведены значения показателя точности обнаружения для
различных категорий атак и пороговых значений алгоритма k-NN (delta).
Таблица 6.3 – Точность обнаружения классов атак
пороговое
значение
4,95
2,85
2,05
1,1
Dos
U2R
R2L
Probe
96.280%
99.380%
99.420%
99.980%
65.640%
69.840%
73.500%
100.000%
89.020%
96.380%
96.380%
100.000%
52.720 %
93.060 %
98.840%
99.760%
точность
обнаружения
76%
89.6%
92.4%
98%
ложные
срабатывания
1%
3%
5%
10,62%
В связи с тем, что обучение и тестирование проводилось на 10% наборе данных
KDD Cup, тестовая выборка не содержала атак snmpguess и snmpgetattack, с чем связана
большая обнаруживающая способность для класса R2L.
Для сравнения рассмотрим тестирование алгоритмов обнаружения атак со
сходными условиями эксперимента, результаты которого приводится в [40]. В связи с тем,
что методика тестирования, приведенная в [40], не позволяет с достаточной степенью
точности восстановить эксперимент, приведенные ниже результаты не позволяют
определить наиболее точный метод, однако позволяют оценить эффективность работы
разработанного анализатора. Результаты тестирования приводятся в таблице 6.4.
Таблица 6.4 – Показатели эффективности альтернативных методов
Алгоритм поиска исключений
SVM (статистический)
kNN (метрический)
Cluster
Fuzzy Single-Class SVM
точность обнаружения
98%
91%
67%
91%
23%
11%
93%
66%
47%
99%
93%
78%
ложные срабатывания
10%
6%
4%
8%
6%
4%
10%
2%
1%
17%
10%
1%
Из приведенных результатов видно, что предложенный метод обладает сравнимой
с методом Fuzzy SVM эффективностью. При этом эффективность предложенного метода
выше чем эффективность метода k-NN (не модифицированного, [39]).
54
6.2.3 Результаты тестирования
Тестирование предложенного метода обнаружения атак показало высокие
показатели эффективности на обоих этапах. Предложенные модификации алгоритма k-NN
показали высокие показатели эффективности при обучении на обучающей выборке,
содержащей шум, что позволяет применять разработанный анализатор при наличии
малого количества шума в обучающей выборке. Однако, для наиболее эффективного
применения предложенного метода требуется обеспечить отсутствие в обучающей
выборке векторов, соответствующих атакам.
Эффективность работы анализатора определяется выбором алгоритма этапа
обнаружения и значениями параметров алгоритма. При создании промышленной системы
обнаружения атак, выбор алгоритма и значений параметров алгоритма может
производиться с целью максимизации точности обнаружения атак определенного класса,
либо с целью достижения определенных показателей ошибки первого и второго рода.
Такое значение параметра может быть выбрано на основании тестирования системы
обнаружения атак на способность обнаружения атак различных классов.
6.3 Интеграция анализатора в состав СОА REDSecure
6.3.1 Описание входных данных
Сенсоры системы обнаружения атак REDSecure собирают информацию о
состоянии системы посредством анализа сетевых соединений [44]. По каждому
соединению сенсором через равные интервалы времени выдается замер активности
соединения – вектор, содержащий в себе характеристики соединения и характеристики
активности узла, с которым устанавливается соединение. Замеры активности для каждого
соединения производятся один раз в 2 секунды.
6.3.2 Функционирование анализатора в составе СОА
Поставим в соответствие каждому сетевому соединению совокупность замеров,
полученных анализатором от сенсора системы обнаружения атак. Согласно используемой
модели предметной области, описанной в главе 3.1, состояние системы в каждый момент
времени определяется как вектор характеристик активности ресурсов системы в данный
55
момент времени. Под активностью ресурсов системы будем понимать сетевые
взаимодействия, осуществляемые ресурсами системы.
Согласно выбранной модели предметной области, под атакой будем понимать
взаимодействие ресурсов, переводящее систему из нормального состояния в аномальное.
Будем называть сетевое взаимодействие атакой, если хотя бы один замер данного
соединения не принадлежит множеству нормальных состояний системы.
Таким образом, функционирование реализованного анализатора заключается в
проверке принадлежности замеров сетевых соединений к множеству нормальных
состояний системы.
6.3.3 Интеграция анализатора в состав системы обнаружения
атак
Система обнаружения атак REDSecure содержит в себе интеллектуальный
анализатор, основанный на использовании нейронных сетей. В связи со схожим
представлением входных данных, для интегрирования разработанного анализатора в
состав системы обнаружения атак был использован способ интеграции нейросетевого
анализатора.
узловой
сенсор
узловой
сенсор
сообщение об атаке
узловой
сенсор
локальный агент
реагирования
сетевой
сенсор
замеры с информацией
о результатах анализа
замеры сетевых соединений
анализатор
Рисунок 6.5. Взаимодействие анализатора с инфраструктурой системы обнаружения атак
56
Способ интеграции анализатора приведен на рисунке 6.5. Согласно принципу
интегрирования интеллектуальных анализаторов в систему обнаружения атак REDSecure
[44], обмен данными между анализатором и сенсором происходит посредством
использования именованных каналов. Анализатор создает исходящий и входящий
именованные каналы, после чего сетевой сенсор подключается к созданным каналам для
передачи данных.
В качестве анализируемых данных анализатор получает последовательно замеры
состояний активных сетевых соединений. В качестве результатов анализа анализатор
передает сенсору анализируемый входной вектор, в одно из полей которого заносится
информация об обнаруженных атаках. На основании данных от анализатора сенсором
создается сообщение об атаке, которое передается локальному агенту реагирования.
Обучение разработанного анализатора выполняется на основании записанных
замеров сетевых соединений, полученных от сетевого сенсора анализатором в режиме
сбора обучающей выборки. В данном режиме анализатор производит сохранение входных
данных в текстовый файл, не выполняя при этом анализ данных. Кроме того, анализатор
может выполнять сбор данных для пополнения обучающей выборки в процессе
обнаружения, сохраняя анализируемые данные для последующего обучения.
В режиме обнаружения анализатор выполняет анализ входных данных на
основании модели нормального поведения, полученной в процессе обучения.
6.4 Тестирование в составе СОА
6.4.1 Описание входных данных
Обучение анализатора проводилось на данных активности системы за один день.
Период сбора данных разбивался на интервалы по 10 минут. В течение каждого интервала
происходил сбор обучающей выборки. По окончании интервала выполнялся перезапуск
системы обнаружения атак.
Для того чтобы обеспечить отсутствие в обучающей выборке замеров,
соответствующих
атакам,
обучение
производилось
совместно
с
использованием
сигнатурной системы обнаружения атак Snort следующим образом: если системой Snort
были обнаружены атаки либо попытки совершения атак за интервал сбора обучающей
выборки, выборка признавалась недействительной. Обучение анализатора выполнялось
только на выборках, не содержащих атак.
Характеристики этапа обучения:
57

число примеров нормального поведения - 386218

затраченное время на обучение – 01:38:12
6.4.2 Тестирование
Тестирование анализатора выполнялось на следующих наборах входных данных:

участки нормальной активности системы из обучающей выборки,

собранные обучающие выборки, признанные недействительными,

данные активности системы в процессе проведения атак класса удаленного
доступа к системе.
Характеристики тестовой выборки:

число сессий нормального поведения: 8418 (564002 замеров)

число сессий атак: 135 (7963 замера)
На рисунке 6.6 приводится график зависимости среднего времени обработки
вектора от количества кластеров модели нормального поведения. Настройки анализатора
задавались исходя из ограничения максимального времени обработки вектора состояния
системы равного 1 мс. Такому времени обработки вектора соответствует значение
максимального числа кластеров равное 800. Тестирование показало, что время обработки
каждого вектора на этапе обнаружения в составе системы обнаружения атак REDSecure не
превосходит заданное ограничение.
среднее время анализа вектора (мс)
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
анализ отклонений
0.2
k-NN
0
0
200
400
600
800
1000
1200
1400
количество кластеров
Рисунок 6.6. Зависимость среднего времени обработки вектора от числа кластеров модели нормального
поведения
58
Тестирование проводилось при различных значениях параметров алгоритмов этапа
обнаружения. На рисунке 6.7 приводятся полученные в результате тестирования ROCкривые.
100%
точность обнаружения атак (%)
90%
80%
70%
60%
50%
40%
30%
анализ отклонений
20%
k-NN (delta)
10%
0%
0%
1%
2%
3%
4%
5%
ложные срабатывания (%)
Рисунок 6.7. Полученные ROC-кривые
Алгоритмы этапа обнаружения показали примерно одинаковые показатели
эффективности. Алгоритм анализа отклонений показал более высокую точность по
сравнению с алгоритмом k-NN (с индексом delta) при значении числа ложных
срабатываний менее 3.8%.
6.4.3 Результаты тестирования
Тестирование анализатора в составе системы обнаружения атак REDSecure
показало высокие показатели эффективности, что подтверждает способность анализатора
обнаруживать атаки при обучении и тестировании на данных реальной системы. Кроме
того,
продемонстрирована
возможность
настройки
параметров
анализатора
для
обеспечения ограничений реального времени (ограничения на максимальное время
анализа вектора состояния системы).
6.5 Ограничения применимости
Реализованный
анализатор
обладает
рядом
ограничений
применимости,
включающие в себя ограничения на датчики системы, на процесс обучения и ограничения
изменчивости системы.
59
Ограничения на датчики системы. Для обеспечения высокой точности работы
анализатора, принцип функционирования датчиков системы в процессе обучения и в
процессе обнаружения атак не должен изменяться. Кроме того, не должны изменяться
принципы опроса датчиков и механизмы обмена данными, так как такие изменения могут
отразиться на векторах состояний системы.
Ограничения на процесс обучения. В связи с использованием подхода обнаружения
аномалий, анализатор обладает меньшей точностью обнаружения атак при наличии в
обучающей выборке большого количества векторов состояний системы, соответствующих
атакам, что требует применения альтернативной системы обнаружения атак в процессе
сбора обучающей выборки. Дополнительно требуется минимизировать возможное
влияние системы обнаружения атак на наблюдаемую систему.
Ограничения на степень изменчивости системы. В связи с тем, что реализованный
анализатор использует подход обнаружения аномалий, возникает проблема изменчивости
системы: при изменении наблюдаемой системы (добавление новых улов либо
программного обеспечения) возрастает число ложных срабатываний, что требует
переобучения системы.
60
7 Заключение
В результате выполнения дипломной работы были достигнуты следующие
результаты, отраженные в данной работе:

Проведено исследование эффективности применения различных методов
кластерного анализа для решения задачи обнаружения атак

Разработан метод обнаружения атак, основанный на алгоритмах кластерного
анализа.

Реализован анализатор системы обнаружения атак, выполнена интеграция
реализованного анализатора в состав системы обнаружения атак REDSecure.

Проведено исследование эффективности реализованного анализатора:
o проведено исследование эффективности анализатора на тестовых
данных KDD Cup,
o проведено исследование эффективности анализатора в составе
существующей системы обнаружения атак REDSecure,
o продемонстрирована
возможность
настройки
параметров
анализатора для обеспечения требуемого максимального времени
обработки вектора.
61
8 Список цитируемой литературы
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. Javitz H. S., Valdes A. 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).
62
15. Гамаюнов Д.Ю., Качалин А.И. Обнаружение атак на основе анализа переходов
состояний распределенной системы // Искусственный интеллект. 2004. N 2, С.4953.
16. Качалин А.И. Дипломная работа. “Применение нейросетей для обнаружения
аномального поведения объектов в компьютерных сетях”.
17. Jain A.K, Murty M.N, Flynn P.J. Data Clustering A review [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 [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 [PDF]
(http://www.cc.gatech.edu/~dellaert/em-paper.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 [HTML]
(http://citeseer.ist.psu.edu/621652.html).
24. Minimum spanning tree [HTML]
(http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK4/NODE161.HTM).
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://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/GraphAlgor/krus
kalAlgor.htm).
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).
29. Fuzzy C-Means Clustering [HTML]
(http://www.elet.polimi.it/upload/matteucc/Clustering/tutorial_html/cmeans.html).
63
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. Harmeling S., Dornhege G., Tax D., Meinecke F. From outliers to prototypes: ordering
data // Neurocomputing, 2006 [PDF] (http://ida.first.fhg.de/~harmeli/ordering.pdf).
40. Петровский М.И. Диссертация на соискание ученой степени кандидата физикоматематических наук на тему «Исследование и разработка алгоритмов поиска
исключений в системах интеллектуального анализа данных» // МГУ ВМиК, 2003 г.
41. Portnoy L., Eskin E., Stolfo S. Intrusion Detection with Unlabeled Data Using Clustering
[HTML] (http://citeseer.ist.psu.edu/616824.html).
42. Laskov P., Dussel P., Schafer C. Learning intrusion detection: supervised or
unsupervised? [PDF] (http://ida.first.fraunhofer.de/~rieck/docs/iciap2005.pdf).
43. Krishnapuram R., Nasraoui O. Crisp interpretation of fuzzy and possibilistic clustering
algorithms. // 3rd European Congress on Intelligent Techniques and Soft Computing,
1995, vol. 3, pp. 1312-1318.
44. Пояснительная записка к техническому проекту по СОА REDSecure // ф-т ВМиК
МГУ, Москва, 2006
64
Скачать