=Paper=
{{Paper
|id=Vol-1965/paper6
|storemode=property
|title=
Поиск
аномальных
событий в журналах
событий
ОС Windows
(Anomaly Detection in Event Log of OS Windows)
|pdfUrl=https://ceur-ws.org/Vol-1965/paper6.pdf
|volume=Vol-1965
|authors=Victor Vedeneev,Igor Bychkov
}}
==
Поиск
аномальных
событий в журналах
событий
ОС Windows
(Anomaly Detection in Event Log of OS Windows)
==
Поиск аномальных событий в журналах событий
ОС Windows
1 2 2 3
В.С. Веденеев , И.В. Бычков ,
ingafen@gmail.com bychkov@csu.ru
ПАО «Челябинский цинковый завод», Челябинск, Россия
1
2
Челябинский государственный университет, Челябинск, Россия
3
Южно-уральский государственный университет, Челябинск, Россия
Аннотация
Поиск аномалий в журнале событий ОС Windows – это инструмент,
помогающий выявлять нарушения (умышленные и неумышленные)
информационной безопасности, неправильную работу программно-
го обеспечения, ошибки в конфигурировании операционной систе-
мы. При этом перед исследователем возникает ряд задач, таких
как выбор алгоритма поиска аномалий, настройка параметров та-
кого алгоритма, проверка корректности и анализ полученных ре-
зультатов. В настоящей работе описан способ решения таких задач
с использованием самоорганизующихся нейронных сетей Кохонена.
Введение
Журнал событий ОС Windows (Event Log) является важным источником информации о работе пользо-
вателя за ПК, об ошибках и сбоях в программном обеспечении, о действиях системных администраторов,
в том числе - скрытных для пользователя. Поиск событий, свидетельствующих об инциденте информа-
ционной безопасности (далее - ИБ), может происходить путем запросов к журналу или методами поиска
аномалий. Первый способ предполагает наличие знаний о том, какие именно данные необходимо искать.
Второй способ предполагает последующее изучение связанных, похожих событий для принятия решения о
том, является ли событие инцидентом ИБ. Оба способа являются взаимосвязанными, так как события, при-
знанные инцидентами ИБ и выявленные в результате поиска аномалий изучаются, и составляется запрос
к журналу событий, позволяющих выявлять такие события.
1 Журнал событий ОС Windows
На момент написания работы наиболее распространенными являются две версии журнала событий. В
операционных системах начиная с ОС Windows Vista и Windows Server 2008 используется третья версия
журнала событий. В более ранних Windows XP и Windows Server 2003 использовалась вторая версия Event
Log. Основными нововведениями в новой версии Event Log являются:
∙ Использование новых кодов событий.
Новая группировка событий по кодам.
∙ Новый формат тела события.
∙ Возможность асинхронного чтения из журнала событий.
c by the paper’s authors. Copying permitted for private and academic purposes.
Copyright ○
In: Sergey V. Belim, Nadezda F. Bogachenko (eds.): Proceedings of the Workshop on Data, Modeling and Security 2017 (DMS-2017),
Omsk, Russia, October 2017, published at http://ceur-ws.org
Также следует отметить о возможности чтения событий старой версии Event Log из более новой версии
журнала.
Рассмотрим структуры событий различных версий Event Log.
1.1 Описание структуры событий Event Log
Событие Event Log v.2 состоит из следующих полей:
∙ Дата и время.
∙ Тип журнала [1].
Application Log (Приложение).
Security Log (Безопасность).
System Log (Система).
Microsoft-Windows-Forwarding/Operational (Перенаправленные).
Custom.
∙ Тип события [2].
Error event (Ошибка).
Failure Audit event (Аудит отказа).
Success Audit event (Аудит успехов).
Information event (Информация).
Warning event (Предупреждение).
∙ Код события.
∙ Наименование учетной записи - инициатора события.
∙ Сетевое имя компьютера (NetBIOS).
∙ Тело события.
Тело события содержит детальное описание события, и в зависимости от кода события состоит из разных
полей.
В обновленной версии системного журнала событие имеет следующие поля:
∙ Дата и время.
∙ Тип события.
∙ Тип журнала.
Такие же, как и в Event Log v.2.
Setup (Установка).
∙ Код события.
∙ Тело события.
2 Самоорганизующиеся сети Кохонена
Данный вид нейронных сетей функционирует по принципу «победитель получает всё». Сети Кохонена
используют «обучение без учителя» (алгоритм может быть преобразован в «обучение с учителем»). Наи-
более интересным свойством сетей Кохонена является самоорганизация, а именно – повторение в 𝑁 -мерном
пространстве расположение объектов. «Обычные» одномерные сети Кохонена используются для класте-
ризации данных, многомерные сети Кохонена могут использоваться для распознавания изображений.
Алгоритм обучения сети Кохонена описан в [3]. Обучение сети Кохонена содержит в себе некоторое число
параметров, таких как функция скорости обучения, алгоритм инициализации весов нейронов, способы
оптимизации, выбор которых существенно влияет на результат обучения. Далее опишем использованный
в работе алгоритм обучения сети Кохонена.
2.1 Обучение сети
Шаг 1: Инициализация сети
Инициализация весов нейронов сети осуществлялась случайными значениями, расположенными на отрезке
[0; 1]. Далее производится нормализация весов.
Шаг 2: Выбор нейрона-победителя
Из обучающей выборки выбирается некоторый вектор и подается на вход сети. Далее происходит выбор
нейрона-победителя путем вычисления максимума из скалярных произведений между входящим вектором
и всеми нейронами.
На шаге 1 обучения всем нейронам присваивается потенциал 𝑝𝑖 = 1/𝑁 , где 𝑁 – число нейронов в сети.
После каждого круга обучения происходит корректировка потенциалов по следующей формуле:
{︃
𝑝𝑖 (𝑘) + 1/𝑁, 𝑖 ̸= 𝑗
𝑝𝑖 (𝑘 + 1) = (1)
𝑝𝑖 (𝑘) − 𝑝𝑚𝑖𝑛 , 𝑖 = 𝑗
где 𝑖 – номер нейрона, 𝑗 – номер нейрона-победителя. При 𝑝𝑖 < 𝑝𝑚𝑖𝑛 нейрон исключается из обучения, а
именно, из шага 2 – т.е. он не участвует в выборе нейрона-победителя, и из шага 3 – его веса не корректи-
руются.
Шаг 3: Корректировка весов
Корректировка весов нейрона-победителя на 𝑘 + 1 шаге осуществляется по следующей формуле
w𝑖 (𝑘 + 1) := w𝑖 (𝑘) + 𝜂(𝑘)(x − w𝑖 (𝑘)), (2)
где w𝑖 (𝑘 + 1) – вес 𝑖-го нейрона на следующем шаге, x – входной вектор, 𝑘 – дискретное время, 𝜂(𝑘) –
функция скорости обучения в момент времени 𝑘 . Функция скорости обучения имела следующий вид:
𝜂(𝑘) = 0.2 arcctg(7𝑘/𝑀 ), (3)
где 𝑀 – общее число шагов обучения. График функции скорости обучения представлен на рис. 1 (на оси
абсцисс – дискретное время).
Рис. 1: График функции скорости обучения
По завершению шага 3 производится выбор следующего вектора из обучающей выборки и вновь повто-
ряются шаги 2 и 3. После того, как все векторы из обучающей выборки были поданы на вход нейронной
сети, счетчик дискретного времени 𝑘 увеличивается на 1 и вновь на вход нейронной сети подаются векторы
из обучающей выборки.
Обучение продолжается до тех пор, пока 𝑘 < 𝑀 .
Для ускорения процесса обучения применялось распараллеливание c использованием библиотеки CUDA,
аналогичное работе [4].
2.2 Преобразование объектов из Event Log в числовой вектор
Для преобразования событий Event Log в числовой вектор применялись следующие подходы:
1. Для различных типов событий применялись отдельные сети, т.е. каждый вид логов обрабатывался
по-отдельности.
2. Каждому пользователю и каждому ПК присваивался уникальный числовой идентификатор (Id), ко-
торый в дальнейшем представлялся в виде двоичного поля фиксированной длины. Например, зна-
чение Id=90 при заданной длине векторов равной 10 преобразовывалось в вектор с координатами
0,0,1,0,1,1,0,1,0. Идентификаторы записывались в базу данных.
3. Временны́е значения преобразовывались в вектор длины 1 по следующей формуле:
(ℎ𝑜𝑢𝑟 * 3600 + 𝑚𝑖𝑛𝑢𝑡𝑒𝑠 * 60 + 𝑠𝑒𝑐𝑜𝑛𝑑𝑠)/3600. (4)
Значения дней недели переводились в вектор длины 3.
⎧
⎪
⎪ 𝑚𝑜𝑛𝑑𝑎𝑦 = {0; 0; 1}
𝑡𝑢𝑒𝑠𝑑𝑎𝑦 = {0; 1; 0}
⎪
⎪
⎪
⎪
⎪
⎨𝑤𝑒𝑑𝑛𝑒𝑠𝑑𝑎𝑦 = {0; 1; 1}
⎪
⎪
⎪
{·, ·, ·} = 𝑡ℎ𝑢𝑟𝑠𝑑𝑎𝑦 = {1; 0; 0} (5)
⎪
𝑓 𝑟𝑖𝑑𝑎𝑦 = {1; 0; 1}
⎪
⎪
⎪
⎪
⎪
⎪𝑠𝑎𝑡𝑢𝑟𝑑𝑎𝑦 = {1; 1; 0}
⎪
⎪
⎪
𝑠𝑢𝑛𝑑𝑎𝑦 = {1; 1; 1}
⎩
2.3 Пример преобразования логов в числовой вектор
Далее покажем обработку логов об авторизации описываемыми алгоритмами. Для обработки события об
авторизации объединялись в сессии, то есть в один объект собирались события о входе и выходе из системы.
Преобразование объекта (сессии) в числовой вектор производилось следующим образом:
𝑂𝑏𝑗 ↦→ A
A = ⟨𝑎1 , . . . , 𝑎15 , 𝑎16 , . . . , 𝑎23 ⟩, (6)
где 𝑎1 , . . . , 𝑎15 – идентификатор системы, 𝑎16 , . . . , 𝑎18 – день недели во время входа в систему (5), 𝑎19 –
время входа в систему, полученное по формуле (4), 𝑎20 , . . . , 𝑎22 – день недели во время выхода из системы
(5), 𝑎23 – время выхода из системы (4).
Для повышения точности вычисления вектор A может быть разделен на два вектора: ⟨𝑎1 , . . . , 𝑎15 ⟩ и
⟨𝑎16 , . . . , 𝑎23 ⟩, и обрабатываться двумя отдельными сетями.
Следует отметить, что в преобразовании не участвовал идентификатор пользователя. Это связано с тем,
что для каждого пользователя и для каждого типа изучаемых объектов создается отдельная нейронная
сеть и обработка логов осуществляется такими небольшими сетями. Такое разбиение на небольшие сети
позволяет снизить нагрузку на графический адаптер (на котором производятся параллельные вычисле-
ния), упростить текущую работу с периодическим переобучением сети. При переобучении сети «старая»
сеть инициализируется случайными значениями и проходит процесс обучения, только уже с более полным
набором данных.
3 Поиск аномалий с использованием сети Кохонена
В работе применялись алгоритмы поиска аномалий, описанных в [5]. Основу этих методов составляет изу-
чение полученных после обучения кластеров объектов. Кластер образуют объекты, для которых нейроном-
победителем является один и тот же нейрон.
Алгоритм №1 (пороговый) выявляет малочисленные кластеры, которые свидетельствуют о том, что
данная группа объектов отличается от остальных по неопределенному числу признаков и такая группа
является меньшинством.
Алгоритм №2 основан на оценке расстояния от центра кластера до объектов из этого кластера. По
сравнению с работой [5] было применено улучшение алгоритма, состоящее в том, что центр кластера и
расстояние вычислялись отличным способом.
Пусть по результатам обучения сети мы имеем обученную сеть и разбиение обучающей выборки на кла-
стеры. Для выявления аномалий среди полного множества объектов сделаем несколько предварительных
вычислений. Рассмотрим один из полученных из обучающей выборки кластеров. Обозначим 𝑁 – число
векторов в кластере, 𝑉 = {v𝑖 = ⟨𝑣1𝑖 , . . . , 𝑣𝑘𝑖 ⟩|𝑖 = 1 . . . 𝑁 } – множество векторов из данного кластера. Векто-
ра должны быть нормированными. Центром кластера будем считать матожидание от координат векторов
этого кластера, а именно:
𝑁
1 ∑︁ 𝑙
c = ⟨𝑐1 , . . . , 𝑐𝐾 ⟩, где 𝑐𝑖 = 𝑣𝑖 . (7)
𝑁
𝑙=1
Вычислим радиус кластера:
𝑁
1 ∑︁
𝑟= 𝑑(c, v𝑖 ), где 𝑑(·, ·) – Евклидово расстояние.
𝑁 𝑖=1
Вычислим покоординатно среднеквадратическое отклонение в обучающей выборке:
⎯
⎸𝑁
⎸∑︁
𝜎 = ⟨𝜎1 , . . . , 𝜎𝑘 ⟩, где 𝜎𝑖 = ⎷ (𝑣𝑗𝑖 − 𝑐𝑗 )2 . (8)
𝑗=1
На этом предварительные вычисления заканчиваются. Значения c, 𝑟, 𝜎 сохраняются в базу данных и могут
использоваться в дальнейшем. Для повышения точности выявления аномалий формулы (7) и (8) пере-
считываются на полном множестве объектов. Все вектора, подаваемые на вход алгоритма должны быть
нормированы. Выявление аномалий происходит следующим образом: если для некоторого нормированного
вектора v из полного множества объектов выполняется следующее условие
𝑑(v, c) > 𝑟 + 2‖𝜎‖, (9)
то объект, соответствующий вектору v, является аномалией.
Алгоритм №3 основан на оценке расстояния от самого многочисленного кластера до остальных кла-
стеров. Если расстояние превышает некоторое заранее заданное значение, то такой кластер считается
аномальным и все вектора, входящие в этот кластер, считаются соответствующими аномалии.
Как правило вышеуказанные алгоритмы комбинируются и последовательно применяются, что позволяет
выявлять различные виды аномалий в имеющемся наборе данных.
4 Проверка алгоритма
В качестве проверки алгоритма использовалось внедрение заведомо аномальных данных, таких как:
1. Авторизация в выходные дни при 5 дневном рабочем графике.
2. Авторизация во внерабочее время.
3. Оставление доступа к ПК во внерабочее время (т.е. события входа и выхода разнесены более чем на
1 сутки).
4. Вход на ПК или в систему, которой ранее пользователем не использовалась.
5. Опоздания и задержки на работе более чем на 30 минут.
Данные события включались в выгрузку из журнала событий с реальных ПК пользователей (см. табл. 1).
Заключение
Поиск аномалий является универсальным средством поиска инцидентов информационной безопасности,
зарегистрированных в журнале событий Event Log. Нейронные сети Кохонена позволяют реализовывать
поиск аномалий и являются отличным инструментом для изучения полученных результатов.
Статья выполнена при поддержке Правительства РФ (Постановление № 211 от 16.03.2013 г.), соглашение
№ 02.A03.21.0011.
Таблица 1: Проверка алгоритма
Кол-во Есть ли
№ Кол-во Тип Кол-во
объектов аномалии
журналированных аномального ошибок, % Примечание
п/п в обучающей в обучающей
сессий события
выборке выборке
Да 0,00 % -
1
Нет 0,00 % -
Да 0,00 % -
2
Нет 0,00 % -
Да 0,00 % -
1 57 57 3
Нет 0,00 % -
Да 0,00 % -
4
Нет 0,00 % -
2 записи об
опозданиях
Да 3,13 %
5 не были помечены
как аномалия
Нет 0,00 % -
Да 0,00 % -
1
Нет 0,00 % -
Да 0,00 % -
2
Нет 0,00 % -
Да 1,67 % -
2 120 62 3
Нет 0,00 % -
Да 0,00 % -
4
Нет 0,00 % -
Да 1,67 % -
5
Нет 0,00 % -
Список литературы
[1] URL: https://technet.microsoft.com/en-us/library/cc722404(v=ws.11).aspx.
[2] URL: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363646(v=vs.85).aspx.
[3] T. Kohonen. Samoorganizuyuschiesja karty. M., Binom. Laboratoria znaniy, 2013 (In Russian).
[4] A.S. Batalov. Methods for increase Kohonen neural network training effectiveness. Vestnik Permskogo
universiteta. Ser.: Matematica. Mehanica. Informatika. 3(11):86–93, 2012 (In Russian).
[5] V.S. Vedeneev, I.V. Bychkov. Anomaly detection with self-organization Kohonen neuron net.
Neyrokomyutery: razrabotka, primineniye , 10:67–72, 2016 (In Russian).
Anomaly Detection in Event Log of OS Windows
Victor S. Vedeneev, Igor V. Bychkov
Windows event log anomaly detection is a tool, which allows detecting intentional and unintentional violations
of information security, software malfunctions, and flaws of configuration of operating system. However, there is
a few set of challenges for applying anomaly detection, which is choosing of anomaly detection algorithm, values
of parameters of anomaly detection algorithms, checking correctness of results and analysis of results. This paper
describes a way of solving such problem using Kohonen self-organizing neuron net.