ela.kpi.ua  · web view2020. 3. 6. · Наступний інструмент - event log...

142
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ «КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ ІМЕНІ ІГОРЯ СІКОРСЬКОГО» ІНСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛІЗУ КАФЕДРА МАТЕМАТИЧНИХ МЕТОДІВ СИСТЕМНОГО АНАЛІЗУ На правах рукопису До захисту допущено УДК 519.688 В. о. завідувача кафедри ММСА О.Л.Тимощук «___» ____________ 2019 р. Магістерська дисертація на здобуття ступеня магістра за спеціальністю 124 Системний аналіз на тему: « Виявлення аномалiй роботи операційної системи Windows методами машинного навчання та лог-аналiтики» Виконав: студент ІІ курсу, групи КА-82 мп Чабанівський Артем Тарасович ____________ Керівник: доцент кафедри ММСА к.ф.-м.н., доц. Каніовська І.Ю. ____________ Рецензент: доцент кафедри математичного аналізу та теорії ймовірностей КПІ ім. І. Сікорського, к. ф.-м.н., доц. Буценко Ю. П. ______________

Upload: others

Post on 05-Dec-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ ІМЕНІ ІГОРЯ СІКОРСЬКОГО»

ІНСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛІЗУКАФЕДРА МАТЕМАТИЧНИХ МЕТОДІВ СИСТЕМНОГО АНАЛІЗУ

На правах рукопису До захисту допущеноУДК 519.688 В. о. завідувача кафедри ММСА

О.Л.Тимощук«___» ____________ 2019 р.

Магістерська дисертаціяна здобуття ступеня магістра за спеціальністю 124 Системний аналіз

на тему: «Виявлення аномалiй роботи операційної системи Windows методами машинного навчання та лог-аналiтики»

Виконав: студент ІІ курсу, групи КА-82 мпЧабанівський Артем Тарасович ____________

Керівник: доцент кафедри ММСАк.ф.-м.н., доц. Каніовська І.Ю. ____________

Рецензент:доцент кафедри математичного аналізу та теорії ймовірностей  КПІ ім. І. Сікорського,к. ф.-м.н., доц. Буценко Ю. П. ______________

Засвідчую, що у цій магістерській дисертаціїнемає запозичень з праць інших авторівбез відповідних посиланьСтудент ____________

Київ2019

Page 2: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

2

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ ІМЕНІ ІГОРЯ

СІКОРСЬКОГО»ІНСТИТУТ ПРИКЛАДНОГО СИСТЕМНОГО АНАЛІЗУ

КАФЕДРА МАТЕМАТИЧНИХ МЕТОДІВ СИСТЕМНОГО АНАЛІЗУ

Рівень вищої освіти — другий (магістерський)Спеціальність — 124 «Системний аналіз»

ЗАТВЕРДЖУЮВ. о. завідувача кафедри ММСА

О.Л.Тимощук«___» ____________ 2019 р.

ЗАВДАННЯна магістерську дисертацію студенту Чабанівському Артему Тарасовичу

1. Тема дисертації: «Виявлення аномалій роботи операційної системи Windows методами машинного навчання та лог-аналiтики», науковий керівник дисертації Каніовська Ірина Юріївна, к.ф.-м.н., доцент, затверджені наказом по університету від «___» _________ № ______

2. Термін подання студентом дисертації: 13 грудня 2019 р.3. Об’єкт дослідження: Аномалії роботи операційної системи Windows,

їх природа, методи виявлення.4. Предмет дослідження: Лог-дані операційної системи, методи

машинного навчання та лог-аналітика.5. Перелік завдань, які потрібно розробити:1) дослідити сучасний стан та особливості застосування лог-аналітики

та машинного навчання у вирішенні проблеми виявлення аномалій роботи операційної системи;

2) розробити математичну модель нейронної мережі для виявлення аномалій на основі самоорганізуючих карт Кохонена;

3) на основі нейронної мережі створити програмний продукт для виявлення аномалій робото операційної системи;

4) пошук даних для застосування в програмі;5) нормалізація та інтерпретація даних методами лог-аналітики;6) розробити стартап-проект виведення на ринок результатів

дослідження;7) розробити концептуальні висновки за результатами наукового

дослідження

Page 3: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

3

6. Орієнтовний перелік графічного (ілюстративного) матеріалу:1). Огляд існуючих систем лог аналалізу операційної системи Windows (рис.1.2 – рис.1.4);2). Інтерфейс та робота створеного програмного продукту (рис.4.3, рис.4.4);3). Таблиці у розділі стартап-проекту

7. Орієнтовний перелік публікацій:

8. Дата видачі завдання: 05 вересня 2019 р.

Календарний план№ з/п

Назва етапів виконання магістерської дисертації

Термін виконання етапів магістерської дисертації

1. Концептуальний вступ дисертації. Формулювання об’єкта, предмета, цілі, завдань, новизни, практичної значущості результатів

18.09.2019—20.09.2019

2. Перший розділ. Огляд літературно-інформаційних джерел. Понятійно-категоріальний апарат. Характеристика об’єкта

21.09.2019—25.09.2019

3. Другий розділ. Детальний огляд журналу подій операційної системи Windows.

25.09.2019—30.09.2019

4. Третій розділ. Опис самоорганізовуюючих карт Кохонена, їх застосування для виявлення аномалій.

30.09.2019—05.10.2019

5. Четвертий розділ. Імплементація отриманих результатів у програмний продукт. Тестування програми

05.10.2019—10.10.2019

6. П’ятий розділ. Стартап-проект 10.10.2019—20.10.20197. Концептуальні висновки. Перспективи

розвитку отриманих рішень20.10.2019—25.10.2019

Студент А.Т.Чабанівський

Науковий керівник дисертації І.Ю. Каніовська

Page 4: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

4

РЕФЕРАТ

Магістерська дисертація: 97с., 15 рис., 25 табл., 1 додаток, 20 джерел.

Об’єктом дослідження є аномалії роботи операційної системи.

Предметом дослідження є логи операційної системи Windows.

Мета дослідження :

1) розробити необхідний інструментарій методами лог-аналітики

для перетворення логів операційної системи в набір даних для

тренування нейронної мережі;

2) дослідження видів та методів навчання нейронних мереж для

виявлення аномалій роботи операційних систем;

3) розробка ПЗ, яке реалізує самоорганізуючу мережу Кохонена;

4) розробка ПЗ, яке реалізує виявлення аномалій у роботі

операційної системи Windows.

Теоретичною та методологічною основою дослідження є праці

закордонних вчених в галузі аналізу даних, кібербезпеки, програмування,

математичного моделювання та серверного адміністрування.

В ході розробки магістерської дисертації створено програмний продукт

що за набором лог даних визначає логи, які є аномальними по відношенню до

інших.

Програмний продукт реалізовано за допомогою мови програмування

C#, фреймворку .NET Core та середовища розробки Micrososft Visual Studio

2019. Надано рекомендації до подальших досліджень.

АНАЛІЗ ДАНИХ, ОПЕРАЦІЙНА СИСТЕМА, ЛОГИ, НЕЙРОННІ

МЕРЕЖІ, WINDOWS, ЛОГ АНАЛIТИКА.

Page 5: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

5

ABSTRACT

Master’s thesis work: 97 pp., 15 fig., 25 tabl., 1 application, 20 sources.

The object of the research is anomalies of the work of operating system. The

subject of the study is the operating systems’ logs.

The aim of the study:

1) develop the necessary tools by log analytics methods for converting

server logs into a data set for training neural network;

2) studying the types and methods of teaching neural networks to detect

anomalies of web servers;

3) develop software that implements a recurrent neural network

4) develop software that implements the detection of anomalies in the web

server’s work by the time window of the data log.

The theoretical and methodological basis of the research is the work of

foreign scientists in the field of data analysis, cybersecurity, mathematical

modeling and server administrating.

During the creation of the master thesis software product was created that

defines logs that are anomalous to others by the set of log data.

The software is implemented using C#, .NET Core framework, and

Microsoft Visual Studio 2019 IDE. Recommendations for further research are

given.

DATA ANALYSIS, OPERATING SYSTEM, LOGS, NEURAL

NETWORKS, WINE, LOG ANALYTICS.

Page 6: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

6

ЗМІСТ

ВСТУП......................................................................................................................8ПЕРЕЛІК СКОРОЧЕНЬ..........................................................................................9ТЕОРЕТИЧНИ ПОНЯТТЯ...................................................................................10РОЗДІЛ 1 ЛОГ АНАЛІТИКА ТА ЇЇ ЗАСТОСУВАННЯ У ВИЯВЛЕННІ АНОМАЛІЙ...........................................................................................................11

1.1 Види логів......................................................................................................111.2 Складові лог-аналітики................................................................................12

1.2.1 Фільтрація та збір та лог-даних...........................................................121.2.2 Структурування даних...........................................................................131.2.3 Аналіз даних............................................................................................13

1.3 Огляд існуючих систем аналізу лог даних операційної системи Windows..............................................................................................................................131.4 Аномалії та методики їх виявлення............................................................17

1.4.1 Режими виявлення аномалій..................................................................191.4.2 Методи розпізнавання аномалій...........................................................20

1.5 Висновки до розділу.....................................................................................24РОЗДІЛ 2. ЖУРНАЛ ПОДІЙ WINDOWS..........................................................25

2.1. Означення.....................................................................................................252.2 Елементи журналу подій Windows.............................................................252.3 Події...............................................................................................................262.3 Журнал подій безпеки Windows.................................................................292.4 Висновки до розділу.....................................................................................31

РОЗДІЛ 3 ОПИС ОБРАНОЇ ТЕХНОЛОГІЇ........................................................323.1 Самоорганізація............................................................................................323.2 Діаграма вхідного простору........................................................................323.3 Модель Кохонена.........................................................................................33

3.3.1 Алгоритм навчання.................................................................................343.4 Особливості мережі......................................................................................363.5 Висновки за розділом...................................................................................37

РОЗДІЛ 4 РОЗРОБКА ПРОГРАМНОГО ПРОДУКТУ ДЛЯ ВИЯВЛЕННЯ АНОМАЛІЙ РОБОТИ ОС WINDOWS...............................................................38

Page 7: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

7

4.1 Дані для роботи.............................................................................................384.2 Обробка даних..............................................................................................39

4.2.1 Сбір даних...............................................................................................394.2.2 Фільтрація даних....................................................................................404.2.4 Нормалізація даних................................................................................41

4.3 Опис програмного продукту.......................................................................424.3.1 Опис інтерфейсу користувача...............................................................44

4.4 Результати роботи програми.......................................................................454.5 Висновки за розділом...................................................................................45

РОЗДІЛ 5 РОЗРОБКА СТАРТАП-ПРОЕКТУ....................................................475.2 Технологічний аудит ідеї стартап-проекту................................................495.3 Аналіз ринкових можливостей запуску стартап-проекту.........................505.4 Розроблення ринкової стратегії проекту....................................................605.5 Розроблення маркетингової програми стартап-проекту...........................655.6 Висновки до розділу.....................................................................................70

ВИСНОВКИ ПО РОБОТІ ТА ПЕРСПЕКТИВИ ПОДАЛЬШИХ ДОСЛІДЖЕНЬ.......................................................................................................71ПЕРЕЛІК ПОСИЛАНЬ.........................................................................................73ДОДАТОК А ЛІСТИНГ ПРОГРАМИ.................................................................75

Page 8: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

8

ВСТУП

На сьогоднішній день операційна система Windows є

найпопулярнішою операційною системою. Під неї розроблюються новітні

програми, комп’ютерні ігри, тощо. Майже кожен із нас мав досвід роботи із

нею.

Успішна робота всіх програм та застосунків на даній операційній

системі напряму залежить від її стабільної роботи. Також від цього залежить

і більш важлива річ – збереженість та цілісність персональних даних.

Своєчасне виявлення аномалій роботи операційної системи відіграє

непересічну роль у коректній роботі системи, збереженні її цілісності та

неушкодженості персональних даних. Також пошук аномалій у роботі

системи є дуже корисним під час розробки та тестуванні програмного

продукту, що розроблюється саме під цю операційну систему.

Інструментом для виявлення некоректної роботи системи можуть

слугувати лог-дані – дані, що зберігають інформацію (службову,

статистичну) про дії у операційній системі. На даний момент більшість

розробників та працівники команди підтримки, при виявленні некоректної

роботи програми, перевіряють записи системи вручну, що займає дуже

великий проміжок часу (так як системні логи можуть мати дуже великий

обсяг), а також дає шанс припустити помилку через «людський фактор».

Через це наразі стоїть питання, як уникнути людського втручання та

перевіряти операційну систему на аномальність програмно.

Page 9: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

9

ПЕРЕЛІК СКОРОЧЕНЬ

ОС – Операційна система

RDP (англ. Remote Desktop Connection) – віддалене підключення до робочого

столу

VS (англ. Visual Studio) – середовище розробки програмного забезпечення,

що забезпечується компанією Microsoft

Page 10: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

10

ТЕОРЕТИЧНИ ПОНЯТТЯ

Означення. Операційна система – це базовий комплекс програм, що

виконує управління апаратною складовою комп'ютера або віртуальної

машини; забезпечує керування обчислювальним процесом і організовує

взаємодію з користувачем. Зазвичай складається з ядра операційної системи

та базового набору прикладних програм..

Означення. Windows – узагальнююча назва операційних систем для

комп'ютерів, розроблених корпорацією Microsoft.

Означення. Логи (лог-файли) – це файли, які містять системну

інформацію роботи сервера чи комп’ютера, в котрі заносяться певні дії

користувача чи програми[5]. Іноді використовується українськомовний

аналог поняття – журнал.

Означення. Лог-аналітика (лог-аналіз) – розділ комп. науки, що вивчає

та аналізує записи, згенеровані сервером або системою серверів (логи).

Означення. Машинне навчання - це підгалузь штучного інтелекту в

галузі інформатики, яка часто застосовує статистичні прийоми для надання

комп'ютерам здатності «навчатися» (тобто, поступово покращувати

продуктивність у певній задачі) з даних, без того, щоби бути

програмованими явно.

Page 11: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

11

РОЗДІЛ 1 ЛОГ АНАЛІТИКА ТА ЇЇ ЗАСТОСУВАННЯ У ВИЯВЛЕННІ АНОМАЛІЙ

1.1 Види логів

Формат лог файлу: таблиця або файл. Зазвичай у файлі логу, або у

відповідній таблиці, записи відсортовані за часом. Лог дані є унікальними

для більшості програмних забезпечень. Найвідоміші типи логів наведені у

табл. 1.1.

Таблиця 1.1 – Види лог даних [1]

Лог Програмне забезпечення

Транзаційний лог Система управління БД

Лог повідомлень IRC та IM

Системний лог Мережеві пристрої

Лог веб сервера Веб сервер

Page 12: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

12

1.2 Складові лог-аналітики

1. Збір лог-даних

2. Фільтрація лог-даних

3. Структурування лог-даних

4. Аналіз лог-даних

Схематично дані складові проілюстровано на рис. 1.1.

Рисунок 1.1 –Лог-аналіз

1.2.1 Фільтрація та збір та лог-даних

Під час етапу №1 відбувається пошук даних (в даному випадку – лог

даних) з відповідних джерел. Велике значення має репрезентативність

інформації, оскільки на цих даних буде оснований результат. Зважаючи на

цей фактор велике значення має реальність та непошкодженість

інформації[2].

Зібранні дані мають бути поміщенні у деяке сховище (наприклад – база

даних) та відфільтровані за відповідними критеріями використовуючи

застосунки[6]. Фільтрація даних має велике значення так як це впливає на

репрезентативність даних.

Page 13: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

13

1.2.2 Структурування даних

Дані логів можуть мати великий об'єм а також складну структуру. Для

полегшення розуміння їх слід структурувати у зручному для користувача

вигляді. Слід зважати на те, що логи можуть мати зв'язок з даними, що були

отримані з інших джерел.

1.2.3 Аналіз даних

Завершаючим етапом є аналіз оброблених даних. На цьому етапі

можуть бути залученні різні відомі методи аналізу даних[3, 4]. Вибір методу

напряму залежить від типу задачі а також навиків розробника.

1.3 Огляд існуючих систем аналізу лог даних операційної системи

Windows

Перший застосунок у цьому розділі - Windows Event Log Viewer (рис

1.2).

Багато користувачів Windows покладаються на цей вбудований

інструмент для перевірки подій, що відбуваються на їхніх комп’ютерах. Цей

інструмент має дві основні переваги: він уже встановлений на комп’ютері та

має дуже інтуїтивний інтерфейс. Ви можете запустити програму перегляду

журналу подій Windows, ввівши “event viewer” (англ. переглядач подій) на

панелі пошуку.

Page 14: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

14

Екран інструменту розділений на три частини: категорії подій

розміщені на лівій бічній панелі, детальну інформацію про події журналу

можна знайти в середньому розділі вікна, а доступні дії вказані на правій

бічній панелі.

Windows Event Log Viewer пропонує звіти про п'ять подій:

«Події» програм (англ. Application events): звіти про перебіг

виконання програми;

«Події» безпеки (англ. Security events): звіти про результати дій

безпеки;

«Події» налаштування (англ. Setup events): в основному

стосуються контролерів домену;

Перенесені події (англ. Forwarded events:): це звіти, що

надсилаються іншими комп’ютерами.

Рисунок 1.2 - Windows Event Log Viewer

Page 15: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

15

Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач

журналу подій дозволяє користувачам переглядати, аналізувати та

контролювати події, записані в журналах подій Windows. - Event Log Explorer

є кращим, ніж власний переглядач журналів подій Майкрософт, так як

забезпечує більшу функціональінсть таблиці. Завдяки цьому інструменту

користувачі можуть аналізувати різні журнали подій: безпеку, додаток,

систему, налаштування, службу каталогів, DNS та інше. Інші функції

включають:

Миттєвий доступ до журналів подій - Провідник журналів подій

працює як з локальними, так і з віддаленими журналами подій, а

також з файлами журналу подій у форматі EVT та EVTX;

Ефективна фільтрація - фільтрація за описами подій за

допомогою регулярних виразів, фільтрація за параметрами події

безпеки, фільтрація за допомогою фільтрів користувача;

Експортувати події та генератор звітів - експортувати та

друкувати події;

Рисунок 1.3 – Event Log Explorer

Page 16: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

16

Останній інструмент у цьому огляді – MyEventViewer. Цей інструмент

дозволяє переглядати кілька журналів подій в одному списку, а також

опис подій та дані. Для запуску цього програмного забезпечення не

потрібен процес установки або додаткові файли DLL. Все, що вам

потрібно зробити, це запустити виконуваний файл.

Інші функції:

Спрощений інтерфейс, дуже зручний для користувачів;

Можливість перегляду подій з віддаленого комп'ютера;

Певні події можна приховати від конкретних користувачів;

Події можна відфільтрувати, використовуючи низку критеріїв;

Рисунок 1.4 - MyEventViewer

Page 17: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

17

1.4 Аномалії та методики їх виявлення

Виявлення аномалій відноситься до пошуку непередбачених значень

(патернів) в потоках даних [5].

Аномалія (викид, помилка, відхилення або виключення) - це

відхилення поведінки системи від стандартного (очікуваного) [7].

Аномалії поділяються на три наступні категорії :

1) Точкові аномалії (рис 1.5) - виникають в ситуації, коли окремий

екземпляр даних може розглядатися як аномальний по відношенню до решти

даних. Даний вид аномалій є найбільш легко розпізнаваним, більшість

існуючих методів створено для розпізнавання точкових аномалій [8];

Рисунок 1.5 – Приклад точкової аномалії

2) Контекстні аномалії (рис 1.6.) (також відомі як «умовні аномалії»

[3]) – спостерігаються, якщо екземпляр даних є аномальним лише в певному

контексті [8]. Аномальна поведінка визначається за допомогою значень

поведінкових атрибутів виходячи з конкретного контексту. Таким чином,

екземпляр даних може бути контекстуальної аномалією за даних умов, але

Page 18: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

18

при таких же поведінкових атрибутах вважатися нормальним в іншому

контексті;

Рисунок 1.6 – Приклад контекстної аномалії

3) Колективні аномалії (рис 1.7.) – виникають, коли послідовність

пов'язаних примірників даних (наприклад, ділянка часового ряду) є

аномальною по відношенню до цілого набору даних [8]. Окремий екземпляр

даних в такій послідовності може не бути відхиленням, проте спільна поява

таких екземплярів є колективною аномалією.

Page 19: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

19

Рисунок 1.7 – приклад колективної аномалії

1.4.1 Режими виявлення аномалій

Часто для вирішення завдання пошуку аномалій потребується набір

даних, що описують систему [9]. Кожен екземпляр в ньому описується

міткою, яка вказує, чи є він нормальним або аномальним. Таким чином,

безліч екземплярів з однаковими тегами формують відповідний клас.

Створення подібної промаркованної вибірки зазвичай проводиться

вручну і є трудомістким і дорогим процесом [9]. У деяких випадках отримати

екземпляри аномального класу неможливо в силу відсутності даних про

можливі відхилення в системі, в інших можуть бути відсутні мітки обох

класів. Залежно від того, які класи даних використовуються для реалізації

алгоритму, методи пошуку аномалій можуть виконуватися в одному з трьох

перерахованих нижче режимів:

1. Supervised anomaly detection (режим розпізнавання з учителем). Дана

методика вимагає наявності навчальної вибірки, що повноцінно

представляє систему і включає екземпляри даних нормального і

аномального класів. Робота алгоритму відбувається в два етапи:

навчання та розпізнавання. На першому етапі будується модель, з якою

будуть порівнюються екземпляри, які не мають мітки. У більшості

випадків покладається, що дані не змінюють свої статистичні

характеристики, інакше виникає необхідність змінювати класифікатор.

Основною складністю алгоритмів, що працюють в режимі

розпізнавання з учителем, є формування даних для навчання. Часто

аномальний клас представлений значно меншою кількістю

примірників, ніж нормальний, що може призводити до неточностей в

отриманій моделі. У таких випадках застосовується штучна генерація

аномалій [10];

Page 20: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

20

2. Semi-Supervised anomaly detection (режим розпізнавання частково з

учителем). Вихідні дані при цьому підході представляють тільки

нормальний клас. Навчившись на одному класі, система може

визначати приналежність нових даних до нього, таким чином,

визначаючи протилежний. Алгоритми, що працюють в режимі

розпізнавання частково з учителем, не вимагають інформації про

аномальний клас примірників, внаслідок чого вони ширше

застосовуються й дозволяють розпізнавати відхилення за відсутності

заздалегідь певної інформації про них [10];

3. Unsupervised anomaly detection (режим розпізнавання без учителя).

Застосовується при відсутності апріорної інформації про дані.

Алгоритми розпізнавання в режимі без вчителя базуються на

припущенні про те, що аномальні екземпляри зустрічаються набагато

рідше нормальних. Дані обробляються, найбільш віддалені

визначаються як аномалії. Для застосування цієї методики має бути

доступний весь набір даних, тобто вона не може застосовуватися в

режимі реального часу [10].

1.4.2 Методи розпізнавання аномалій

Класифікація. Реалізація даного методу заснована на припущенні про

те, що нормальна поведінка системи може визначатися одним або декількома

класами [11]. Таким чином, екземпляр, що не належить до жодного з класів, є

відхиленням. Пошук аномалій відбувається в два етапи: навчання та

розпізнавання. Класифікатор навчається на масиві маркованих даних, далі

визначається приналежність до одного з відомих класів. В іншому випадку

екземпляр позначається, як аномалія. Найбільш широко вживаними

механізмами реалізації розпізнавання аномалій за допомогою класифікації є:

Page 21: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

21

нейронні мережі, Байесови мережі, метод опорних векторів і метод на основі

правил.

Метод виявлення аномалій на основі нейронних мереж включає два

етапи. Перший: нейронна мережа навчається розпізнаванню класів

нормального поведінки на тренувальній вибірці. Другий: кожен

екземпляр надходить в якості вхідного сигналу нейронної мережі.

Система, заснована на нейронних мережах, може розпізнавати як один,

так і кілька класів нормального поведінки. Для знаходження аномалій

за допомогою розпізнавання тільки одного класу використовуються

реплікативні нейронні мережі. Технологія нейронних мереж

глибинного навчання (Deep Learning) також успішно застосовується

для вирішення даного завдання [12].

Байєсівської мережею є графічна модель, що відображає імовірнісні

залежності безлічі змінних і дозволяє проводити імовірнісний висновок

за допомогою цих змінних. Вона складається з двох основних частин:

графічна структура, яка визначає набір залежностей і незалежностей в

безлічі випадкових величин, що представляють суб'єкти предметної

області, і набір імовірнісних розподілів, що визначають силу відносин

залежності, закодованих в графічній структурі. Таким чином,

застосування Байєсова мережі при ідентифікації аномалій полягає в

оцінці ймовірності спостереження одного з нормальних або

аномальних класів. Найбільш простий реалізацією даного підходу є

«Наївний байесовский підхід» (Naive Bayes Approach) [12].

Метод опорних векторів (Support Vector Machine) застосовується для

пошуку аномалій в системах, де нормальна поведінка видається тільки

одним класом. Даний метод визначає межу регіону, в якому

знаходяться екземпляри нормальних даних. Для кожного

досліджуваного екземпляра визначається, чи знаходиться він в певному

регіоні [12]. Якщо екземпляр виявляється поза регіоном, він

визначається як аномальний

Page 22: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

22

Останній метод ґрунтується на генерації правил, які відповідають

нормальної поведінки системи [12]. Примірник, який не відповідає цим

правилам, розпізнається як аномальний. Алгоритм складається з двох

кроків. Перший: навчання правил з вибірки за допомогою одного з

алгоритмів, таких як RIPPER [13], Decision Trees і т.д. Кожному

правилу привласнюється своє значення, яке пропорційно

співвідношенню між числом навчальних примірників, що

класифікуються, і загальним числом навчальних примірників, що

покриваються цим правилом. Другий крок: пошук для кожного

тестового екземпляра правила, яке найкращим чином підходить до

даного екземпляру. Система може розпізнавати як один, так і кілька

класів поведінки Одним з підвидів систем на основі правил є системи

нечіткої логіки. Вони застосовується, коли межа між нормальним і

аномальним поведінкою системи є розмитою. Кожен екземпляр є

аномалією в деякій мірі віддаленості від центру мас нормального

інтервалу [12].

Статистичний аналіз. При використанні цього підходу досліджується

процес, будується його профіль (модель), який потім порівнюється з

реальною поведінкою [14]. Якщо різниця в реальній і припускаємій поведінці

системи, що визначається заданою функцією аномальності, вище

встановленого порогу, робиться висновок про наявність відхилень.

Застосовується припущення про те, що нормальна поведінка системи буде

знаходитися в зоні високої ймовірності, в той час як викиди - в зоні низької.

Даний клас методів зручний тим, що не вимагає заздалегідь певних знань про

вид аномалії. Проте складнощі можуть виникати у визначенні точного

статистичного розподілу і порога. Методи статистичного аналізу

підрозділяються на такі основні групи:

Параметричні методи. Припускають, що нормальні дані генеруються

параметричних розподілом з параметрами θ і функцією щільності

Page 23: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

23

ймовірності P (x, θ), де x - спостереження. Аномалія є зворотною

функцією розподілу. Ці методи часто ґрунтуються на гауссовій або

регресійній моделі, а також їх комбінаціях [15];

Непараметричні методи. Передбачається, що структура моделі не

визначена апріорно, замість цього вона визначається з наданих даних.

Включає методи на основі гістограм або функцій ядра. Базовий

алгоритм пошуку аномалій із застосуванням гістограм включає два

етапи. На першому етапі відбувається побудова гістограми на основі

різних значень обраної характеристики для примірників тренувальних

даних. На другому етапі для кожного з досліджуваних примірників

визначається приналежність до одного з стовпців гістограми.

Екземпляри, що не належать до жодного з стовпців, позначаються як

аномальні. Розпізнавання аномалій на основі функції ядра відбувається

аналогічно параметричних методів за винятком способу оцінки

щільності ймовірності [15].

Алгоритм найближчого сусіда. Для використання даної методики

необхідно визначити поняття відстані (заходи схожості) між об'єктами.

Прикладом може бути Евклідова відстань. Два основні підходи ґрунтуються

на наступних припущеннях [15]:

Відстань до k-го найближчого сусіда. Для реалізації цього підходу

відстань до найближчого об'єкта визначається для кожного тестового

екземпляра класу. Примірник, який є викидом, найбільш віддалений

від найближчого сусіда;

Використання відносної щільності засноване на оцінці щільності

околиці кожного примірника даних. Примірник, який знаходиться в

оточенні з низькою щільністю, оцінюється як аномальний, в той час як

екземпляр в околиці з високою щільністю оцінюється як нормальний.

Для цього примірника даних відстань до його k-го найближчого сусіда

еквівалентно радіусу гіперсфери з центром в даному екземплярі і

Page 24: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

24

містить k інших примірників.

Спектральний аналіз. Спектральні методи знаходять апроксимацію

даних, використовуючи комбінацію атрибутів, які передають більшу частину

варіативності в даних. Ця методика заснована на наступному припущенні:

дані можуть бути вкладені в підпростір меншої розмірності, в якому

нормальний стан і аномалії проявляються інакше. Спектральні методи часто

застосовуються спільно з іншими алгоритмами для предобробки даних;

Гібридні методи. Гібридні методики розпізнавання аномалій,

дозволяють поєднувати переваги різних підходів. При цьому різні техніки

можуть застосовуватися як послідовно, так і паралельно для досягнення

усереднених результатів;

Нейронні мережі. Нейронні мережі та глибоке навчання в даний час

пропонують найкращі рішення багатьох проблем у розпізнаванні зображень,

розпізнаванні мови та природній обробці мови. Специфікою є те, що

нейронні мережі можуть навчатися як зі вчителем, так і без нього. Нейронні

мережі можуть бути використані для розпізнавання аномалій так як можуть

виділяти непомітні паттерни а також можуть запам’ятовувати поведінку. Так

як видів нейронних мереж дуже багато, слід приділити багато уваги у виборі

саме необхідної нейронної мережі.

1.5 Висновки до розділу

У даному розділі було розглянуто такий розділ аналізу, як лог-аналіз,

типи логів та дано обширне означення. Детально описано програмні

продукти, проведено їх аналіз а також розглянуто їх сильні так слабкі

сторони.

У даному розділі було дано детальний опис та розглянуто види

Page 25: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

25

аномалій з характерними ознаками для кожного типу. Наприкінці розділу

було дано детальний огляд існуючих методик розпізнавання аномалій.

Page 26: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

26

РОЗДІЛ 2. ЖУРНАЛ ПОДІЙ WINDOWS

2.1. Означення

Журнал подій Windows (англ. Windows Event log) - це детальний запис

системних повідомлень, повідомлень від систем безпеки та прикладних

повідомлень, що зберігаються в операційній системі Windows, який

використовується адміністраторами для діагностики системних проблем та

прогнозування майбутніх проблем [16].

Програми та операційна система (ОС) використовують ці журнали подій для

запису важливих апаратних та програмних дій, які адміністратор може

використовувати для усунення проблем з операційною системою.

Операційна система Windows відслідковує конкретні події у своїх файлах

журналу, такі як встановлення додатків, управління безпекою, операції з

налаштування системи при першому запуску, а також проблеми чи помилки.

2.2 Елементи журналу подій Windows

Кожна подія у записі журналу містить наступну інформацію:

Журнал подій : містить ім’я журналу подій, у якому виникла подія;

Джерело події : програма або процес, що генерував подію. Наприклад,

усі події входу та виходу з системи походять із джерела безпеки. У

цьому випадку і журнал подій, і джерело подій мають одне ім’я, але є

окремими полями;

Ідентифікатор події : унікальний ідентифікатор події, на основі якого

джерело генерувало подію. Ідентифікатори подій не є унікальними між

джерелами, але завжди унікальні в межах власного джерела.

Page 27: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

27

Ідентифікатор події не є специфічним для кожної події, а лише для

кожної події певного тип. Наприклад, усі події блокування облікових

записів Windows розміщуються в журналі безпеки із джерелом захисту

та ідентифікатором події 644;

Тип події : це поле описує тип події, що сталася, і може бути корисним

для визначення того, який тип діяльності породжував подію;

Категорія події : класифікує події на конкретні групи залежно від типу

події. Наприклад, події категорії Logon / Logoff містять кілька

ідентифікаторів подій, які відносяться до категорії;

Час/Дата: час і дата події використовуються для обчислення кількості

конкретної події в будь-який момент часу протягом дня в будь-який

конкретний день тижня. День тижня використовується через те, що ви

можете мати більше запитів на вхід у визначений час у середу, ніж у

неділю;

Ідентифікатор сервера : унікальний ідентифікатор для кожного сервера.

Це корисно, щоб допомогти адміністратору зв’язати сповіщення з

певним сервером, щоб визначити, де виникла проблема;

Ідентифікатор користувача : логін користувача.

2.3 Події

Записи журналу подій зберігаються в ключі реєстру:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog [17].

Даний ключ містить підключі, звані файлами журналу. За

замовчуванням присутні:

файл журналу додатків — для застосунків і служб;

файл журналу безпеки — для подій системи аудиту;

файл системного журналу — для подій драйверів пристроїв.

Page 28: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

28

Є можливість створювати додаткові журнали. Для кожного джерела

подій в журналі створюється окремий підключ. Події від кожного джерела

можуть включатися в окрему для кожного джерела категорію. Події повинні

належати до одного з п'яти визначених типів (табл. 2.1).

Page 29: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

29

Таблиця 2.1 - Типи подій

Тип Опис

Інформація Події вказують на рідкісні і важливі успішні операції.

Попередження Події вказують на проблеми, які не вимагають негайного втручання, але можуть призвести до помилок у майбутньому. Прикладом такого роду подій може служити вичерпання ресурсів.

Помилка Події вказують на істотні проблеми, які зазвичай призводять до втрати функціональності або даних. Прикладом може служити неможливість запуску служби при завантаженні.

Успішний аудит

Події безпеки, які відбуваються при успішному зверненні до ресурсів, які проходять аудит. Прикладом може служити успішний вхід в систему.

Не успішний аудит

Події безпеки, які відбуваються при неуспішному зверненні до ресурсів, які проходять аудит. Прикладом може служити спроба відкрити файл, не маючи відповідних прав доступу.

Page 30: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

30

Запис про подію включає в себе: ідентифікатор події, тип події,

категорію події, масив рядків і додаткові, специфічні для події, двійкові дані.

Кожне джерело подій повинне зареєструвати свій файл-повідомлення, в

якому зберігаються рядок опису ідентифікаторів повідомлень, категорій і

параметрів. Рядок опису може містити місце для вставки рядків з масиву,

зазначеного при запису події. Додаткові дані ніяк не інтерпретуються

програмою перегляду подій і відображаються в шістнадцятковому і

текстовому форматі.

2.3 Журнал подій безпеки Windows

У цьому розділі описано журнал подій безпеки Windows [18]. Для

кращого розуміння контексту спочатку описано доменні служби Active

Directory, які пропонують послуги адміністраторам зберігати та

налаштовувати користувачів та ресурси в домені Windows.

Комп'ютери в організації підписані на мережу, а облікові записи

користувачів надаються працівникам для входу на ці комп’ютери. У випадку

Windows, ця мережа називається доменом Windows. Active Directory (AD) -

служба каталогів, пропонована Microsoft, яка надає способи зберігання та

розповсюдження всіх даних, пов’язаних із управлінням доменом [19].

Контроль доступу на основі ролі реалізується через групи, які визначають

привілеї, надані обліковій частині цієї групи. В AD зберігається інформація

про аккаунти та групи (рис 2.1). У домені Windows існують два основні типи

облікових записів: облікові записи користувачів, що дозволяють людям

увійти в домен і комп'ютерні акаунти для управління ресурсами. Облікові

записи користувачів та комп'ютерні акаунти адмініструються однаково і є

частиною груп для управління їхніми привілеями. Контролер домену

знаходиться там же, де і Active Directory. Контролери домену - це сервери,

Page 31: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

31

відповідальні за надання інформації про каталог у всьому домені, а отже,

також перевіряють облікові дані.

Рисунок 2.1 - Active Directory

Щоб відслідковувати використання привілеїв та дії, виконані

користувачами, операційна система Windows пропонує журнал подій, який

містить три стандартних типи журналів подій:

1) журнал програми;

2) системний журнал;

3) журнал безпеки.

Записи подій програми містять інформацію діагностичного журналу

про встановлені програми, а повідомлення та структура журналу залежать від

джерела програми. У системному журналі також реєструються діагностичні

події, однак ці записи подій пов'язані з машиною. Очікуються події, що

стосуються мережевих та інших протоколів зв’язку, а також ведення

журналів щодо машинної політики. І події програми, і система містять в

Page 32: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

32

основному текстовий опис діагностичного запису подій.

Журнал подій безпеки Windows, збирає події, пов’язані з безпекою

щодо логінів облікових записів, створення та використання привілеїв,

реєстрації процесів, пов’язаних із безпекою, а також перезавантаження

системи [20]. Події, зафіксовані Windows, визначені в політиці аудиту, яку

можна застосувати глобально в межах доменної мережі Windows шляхом

визначення політики аудиту для різних груп машин. Ці події мають

передбачувані ознаки на основі типу події та залежно від активної політики

аудиту. Більше того, більшість атрибутів є категоричними мітками,

наприклад, що визначають конкретний тип входу або привілей, який

використовується процесом. У решті цього розділу розглядаються методи,

що використовують події безпеки Windows для виявлення загрози.

2.4 Висновки до розділу

У даному розділі було дано означення журналу подій операційної

системи Windows, детально розглянуто його елементи та події.

Детальну увагу було приділено журналу подій безпеки Windows, адже

саме цей тип журналу буде детально проаналізований у даній роботі.

Page 33: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

33

РОЗДІЛ 3 ОПИС ОБРАНОЇ ТЕХНОЛОГІЇ

3.1 Самоорганізація

У цій главі ми розглянемо самоорганізуючі мережі. Основна

відмінність між ними та звичайними моделями полягає в тому, що

правильний вихід не можна визначити апріорі, і тому числову міру величини

помилки відображення не можна використовувати. Однак процес навчання

призводить, як і раніше, до визначення чітко визначених мережевих

параметрів для даної програми.

3.2 Діаграма вхідного простору

Мережі з одним шаром також є прикладом самоорганізуючої системи,

оскільки правильний вихід не визначений заздалегідь, а відображення

вагових векторів до кластерних центроїдів є автоматичним процесом [14].

Коли використовується самоорганізуюча мереж, на кожному кроці

подається вектор введення. Ці вектори становлять "середовище" мережі.

Кожен новий вхід виробляє адаптацію параметрів. Якщо такі модифікації

правильно керуються, мережа може побудувати своєрідне внутрішнє

представлення середовища. Оскільки в цих мережах фази навчання та

„виробничі” фази можуть перекриватися, представлення може постійно

оновлюватися. Найвідомішою та найпопулярнішою моделлю

самоорганізуючих мереж є карта збереження топології, запропонована Тево

Кохоненом [15]. Так звані мережі Кохонена є втіленням деяких ідей,

розроблених Розенблатом, фон дер Мальсбургом та іншими дослідниками.

Якщо вхідний простір повинен оброблятися нейронною мережею, перше

питання важливе значення має структура цього простору. Нейронна мережа з

Page 34: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

34

реальними входами обчислює функцію f, визначену з вхідного простору A,

на вихідний простір B. Область, де визначено f, може бути охоплена

мережею Кохонена таким чином, що, наприклад, коли обраний вектор входу

з області a1 (рис 3.1), в мережі загоряється лише один блок. Таку плитку, в

якій вхідний простір класифіковано в субрегіони, також називають

діаграмою або картою вхідного простору. Мережі Кохонена навчаються

створювати карти вхідного простору самоорганізуючись.

Рисунок 3.1 - Функція f : A → B

3.3 Модель Кохонена

У цьому розділі ми розглянемо деякі приклади упорядкованих

структур, відомих як мережі Кохонена [16]. Сітка обчислювальних елементів

дозволяє нам ідентифікувати безпосередніх сусідів підрозділу. Це дуже

важливо, оскільки під час навчання ваги обчислювальних одиниць та їх

сусідів оновлюються. Мета такого підходу до навчання полягає в тому, щоб

сусідні підрозділи навчились реагувати на тісно пов'язані сигнали.

Page 35: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

35

3.3.1 Алгоритм навчання

Розглянемо задачу побудови графіків n-мірного простору за допомогою

одновимірного ланцюга одиниць Кохона. Усі одиниці розташовані

послідовно і нумеруються від 1 до m (рис.3.1). Кожна одиниця стає помірним

входом x і обчислює відповідне збудження. N-вимірні вагові вектори w1, w2,.

. . , wm використовуються для обчислення. Мета процесу складання графіків

полягає в тому, щоб кожен підрозділ навчився спеціалізуватися на різних

областях вхідного простору. Коли вхід з такої області подається в мережу,

відповідний блок повинен обчислити максимальне збудження. Алгоритм

навчання Кохонена використовується для гарантування досягнення цього

ефекту.

Рисунок 3.2 - Одновимірна решітка обчислювальних одиниць

Одиниця Кохонена обчислює евклідову відстань між вхідним x та його

вектором ваги w. Це нове визначення збудження є більш підходящим для

певних застосувань, а також простіше для візуалізації. В одновимірній

мережі Кохонена сусідство радіуса 1 одиниці на k-му положенні складається

з одиниць у положеннях k - 1 і k + 1.

Агрегати на обох кінцях ланцюга мають асиметричні сусідства. Район

радіусу r одиниці k складається з усіх одиниць, розташованих до r позицій від

k ліворуч або праворуч ланцюга. У навчанні Кохона використовується

функція сусідства φ, значення φ (i, k) являє собою силу зв'язку між одиницею

Page 36: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

36

i та одиницею k у процесі навчання. Простим вибором є визначення φ (i, k) =

1 для всіх одиниць i в районі радіуса r одиниці k і φ (i, k) = 0 для всіх інших

одиниць.

Алгоритм навчання мережі Кохонена наступний:

Початок: Вектори n-мірних ваг w1, w2,. . . , wm m обчислювальних

одиниць вибираються випадковим чином. Вибираються початковий радіус r,

константа навчання η і функція сусідства φ;

Крок 1: Вибір вхідного вектору ξ, використовуючи бажаний розподіл

ймовірностей по вхідному простору;

Крок 2: Вибирається одиниця k з максимальним збудженням (тобто для

якої відстань між wi і ξ мінімальна, i = 1,., m);

Крок 3: Вагові вектори оновлюються за допомогою функції сусідства

та правила оновлення : w i ← w i+ηφ(i ,k )(ξ−w i) , for i=1, . . . ,m ;

Крок 4: Стоп, якщо досягнуто максимальної кількості повторень; в

іншому випадку заміна η і φ як було заплановано і на крок.

Модифікація вагових векторів (крок 3) притягує їх у напрямку входу ξ.

Повторивши цей простий процес кілька разів, ми очікуємо, що ми дістанемо

рівномірно розподілені вектори вагів у вхідному просторі (якщо входи також

були вибрані рівномірно). Радіус мікрорайону зменшується за попереднім

планом, який ми називаємо графіком. Ефект полягає в тому, що кожного

разу, коли оновлюється одиниця, також оновлюються сусідні одиниці. Якщо

ваговий вектор одиниці притягується до області у вхідному просторі, сусіди

також притягуються, хоча, в меншій мірі. Під час навчального процесу як

розмір сусідства, так і значення φ поступово падають, так що вплив кожної

одиниці на сусідів зменшується. Константа навчання контролює величину

оновлення ваги, а також зменшується поступово. Чистий ефект вибраного

графіка полягає в тому, щоб зробити більші корективи на початку тренувань,

ніж в кінці [15].

На рисунку 3.3 показані результати експерименту з одновимірною

мережею Кохонена. Кожна одиниця представлена крапкою. Вхідний домен -

Page 37: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

37

це трикутник. Наприкінці навчального процесу вагові вектори досягають

розподілу, який перетворює кожну одиницю на «представника» невеликої

області вхідного простору. Наприклад, одиниця в нижньому куті - це та, яка

реагує найбільшим збудженням для векторів у затіненій області. Якщо ми

ухвалимо стратегію активації "Переможець отримує все", то вона буде

єдиною, яка спрацьовує.

Рисунок 3.3 : Карта трикутного регіону

3.4 Особливості мережі

Самоорганізуючі карти Кохонена можуть бути використані для

кластерного аналізу тільки в тому випадку, якщо заздалегідь відомо число

кластерів

Важливим недоліком є те, що остаточний результат роботи нейронних

мереж залежить від початкових установок мережі. З іншого боку, нейронні

мережі теоретично можуть апроксимувати будь-яку безперервну функцію,

що дозволяє досліднику не брати заздалегідь будь-які гіпотези щодо моделі

Плюси :

Стійкість до зашумлених даних;

швидке і некероване навчання;

можливість спрощення багатовимірних вхідних даних за допомогою

Page 38: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

38

візуалізації.

3.5 Висновки за розділом

В даному розділі було дано детальний описи інструменту, який буде

використаний у роботі, а саме – самоорганізуюча мережа Кохонена,

розглянуто ії алгоритм навчання. Описано ії недоліки та плюси.

Даний тип мережі підходить до вирішення задачі так як прикладом

мережі з некерованим навчанням а також широко застосовується для

виявлення аномалій.

Page 39: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

39

РОЗДІЛ 4 РОЗРОБКА ПРОГРАМНОГО ПРОДУКТУ ДЛЯ ВИЯВЛЕННЯ АНОМАЛІЙ РОБОТИ ОС WINDOWS

4.1 Дані для роботи

Для тестування програмного продукту необхідно зібрати лог-дані з

реального середовища. Для цього необхідно, або знайти вже підготовлений

датасет у мережі, або підготувати власний. Нажаль на даний момент у мережі

немає промаркованого датасету логів безпеки журналу Windows, так як,

зазвичай, подібні дані, зазвичай, є секретною та, як наслідок, недоступною

інформацією.

Зважаючи на дані фактори, датасет був зібраний вручну з

впровадженням штучно аномальних даних, а саме :

1. Авторизація у вихідні дні;

2. Авторизація у нічний (позаробочий) час;

3. Логін на комп’ютер з іншого компютера з домену компанії

(використовуючи віддалене підключення до робочого столу);

4. Логін на комп’ютер з іншого компютера з невідомого

домену (використовуючи віддалене підключення до робочого столу).

Системні характеристики тестового середовища :

1. Процесор: Intel ® Core ™ i7-7700 CPU @ 3.60 GHz;

2. RAM: 16 GB;

3. Тип системи: 64 розрядна операційна система, процессор

x64.

Характеристики операційної системи:

1. Тип : Windows 10 Enterprise.

2. Версія : 1809.

Page 40: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

40

4.2 Обробка даних

4.2.1 Сбір даних

Як було описано раніше, лог дані зберігаються у реєстрі операційної

системи Windows. Наступні формати є прийнятими як розширення для лог

даних журналу подій операційної системи Windows:

.evt - використався у операційних системах Windows XP та нижче;

.evtx (“.evt extensible”)– формат, що використовується у операційних

системах Windows Vista та вище.

Зазначимо, що користувач має змогу конвертувати лог дані з одного

формату в інший. В даній роботі будуть використовуватися лог дані з

розширенням .evtx, так як розробка та тестування проводиться з

використанням операційної системи Windows 10 Enterprise.

Збір та симуляція аномальних подій у лог даних на тестовому

комп’ютері проводилася впродовж трьох місяців. Після цього дані мають

бути скачані з машини, найзручнішим способом для цього є стандартна

програма, що йде в комплекті з операційною системою Windows Event Log

Viewer.

Після вигрузки даних за допомогою застосунку Windows Event Log

Viewer дані були передані на локальну машину для подальшої обробки та

розробки програмного продукту

Так як формат .evtx підлягає обробці засобами, які існують у

фреймоврку .Net Core, логи можуть бути оброблені та відформатовані

безпосередньо у програмному продукті, без залучення сторонніх засобів та

програм.

За допомогою бібліотеки «System.Diagnostics.Eventing.Reader» обробка

логів є зручною а також інтуїтивно зрозумілою для розробника, який певний

Page 41: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

41

час працював із середовищем .Net. Також даний відхід є зручним в тому

сенсі, що даний фунціонал розроблювався однією компанією, що і сам лог

файл операційної системи Windows.

4.2.2 Фільтрація даних

Після збору даних необхідно провести їх фільтрацію. Для цього

програмно з вибірки лог даних видалялися поля, які мали пошкоджені дані, а

саме: деякі ключові поля у структурі, шо представлена бібліотекою

«System.Diagnostics.Eventing.Reader» могли мати значення null. Логи з

пошкодженими даними не мають братися до аналізу і підлягають

виключенню за бази. Пошкоджені дані могли з’явитися через некоректне

перевантаження системи, перебої у електромережі, оновлення системи, тощо.

Так я дані пошкодження даних для операційної системи Windows є

радше виключенням, аніж правилом, пошкоджених логів у навчальній

вибірці не було виявлено.

4.2.3 Визначення цільових атрибутів

Для якісного та правильного навчання нейронної мережі необхідно

використовувати лише ті дані, які містять в собі користну інформацію для

виявлення аномалій. Розглянемо корисні для навчання нейронної мережі

атрибути лог запису з журналу безпеки операційної системи Windows :

Ключові слова : має значення «успішний аудит» або «неуспішний

аудит». Є корисним для навчання мережі;

Page 42: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

42

Дата і час : має значення дати у форматі

DD:MM:YYYY/HH:MM:SS. Є корисним для навчання мережі;

Джерело : при наданих налаштуваннях комп’ютера набуває двох

можливих значень {Eventlog, Microsoft Windows Security

Auditing}. Є корисним для навчання мережі;

Код події: поле типу Int, визначає код подіїб є корисним для

навчання мережі;

Категорія задачі : визначає категорію події, має велику кількість

можливих значень (вираховується програмно) Є корисною для

навчання мережі.

Можемо зробити висновок, що ці атрибути запису журналу безпеки

операційної системи Windows є корисними для навчання мережі, що

відповідатиме за виявлення аномалій операційної системи Windows.

4.2.4 Нормалізація даних

Для придатності лог даних для машинного навчання їх необхідно

привести до числового вигляду. Щоб досягнути такого вигляду, кожному

значенню тестового поля має існувати відповідне число. Розглянемо кожен з

виділених атрибутів та процес нормалізації:

1. Ключові слова : являє собою фіксований набір можливих параметрів, а

саме : «успішний аудит» та «неуспішний аудит». Дамо у відповідність

наступні значення : {1, 0}

2. Дата та час :

Часові значення перетворювалися в вектор довжини 1 за такою

формулою:

Page 43: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

43

(h our∗3600+minutes∗60+seconds)/3600.

Значення днів тижня переводилися в вектор довжини 3:

{. , . }={Monday={0; 0;1 }Tuesday={0 ;1 ;0}

Wendesday={0 ;1;1 }Thursday={1 ;0 ;0}

Friday={1 ;0 ;1}Saturday={1;1 ;0 }Sunday={1 ;1;1 }

}3. Джерело : являє собою фіксований набір можливих значень, а саме :

{Eventlog, Microsoft Windows Security Auditing}. Дамо у відповідність

наступні значення : {1, 0};

4. Категорія задачі : являє собою нефіксований набір можливих значень.

Значення переводиться у вектор довжини N, з одиницею на позиції m та

нулями на інших позиціях, де N – кількість можливих значень, m –

значення категорії задачі;

5. Код події: поле типу Int, потребує логарифмізації для зведення до шкали

[0,1].

4.3 Опис програмного продукту

Для розробки програмного продукту було обрано фреймворк .NET Core

(рис 4.1) та середовище розробки Microsoft Visual Studio 2019 (рис. 4.2) через

наступні причини:

Кросплатформеність;

Інтерфейс схожий на стандартні продукти, шо йдуть у комплекті з

операційною системою Windows;

Досвід роботи у даному фреймворці та у середовищі розробки

Microsoft Visual Studio.

Page 44: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

44

Рисунок 4.1 - .Net Core

Рисунок 4.2 - Microsoft Visual Studio 2019

Page 45: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

45

4.3.1 Опис інтерфейсу користувача

Інтерфейс програмного продукту був виконаний використовуючи

стандартний редактор, який йде у комплекті із Microsoft Visual Studio через

простоту у застосуванні, схожість зі стандартними продуктами Windows та

гарний інструментарій. Весь процес відбувається в одному вікні. Складається

із кнопки вибору лог файлу а також з кнопки, що відповідає за аналіз даних

(рис.4.3). Після аналізу даних користувач отримує інформацію про аномальні

логи а також про кількість пошкоджених логів, якщо такі були, у вибірці

(рис 4.4).

Рисунок 4.3 - стартовий інтерфейс програми

Рисунок 4.4 - інтерфейс програми після аналізу даних

Page 46: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

46

4.4 Результати роботи програми

Після детального аналізу даних було виявлено що, деякі штучно

впроваджені аномальні дані не були виявлені, а саме :

Логін у нічний (позаробочий) час;

Логін використовуючи віддалене підключення до робочого столу.

Дану некоректну роботу програми можна пояснити тим, що аномальні

дані були зібрані з одного комп’ютера а також що впродовж місяця

часто були випадки, коли робота велася у нічний час, через що

аномальні дані про роботу у нічний час не були віднесені до

аномальних. Така сама ситуація відбулася і у випадку підключення

через інший комп’ютер (використовуючи віддалене відключення до

робочого столу), так як дана операція виконувалась частіше (декілька

разів кожен день).

4.5 Висновки за розділом

У цьому розділі було наглядно продемонстровано кроки логи

аналітики у контексті роботи з лог даними операційної системи Windows. З

результатів дослідження випливає висновок, що при коректній обробці даних

за кроками, що описані в основі лог аналітики, в результаті отримуються

дані, що готові до подальшого процессінгу різними методами, як, наприклад,

методами машинного навчання.

У даному розділі було дано опис технологіям, що використовувались

при розробці програмного продукту. Було описано інтерфейс користувача а

також детально пояснено алгоритм роботи з програмою.

У кінці розділу було показано та проаналізовано результати роботи

Page 47: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

47

програмного продукту. З результатів роботи випливає те, що модель та

програмний продукт не є ідеальними та поки що не підходять для

впровадження у великі компанії. Для покращення результатів необхідно

зібрати біль гарні дані а також повністю виключити «штучність» із вибірки.

Page 48: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

48

РОЗДІЛ 5 РОЗРОБКА СТАРТАП-ПРОЕКТУ

В межах даного підрозділу послідовно проаналізовано та подано у

вигляді таблиць наступні пункти:

зміст ідеї;

можливі напрямки застосування;

основні вигоди, що може отри мати користувач товару (за

кожним напрямом застосування);

чим відрізняється від існуючих аналогів та замінників.

Перші три пункти подано у вигляді таблиці (Таблиця  5.1) і дають

уявлення про зміст ідеї та потенційні ринки, в межах яких потрібно шукати

групи потенційних клієнтів.

  Таблиця  5.1 – Опис ідеї стартап проекту

Зміст ідеї Напрямки

застосування

Вигоди для

користувача

Надання застосунку для

пошуку аномалій у роботі

операційної системи Windows

використовуючи записи

журналу подій.

Контроль роботи

співробітників у

системі

Контроль часу

входу/виходу із

системи зі сторони

керівництва

Отримання

інформації про

нестандартну

поведінку системи

Вчасне попередження

стороннього

проникнення у

систему злочинників

Page 49: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

49

Аналіз потенційних техніко-економічних переваг ідеї порівняно із

пропозиціями конкурентів передбачає:

визначення переліку техніко-економічних властивостей та

характеристик ідеї;

визначення попереднього кола конкурентів, проектів-конкурентів,

товарів-замінників чи товарів-аналогів, що вже існують на ринку;

збір інформації щодо значень техніко-економічних показників для ідеї

власного проекту та проектів-конкурентів.

Відповідно до визначеного вище переліку проводиться порівняльний

аналіз показників: гірші значення (W, слабкі); аналогічні (N, нейтральні)

значення; кращі значення (S, сильні).

Визначення сильних, слабких та нейтральних характеристик ідеї

стартап-проекту “Застосунок для виявлення аномальної роботи у операційній

системі Windows” наведено у Таблиці 5.2.

  Таблиця  5.2 – Визначення сильних, слабких та нейтральних

характеристик

№ Техніко-економічні

характеристики ідеї

(потенційні) товари/концепції конкурентів Х-ка

Мій проект Конк. 1 Конк 2

1 Форма виконання Десктопний

застосунок

Консольний

застосунок

Web

застосунок

S

2 Собівартість Низька Низька Низька N

3 Точність результатів Середня Велика Низька N

4 Наявність інтернету Ні Ні Так W

5 Кросплатформеність Так Так Так N

6 Складність

використання/

автономність

Ні Так Так S

Page 50: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

50

Page 51: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

51

Визначений перелік слабких, сильних та нейтральних характеристик та

властивостей ідеї потенційного товару є підґрунтям для формування його

конкурентоспроможності.

5.2 Технологічний аудит ідеї стартап-проекту

В межах даного підрозділу необхідно провести аудит технології, за

допомогою якої можливо реалізувати ідею проекту (технології створення

товару).

Визначення технологічної здійсненності ідеї проекту передбачає аналіз

таких складових:

за якою технологією буде виготовлено товар згідно ідеї проекту;

чи існують такі технології, чи їх потрібно розробити/доробити;

чи доступні такі технології авторам проекту?

Технологічну здійсненність ідеї стартап-проекту “Застосунок для

виявлення аномальної роботи у операційній системі Windows” наведено у

Таблиці 5.3.

Таблиця 5.3 – Технологічна здійсненність ідеї стартап-проекту

№ Ідея проекту Технології її

реалізації

Наявність

технологій

Доступність

технологій

1 Застосунок для виявлення

аномальної роботи у

системі Windows

C# Наявна Безкоштовна,

доступна

Java Наявна Безкоштовна,

доступна

Python Наявна Безкоштовна,

доступна

Page 52: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

52

Page 53: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

53

Обрана технологія реалізації ідеї проекту для створення застосунку для

виявлення аномальної роботи операційної системи Windows обрана

технологія C#, яка є безкоштовною та якою володіють розробники.

5.3 Аналіз ринкових можливостей запуску стартап-проекту

Визначення ринкових можливостей, які можна використати під час

ринкового впровадження проекту, та ринкових загроз, які можуть

перешкодити реалізації проекту, дозволяє спланувати напрями розвитку

проекту із урахуванням стану ринкового середовища, потреб потенційних

клієнтів та пропозицій проектів-конкурентів. Спочатку проводиться аналіз

попиту: наявність попиту, обсяг, динаміка розвитку ринку (Таблиця 5.4).

В ході таких досліджень вивчаються особливості і перспективи

розвитку попиту на конкретні товари, позиції конкурентів на ринку, їх сильні

і слабкі сторони, динаміку цін і т.д. Стартап-проекту важливо знати, чи буде

обсяг продажів його товарів достатнім для компенсації зусиль щодо виходу

на ринок, тому важливою характеристикою ринку є його ємність, під якою

розуміють максимально можливий обсяг продажу певного товару протягом

року, виражений в натуральних і вартісних одиницях.

Попит на більшість товару, який визначає місткість ринку,

характеризується нестабільністю. Тому кожне підприємство прагне мати

достовірний прогноз попиту на свій товар. З метою стимулювання

збільшення попиту на товар необхідно вивчити і проаналізувати думки і

потреби споживачів певного товару. 

Попередню характеристику потенційного ринку стартап-проекту

“Застосунок для виявлення аномальної роботи у операційній системі

Windows” наведено у Таблиці 5.4.

Page 54: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

54

Таблиця  5.4 – Попередня характеристика потенційного ринку стартап-

проекту

Показники стану ринку (найменування) Характеристика

Кількість головних гравців, од 2

Загальний обсяг продаж, грн/ум.од 180000

Динаміка ринку (якісна оцінка) Зростає

Наявність обмежень для входу (вказати характер

обмежень)

Немає

Специфічні вимоги до стандартизації та сертифікації Немає

Середня норма рентабельності в галузі (або по ринку), % R=22%

Так як застосунок має безпосереднє відношення до роботи операційної

системи та її безпечної та стабільної роботи, можна зробити висновок, що

нашим сегментом ринку компанії будуть:

Таблиця 5.5 – Потенційні сегменти споживачів

Характеристика Сегмент 1 Сегмент 2 Сегмент 3 Сегмент 4

Тип компанії product outsource product outsource

Розмір 800+ 800+ 21-80 21-80

Сфера IT

Ємність 6 000 4 000 20 000 120 000

Характеристику потенційних клієнтів стартап-проекту “Застосунок для

виявлення аномальної роботи у операційній системі Windows” наведено у

Таблиці 5.6.

Page 55: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

55

Таблиця 5.6. – Характеристика потенційних клієнтів стартап-проекту

п/п

Потреба, що

формує

ринок

Цільова

аудиторія

(цільові

сегменти ринку)

Відмінності у

поведінці різних

потенційних

цільових груп

клієнтів

Вимоги

споживачів до

товару

1 Витрачати

менше часу

на аналіз

коректності

роботи

операційної

системи

Аудиторія:

системні

адміністратори,

розробники.

Сегменти:

індивідуальні

користувачі,

маленькі

підприємства,

великі

підприємства.

Для сегменту

маленьких

підприємств та

індивідуальних

користувачів

характерне разове

використання

застосунку, в той

час як великі

компанії можуть

поставити його

використання на

автоматичний

режим

Мати розуміння

роботи

операційної

системи, мати

досвід роботи з

подібними

застосунками.

Після визначення потенційних груп клієнтів проводиться аналіз

ринкового середовища: складаються таблиці факторів, що сприяють

ринковому впровадженню проекту, та факторів, що йому перешкоджають.

Фактори в таблицях подають в порядку зменшення значущості.

Ринкові можливості – це сприятливі обставини, які підприємство може

використовувати для отримання переваг. Слід зазначити, що можливостями з

погляду SWOT-аналізу є не всі можливості, які існують на ринку, а тільки ті,

які можна використовувати.

Page 56: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

56

Ринкові загрози – події, настання яких може несприятливо вплинути на

підприємство. 

Фактори загроз стартап-проекту “Застосунок для виявлення аномальної

роботи у операційній системі Windows” наведено у Таблиці 5.7. Фактори

можливостей стартап-проекту “ Застосунок для виявлення аномальної роботи

у операційній системі Windows” наведено у Таблиці 5.8.

Таблиця 5.7. - Фактори загроз

п/п

Фактор Зміст загрози Можлива реакція

компанії

1 Зростаюча

конкуренція

Зі зростанням попиту на

розробку додатків для

аналізу ризиків зросла і

пропозиція.

Розробляти додаток

високої якості та з

додатковими унікальними

функціями.

2 Зміна потреб

користувачів

Користувачам необхідне

програмне забезпечення з

іншим функціоналом

Передбачити можливість

додавання нового

функціоналу до

створюваного ПЗ

Page 57: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

57

Таблиця 5.8 – Фактори можливостей

п/п

Фактор Зміст можливості Можлива реакція компанії

1 Зростаючий

попит

Збільшення попиту на

додаток.

Надавати високоякісні рішення,

займати нішу ринку.

2 Оптимізація

швидкості

завантаження

Оптимізація швидкості

завантаження додатка.

Оптимізація швидкості

завантаження за рахунок

рефакторингу, асинхронності,

мінімізації файлів кінцевого

веб-застосування та оптимізації

стиснення зображень.

3 Зниження

довіри до

конкурента 1

У конкурента №1

нещодавно була

знайдена помилка,

завдяки якій дані

клієнтів стали доступні

в інтернеті

При виході на ринок звертати

увагу покупців на безпеку

нашого ПЗ та авторитетність

компанії

Ступеневий аналіз конкуренції на ринку стартап-проекту “ Застосунок

для виявлення аномальної роботи у операційній системі Windows ” наведено

у Таблиці 5.9.

Page 58: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

58

Таблиця  5.9 – Ступеневий аналіз конкуренції на ринку

Особливості

конкурентного

середовища

В чому проявляється

дана характеристика

Вплив на діяльність

підприємства

1. Вказати тип

конкуренції -

досконала

Існує 2 компанії-

конкуренти на ринку

Врахувати ціни конкурентних

компаній на початкових

етапах створення бізнесу,

реклама (вказати на конкретні

переваги перед конкурентами)

2. За рівнем

конкурентної боротьби

- міжнародний

Всі компанії з інших

країн

Використовувати локалізацію

3. За галузевою

ознакою -

внутрішньогалузева

Конкуренти мають ПЗ,

яке використовується

лише всередині даної

галузі

Створити основу ПЗ таким

чином, щоб можна було легко

переробити дане ПЗ для

використання у інших галузях

та додавати нові модулі в

існуюче

4. Конкуренція за

видами товарів: -

товарно-видова

Види товарів є

однаковими

Створити ПЗ, враховуючи

недоліки конкурентів

5. За характером

конкурентних переваг

- нецінова

Вдосконалення

технології створення

ПЗ, щоб собівартість

була нижчою

Використання менш дорогих

технологій для розробки, ніж

використовують конкуренти

6. За інтенсивністю -

марочна

Бренди присутні -

Page 59: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

59

Після аналізу конкуренції проведено більш детальний аналіз умов

конкуренції в галузі (табл. 5.10).

Таблиця  5.10 - Аналіз конкуренції в галузі за М. Портером

Складові аналізу Висновки

Прямі

конкуренти в

галузі

Навести перелік

прямих

конкурентів

Існує 2 конкуренти на ринку.

Найбільш схожим за виконанням є

конкурент 1, так як його рішення

має велику точність.

Потенційні

конкуренти

Визначити бар’єри

входження в ринок

Так, можливості для входу на ринок

є, бо наше рішення покращує та

пришвидшує роботу спеціаліста

Постачальники Визначити

фактори сили

постачальників

Постачальники відсутні.

Клієнти Визначити

фактори сили

споживачів

Важливим для користувача є

кросплатформеність ПЗ та якість

його роботи.

Товари-

замінники

Фактори загроз з

боку замінників

Товари-замінники можуть

використати більш дешеву

технологію створення ПЗ та

зменшити собівартість товару.

За результатами аналізу таблиці зроблено висновок щодо принципової

можливості роботи на ринку з огляду на конкурентну ситуацію. Також

зроблено висновок щодо характеристик (сильних сторін), які повинен мати

Page 60: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

60

проект, щоб бути конкурентоспроможним на ринку. Другий висновок

враховується при формулюванні переліку факторів конкурентоспроможності.

На основі аналізу конкуренції, проведеного в табл.5.10, а також із

урахуванням характеристик ідеї проекту (табл. 5.2), вимог споживачів до

товару (табл. 5.6) та факторів маркетингового середовища (табл. 5.7 – табл.

5.8) визначено та обґрунтовано перелік факторів конкурентоспроможності.

Аналіз оформляється за табл. 5.11.

Таблиця  5.11 - Обґрунтування факторів конкурентоспроможності 

№ Фактор конкуренто-

спроможності

Обґрунтування (наведення чинників,

що роблять фактор для порівняння

конкурентних проектів значущим)

1 Виконання ПЗ у вигляді

зручного у користуванні

десктопного застосунку

Це рішення дозволяє швидко

встановлювати використовувати ПЗ на

комп’ютер користувача

2 Простота інтерфейсу

користувача

Інтерфейс користувача зроблений таким

чином, що користувачу необхідно лише

заповнити необхідні поля.

3 Наявність моделей ШІ Це дозволить надати користувачеві

інформацію, яка може спростити його

работу

За визначеними факторами конкурентоспроможності (табл. 5.11)

проведено аналіз сильних та слабких сторін стартап-проекту (табл. 5.12).

 

Page 61: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

61

Таблиця  5.12 - Порівняльний аналіз сильних та слабких сторін проекту№ Фактор конкуренто-

спроможності

Бали

1-20

Рейтинг товарів-конкурентів у

порівнянні з нашим підприємством

-3 -2 -1 0 1 2 3

1 Десктопний застосунок 19 +

2 Простота інтерфейсу

користувача

16 +

Фінальним етапом ринкового аналізу можливостей впровадження

проекту є складання SWOT-аналізу (матриці аналізу сильних (Strength) та

слабких (Weak) сторін, загроз (Troubles) та можливостей (Opportunities)

(табл. 5.13) на основі виділених ринкових загроз та можливостей, та сильних

і слабких сторін (табл. 5.12). Перелік ринкових загроз та ринкових

можливостей складено на основі аналізу факторів загроз та факторів

можливостей маркетингового середовища. Ринкові загрози та ринкові

можливості є наслідками (прогнозованими результатами) впливу факторів, і,

на відміну від них, ще не є реалізованими на ринку та мають певну

ймовірність здійснення. Наприклад: зниження доходів потенційних

споживачів – фактор загрози, на основі якого можна зробити прогноз щодо

посилення значущості цінового фактору при виборі товару та відповідно, –

цінової конкуренції (а це вже – ринкова загроза).

Page 62: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

62

Таблиця 5.13 - SWOT- аналіз стартап-проектуСильні сторони: простий інтерфейс

користувача, кросплатформенність ,достатня

точність результатів

Слабкі сторони: доступно

тільки англійською мовою,

працює тільки з одним видом

журналу Windows

Можливості: зростання популярності

пошуку аномалій у роботі операційної

системи у маленьких компаніях та у

індивідуальних користувачів

Загрози: конкуренція,

структури журналу, поява

несумісної версії операційної

системи

На основі SWOT-аналізу розроблено альтернативи ринкової поведінки

(перелік заходів) для виведення стартап-проекту на ринок та орієнтовний

оптимальний час їх ринкової реалізації з огляду на потенційні проекти

конкурентів, що можуть бути виведені на ринок (див. табл.5.10, аналіз

потенційних конкурентів). Визначені альтернативи проаналізовано з точки

зору строків та ймовірності отримання ресурсів (табл.5.14).

Page 63: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

63

Таблиця 5.14 - Альтернативи ринкового впровадження стартап-проекту

№ Альтернатива (орієнтовний комплекс

заходів) ринкової поведінки

Ймовірність

отримання

ресурсів

Строки

реалізації

1 Створення застосунку для виявлення

аномалій операційної системи Windows

та створення попередньо локалізованого

інтерфейсу користувача

70% 8 місяці

2 Створення застосунку для виявлення

аномалій операційної системи Windows

без створення попередньо

локалізованого інтерфейсу користувача

30% 5 місяці

Обираємо альтернативу 1.

З означених альтернатив обирається та, для якої: а) отримання ресурсів

є більш простим та ймовірним; б) строки реалізації – не набагато більші.

Враховуючи, що наявність локалізації збільшить ймовірність отримання

ресурсів, то обираємо перший варіант.

5.4 Розроблення ринкової стратегії проекту

Розроблення ринкової стратегії першим кроком передбачає визначення

стратегії охоплення ринку: опис цільових груп потенційних споживачів

(табл. 5.15).

Page 64: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

64

Таблиця 5.15 – Вибір цільових груп потенційних споживачів

п/п

Опис

профілю

цільової

групи

потенційних

клієнтів

Готовність

споживачів

сприйняти

продукт

Орієнтовний

попит в

межах

цільової

групи

(сегменту)

Інтенсивність

конкуренції в

сегменті

Простота

входу у

сегмент

1 Великі

продуктові

компанії.

Середня:

велика

конкуренція і

можливість

власних ІТ-

відділів.

Високий. Велика. Легко.

2 Великі

аутсорсові

компанії

Середня. Високий. Велика. Середня

3 Маленькі

продуктові

компанії.

Середня. Середній. Середня. Середня.

4 Маленькі

аутсорсові

компанії

Низька.

Приватні

особи воліють

продукт за

найменшу

ціну і не

обов’язково

якісний.

Низький. Середня. Важко.

 

Page 65: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

65

Як цільові групи обрано усі чотири варіанти.

За результатами аналізу потенційних груп споживачів (сегментів)

автори ідеї обирають цільові групи, для яких вони пропонуватимуть свій

товар, та визначають стратегію охоплення ринку:

якщо компанія зосереджується на одному сегменті – вона обирає

стратегію концентрованого маркетингу;

якщо працює із кількома сегментами, розробляючи для них окремо

програми ринкового впливу – вона використовує стратегію

диференційованого маркетингу;

якщо компанія працює з усім ринком, пропонуючи стандартизовану

програму (включно із характеристиками товару/послуги) – вона

використовує масовий маркетинг. Для роботи в обраних сегментах

ринку сформовано базову стратегію розвитку (табл. 5.16)

Page 66: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

66

Таблиця  5.16 - Визначення базової стратегії розвитку

№ Обрана

альтернатива

розвитку

проекту

Стратегія

охоплення

ринку

Ключові

конкурентоспроможні

позиції відповідно до

обраної альтернативи

Базова

стратегія

розвитку

1 Створення

застосунку для

виявлення

аномалій

операційної

системи

Windows та

створення

попередньо

локалізованого

інтерфейсу

користувача

Ринкове

позиціювання

Простота інтерфейсу,

відритий доступ до

іноземних ринків

Диференціації

 

Наступним кроком є вибір стратегії конкурентної поведінки (табл.

5.17).

Page 67: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

67

 Таблиця  5.17 - Визначення базової стратегії конкурентної поведінки

№ Чи є проект

«першопрохідцем»

на ринку?

Чи буде

компанія

шукати нових

споживачів,

або забирати

існуючих у

конкурентів?

Чи буде

компанія

копіювати

основні

характеристики

товару

конкурента, і

які?

Стратегія

конкурентної

поведінки

1 Ні Так Так: базові

функції

керування

ризиками

Зайняття

конкурентної

ніші

 

На основі вимог споживачів з обраних сегментів до постачальника

(стартап-компанії) та до продукту (див. Табл. 5.6), а також в залежності від

обраної базової стратегії розвитку (табл. 5.16) та стратегії конкурентної

поведінки (табл. 5.17) розробляється стратегія позиціонування (табл. 5.18).

що полягає у формуванні ринкової позиції (комплексу асоціацій), за яким

споживачі мають ідентифікувати торгівельну марку/проект.

 

Page 68: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

68

Таблиця  5.18 - Визначення стратегії позиціонування

№ Вимоги до

товару

цільової

аудиторії

Базова

стратегія

розвитку

Ключові

конкурентоспроможні

позиції власного

стартап-проекту

Вибір

асоціацій, які

мають

сформувати

комплексну

позицію

власного

проекту (три

ключових)

1 Швидкість і

зручність

роботи,

відповідність

результатів

Диференціації локалізованість, висока

точність результатів

Швидкість

легкість,

точність,

великі дані,

аналітика,

операційна

система

 

Результатом виконання підрозділу стала узгоджена система рішень

щодо ринкової поведінки стартап-компанії, яка визначає напрями роботи

стартап-компанії на ринку.

5.5 Розроблення маркетингової програми стартап-проекту

Першим кроком є формування маркетингової концепції товару, який

отримує споживач. Для цього у табл. 5.19 підсумовано результати

Page 69: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

69

попереднього аналізу конкурентоспроможності товару. Концепція товару -

письмовий опис фізичних та інших характеристик товару, які сприймаються

споживачем, і набору вигод, які він обіцяє певній групі споживачів.

Таблиця  5.19 - Визначення ключових переваг концепції потенційного

товару

№ Потреба Вигода, яку пропонує

товар

Ключові переваги

перед конкурентами

(існуючі або такі, що

потрібно створити

1 Витрачати менше

часу виявлення

аномалій у роботі

операційної системи

Автоматична

ідентифікація аномалій у

роботі операційної

системи

Економія часу та зусиль

2 Можливість

слідкувати за

активністю

користувача за

робочим

комп’ютером

Можливість виявлення

несанкціонованого або

незвичного логіну у

систему

Контроль роботи

користувачів

 

Розроблена трирівнева маркетингова модель товару: уточнюється ідея

продукту та/або послуги, його фізичні складові, особливості процесу його

надання (табл. 5.20).

Page 70: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

70

Таблиця  5.20 - Опис трьох рівнів моделі товару

Рівні товару Сутність та складові

І. Товар за

задумом

Товар допомагає користувачам автоматично

ідентифікувати аномалії у роботі операційної системи

Windows. В результаті це дозволяє пришвидшити процес

виявлення та розуміння існуючих проблем та пошук

рішення.

ІІ. Товар у

реальному

виконанні

Хар-ки М/Нм Вр/Тх

/Тл/Е/Ор

1) застосунок для виявлення

аномалій у роботі операційної

системи Windows;

2) Простота у використанні;

3) Можливість розширення

- -

Якість: згідно до стандарту ІSO 4444 буде проведено

тестування

Маркування відсутнє.

ІІІ. Товар із

підкріпленням

Безкоштовна версія з урізаним функціоналом

Постійна підтримка для користувачів

1-й рівень - При формуванні задуму товару вирішується питання щодо

того, засобом вирішення якої потреби і / або проблеми буде даний товар, яка

його основна вигода. Дане питання безпосередньо пов'язаний з формуванням

технічного завдання в процесі розробки конструкторської документації на

виріб.

2-й рівень - Цей рівень являє рішення того, як буде реалізований товар

в реальному/ включає в себе якість, властивості, дизайн, упаковку, ціну.

Page 71: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

71

3-й рівень - Товар з підкріпленням (супроводом) - додаткові послуги та

переваги для споживача, що створюються на основі товару за задумом і

товару в реальному виконанні (гарантії якості , доставка, умови оплати та ін)

За рахунок чого потенційний товар буде захищено від копіювання: ноу-

хау.

Після формування маркетингової моделі товару слід особливо

відмітити – чим саме проект буде захищено від копіювання. Захист може

бути організовано за рахунок захисту ідеї товару (захист інтелектуальної

власності), або ноу-хау, чи комплексне поєднання властивостей і

характеристик, закладене на другому та третьому рівнях товару. Наступним

кроком визначено цінові межі, якими необхідно керуватись при встановленні

ціни на потенційний товар, яке передбачає аналіз ціни на товари-аналоги або

товари субститути, а також аналіз рівня доходів цільової групи споживачів

(табл. 5.21). Аналіз проводився експертним методом.

Таблиця  5.21 - Визначення меж встановлення ціни

№ Рівень цін на

товари-

замінники

Рівень цін

на товари-

аналоги

Рівень доходів

цільової групи

споживачів

Верхня та нижня межі

встановлення ціни на

товар/послугу

1 1000 1500 200000 500

 

Наступним кроком є визначення оптимальної системи збуту, в межах

якого приймається рішення (табл. 5.22):

проводити збут власними силами або залучати сторонніх посередників

(власна або залучена система збуту);

вибір та обґрунтування оптимальної глибини каналу збуту;

вибір та обґрунтування виду посередників.

Page 72: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

72

Таблиця  5.22 - Формування системи збуту

№ Специфіка

закупівельної

поведінки цільових

клієнтів

Функції збуту, які

має виконувати

постачальник

товару

Глибина

каналу збуту

Оптимальна

система збуту

1 Купують ПЗ та

роблять щорічні

внески для

подовження ліценції

Продаж 1(через

посередника)

Власна та через

посередників

 

Останньою складової маркетингової програми є розроблення концепції

маркетингових комунікацій, що спирається на попередньо обрану основу для

позиціонування, визначену специфіку поведінки клієнтів (табл. 5.23).

 

Таблиця  5.23 - Концепція маркетингових комунікацій

№ Специфіка

поведінки

цільових

клієнтів

Канали

комунікацій,

якими

користуються

цільові

клієнти

Ключові

позиції, обрані

для

позиціонування

Завдання

рекламного

повідомлення

Концепція

рекламного

звернення

1 Купівля

ліцензій на

використання

через інтернет

повної версії

Інтернет автоматична

ідентифікація

ризиків, реєстр

ризиків

Показати

переваги ПЗ, у

тому числі і

перед

конкурентами

Демо-ролик із

використанням

 

Результатом пункту 5 є ринкова (маркетингова) програма, що включає

в себе концепції товару, збуту, просування та попередній аналіз можливостей

Page 73: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

73

ціноутворення, спирається на цінності та потреби потенційних клієнтів,

конкурентні переваги ідеї, стан та динаміку ринкового середовища, в межах

якого впроваджено проект, та відповідну обрану альтернативу ринкової

поведінки

5.6 Висновки до розділу

Згідно до проведених досліджень:

існує можливість ринкової комерціалізації проекту;

існують перспективи впровадження з огляду на потенційні групи

клієнтів, бар’єри входження високі, але проект має одну значну

перевагу перед конкурентами;

необхідно реалізувати застосунок для виявлення аномалій роботи

операційної системи Windows за технологією C#;

подальша імплементація є доцільною.

Page 74: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

74

ВИСНОВКИ ПО РОБОТІ ТА ПЕРСПЕКТИВИ ПОДАЛЬШИХ ДОСЛІДЖЕНЬ

Операційна система Windows є невід’ємною частиною роботи чи

побуту майже кожного з нас. Її захищеність є одним з найважливіших

параметрів, так як мало хто з нас може собі уявити роботу у незахищеному

середовищі. У наш час багато системних адміністраторів та розробників

вручну перевіряють журнал безпеки операційної системи для того, щоб

виявити моменти, коли у системі була аномальна ситуація, що могла

привести до пошкодження даних , некоректної роботи програм, тощо. Щоб

запобігти втрат людського часу а також виключити фактор людської

помилки при пошуку аномальної поведінки системи, дану частину роботи

краще виконувати програмно.

В контексті даної роботи предметом для виявлення аномалій безпеки

системи були обрані лог-дані – записи операційної системи. Із лог-даними

були проведені фільтрація даних (що не виявила пошкоджених даних) а

також аналіз атрибутів – визначення необхідних для подальшої побудови

моделі.

Після обробки даних було побудовано модель самоорганізуючої

нейронної мережі Кохонена. Дана мережа була обрана для вирішення

поставленої задачі так як має властивість некерованого навчання (що є

необхідним для нерозмічених даних) а також через гарні властивості для

виявлення відхилень у наборі даних (у даному випадку – виявлення

аномалій). Результати експерименту показали, що деякі аномальні дані, які

були штучно інтегровані у вибірку, не були помічені як аномальні. З цього

можна зробити висновок, що даний програмний продукт потребує

вдосконалення для впровадження у великі організації.

Для зручності роботи користувача, розроблений програмний продукт

Page 75: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

75

має графічний, інтуїтивно зрозумілий інтерфейс. На даний момент він не

локалізований а також багатьом користувачам здається негарним.

Задля більшої привабливості для користувача пропонується розробити

локалізовану версію програми. Як крок для покращення функціоналу

пропонується розробити режими роботи не тільки для логів журналу безпеки

операційної системи Windows, а й для інших видів логів (системного, логу

застосунків)

Page 76: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

76

ПЕРЕЛІК ПОСИЛАНЬ

1. Log analytics, log mining, anomaly detection. URL:

https://www.xenonstack.com/blog/data-science/log-analytics-log-mining-anomaly-

detection (last accessed: 17.03.2018).

2. Introduction to anomaly detection. URL:

https://www.datascience.com/blog/python-anomaly-detection (last accessed:

17.03.2018).

3. Kawano, H., Nishio, S., Han, J. & Hasegawa, T. How does knowledge discovery

cooperate with active database techniques in controlling dynamic environment?

Athens, Greece, Springer-Verlag Berlin Heidelberg, 1994. 379 p.

4. Hodge, V. J. and Austin, J.. A Survey of Outlier Detection Methodologies.

Artificial Intelligence Review 22, 1969, 156 p.

5. S. Asanger and A. Hutchison. Experiences and Challenges in Enhancing Security

Information and Event Management Capability Using Unsupervised Anomaly

Detection. In 2013 International Conference on Availability, Reliability and

Security, September 2013, 739 p.

6. A. S. Buyukkayhan, A. Oprea, Z. Li, and W. Robertson. Lens on the Endpoint:

Hunting for Malicious Software Through Endpoint Data Analysis. In M. Dacier,

M. Bailey, M. Polychronakis, and M. Antonakakis, editors, Research in Attacks,

Intrusions, and Defenses, October 2017, 11 p.

7. JPCERT-CC. Detecting Lateral Movement through Tracking Event Logs.

Technical Report Version 2, Japan Computer Emergency Response Team

Coordination Center, December 2017, 17p.

8. Microsoft. Credentials Processes in Windows Authentication. URL :

https://docs.microsoft.com/en-us/windows-server/security/windows-

authentication/credentials-processes-in- windows-authentication (last accessed:

2019-08-12).

Page 77: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

77

9. Microsoft. 4624(S): An account was successfully logged on. URL:

https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/

event-4624 (last accessed: 2019-08-21).

10.Microsoft. 4688(S): A new process has been created.

https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/

event-4688 (last accessed: 2019-09-22).

11.Microsoft. Active Directory Domain Services Overview. URL

https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-

dc/active-directory-domain-services-overview (last accessed: 2019-09-15)

12.V. Chandola, A. Banerjee, and V. Kumar. Anomaly detection: A survey. ACM

Computing Surveys (CSUR), 56 p.

13.Andreason C.A. Log-Based Anomaly Detection for System Surveillance. Master's

thesis in Computer Systems and Networks, 2010, 18p.

14.Srivastava, N. and Srivastava, J., ‘A hybrid-logic approach towards fault detection

in complex cyber-physical systems’, Annual Conference of the Prognostic and

Health Management Society, 2010, 13 p.

15.Artificial neural networks, applications and algorithms. URL :

https://www.datascience.com/blog/python-anomaly-detection (last accessed:

17.03.2019).

16.Ian Goodfellow, Yoshua Bengio , Aaron Courville. Deep learning. 2018 748p.

17.K. J. Wijnands. Using endpoints process information for malicious behavior

detection. Master's thesis, Delft University of Technology, September 2015, 25 p.

18.H. Ringberg, M. Roughan, and J. Rexford. The Need for Simulation in Evaluating

Anomaly Detectors, January 2008, 64 p.

19.R. K. Sahoo, M. S. Squillante, A. Sivasubramaniam, and Y. Zhang. Failure data

analysis of a large-scale heterogeneous server environment. In International

Conference on Dependable Systems and Networks, 2004, 890 p.

20.J. Valdman. Log file analysis. Department of Computer Science and Engineering

(FAV UWB)., Tech. Rep, 2001, 21 p.

Page 78: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

78

ДОДАТОК А ЛІСТИНГ ПРОГРАМИ

//AssemblyInfo.csusing System.Reflection;using System.Runtime.CompilerServices;using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following// set of attributes. Change these attribute values to modify the information// associated with an assembly.[assembly: AssemblyTitle("WindowsAnomalyDetector")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyCompany("")][assembly: AssemblyProduct("WindowsAnomalyDetector")][assembly: AssemblyCopyright("Copyright © Artem Chabanivskyi 2019")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible// to COM components. If you need to access a type in this assembly from// COM, set the ComVisible attribute to true on that type.[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM[assembly: Guid("8a0984d3-86c7-420b-9676-5ae488e84f71")]

// Version information for an assembly consists of the following four values://// Major Version// Minor Version// Build Number// Revision//// You can specify all the values or you can default the Build and Revision Numbers// by using the '*' as shown below:// [assembly: AssemblyVersion("1.0.*")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]

//Resources.Designer.cs//------------------------------------------------------------------------------// <auto-generated>// This code was generated by a tool.// Runtime Version:4.0.30319.42000//// Changes to this file may cause incorrect behavior and will be lost if// the code is regenerated.// </auto-generated>//------------------------------------------------------------------------------

namespace WindowsAnomalyDetector.Properties{

Page 79: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

79

/// <summary> /// A strongly-typed resource class, for looking up localized strings, etc. /// </summary> // This class was auto-generated by the StronglyTypedResourceBuilder // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources {

private static global::System.Resources.ResourceManager resourceMan;

private static global::System.Globalization.CultureInfo resourceCulture;

[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { }

/// <summary> /// Returns the cached ResourceManager instance used by this class. /// </summary> [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if ((resourceMan == null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsAnomalyDetector.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } }

/// <summary> /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// </summary> [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set {

Page 80: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

80

resourceCulture = value; } } }}

//app.config<?xml version="1.0" encoding="utf-8" ?><configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup></configuration>

//packages.config<?xml version="1.0" encoding="utf-8"?><packages> <package id="CsvHelper" version="12.2.1" targetFramework="net472" /> <package id="Microsoft.CSharp" version="4.5.0" targetFramework="net472" /></packages>

//mainwindownamespace WindowsAnomalyDetector{ partial class MainWindow { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null;

/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }

#region Windows Form Designer generated code

/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { label1 = new System.Windows.Forms.Label(); SelectLogsFileButton = new System.Windows.Forms.Button(); selectLogsFileDialog = new System.Windows.Forms.OpenFileDialog(); label2 = new System.Windows.Forms.Label(); AnalyzeButton = new System.Windows.Forms.Button(); label3 = new System.Windows.Forms.Label(); invalidLogsCountLabel = new System.Windows.Forms.Label(); resultLabel = new System.Windows.Forms.Label(); dataGridView1 = new System.Windows.Forms.DataGridView(); Date = new System.Windows.Forms.DataGridViewTextBoxColumn();

Page 81: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

81

KeyWord = new System.Windows.Forms.DataGridViewTextBoxColumn(); Source = new System.Windows.Forms.DataGridViewTextBoxColumn(); EventCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); TaskCategory = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(dataGridView1)).BeginInit(); SuspendLayout(); // // label1 // label1.AutoSize = true; label1.Location = new System.Drawing.Point(33, 38); label1.Name = "label1"; label1.Size = new System.Drawing.Size(156, 17); label1.TabIndex = 0; label1.Text = "Select input logs data : "; // // SelectLogsFileButton // SelectLogsFileButton.Location = new System.Drawing.Point(36, 82); SelectLogsFileButton.Name = "SelectLogsFileButton"; SelectLogsFileButton.Size = new System.Drawing.Size(273, 40); SelectLogsFileButton.TabIndex = 2; SelectLogsFileButton.Text = "Select Logs File"; SelectLogsFileButton.UseVisualStyleBackColor = true; SelectLogsFileButton.Click += new System.EventHandler(SelectLogsFileButton_Click); // // selectLogsFileDialog // selectLogsFileDialog.DefaultExt = "evtx"; selectLogsFileDialog.FileName = "WindowsLogs.evtx"; selectLogsFileDialog.Filter = "Windows Logs Files (*.evtx)|*.evtx"; // // label2 // label2.AutoSize = true; label2.Location = new System.Drawing.Point(211, 38); label2.Name = "label2"; label2.Size = new System.Drawing.Size(75, 17); label2.TabIndex = 3; label2.Text = "*Input File*"; // // AnalyzeButton // AnalyzeButton.Location = new System.Drawing.Point(36, 218); AnalyzeButton.Name = "AnalyzeButton"; AnalyzeButton.Size = new System.Drawing.Size(273, 149); AnalyzeButton.TabIndex = 4; AnalyzeButton.Text = "Analyze"; AnalyzeButton.UseVisualStyleBackColor = true; AnalyzeButton.Click += new System.EventHandler(AnalyzeButton_Click); // // label3 // label3.AutoSize = true; label3.Location = new System.Drawing.Point(36, 398); label3.Name = "label3"; label3.Size = new System.Drawing.Size(136, 17); label3.TabIndex = 5; label3.Text = "Invalid Logs Count : "; // // invalidLogsCountLabel //

Page 82: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

82

invalidLogsCountLabel.AutoSize = true; invalidLogsCountLabel.Location = new System.Drawing.Point(190, 398); invalidLogsCountLabel.Name = "invalidLogsCountLabel"; invalidLogsCountLabel.Size = new System.Drawing.Size(0, 17); invalidLogsCountLabel.TabIndex = 6; // // resultLabel // resultLabel.AutoSize = true; resultLabel.Location = new System.Drawing.Point(351, 105); resultLabel.Name = "resultLabel"; resultLabel.Size = new System.Drawing.Size(60, 17); resultLabel.TabIndex = 7; resultLabel.Text = "Result : "; // // dataGridView1 // dataGridView1.AllowUserToAddRows = false; dataGridView1.AllowUserToDeleteRows = false; dataGridView1.AllowUserToOrderColumns = true; dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { Date, KeyWord, Source, EventCode, TaskCategory}); dataGridView1.Location = new System.Drawing.Point(354, 153); dataGridView1.Name = "dataGridView1"; dataGridView1.ReadOnly = true; dataGridView1.RowHeadersWidth = 51; dataGridView1.RowTemplate.Height = 24; dataGridView1.Size = new System.Drawing.Size(683, 249); dataGridView1.TabIndex = 8; dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(dataGridView1_CellContentClick); // // Date // Date.HeaderText = "Date"; Date.MinimumWidth = 6; Date.Name = "Date"; Date.ReadOnly = true; Date.Width = 125; // // KeyWord // KeyWord.HeaderText = "Key Word"; KeyWord.MinimumWidth = 6; KeyWord.Name = "KeyWord"; KeyWord.ReadOnly = true; KeyWord.Width = 125; // // Source // Source.HeaderText = "Source"; Source.MinimumWidth = 6; Source.Name = "Source"; Source.ReadOnly = true; Source.Width = 125; //

Page 83: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

83

// EventCode // EventCode.HeaderText = "Event Code"; EventCode.MinimumWidth = 6; EventCode.Name = "EventCode"; EventCode.ReadOnly = true; EventCode.Width = 125; // // TaskCategory // TaskCategory.HeaderText = "Task Category"; TaskCategory.MinimumWidth = 6; TaskCategory.Name = "TaskCategory"; TaskCategory.ReadOnly = true; TaskCategory.Width = 125; // // MainWindow // AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; ClientSize = new System.Drawing.Size(1084, 448); Controls.Add(dataGridView1); Controls.Add(resultLabel); Controls.Add(invalidLogsCountLabel); Controls.Add(label3); Controls.Add(AnalyzeButton); Controls.Add(label2); Controls.Add(SelectLogsFileButton); Controls.Add(label1); Name = "MainWindow"; Text = "MainWindow"; ((System.ComponentModel.ISupportInitialize)(dataGridView1)).EndInit(); ResumeLayout(false); PerformLayout();

}

#endregion

private System.Windows.Forms.Label label1; private System.Windows.Forms.Button SelectLogsFileButton; private System.Windows.Forms.OpenFileDialog selectLogsFileDialog; private System.Windows.Forms.Label label2; private System.Windows.Forms.Button AnalyzeButton; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label invalidLogsCountLabel; private System.Windows.Forms.Label resultLabel; private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.DataGridViewTextBoxColumn Date; private System.Windows.Forms.DataGridViewTextBoxColumn KeyWord; private System.Windows.Forms.DataGridViewTextBoxColumn Source; private System.Windows.Forms.DataGridViewTextBoxColumn EventCode; private System.Windows.Forms.DataGridViewTextBoxColumn TaskCategory; }}

//EventLog.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;

Page 84: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

84

using CsvHelper.Configuration;

namespace WindowsAnomalyDetector{ internal sealed class EventLog { public enum AuditStatus { Successful = 0, Failed = 1, Undefined = -1, }; public enum EventSource { Eventlog = 0, MicrosoftWindowsSecurityAuditing = 1, Undefined = -1, };

public long Counter { get; set; } public int Id { get; set; } public AuditStatus Status { get; set; } public DateTime? TimeStamp { get; set; } public EventSource Source { get; set; } public string EventCode { get; set; } }

internal sealed class FormattedEventLog { public long Counter { get; set; } public double Id { get; set; } public int Status { get; set; } public double[] TimeStamp { get; set; } public int Source { get; set; } public int[] EventCode { get; set; } }

internal sealed class FormattedEventLogMap : ClassMap<FormattedEventLog> { public FormattedEventLogMap() { Map(m => m.Id); Map(m => m.Status); Map(m => m.TimeStamp); Map(m => m.Source); Map(m => m.EventCode); } }}

//KohonenNeuralNetwork.csusing System;using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Threading.Tasks;

namespace WindowsAnomalyDetector{

public class KohonenNeuralNetwork { public Neuron[] Outputs { get; private set; }

Page 85: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

85

private int _iteration; private int _length; private int _dimensions; private double _nf;

private int _samples = 0; private int _classes = 1; private int _numberTotalOfNeurons = 0; private int[] _classStart = new int[] { 0 };

private readonly List<ulong> _timeLabbls = new List<ulong>(); private readonly List<byte[]> _patterns = new List<byte[]>(); private readonly Random _random = new Random();

private string _counberLog = @"counter.csv", _labelsLog = @"result.csv"; private string[] _burstLog = new string[] { @"WindowsLogs.csv" }; private int _inputSize = 500; private int _electrode = 64; private int _initSampleToLearn = 100000, _maxSampleCapacity = 200000, _sampleToLearn = 100000; private int _maxIteration; private int _numCPUs = 4; private int _neurons = 64; private int _neighborsDistance = 4; private bool _learnInRandomOrder = false; private bool _normalEuclideanDistances = false; private double[] _globalMaxError = new double[] { 0.0001 };

public KohonenNeuralNetwork() { Initialise();

string counberLogOrg = _counberLog.ToString();

for (int t = 0; t < _globalMaxError.Length; t++) { _iteration = 0; _counberLog = counberLogOrg + "_of_global_map_" + _globalMaxError[t].ToString();

var reader = File.OpenText(_burstLog[0]); var counterWriter = new StreamWriter(_counberLog + ".csv"); var labelsWriter = new StreamWriter(_labelsLog + ".csv");

var eof = _LoadData(ref reader, _initSampleToLearn);

_BackupNeuronsWeights();

do { Train(_globalMaxError[t]);

_DumpCountersLables(ref counterWriter, ref labelsWriter);

if (_burstLog.Length == 1) { eof = _LoadData(ref reader, _sampleToLearn); }

_iteration = _maxIteration - _sampleToLearn;

Debug.WriteLine(" Load " + _sampleToLearn.ToString() + " samples, iteration " + _iteration.ToString());

Page 86: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

86

} while (eof);

counterWriter.Close(); labelsWriter.Close(); reader.Close();

_RestoreNeuronsWeights(); }

}

private void Initialise() { _length = _neurons; _dimensions = _inputSize * _electrode;

_maxIteration = _maxSampleCapacity == 0 ? _initSampleToLearn : _maxSampleCapacity; _patterns.Capacity = _maxSampleCapacity == 0 ? 1000000 : _maxSampleCapacity;

_nf = _maxIteration / Math.Log(_length); _numberTotalOfNeurons = _length * _length;

//-------------------------------

Outputs = new Neuron[_numberTotalOfNeurons]; for (int neuronIndex = 0, xAxisIndex = 0, yAxisIndex = 0; neuronIndex < _numberTotalOfNeurons; neuronIndex++, xAxisIndex = neuronIndex / _length, yAxisIndex = neuronIndex % _length) { Outputs[neuronIndex] = new Neuron(xAxisIndex, yAxisIndex, neuronIndex) { Weights = new double[_dimensions], DoubleWeights = new double[_dimensions], WeightsBackup = new double[_dimensions] };

for (int dimensionIndex = 0; dimensionIndex < _dimensions; dimensionIndex++) { double r = _random.Next() / (int.MaxValue + 0.0); Outputs[neuronIndex].Weights[dimensionIndex] = r; Outputs[neuronIndex].DoubleWeights[dimensionIndex] = r * r; Outputs[neuronIndex].WeightsBackup[dimensionIndex] = r; }

// distance Outputs[neuronIndex].distance = new double[_length, _length]; for (int x = 0, id = 0; x < _length; x++) { for (int y = 0; y < _length; y++) { int tX = x - xAxisIndex; int tY = y - yAxisIndex; double temp = Math.Sqrt((tX * tX) + (tY * tY)); Outputs[neuronIndex].distance[x, y] = -(temp * temp); id++; } }

}

Page 87: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

87

// Neighbors for each neuron foreach (var n in Outputs) { int num = 0; for (int x = 0; x < _length; x++) { for (int y = 0; y < _length; y++) { if (n.distance[x, y] >= -_neighborsDistance) { num++; } } }

n.neighbors = new Neuron[num];

int neighborIndex = 0, counter = 0; for (int x = 0; x < _length; x++) { for (int y = 0; y < _length; y++) { if (n.distance[x, y] >= -_neighborsDistance) { n.neighbors[neighborIndex] = Outputs[counter]; neighborIndex++; } counter++; } } } }

private bool _LoadData(ref StreamReader reader, int lines) { if (_classes == 1) { int count = 0; while (!reader.EndOfStream) { var line = reader.ReadLine().Split(','); var timeLable = ulong.Parse(line[0]); var inputs = new byte[_dimensions]; int e = -1;

for (int i = 1; i < line.Length; i++) { if (line[i].CompareTo("") == 0) { continue; }

var p = int.Parse(line[i]); if (p <= 0) { e = -p; } else { inputs[e * _inputSize + p] = 1; } } if (_maxSampleCapacity > 0 && _samples == _maxSampleCapacity)

Page 88: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

88

{ _patterns.RemoveAt(0); _patterns.Add(inputs); _timeLabbls.RemoveAt(0); _timeLabbls.Add(timeLable); } else { _patterns.Add(inputs); _timeLabbls.Add(timeLable); _samples++; } count++; if (count == lines) { break; } }

} else { _classStart = new int[_classes]; int count = 0;

for (int f = 0; f < _classes; f++) { _classStart[f] = count; reader = new StreamReader(_burstLog[f]); while (!reader.EndOfStream) { var line = reader.ReadLine().Split(','); var timeLable = ulong.Parse(line[0]); var inputs = new byte[_dimensions]; int e = -1; for (int i = 1; i < line.Length; i++) { if (line[i].CompareTo("") == 0) { continue; }

var p = Int32.Parse(line[i]); if (p <= 0) { e = -p; } else { inputs[e * _inputSize + p] = 1; } } count++; _patterns.Add(inputs); _timeLabbls.Add(timeLable); } }

}

return (!reader.EndOfStream); }

private void Train(double maxError)

Page 89: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

89

{ double currentError;

var options = new ParallelOptions { MaxDegreeOfParallelism = _numCPUs };

do { Debug.WriteLine(Environment.NewLine); currentError = 0.0;

if (_learnInRandomOrder) { var TrainingSet = new List<byte[]>(); foreach (var pattern in _patterns) { TrainingSet.Add(pattern); }

for (int i = 0; i < _patterns.Count; i++) {

if (i % 50 == 0) { Debug.Write("."); }

var place = _random.Next(TrainingSet.Count - 1); var pattern = TrainingSet[place];

currentError += TrainPattern(pattern, ref options); TrainingSet.RemoveAt(place); } } else { int c = 0; foreach (byte[] pattern in _patterns) { currentError += TrainPattern(pattern, ref options); if (c % 50 == 0) { Debug.Write("."); }

c++; } }

Debug.Write("iteration: " + _iteration.ToString() + " Error: " + currentError.ToString("0.0000000")); } while (currentError > maxError); }

private double TrainPattern(byte[] pattern, ref ParallelOptions options) { var winner = (_normalEuclideanDistances) ? _WinnerNormalEuclidean(pattern) : Winner_Customize_Euclidean(pattern); int winnerX = winner.X, winnerY = winner.Y;

var learningRate = Math.Exp(-_iteration / (_maxIteration + 0.0)) * 0.1;

Page 90: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

90

var strength = Math.Exp(-_iteration / _nf) * (double)_length; strength *= strength;

var e = winner.neighbors.Length; var error = new double[e];

Parallel.For(0, e, options, n => { var N = winner.neighbors[n]; var t = (learningRate * Math.Exp(N.distance[winnerX, winnerY] / strength)); error[n] = N.UpdateWeights(pattern, t); }); _iteration++;

var r = error[0]; for (int i = 1; i < e; i++) { r += error[i]; } return Math.Abs(r / e); }

private void _DumpCountersLables(ref StreamWriter counterWriter, ref StreamWriter lableWriter) {

var labbles = new List<ulong>[_length, _length]; for (int x = 0; x < _length; x++) { for (int y = 0; y < _length; y++) { labbles[x, y] = new List<ulong>(); } }

var globalCounter = new int[_length, _length]; var classCounters = new List<int[,]>(); for (int c = 0; c < _classes; c++) { classCounters.Add(new int[_length, _length]); }

for (int c = 0, i = 0; i < _patterns.Count; i++) { var neuron = (_normalEuclideanDistances) ? _WinnerNormalEuclidean(_patterns[i]) : Winner_Customize_Euclidean(_patterns[i]); labbles[neuron.X, neuron.Y].Add(_timeLabbls[i]); globalCounter[neuron.X, neuron.Y]++;

if ((c + 1 < _classes) && (_classStart[c + 1] < i)) { c++; }

classCounters[c][neuron.X, neuron.Y]++; }

// write the counters for (int x = 0; x < _length; x++) { for (int y = 0; y < _length; y++)

Page 91: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

91

{ lableWriter.Write("{0},{1}", x, y); for (int i = 0; i < labbles[x, y].Count; i++) { lableWriter.Write(",{0}", labbles[x, y][i]); }

lableWriter.WriteLine(); } }

for (int i = 0; i < _length; i++) { for (int j = 0; j < _length; j++) { counterWriter.Write(globalCounter[i, j].ToString() + ","); }

counterWriter.WriteLine(); } counterWriter.Flush();

if (_classes > 1) { for (int c = 0; c < _classes; c++) { var wr = new StreamWriter(_counberLog + "_class_" + c.ToString() + ".csv", true); for (int i = 0; i < _length; i++) { for (int j = 0; j < _length; j++) { wr.Write(classCounters[c][i, j].ToString() + ","); }

wr.WriteLine(); } wr.Flush(); wr.Close(); } }

}

private Neuron Winner_Customize_Euclidean(byte[] pattern) { var winner = new Neuron[_numberTotalOfNeurons]; var min = new double[_numberTotalOfNeurons];

Parallel.ForEach(Outputs, new ParallelOptions { MaxDegreeOfParallelism = _numCPUs }, n => { var weights = n.Weights; double dd = 0; for (int i = 0; i < _inputSize; i++) { double t, d = 0; for (int w = i * _electrode, end = w + _electrode; w < end; w++) { if (pattern[w] == 0) { d += n.DoubleWeights[w]; }

Page 92: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

92

else { t = pattern[w] - weights[w]; d += t * t; } } dd += Math.Sqrt(d); } // min[n.ID] = dd; winner[n.ID] = n; }); int idx = 0; for (int i = 0; i < _numberTotalOfNeurons; i++) { if (winner[i] != null) { idx = i; break; } }

for (int i = idx + 1; i < _numberTotalOfNeurons; i++) { if ((winner[i] != null) && (min[i] < min[idx])) { idx = i; } }

return winner[idx];

}

private Neuron _WinnerNormalEuclidean(byte[] pattern) { var winner = new Neuron[_numberTotalOfNeurons]; var min = new double[_numberTotalOfNeurons];

Parallel.ForEach(Outputs, new ParallelOptions { MaxDegreeOfParallelism = _numCPUs }, n => { // find the Euclidean distance double t, d = 0; double[] weights = n.Weights; for (int w = 0; w < weights.Length; w++) { t = (double)pattern[w] - weights[w]; d += t * t; } // min[n.ID] = Math.Sqrt(d); winner[n.ID] = n; }); int idx = 0; for (int i = 0; i < _numberTotalOfNeurons; i++) if (winner[i] != null) { idx = i; break; }

for (int i = idx + 1; i < _numberTotalOfNeurons; i++) if ((winner[i] != null) && (min[i] < min[idx]))

Page 93: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

93

idx = i;

return winner[idx]; }

private void _BackupNeuronsWeights() { Debug.WriteLine(" - Backup Neurons Weights - "); Parallel.ForEach(Outputs, n => { n.BackupWeights(); }); }

private void _RestoreNeuronsWeights() { Debug.WriteLine(" - Restore Neurons Weights - "); Parallel.ForEach(Outputs, n => { n.RestoreWeightsBackup(); }); }

}

public class Neuron { public double[] Weights, DoubleWeights, WeightsBackup; public double[,] distance; public Neuron[] neighbors; public int X; public int Y; public int ID;

public Neuron(int x, int y, int id) { X = x; Y = y; ID = id; }

public void RestoreWeightsBackup() { for (int k = 0; k < Weights.Length; k++) { Weights[k] = WeightsBackup[k]; DoubleWeights[k] = WeightsBackup[k] * WeightsBackup[k]; } }

public void BackupWeights() { for (int k = 0; k < Weights.Length; k++) { WeightsBackup[k] = Weights[k]; } }

public double UpdateWeights(byte[] pattern, double LearningRate_Gauss) { double sum = 0;

Page 94: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

94

for (int i = 0; i < Weights.Length; i++) { var delta = LearningRate_Gauss * (pattern[i] - Weights[i]); Weights[i] += delta; DoubleWeights[i] = Weights[i] * Weights[i]; sum += delta; }

return sum / Weights.Length; } }

}

//LogsParser.csusing System;using System.Collections.Generic;using System.Diagnostics.Eventing.Reader;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks;

namespace WindowsAnomalyDetector{ internal static class LogsParser { const int LogVectorSize = 7;

const string AuditSuccessStatusSrting = "Audit Success"; const string AuditFaiureStatusSrting = "Audit Failure";

const string SecurityAuditingSourceString = "Microsoft-Windows-Security-Auditing"; const string EventLogSourceString = "Microsoft-Windows-Eventlog";

public static readonly Dictionary<EventLog.AuditStatus, string> AuditEnumStringMap = new Dictionary<EventLog.AuditStatus, string> { { EventLog.AuditStatus.Failed, AuditFaiureStatusSrting }, { EventLog.AuditStatus.Successful, AuditSuccessStatusSrting }, };

public static readonly Dictionary<EventLog.EventSource, string> SourceEnumStringMap = new Dictionary<EventLog.EventSource, string> { { EventLog.EventSource.Eventlog, "Microsoft Windows Security Auditing" }, { EventLog.EventSource.MicrosoftWindowsSecurityAuditing, "Microsoft Windows Eventlog"}, };

public static List<double[]> ParseEventLogsFile(string filePath, out int failedLogsCounter, out List<string> existandEventCodes, out List<EventLog> nonFormattedEventLogs) { long counter = 0; nonFormattedEventLogs = new List<EventLog>();

using (var reader = new EventLogReader(filePath, PathType.FilePath)) { EventRecord record; while ((record = reader.ReadEvent()) != null) {

Page 95: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

95

using (record) { var log = new EventLog { Id = record.Id, TimeStamp = record.TimeCreated, Source = GetEventSourceFromString(record.ProviderName), Status = GetAuditStatusFromString(record.KeywordsDisplayNames.SingleOrDefault()), EventCode = record.TaskDisplayName, };

log.Counter = counter++; nonFormattedEventLogs.Add(log); } } }

existandEventCodes = nonFormattedEventLogs.Select(log => log.EventCode).Distinct().ToList();

var formattedLogsList = FormatEventLogList(nonFormattedEventLogs, existandEventCodes, out var invalidLogsCounter);

failedLogsCounter = invalidLogsCounter;

return FormatLogsToArray(formattedLogsList, existandEventCodes.Count); }

public static List<EventLog> FormatBackResultedLogs(List<double[]> resultedEventLogs, List<EventLog> initialEventLogs) { var result = new List<EventLog>();

foreach(var resultedEventLog in resultedEventLogs) { var counter = Convert.ToInt32(resultedEventLog[0]); result.Add(initialEventLogs.ElementAt(counter)); }

return result; }

private static List<double[]> FormatLogsToArray(List<FormattedEventLog> formattedLogsList, int existantEventCodesCount) { var result = new List<double[]>();

foreach(var log in formattedLogsList) { var arraySize = LogVectorSize + existantEventCodesCount;

var logArray = new double[arraySize];

logArray[0] = log.Id; logArray[1] = log.Status; logArray[2] = log.TimeStamp[0]; logArray[3] = log.TimeStamp[1]; logArray[4] = log.TimeStamp[2]; logArray[5] = log.TimeStamp[3]; logArray[6] = log.Source;

Page 96: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

96

for (int i = 7; i < arraySize; ++i) { logArray[i] = log.EventCode[i - 7]; }

result.Add(logArray); }

return result; } private static List<FormattedEventLog> FormatEventLogList(IReadOnlyList<EventLog> eventLogsList, List<string> existantEventCodes, out int failedLogsCounter) { failedLogsCounter = 0; var formattedEventLogsList = new List<FormattedEventLog>();

foreach (var eventLog in eventLogsList) { if (eventLog.TimeStamp == null || eventLog.Source == EventLog.EventSource.Undefined || eventLog.Status == EventLog.AuditStatus.Undefined) { failedLogsCounter++; continue; }

var formattedEventLog = new FormattedEventLog { Counter = eventLog.Counter, Id = Math.Log(eventLog.Id), TimeStamp = FormatTimestampToArray(eventLog.TimeStamp.Value), Source = (int)eventLog.Source, Status = (int)eventLog.Status, EventCode = GetEventSourceFormattedArray(existantEventCodes, eventLog.EventCode), };

formattedEventLogsList.Add(formattedEventLog); }

return formattedEventLogsList; }

private static double[] FormatTimestampToArray(DateTime dateTime) { var result = new double[4];

result[0] = (dateTime.Hour * 3600 + dateTime.Minute * 60 + dateTime.Second) / 3600;

switch (dateTime.DayOfWeek) { case DayOfWeek.Monday: { result[1] = 0; result[2] = 0; result[3] = 1; break; } case DayOfWeek.Tuesday: {

Page 97: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

97

result[1] = 0; result[2] = 1; result[3] = 0; break; } case DayOfWeek.Wednesday: { result[1] = 0; result[2] = 1; result[3] = 1; break; } case DayOfWeek.Thursday: { result[1] = 1; result[2] = 0; result[3] = 0; break; } case DayOfWeek.Friday: { result[1] = 1; result[2] = 0; result[3] = 1; break; } case DayOfWeek.Saturday: { result[1] = 1; result[2] = 1; result[3] = 0; break; } case DayOfWeek.Sunday: { result[1] = 1; result[2] = 1; result[3] = 1; break; } }

return result; }

private static int[] GetEventSourceFormattedArray(List<string> existantEventCodes, string currentEventCode) { var result = new int[existantEventCodes.Count]; for (int i = 0; i < existantEventCodes.Count; ++i) { result[i] = 0; }

var currentEventCodeIndex = existantEventCodes.IndexOf(currentEventCode); result[currentEventCodeIndex] = 1;

return result; }

private static EventLog.EventSource GetEventSourceFromString(string eventSourceString)

Page 98: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

98

{ switch (eventSourceString) { case SecurityAuditingSourceString: { return EventLog.EventSource.MicrosoftWindowsSecurityAuditing; } case EventLogSourceString: { return EventLog.EventSource.Eventlog; } default: { Debug.Assert(false, $"Unexpected event source {eventSourceString}"); return EventLog.EventSource.Undefined; } } }

private static EventLog.AuditStatus GetAuditStatusFromString(string auditStatusSrting) { switch (auditStatusSrting) { case AuditSuccessStatusSrting: { return EventLog.AuditStatus.Successful; } case AuditFaiureStatusSrting: { return EventLog.AuditStatus.Failed; } default: { Debug.Assert(false, $"Unexpected audit status {auditStatusSrting}"); return EventLog.AuditStatus.Undefined; } } } }}

//Program.csusing System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;

namespace WindowsAnomalyDetector{ static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false);

Page 99: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

99

Application.Run(new MainWindow()); } }}

//MainWindow.csusing System;using System.Collections.Generic;using System.Globalization;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using CsvHelper;

namespace WindowsAnomalyDetector{ public partial class MainWindow : Form { private static readonly List<string> AllowedExtensions = new List<string> { ".evtx", };

public string FilePath { get; set; }

public MainWindow() { InitializeComponent(); }

private void SelectLogsFileButton_Click(object sender, EventArgs e) { var result = selectLogsFileDialog.ShowDialog();

if (result == DialogResult.OK || result == DialogResult.Yes) { FilePath = selectLogsFileDialog.FileName;

if (string.IsNullOrEmpty(FilePath)) { MessageBox.Show("File hadn't been selected. Please select file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!AllowedExtensions.Contains(Path.GetExtension(FilePath))) { MessageBox.Show("Invalid file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

label2.Text = FilePath; } }

private void AnalyzeButton_Click(object sender, EventArgs e) { dataGridView1.Rows.Clear();

Page 100: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

100

if (string.IsNullOrEmpty(FilePath)) { MessageBox.Show("File hadn't been selected. Please select file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!File.Exists(FilePath)) { MessageBox.Show("Invalid file : no longer exists on disk", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!AllowedExtensions.Contains(Path.GetExtension(FilePath))) { MessageBox.Show("Invalid file : invalid format", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

var parsedLogs = LogsParser.ParseEventLogsFile(FilePath, out var failedLogsCounter, out var existandEventCodes, out var nonFormattedEventLogs);

invalidLogsCountLabel.Text = failedLogsCounter > 0 ? failedLogsCounter.ToString() : "None";

var logsWriter = new StreamWriter("WindowsLogs.csv");

foreach (var log in parsedLogs) { foreach (var logMember in log) { logsWriter.Write($"{logMember},"); } logsWriter.Write(";" + Environment.NewLine); }

var network = new KohonenNeuralNetwork();

var csv = new CsvReader(File.OpenText("result.csv")); var resultedLogs = csv.GetRecords<double[]>().ToList();

var result = LogsParser.FormatBackResultedLogs(resultedLogs, nonFormattedEventLogs);

foreach(var resultedLog in result) { dataGridView1.Rows.Add ( resultedLog.TimeStamp, LogsParser.AuditEnumStringMap[resultedLog.Status], LogsParser.SourceEnumStringMap[resultedLog.Source], resultedLog.Id, resultedLog.EventCode ); } }

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) {

} }

Page 101: ela.kpi.ua  · Web view2020. 3. 6. · Наступний інструмент - Event Log Explorer (рис 1.3). Цей переглядач журналу подій дозволяє

101

}