<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>A.S. Batalov. Methods for increase Kohonen neural network training efectiveness.
universiteta. Ser.: Matematica. Mehanica. Informatika.</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Поиск аномальных событий в журналах событий ОС Windows</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Victor S. Vedeneev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Igor V. Bychkov</string-name>
          <email>bychkov@csu.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Windows</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <volume>3</volume>
      <issue>11</issue>
      <fpage>86</fpage>
      <lpage>93</lpage>
      <abstract>
        <p>Поиск аномалий в журнале событий ОС Windows - это инструмент, помогающий выявлять нарушения (умышленные и неумышленные) информационной безопасности, неправильную работу программного обеспечения, ошибки в конфигурировании операционной системы. При этом перед исследователем возникает ряд задач, таких как выбор алгоритма поиска аномалий, настройка параметров такого алгоритма, проверка корректности и анализ полученных результатов. В настоящей работе описан способ решения таких задач с использованием самоорганизующихся нейронных сетей Кохонена.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Также следует отметить о возможности чтения событий старой версии Event Log из более новой версии
журнала.</p>
      <p>Рассмотрим структуры событий различных версий Event Log.
1.1</p>
      <p>Описание структуры событий Event Log
Событие Event Log v.2 состоит из следующих полей:</p>
    </sec>
    <sec id="sec-2">
      <title>Application Log (Приложение).</title>
      <p>Security Log (Безопасность).</p>
      <p>System Log (Система).</p>
      <p>Microsoft-Windows-Forwarding/Operational (Перенаправленные).
∙ Дата и время.
∙ Тип журнала [1].</p>
    </sec>
    <sec id="sec-3">
      <title>Custom.</title>
      <p>∙ Тип события [2].</p>
      <p>Error event (Ошибка).</p>
      <p>Failure Audit event (Аудит отказа).</p>
      <p>Success Audit event (Аудит успехов).</p>
      <p>Information event (Информация).</p>
      <p>Warning event (Предупреждение).
∙ Код события.
∙ Наименование учетной записи - инициатора события.
∙ Сетевое имя компьютера (NetBIOS).</p>
      <p>∙ Тело события.
Тело события содержит детальное описание события, и в зависимости от кода события состоит из разных
полей.</p>
      <p>В обновленной версии системного журнала событие имеет следующие поля:
∙ Дата и время.
∙ Тип события.
∙ Тип журнала.
∙ Код события.
∙ Тело события.</p>
      <p>Такие же, как и в Event Log v.2.</p>
      <p>Setup (Установка).
2</p>
      <p>Самоорганизующиеся сети Кохонена
Данный вид нейронных сетей функционирует по принципу «победитель получает всё». Сети Кохонена
используют «обучение без учителя» (алгоритм может быть преобразован в «обучение с учителем»).
Наиболее интересным свойством сетей Кохонена является самоорганизация, а именно – повторение в  -мерном
пространстве расположение объектов. «Обычные» одномерные сети Кохонена используются для
кластеризации данных, многомерные сети Кохонена могут использоваться для распознавания изображений.</p>
      <p>Алгоритм обучения сети Кохонена описан в [3]. Обучение сети Кохонена содержит в себе некоторое число
параметров, таких как функция скорости обучения, алгоритм инициализации весов нейронов, способы
оптимизации, выбор которых существенно влияет на результат обучения. Далее опишем использованный
в работе алгоритм обучения сети Кохонена.
Шаг 1: Инициализация сети
Инициализация весов нейронов сети осуществлялась случайными значениями, расположенными на отрезке
[0; 1]. Далее производится нормализация весов.
Шаг 2: Выбор нейрона-победителя
Из обучающей выборки выбирается некоторый вектор и подается на вход сети. Далее происходит выбор
нейрона-победителя путем вычисления максимума из скалярных произведений между входящим вектором
и всеми нейронами.</p>
      <p>На шаге 1 обучения всем нейронам присваивается потенциал  = 1/ , где  – число нейронов в сети.
После каждого круга обучения происходит корректировка потенциалов по следующей формуле:
( + 1) =
{︃() + 1/,  ̸=</p>
      <p>() − ,  = 
где  – номер нейрона,  – номер нейрона-победителя. При  &lt;  нейрон исключается из обучения, а
именно, из шага 2 – т.е. он не участвует в выборе нейрона-победителя, и из шага 3 – его веса не
корректируются.
Шаг 3: Корректировка весов
Корректировка весов нейрона-победителя на  + 1 шаге осуществляется по следующей формуле
где w( + 1) – вес -го нейрона на следующем шаге, x – входной вектор,  – дискретное время,  () –
функция скорости обучения в момент времени . Функция скорости обучения имела следующий вид:
w( + 1) := w() +  ()(x − w()),</p>
      <p>() = 0.2 arcctg(7/ ),
где  – общее число шагов обучения. График функции скорости обучения представлен на рис. 1 (на оси
абсцисс – дискретное время).</p>
      <p>Рис. 1: График функции скорости обучения
По завершению шага 3 производится выбор следующего вектора из обучающей выборки и вновь
повторяются шаги 2 и 3. После того, как все векторы из обучающей выборки были поданы на вход нейронной
сети, счетчик дискретного времени  увеличивается на 1 и вновь на вход нейронной сети подаются векторы
из обучающей выборки.</p>
      <p>Обучение продолжается до тех пор, пока  &lt;  .</p>
      <p>Для ускорения процесса обучения применялось распараллеливание c использованием библиотеки CUDA,
аналогичное работе [4].
(1)
(2)
(3)
2. Каждому пользователю и каждому ПК присваивался уникальный числовой идентификатор (Id),
который в дальнейшем представлялся в виде двоичного поля фиксированной длины. Например,
значение Id=90 при заданной длине векторов равной 10 преобразовывалось в вектор с координатами
0,0,1,0,1,1,0,1,0. Идентификаторы записывались в базу данных.
3. Временны´е значения преобразовывались в вектор длины 1 по следующей формуле:
(ℎ * 3600 +  * 60 + )/3600.
Значения дней недели переводились в вектор длины 3.</p>
      <p>⎧ = {0; 0; 1}
⎪
⎪
⎪⎪ = {0; 1; 0}
⎪
⎪
⎪
⎪⎪ = {0; 1; 1}
⎪
{· , · , ·} = ⎨ℎ = {1; 0; 0}
⎪⎪⎪  = {1; 0; 1}
⎪
⎪
⎪⎪ = {1; 1; 0}
⎪
⎪
⎪
⎩ = {1; 1; 1}</p>
      <p>↦→ A
A = ⟨1, . . . , 15, 16, . . . , 23⟩,
(4)
(5)
(6)
2.3</p>
      <p>Пример преобразования логов в числовой вектор
Далее покажем обработку логов об авторизации описываемыми алгоритмами. Для обработки события об
авторизации объединялись в сессии, то есть в один объект собирались события о входе и выходе из системы.
Преобразование объекта (сессии) в числовой вектор производилось следующим образом:
где 1, . . . , 15 – идентификатор системы, 16, . . . , 18 – день недели во время входа в систему (5), 19 –
время входа в систему, полученное по формуле (4), 20, . . . , 22 – день недели во время выхода из системы
(5), 23 – время выхода из системы (4).</p>
      <p>Для повышения точности вычисления вектор A может быть разделен на два вектора: ⟨1, . . . , 15⟩ и
⟨16, . . . , 23⟩, и обрабатываться двумя отдельными сетями.</p>
      <p>Следует отметить, что в преобразовании не участвовал идентификатор пользователя. Это связано с тем,
что для каждого пользователя и для каждого типа изучаемых объектов создается отдельная нейронная
сеть и обработка логов осуществляется такими небольшими сетями. Такое разбиение на небольшие сети
позволяет снизить нагрузку на графический адаптер (на котором производятся параллельные
вычисления), упростить текущую работу с периодическим переобучением сети. При переобучении сети «старая»
сеть инициализируется случайными значениями и проходит процесс обучения, только уже с более полным
набором данных.
3</p>
      <p>Поиск аномалий с использованием сети Кохонена
В работе применялись алгоритмы поиска аномалий, описанных в [5]. Основу этих методов составляет
изучение полученных после обучения кластеров объектов. Кластер образуют объекты, для которых
нейрономпобедителем является один и тот же нейрон.</p>
      <p>Алгоритм №1 (пороговый) выявляет малочисленные кластеры, которые свидетельствуют о том, что
данная группа объектов отличается от остальных по неопределенному числу признаков и такая группа
является меньшинством.
Вычислим радиус кластера:
Вычислим покоординатно среднеквадратическое отклонение в обучающей выборке:
 = 1 ∑︁ (c, v), где (· , · ) – Евклидово расстояние .</p>
      <p>=1</p>
      <p>⎯⎸ 
 = ⟨ 1, . . . ,  ⟩, где   = ⎷⎸∑︁( − )2.</p>
      <p>=1
На этом предварительные вычисления заканчиваются. Значения c, ,  сохраняются в базу данных и могут
использоваться в дальнейшем. Для повышения точности выявления аномалий формулы (7) и (8)
пересчитываются на полном множестве объектов. Все вектора, подаваемые на вход алгоритма должны быть
нормированы. Выявление аномалий происходит следующим образом: если для некоторого нормированного
вектора v из полного множества объектов выполняется следующее условие</p>
      <p>(v, c) &gt;  + 2‖ ‖,
то объект, соответствующий вектору v, является аномалией.</p>
      <p>Алгоритм №3 основан на оценке расстояния от самого многочисленного кластера до остальных
кластеров. Если расстояние превышает некоторое заранее заданное значение, то такой кластер считается
аномальным и все вектора, входящие в этот кластер, считаются соответствующими аномалии.</p>
      <p>Как правило вышеуказанные алгоритмы комбинируются и последовательно применяются, что позволяет
выявлять различные виды аномалий в имеющемся наборе данных.
4</p>
      <p>Проверка алгоритма
В качестве проверки алгоритма использовалось внедрение заведомо аномальных данных, таких как:
1. Авторизация в выходные дни при 5 дневном рабочем графике.
2. Авторизация во внерабочее время.
3. Оставление доступа к ПК во внерабочее время (т.е. события входа и выхода разнесены более чем на
1 сутки).
4. Вход на ПК или в систему, которой ранее пользователем не использовалась.</p>
      <p>5. Опоздания и задержки на работе более чем на 30 минут.
Данные события включались в выгрузку из журнала событий с реальных ПК пользователей (см. табл. 1).
Заключение
Поиск аномалий является универсальным средством поиска инцидентов информационной безопасности,
зарегистрированных в журнале событий Event Log. Нейронные сети Кохонена позволяют реализовывать
поиск аномалий и являются отличным инструментом для изучения полученных результатов.</p>
      <p>Статья выполнена при поддержке Правительства РФ (Постановление № 211 от 16.03.2013 г.), соглашение
№ 02.A03.21.0011.
(7)
(8)
(9)
№
п/п
Кол-во
объектов
в обучающей
выборке
1
2
57
120
57
62
1
2
3
Список литературы</p>
    </sec>
    <sec id="sec-4">
      <title>Vestnik Permskogo</title>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>