ВВЕДЕНИЕ 3
Глава 1. Классические методы решения проблемы 7
Глава 2. Нейронные сети как модель обнаружения аномалий 11
2.1. Обнаружение ключевых слов 12
Глава 3. Иерархическая кластеризация 18
3.1. Применение иерархической кластеризации 18
Глава 4. Программная реализация 29
4.1. Набор данных Blue Gene / L 29
4.2. Структура нейронной сети 29
Глава 5. Эксперименты 33
5.1. Тест 1 33
5.2. Тест 2 36
5.2. Тест 3 43
5.4. Эксперименты с набором данных 45
5.5. Н-кластер для 4-ех слоев 47
ЗАКЛЮЧЕНИЕ 56
СПИСОК ЛИТЕРАТУРЫ 61
ПРИЛОЖЕНИЕ
Актуальность проблемы обнаружения аномалий
В новых технологиях для хранения больших данных используются специальные серверы. В большинстве случаев эти серверы будут предоставлять услуги отказоустойчивых систем. В местах, где используются серверы, виртуальные машины создаются и представляются клиентам для очень большого количества пользователей (HDFS). Но иногда возникает недостаток доступности для некоторых клиентов и низкая производительность, чего в обычных условиях не происходит. Причина этих проблем может быть неизвестна, но большинство из них - некоторые технические проблемы или кибернетические атаки, например, такие как слепое возвращение, возвратно-ориентированное программирование (BROP) или атаки типа «отказ в обслуживании» (Dos) [1]. Это приводит к потере времени во время важных процессов. Одной из проблем этих технологий является обеспечение безопасности услуг в больших количествах, поскольку диагностика нормальных процессов в этом случае длится долго. Причину этих аномалий ищут и диагностируют путем поиска свойств кризиса с помощью файлов журнала. Файлы журнала HDFS печатаются в виде текстовых строк. Процессы выясняют, какие файлы журналов связаны с необходимыми аномалиями, и обрабатывают их в оффлайн-режиме путем статистического моделирования файлов журналов [1]. Хранение словесной информации в большом объеме считается одной из важных проблем, а защита информации является еще более актуальной проблемой.
В новых работах по обнаружению аномалий файлы журналов HDFS смоделированы в системный журнал как последовательность естественного языка. Затем, путем создания нейронной сети LSTM, функция вероятности распределения файлов журнала изменяется с течением времени [1]. Алгоритм PCA используется для обнаружения аномального вектора (сеанса). Это оффлайн-метод и в уменьшении ложных срабатываний и проблем, он эффективнее, чем онлайн-алгоритм PCA [2]. Invariant Mining (IM) [3] также обнаруживает аномальные сеансы выполнения с небольшими инвариантами, добытыми удовлетворенным большинством [1]. Term-Frequency Inverse Document Frequency (TF-IDF) использует вектор TF-IDF и нуждается в процедуре сглаживания Лапласа и определенном количестве эпох (временного окна), а также нормальных и аномальных данных. В этом методе различные типы аномалий не могут быть обнаружены [1].
Одним из инструментов для процессов контроля качества являются HDFS лог-файлы. HDFS лог-файлы интересны для изучения, они показывают время окончания процесса, а также его качество. Таким образом, в лог-файле хранятся записи о наличие и отсутствие кацдой проблемы в одном процессе. Это позволяет нам узнать источник проблемы и предпринять корректирующие действия. Важно знать время окончания процесса, зная его, мы можем сравнить длительность процесса с требуемым стандартным временем. С учетом характеристик и оборудования компьютера, мы можем распознать проблемы, которые возникли в процесс. Для распознавания проблемы нам нужна рабочая система, чтобы иметь возможность печатать лог-файлы в разных частях. На самом деле, корректно собрать много информации в лог-файле. В этом случае, когда мы собираем большие данные в лог-строке, получается объёмный лог, для этого требуется много места для хранения и времени для обработки, появляется дополнительная информация для чтения, но это поможет решить возникшую проблему. Создание слишком большого количества строк лог-файлов системы приводит к тому, что собирается слишком большой объем информации. Такие лог-файлы называются толстыми лог-файлами. Поэтому для хранения и анализа таких лог-файлов требуется очень большой объем памяти и это занимает много времени. Для этого мы используем определенные лог-файлы, которые несут стандартную информацию. В этом случае выявление проблем, возникающих из-за кибернетического вторжения, по-прежнему считается важной проблемой. Поскольку выявление проблемы занимает много времени, для обнаружение различного рода вторжения следует использовать интеллектуальные методы. В наших интересах найти методы, облегчающие эту задачу.
Существующие кибератаки, например, такие, как отказ в обслуживании («DoS-Attack», Distributed-DoS «DDoS-Attack»), нарушают соединение на серверах. Как правило, некоторые из атак приводят к аномальным событиям таким, как перезагрузка системы несколько раз или некоторые задержки в соединении.
Целью данной работы является разработка программной системы для метода обнаружения аномалий и экспериментальный анализ применения метода.
В ходе выполнения работы были поставлены следующие задачи:
1) Анализ существующих методов обнаружения аномалий,
2) Модификация алгоритмов обнаружения аномалий: использование LSTM-сетей для разработки архитектуры нейронных сетей с обнаружением аномалий, разработка подходящих шаблонов,
3) Разработка программной системы,
4) Проведение экспериментов.
В научной работе нас интересует обнаружение атак, которые имеют определенное видение. Поэтому необходимо сделать три предположения вокруг этой темы:
1) Кибер атаки, сохраняют некоторые события в лог-файле событий. Поэтому мы предполагаем, что мы можем видеть атаку;
2) Мы предполагаем, что наша система достаточно квалифицирована, чтобы записывать строки об известных атаках. Таким образом, администраторы серверов должны знать эти атаки и дизайн, чтобы собрать некоторые оптимизированные данные внутри лог-строки, чтобы предотвратить проблему с толстым лог-файлом и предоставить поддержку для обнаружения некоторых известных атак;
3) Мы предполагаем, что у нас есть некоторая нормальная информация на ясном сервере, чтобы узнать разницу между нормальными и аномальными лог-данными атак [4].
Новизной данной работы является использование иерархической кластеризации [12] для анализа введенных журналов в небольшом окне. Это похоже на использование “Mini-batch”, но часть данных также кластеризована. Таким образом, строка данных изменяется на векторы кластера, а объем данных уменьшается. Новый набор данных может обрабатываться предиктором LSTM как классический метод. С помощью иерархической кластеризации можно создавать конечные наборы данных. Поскольку это онлайн-метод, чтобы не тратить время, можно настроить гиперпараметры прогнозов LSTM. Если аномалия обнаружена, то по характеристикам условной вероятности аномалии тип аномалии также может быть кластерным. Множество, представляющее типы аномалий, может быть расширено, когда алгоритм обнаруживает новую аномалию. Поскольку нейронная сеть LSTM является мультиклассификационной, ее можно использовать и для кластеризации.
Нейронные сети LSTM могут мягко адаптироваться к данным. LSTM может использоваться как мультиклассификатор. LSTM может использовать данные за пределами окна. LSTM способен обнаруживать аномалии в последовательности журналов событий. Данный метод имеет единственное условие обнаружения аномалии, зависящее от величины ошибки для прогнозируемых и наблюдаемых значений, особенно в лог-параметрах. Также метод не может обнаружить и объединить типы аномалий, но достаточно способен сделать это. Предпринята попытка скрыть эти недостатки, чтобы повысить чувствительность обнаружения аномалий и выявить тип аномалий для более легкого диагностирования аномалии.
Метод Deeplog использует нейронную сеть LSTM для принятия данных во временной последовательности и прогнозирования возможности следующего раза. Конечно, требуется техника для извлечения файлов журнала BlueGene L и поиска ключей журнала в полях каждой строки журнала. Также требуется методика определения ключа журнала в строке журнала и перевода в векторную форму для использования в математической модели. Поскольку набор данных BlueGene L - это большой объем данных, то любой анализ требует процесса фрагментации данных. Для анализа необходимо разбить данные на множество частей. В данной работе были использованы фрагменты, включающие 5000 строк журнала. Для этапа обучения использовалось 42 фрагмента. Доступ к фрагментам середины данных является настолько низким процессом. Для разработки результата обнаружения аномалий с помощью алгоритма DeepLog было решено проверить использование иерархической кластеризации перед прогнозированием LSTM. Т.е. предпринята попытка предсказать иерархические кластеры данных во временной последовательности.
Обычно иерархическая кластеризация используется для понимания характеристики данных. Когда у нас нет исходной информации для классификации данных или нашей информации недостаточно для понимания различных закономерностей в данных, иерархическая кластеризация может помочь проанализировать данные. Он находит некоторые паттерны, которые называются кластерными. Также можно понять разницу наблюдаемых данных с шаблонами кластеров по показателям сходства в иерархических кластерах. Иерархическая кластеризация дает нам дерево, которое определяет отношения между элементами данных относительно определенных правил кластеризации. Следует обратить внимание на следующие моменты для определения метода кластеризации:
1) Метод кластеризации должен быть привязан к отображению и должен иметь ответ для всех типов входных данных;
2) Определение граничных параметров как ограничивающих ограничений для метода кластеризации, который показывает точность кластеризации. Это может повлиять на количество обнаруженных кластеров и иерархических уровней кластеров.
Определение метода кластеризации и его настройка могут повлиять на конечный результат в сходстве кластеров и обнаружении аномалий. Определение некоторых граничных параметров в качестве ограничивающих ограничений может влиять на количество обнаруженных кластеров и на количество уровней иерархического кластера. Например, при использовании k-среднего, MSE или других алгоритмов, вычисляющих расстояние между элементами, определение параметра может увеличить количество кластеров и уровней. В данной работе для кластеризации используется алгоритм MSE и евклидовы расстояния. Далее параметр определяется как ошибку сходства. Используя оценки сходства, производится проверка: насколько набор данных похож на кластеры и насколько минимум оценок сходства близок к определенной ошибке. Следовательно, у нас должен быть ответ для любого типа данных. В результате выполнения работы сделан вывод, что увеличение этого параметра приводит к увеличению количества кластеров. Определение аналогичного вектора в качестве входных данных для метода кластеризации может привести к уменьшению количества кластеров. Затем необходимо определить малую константу, чтобы обнаружить разные кластеры. Например, использование матрицы [0,0,1] вместо [0,0,0,0,1] может помочь улучшить результат кластеризации. Улучшение результата кластеризации означает, что будет небольшое количество кластеров и процессов. Стоит отметить необходимость избегать использования большего количества математических процессов, которые должны включать небольшие числа, такие как 0,000001.
В методе иерархической кластеризации производится работа с вероятностью распределения. Поэтому было принято решение выбрать окно для кластеризации. Другими словами, берется окно данных и получается суммирование векторов в этом окне. Метод кластеризации кэширует этот вектор в качестве входных данных. Это суммирование показывает, какие ключи и сколько раз можно видеть в окне. Размер окна важен. Если выбрать большой размер окна, получится, что игнорируется появление данных во временной последовательности. В данной работе использовался размер окна равный 10 для элементарных уровней иерархической кластеризации и 3 для конечных слоев.
Иерархическая кластеризация вызывает некоторые задержки в процессах обучения LSTM. По этой причине перед настройкой необходимо настроить параметры иерархической кластеризации и структуру LSTM. Проблема увеличения размеров в иерархических кластерах элементарных слоев является проблемой используемого метода, которая может быть решена путем настройки на данные. Проблема возникает из-за того, что метод иерархической кластеризации должен найти различия элементов набора данных. В проведенных экспериментах для различных наборов данных был сделан вывод, что номера кластеров в элементарных слоях обычно больше, чем размерность векторов первого слоя, который является входными данными. Это количество кластеров в слое показывает размер входных векторов для следующего слоя. В структуре LSTM существует проблема с высокой размерностью входных данных, так как для каждого входного вектора нужно определить весовую матрицу как размер выходных данных и входных данных, что вызывает большую задержку в этапах обучения при обратном распространении ошибки.
Проведенные эксперименты по анализу данных BlueGene L показывают, что для входных данных 30-60 является нормальным ограничением размера. Поэтому настройка параметров метода иерархической кластеризации необходима для уменьшения размерности входных векторов для второго слоя. В данной работе не используются размеры более 60. Таким образом, как правило, можно сказать, что иерархическая кластеризация не является уникальным алгоритмом для любого набора данных и абсолютно нуждается в настройке для каждой отдельной информации.
Полученный опыт показывает, что иерархическая кластеризация может помочь полностью увеличить характеристики того, что происходит внутри событий журнала, в течение определенного периода времени. Поэтому обнаружение аномалии становится точнее. Кроме того, это может помочь для кластеризации типа аномалии. Для того, чтобы предотвратить появление некоторых ошибок и улучшить результаты алгоритма, необходимо избегать следующих ситуаций:
1) Большой размер фрагментов может увеличить время задержки в процессе. Поэтому нужно настроить процесс фрагментации в соответствии с типом компьютера, который используется для анализа;
2) Дополнительные этапы обучения в LSTM (Ранняя остановка);
3) Большой размер структуры LSTM;
4) Очень маленькая константа для метода кластеризации, которая вызывает расширение иерархических наборов кластеров и процессы начинают работать медленнее;
5) Небольшой размер окна для обнаружения кластера на уровнях элементарных иерархических кластеров приводит к расширению размерности векторов и замедлению процесса в LSTM на этапе обучения;
6) Количество ключей более 30. Обнаружение большего количества ключей может увеличить размерность входных векторов LSTM. Обнаружение ненужных ключей журнала - бесполезный процесс. Обычно количество ключей - около 30;
7) Большие векторы, полученные методом иерархической кластеризации, могут снизить производительность алгоритма. Необходимо настроить метод иерархической кластеризации с набором данных;
8) Большое количество иерархических уровней кластера вызывает некоторые задержки в структуре LSTM на этапе обучения, а также на этапе обнаружения. Поэтому необходимо избегать большого количества иерархических кластерных уровней. Стоить помнить, что уменьшение структуры глубокого обучения вызывает неточность в предсказаниях.
Таким образом, поставленные цели и задачи выполнены в полном объеме.