You are on page 1of 25

НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ

ФАКУЛЬТЕТ КІБЕРБЕЗПЕКИ ТА ПРОГРАМНОЇ ІНЖЕНЕРІЇ

Кафедра комп’ютеризованих систем захисту інформації

Розрахунково-графічна робота
із дисципліни «Безпека інформаційно-комунікаційних систем та мереж»
на тему «Дослідження задач кібербезпеки, для яких використовуються
технології штучного інтелекту»

Виконав:
Студент 4 курсу групи БІ-443Б
Бусько Андрій Петрович

Прийняв:
Висоцька Олена Олександрівна

Бали
Якість виконання
Додаткові завдання
Відповіді на
питання
Термін здачі
Сумарний бал

КИЇВ 2023
1
ЗМІСТ

ПЕРЕЛІК ПОЗНАЧЕНЬ І СКОРОЧЕНЬ...........................................................................................................2


ВСТУП...................................................................................................................................................................... 3
1. АЛГОРИТМ "RANDOM FOREST" В КОНТЕКСТІ МАШИННОГО НАВЧАННЯ...........................4
1.1. Загальні відомості про алгоритм Алгоритм "Random Forest"........................................................4
1.2. Основні характеристики "Random Forest".........................................................................................4
1.3. Переваги та недоліки "Random Forest"...............................................................................................6
1.4. Використання "Random Forest" у кібербезпеці..................................................................................6
1.5. Приклад алгоритму Random Forest......................................................................................................7
1.6. Висновок....................................................................................................................................................8
2. ЗАДАЧА «ВИЯВЛЕННЯ ЗАГРОЗ ТА ВРАЗЛИВОСТЕЙ В МЕРЕЖАХ»............................................9
2.1. Обгрунтування вибору алгоритму Random Forest............................................................................9
2.2. Основні кроки для виявлення загроз та вразливостей алгоритмом Random Forest...................9
2.3. Висновки.................................................................................................................................................11
3. ЗАДАЧА «ПРОГНОЗУВАННЯ АТАК ТА ВИЯВЛЕННЯ НОВИХ ЗАГРОЗ»....................................12
3.1. Обгрунтування вибору алгоритму Random Forest..........................................................................12
3.2. Основні кроки для прогнозування атак та виявлення нових загроз алгоритмом Random
Forest 13
3.3. Висновки.................................................................................................................................................15
4. ЗАДАЧА «ПІДВИЩЕННЯ РІВНЯ ЗАХИСТУ».......................................................................................16
4.1. Обгрунтування вибору алгоритму Random Forest..........................................................................16
4.2. Основні кроки для підвищення рівня захисту алгоритмом Random Forest................................16
4.3. Висновки.................................................................................................................................................18
5. ЗАДАЧА «ВИЯВЛЕННЯ ФІШИНГОВИХ АТАК».................................................................................19
5.1. Обгрунтування вибору алгоритму Random Forest..........................................................................19
5.2. Основні кроки виявлення фішингових атак алгоритмом Random Forest...................................19
5.3. Висновки.................................................................................................................................................21
ВИСНОВОК...........................................................................................................................................................22
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ...........................................................................................................23

2
ПЕРЕЛІК ПОЗНАЧЕНЬ І СКОРОЧЕНЬ

 Random Forest (Випадковий ліс)


 AI - Artificial Intelligence (Штучний інтелект)
 ML - Machine Learning (Машинне навчання)
 FE - Feature Engineering (Інженерія ознак)
 CV - Cross-Validation (Крос-валідація)
 URL - Uniform Resource Locator (Єдина адреса ресурсу)
 Phishing – Фішинг. Шахрайство (зазвичай, електронне)
 DoS - Denial of Service (Відмова у обслуговуванні)
 IP - Internet Protocol (Протокол Інтернету)

3
ВСТУП

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


умовах постійного технологічного розвитку, зростаючої кількості цифрових загроз та
швидкозмінних атак, необхідність вдосконалення захисту мереж і систем стає критичною. Для
боротьби з цими викликами та покращення ефективності захисту активно використовуються
методи та техніки машинного навчання.
У даній роботі розглядається застосування алгоритму Random Forest у контексті
кібербезпеки. Ця робота складається з п'яти глав, кожна з яких присвячена конкретним аспектам
застосування даного алгоритму для вирішення важливих завдань в області кібербезпеки.
Перша глава становить вступ у світ алгоритму Random Forest в контексті машинного
навчання. Вона розглядає базові принципи цього методу, його структуру та властивості, що
дозволяють йому ефективно працювати з великими обсягами даних та різноманітними видами
завдань, у тому числі в контексті кібербезпеки.
Друга глава фокусується на виявленні загроз та вразливостей у мережах. Алгоритм Random
Forest використовується для аналізу мережевого трафіку та ідентифікації потенційних загроз. Вона
також розглядає методи збору та підготовки даних для ефективного використання даного
алгоритму.
Третя глава зосереджена на прогнозуванні атак та виявленні нових загроз. Вона досліджує,
як Random Forest може використовуватися для аналізу історичних даних та прогнозування
майбутніх загроз, надаючи можливість системі оперативно реагувати на нові форми атак.
Четверта глава висвітлює завдання підвищення рівня захисту за допомогою алгоритму
Random Forest. Вона описує, як дана модель може виявляти слабкі місця та проблеми у захисті
мереж та систем, допомагаючи удосконалити стратегії захисту.
Остання, п'ята глава, приділяє увагу виявленню фішингових атак. Фішинг - одна з найбільш
поширених та загрозливих форм кібератак, та в цій роботі досліджується, як Random Forest може
застосовуватися для їх виявлення.
Враховуючи різноманітність і важливість кожної з глав, ця робота ставить за мету розкрити
потенціал та важливість алгоритму Random Forest в контексті кібербезпеки. Із ростом кількості
кіберзагроз та їх складності, важливість використання ефективних інструментів для захисту даних
та систем стає критичною. Ця робота покликана пролити світло на один з таких інструментів,
демонструючи його потенціал та можливості в контексті надійності та ефективності в боротьбі з
кіберзагрозами.
4
1. АЛГОРИТМ "RANDOM FOREST" В КОНТЕКСТІ
МАШИННОГО НАВЧАННЯ

1.1. Загальні відомості про алгоритм Алгоритм "Random Forest"


Алгоритм "Random Forest" є важливою складовою сімейства ансамблевих методів у
машинному навчанні. Цей метод поєднує кілька дерев рішень, які працюють разом для розв'язання
задач класифікації або регресії. Кожне дерево вирішує проблему на підмножині даних, а
результати об'єднуються для отримання кінцевого прогнозу.
Бувши запропонований Лео Брейманом та Адель Катлер у 2001 році як поліпшення
алгоритму "bagging" (bootstrap aggregating), "Random Forest" об'єднав концепції бутстрепу для
створення рандомізованих ансамблів дерев рішень, що призвело до виникнення цього методу.
"Random Forest" – алгоритм, що виявляється надзвичайно корисним у сфері кібербезпеки.
Цей метод, допомагає аналізувати та реагувати на загрози в інтернет-просторі, забезпечуючи
ефективний захист від потенційних атак. Його простота використання та гнучкість сприяли його
прийняттю, оскільки він ефективно вирішує як проблеми класифікації, так і регресії.

1.2. Основні характеристики "Random Forest"


Алгоритм "Random Forest" має три ключові гіперпараметри, які потрібно налаштувати перед
тренуванням: розмір вузла, кількість дерев та кількість ознак, які вибираються для випадкового
зразка. На основі цього класифікатор може бути використаний для вирішення завдань регресії чи
класифікації.
Налаштування гіперпараметрів в алгоритмі "Random Forest" визначає ефективність його
роботи. Наприклад, кількість дерев, їх глибина та кількість ознак для кожного з них впливають на
точність прогнозування та вміння моделі адаптуватися до нових ситуацій.

5
Рис.1 Схематичне зображення алгоритму "Random Forest"

"Random Forest" складається з колекції дерев рішень, кожне з яких створюється зі зразка
даних, вибраного з навчального набору заміщенням. Цей метод, відомий як "бутстреп", дозволяє
кожному дереву використовувати лише частковий набір даних для навчання. Ще одним елементом
випадковості є вибір випадкових ознак, що додає різноманітність до набору даних та зменшує
кореляцію між деревами рішень.

6
1.3. Переваги та недоліки "Random Forest"
Перевагами використання "Random Forest" у кібербезпеці є:
 Виявлення аномалій та вразливостей. Алгоритм дозволяє виявляти незвичайні
патерни та аномалії в мережевому трафіку. Це стає важливим аспектом для
виявлення потенційних атак або вразливостей у системах, що використовуються.
 Прогнозування нових атак. Його здатність адаптуватись та прогнозувати нові форми
атак робить його незамінним інструментом для кіберзахисту. "Random Forest"
аналізує зміни у шаблонах атак і може передбачити нові типи загроз, що раніше були
невідомі.
 Підвищення рівня захисту. Алгоритм допомагає не лише виявляти потенційні
ризики, а й реагувати на них. Ефективний моніторинг мережі та реагування на
виявлені загрози стають ключовими функціями "Random Forest" у сфері
кібербезпеки.
До недоліків можна віднести:
 Робота з великими обсягами даних. У кібербезпеці важливо мати можливість
обробки великих обсягів інформації у реальному часі. Використання "Random Forest"
з великою кількістю дерев може створювати обчислювальні виклики через
необхідність обробки багатьох даних.
 Зберігання та обробка інформації. Враховуючи об'ємність даних, вимагається
ефективне зберігання та обробка інформації. Це може становити виклик для систем з
обмеженими ресурсами.
 Важливість узгодженості та оновлення моделі. У кібербезпеці необхідно забезпечити
постійне оновлення моделей "Random Forest" для врахування нових атак та змін у
загрозах, що може бути викликом через потребу постійного моніторингу і адаптації.

1.4. Використання "Random Forest" у кібербезпеці


"Random Forest" виявляється корисним інструментом у кібербезпеці для:
 Виявлення незвичайних подій. Моніторинг та аналіз великих обсягів даних у
реальному часі дозволяє виявляти аномалії, які вказують на можливі загрози або
атаки.
 Прогнозування вразливостей. "Random Forest" аналізує та передбачає потенційні
слабкі місця в мережі, допомагаючи у попередженні можливих атак.

7
 Розробка стратегій відповіді на атаки. Алгоритм не лише ідентифікує загрози, а й
надає важливі дані для розробки ефективних стратегій відповіді та захисту.
Цей алгоритм викорористовується для аналізу об'ємних даних та виявлення складних
взаємозв'язків між ними з метою прогнозування аномальних подій та виявлення загроз у
кіберпросторі. "Random Forest" дозволяє створювати моделі, які ефективно виявляють аномалії та
забезпечують інструменти захисту від потенційних атак.
Одним із ключових переваг "Random Forest" у кібербезпеці є його здатність реалізувати
аналіз великої кількості даних. Великий обсяг інформації, яку він може обробляти, дозволяє
виявляти складні аномалії, які можуть бути непоміченими менш потужними методами аналізу
даних.
До інших переваг алгоритму "Random Forest" у сфері кібербезпеки належить його здатність
до прогнозування нових типів атак. Алгоритм адаптується до змін у шаблонах атак та може
виявляти нові форми загроз, які раніше не були відомі.
Крім того, "Random Forest" допомагає в розробці стратегій відповіді на виявлені загрози.
Він не лише виявляє потенційні ризики, а й допомагає в забезпеченні ефективного моніторингу
мережі та реагуванні на вторгнення.
Загалом, використання алгоритму "Random Forest" у кібербезпеці є важливим засобом для
захисту від сучасних кіберзагроз. Його здатність аналізувати великі обсяги даних та прогнозувати
незвичайні події робить його корисним інструментом для створення ефективних систем захисту
від кібератак.

1.5. Приклад алгоритму Random Forest


Приклад використання бібліотеки scikit-learn для створення моделі Random Forest у Python:
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.metrics import accuracy_score

# Генеруємо випадковий набір даних для прикладу


X, y = make_classification(n_samples=1000, n_features=20, n_informative=10, n_classes=2,
random_state=42)
# Розділяємо дані на навчальний та тестувальний набори
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
8
# Ініціалізуємо та навчаємо модель Random Forest
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
# Робимо прогнози на тестовому наборі
y_pred = clf.predict(X_test)
# Оцінимо точність моделі
accuracy = accuracy_score(y_test, y_pred)
print(f"Точність моделі Random Forest: {accuracy}")

Цей приклад створює випадковий набір даних, розділяє його на навчальний та тестувальний
набори, ініціалізує модель Random Forest з 100 деревами рішень та навчає її на навчальних даних.
Після цього здійснює прогноз на тестових даних, оцінюючи точність моделі за допомогою метрики
точності (accuracy_score).

1.6. Висновок
Кібербезпека та машинне навчання в сучасному світі стають важливими компонентами
захисту інформації та інфраструктури. ML стає невід'ємною частиною кібербезпеки, дозволяючи
автоматизувати процес виявлення загроз та аналізувати великі обсяги даних для передбачення
атак.
Застосування алгоритмів машинного навчання, таких як Random Forest, у сфері
кібербезпеки стає ключовим елементом. Вони можуть аналізувати мережевий трафік,
ідентифікувати аномалії та передбачати можливі атаки, що робить їх важливим інструментом для
захисту систем від загроз.

9
2. ЗАДАЧА «ВИЯВЛЕННЯ ЗАГРОЗ ТА ВРАЗЛИВОСТЕЙ В
МЕРЕЖАХ»

2.1. Обгрунтування вибору алгоритму Random Forest


Random Forest може бути використаний для виявлення загроз та вразливостей в мережах.
Для вирішення задач кібербезпеки він може використовуватись у різноманітних сценаріях,
включаючи виявлення аномалій в мережевому трафіку, ідентифікацію потенційних загроз, захист
від шкідливих атак та інші. Однією з головних переваг Random Forest є його здатність аналізувати
великі обсяги даних та виявляти складні зв'язки між ними для прогнозування аномальних подій та
виявлення загроз у кіберпросторі.
У виявленні загроз та вразливостей у мережах Random Forest може використовуватися для
аналізу мережевого трафіку. Він аналізує дані про трафік у реальному часі або з раніше зібраних
даних і виявляє аномалії, які можуть бути індикаторами потенційних атак або вразливостей в
системі. Аномалії можуть включати незвичайні патерни поведінки, несподівані зміни в трафіку,
атаки типу DDoS або спроби несанкціонованого доступу.
Алгоритм Random Forest може бути використаний для побудови моделей прогнозування, які
визначають аномальні дії в мережі. Він аналізує різні функції та параметри мережі (такі як IP-
адреси, порти, часові мітки тощо) і навчається відрізняти "нормальну" поведінку від потенційно
шкідливої. Наприклад, якщо виявляється незвичайний обсяг трафіку з певної IP-адреси, який
виходить за межі звичайних патернів, це може вказувати на атаку або вразливість, і Random Forest
може сигналізувати про це.
Крім того, Random Forest може бути використаний для аналізу журналів подій (логів)
системи. Він аналізує записи подій для виявлення несподіваних або підозрілих активностей, які
можуть бути пов'язані з атаками, спробами несанкціонованого доступу або іншими загрозами для
безпеки.

2.2. Основні кроки для виявлення загроз та вразливостей алгоритмом


Random Forest
Можна виділити основні кроки використання Random Forest для виявлення загроз, а саме
збір та підготовка даних, навчання моделі, налаштування та оцінка моделі, виявлення загроз та
вразливостей, підтримка та оновлення моделі. Розглянемо їх детальніше.
Крок 1: Збір та підготовка даних
10
 Збір мережевих даних: Отримання данних про мережевий трафік, журнали подій,
системні логи та інші дані для аналізу.
 Очищення та підготовка даних: Обробка та очищення даних від дублікатів, відсутніх
значень, перетворення текстових/категоріальних даних в числовий формат.
# Приклад коду для підготовки даних на python
import pandas as pd
from sklearn.preprocessing import LabelEncoder
data = pd.read_csv('network_data.csv')
data.drop_duplicates(inplace=True)
data.dropna(inplace=True)
label_encoder = LabelEncoder()
data['encoded_feature'] = label_encoder.fit_transform(data['categorical_feature'])
Крок 2: Навчання моделі
 Розділення даних: Розділення на навчальний та тестовий набори для ефективного
навчання моделі та оцінки її точності.
 Навчання Random Forest:
# Приклад коду для навчання на python
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
X = data.drop('target_column', axis=1)
y = data['target_column']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
random_forest = RandomForestClassifier(n_estimators=100, random_state=42)
random_forest.fit(X_train, y_train)
predictions = random_forest.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")
print(classification_report(y_test, predictions))
Крок 3: Налаштування та оцінка моделі
 Оптимізація гіперпараметрів: Використання крос-валідації для вибору оптимальних
гіперпараметрів моделі.
# Приклад коду для оптимізації на python
11
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [50, 100, 150],
'max_depth': [None, 10, 20],
}
grid_search = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)
best_params = grid_search.best_params_
best_estimator = grid_search.best_estimator_
Крок 4: Виявлення загроз та вразливостей
 Прогнозування на нових даних: Використання оптимізованої моделі для виявлення
аномальних патернів чи потенційних загроз у мережі.
# Приклад використання моделі для виявлення загроз на python
new_network_data = preprocess_new_network_data(new_network_data)
prediction = best_estimator.predict(new_network_data)
Крок 5: Підтримка та оновлення моделі:
 Оновлення даних: Постійне оновлення навчальних даних для врахування нових атак
та вразливостей.
 Періодичне перенавчання: Регулярне перенавчання моделі з використанням нових
даних для підвищення точності та актуальності.

2.3. Висновки
Random Forest виявляється потужним інструментом для виявлення загроз та вразливостей в
мережах. Використовуючи його можливості аналізу великих обсягів даних, алгоритм дозволяє
ідентифікувати незвичайні патерни та виявляти аномальні події в мережевому трафіку.
Основні етапи використання Random Forest для виявлення загроз включають збір та
підготовку даних, навчання моделі, налаштування та оцінку, а також підтримку та оновлення
моделі. Ці кроки стають ключовими для успішного використання даного алгоритму в кібербезпеці,
допомагаючи ефективно виявляти загрози та забезпечувати безпеку мереж та систем.

12
3. ЗАДАЧА «ПРОГНОЗУВАННЯ АТАК ТА ВИЯВЛЕННЯ
НОВИХ ЗАГРОЗ»

3.1. Обгрунтування вибору алгоритму Random Forest


При застосуванні алгоритму Random Forest для прогнозування атак та виявлення нових
загроз у сфері кібербезпеки використовуються різні методи та підходи. Цей алгоритм машинного
навчання є потужним інструментом, який може аналізувати об'ємні дані та виявляти складні
зв'язки між ними для ідентифікації незвичайних патернів та аномалій в мережі. Він може бути
використаний для передбачення можливих атак, виявлення нових форм загроз та реагування на
них у реальному часі. Розглянемо докладно, як алгоритм Random Forest використовується для
прогнозування атак та виявлення нових загроз у кібербезпеці.
Random Forest може бути використаний для аналізу мережевого трафіку та виявлення
аномалій, які можуть бути індикаторами потенційних атак або вразливостей в системі. Шляхом
аналізу IP-адрес, портів, типів пакетів, об'єму передачі даних та інших характеристик трафіку,
Random Forest може виявляти незвичайні патерни, які можуть вказувати на атаки, такі як DDoS-
атаки, витік інформації або спроби несанкціонованого доступу.
Алгоритм Random Forest може навчатися на історичних даних про атаки та їх
характеристики. Він виявляє патерни та кореляції між різними типами атак, а також визначає
важливі ознаки, що характеризують певний тип загрози. З цими знаннями він може прогнозувати
нові форми атак, шляхом аналізу нових даних та виявлення підозрілих змін в патернах.
Random Forest використовується для неперервного моніторингу мережі. Він аналізує
поточний трафік та події у реальному часі, спостерігає за змінами в патернах та надає можливість
реагувати на аномальність або підозрілі дії в мережі негайно.
Використовуючи "Random Forest", можна здійснювати неперервний моніторинг мережі.
Алгоритм аналізує поточний трафік та події у реальному часі, спостерігає за змінами в патернах та
надає можливість реагувати на аномалії або підозрілі дії в мережі негайно.
"Random Forest" використовується для виявлення аномальних дій, надзвичайних подій або
послідовностей, які можуть свідчити про спроби атак або порушення безпеки, аналізуючи журнали
подій систем.
Random Forest може автоматично оновлювати свої моделі, використовуючи нові дані про
атаки та їх характеристики. Це дозволяє адаптувати модель до нових форм атак і змінюваних
загроз, що дозволяє залишатися ефективним у змінному кіберсередовищі.

13
3.2. Основні кроки для прогнозування атак та виявлення нових загроз
алгоритмом Random Forest
Основними кроками використання Random Forest для прогнозування атак є збір та
підготовка даних, навчання моделі, налаштування та оцінка моделі, виявлення нових загроз,
підтримка та оновлення моделі. Розглянемо їх детальніше.
Крок 1: Збір та підготовка даних
 Збір даних про атаки: Отримання історичних даних про атаки та їх характеристики,
такі як журнали подій, мережевий трафік, аудиторські дані тощо.
 Підготовка даних: Обробка, очищення, Feature Engineering. Це включає роботу з
недостатніми або відсутніми даними, перетворення та кодування ознак.
# Приклад коду для обробки та підготовки даних на python
import pandas as pd
from sklearn.preprocessing import LabelEncoder
# Зчитування та обробка даних
data = pd.read_csv('attack_data.csv')
data.drop_duplicates(inplace=True)
data.dropna(inplace=True)
# Кодування категоріальних ознак
label_encoder = LabelEncoder()
data['encoded_feature'] = label_encoder.fit_transform(data['categorical_feature'])
Крок 2: Навчання моделі
 Розбиття даних: Розділення даних на навчальний та тестовий набори для оцінки
моделі.
 Навчання Random Forest:
# Приклад навчання моделі на python
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
X = data.drop('target_column', axis=1)
y = data['target_column']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
random_forest = RandomForestClassifier(n_estimators=100, random_state=42)

14
random_forest.fit(X_train, y_train)
predictions = random_forest.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")
print(classification_report(y_test, predictions))
Крок 3: Налаштування та оцінка моделі
 Оптимізація гіперпараметрів: Використання крос-валідації для підбору оптимальних
гіперпараметрів моделі.
# Приклад налаштування та оцінки моделі на python
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [50, 100, 150],
'max_depth': [None, 10, 20],
}
grid_search = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)
best_params = grid_search.best_params_
best_estimator = grid_search.best_estimator_
Крок 4: Виявлення нових загроз
 Прогнозування на нових даних: Використання оптимізованої моделі для виявлення
нових атак або аномальних патернів.
# Приклад використання моделі для виявлення нових загроз на python
new_data = preprocess_new_data(new_data)
prediction = best_estimator.predict(new_data)
5. Підтримка та оновлення моделі:
 Оновлення даних: Постійне оновлення навчальних даних для врахування нових атак
та вразливостей.
 Періодичне перенавчання: Регулярне перенавчання моделі з використанням нових
даних для підвищення її прогностичних можливостей.

15
3.3. Висновки
"Random Forest" представляє потужний інструмент для прогнозування атак та виявлення
нових загроз у сфері кібербезпеки. Його потужності в аналізі великих обсягів даних та виявленні
складних взаємозв'язків роблять його ефективним інструментом для ідентифікації аномалій та
незвичайних патернів у мережах.
Основні використання "Random Forest" включають аналіз мережевого трафіку, навчання на
історичних даних про атаки, неперервний моніторинг мережі та аналіз журналів подій системи.
Його здатність виявляти змінність у патернах та адаптуватися до нових форм атак робить його
важливим інструментом для кібербезпеки.
Загалом, "Random Forest" виявляється корисним інструментом для кібербезпеки,
забезпечуючи можливості виявлення аномалій та прогнозування атак, що сприяє підвищенню
рівня захисту інформаційних систем.

16
4. ЗАДАЧА «ПІДВИЩЕННЯ РІВНЯ ЗАХИСТУ»

4.1. Обгрунтування вибору алгоритму Random Forest


Random Forest може бути ефективно використаний для підвищення рівня захисту в області
кібербезпеки. Його застосування може охоплювати широкий спектр завдань, від виявлення загроз
до системного моніторингу та прогнозування потенційних атак.
Random Forest може бути використаний для аналізу великого обсягу даних і виявлення
аномалій, які можуть свідчити про потенційні атаки або вразливості в мережах. Він аналізує
мережевий трафік, дані журналів подій та інші параметри для виявлення незвичайних патернів, які
можуть бути знаками можливих загроз.
Random Forest активно стежить за рівнем безпеки системи, аналізуючи активність в
реальному часі. Він виявляє зміни у звичайних патернах роботи системи, що може бути
індикатором можливої загрози. Такий моніторинг дозволяє оперативно реагувати на потенційні
атаки та виявляти надзвичайні ситуації.
Алгоритм допомагає покращити ефективність системи оборони, виявляючи слабкі місця або
потенційні проблеми у захисті мережі. Аналізуючи історичні дані та прогнозуючи можливі
загрози, він допомагає удосконалити стратегії захисту.
Однією з ключових переваг Random Forest є його здатність адаптуватися до нових форм
атак. Він може навчатися на нових даних і виявляти нові патерни поведінки, що дозволяє
збільшити рівень захисту навіть у змінному кіберсередовищі.
Алгоритм дозволяє використовувати моделі Random Forest для побудови стратегій захисту.
На основі аналізу попередніх атак або вразливостей, він може рекомендувати оптимальні заходи
захисту для певних ситуацій.

4.2. Основні кроки для підвищення рівня захисту алгоритмом Random


Forest
Використання алгоритму Random Forest для підвищення рівня кібербезпеки передбачає
кілька ключових кроків. Це включає підготовку даних, навчання моделі та її налаштування, оцінку
результатів та застосування моделі для виявлення загроз і реагування на них.
Крок 1: Підготовка даних

17
Першим етапом є підготовка даних. Це включає обробку, очищення та підготовку даних для
навчання моделі Random Forest. Наприклад, якщо ми маємо набір даних про мережевий трафік, це
може включати в себе:
 Завантаження та очищення даних: Зчитування даних з відповідних джерел,
видалення дублікатів, обробка відсутніх значень.
# Приклад завантаження та очищення даних на python
import pandas as pd
data = pd.read_csv('network_traffic_data.csv')
data.drop_duplicates(inplace=True)
data.dropna(inplace=True)
 Інженерія ознак: Створення нових ознак на основі наявних або перетворення даних
для кращого розуміння моделлю.
# FE - приклад на python
data['combined_feature'] = data['feature_1'] + data['feature_2']
 Кодування категоріальних ознак: Конвертування текстових чи категоріальних ознак
у числовий формат.
# Кодування категоріальних ознак на python
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
data['encoded_feature'] = label_encoder.fit_transform(data['categorical_feature'])
Крок 2: Навчання моделі
Другим етапом є навчання та використання навченої моделі Random Forest для виявлення
загроз та прогнозування атак.
# Приклад навчання на python
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
# Розділення даних на навчальний та тестовий набори
X = data.drop('target_column', axis=1)
y = data['target_column']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Ініціалізація та навчання моделі Random Forest
random_forest = RandomForestClassifier(n_estimators=100, random_state=42)
18
random_forest.fit(X_train, y_train)
# Прогнозування на тестовому наборі та оцінка результатів
predictions = random_forest.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")
print(classification_report(y_test, predictions))
Крок 3: Налаштування та оцінка моделі
Третім етапом є оптимізація гіперпараметрів для підвищення ефективності моделі.
# Приклад налаштування на python
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [50, 100, 150],
'max_depth': [None, 10, 20],
}
grid_search = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)
best_params = grid_search.best_params_
best_estimator = grid_search.best_estimator_
Крок 4: Використання моделі для виявлення загроз
Після налаштування моделі ми можемо використовувати її для виявлення загроз у
реальному часі для виявлення потенційних загроз.
# Приклад використання для передбачення на python:
new_data = preprocess_new_data(new_data) # Попередня обробка нових даних
prediction = best_estimator.predict(new_data)

4.3. Висновки
Random Forest у кібербезпеці відіграє ключову роль у виявленні, прогнозуванні та
реагуванні на потенційні загрози. Його застосування дозволяє аналізувати аномалії, прогнозувати
можливі атаки на основі історичних даних та реагувати в реальному часі на зміни патернів безпеки
системи.
Використання цього алгоритму полегшує виявлення вразливостей та надає можливість
підвищення рівня захисту систем та мереж від потенційних загроз.

19
5. ЗАДАЧА «ВИЯВЛЕННЯ ФІШИНГОВИХ АТАК»

5.1. Обгрунтування вибору алгоритму Random Forest


Алгоритм "Random Forest" може бути застосований для виявлення фішингових атак, що є
однією з найпоширеніших та загрозливих форм кібератак. Фішинг (Phishing)- це вид атаки, коли
зловмисники намагаються отримати конфіденційну інформацію, таку як паролі, особисті дані,
банківські реквізити і т. д., шляхом видавання себе за надійний джерело або людину.
Перш за все, для використання алгоритму "Random Forest" необхідно мати навчальний набір
даних, який складається з великої кількості електронних листів, текстових повідомлень або URL-
адрес, які можуть бути як фішинговими, так і нормальними.
Алгоритм "Random Forest" створює багато дерев, кожне з яких є випадковим. Кожне дерево
навчається на випадковій підвибірці даних з навчального набору. На основі цих підвибірок
створюються дерева рішень, що допомагають прогнозувати, чи є даний електронний лист або
URL-адрес фішинговим.
Коли новий приклад даних (електронний лист, URL) подається на вхід, кожне дерево
випадкового лісу видає прогноз. У випадку виявлення фішингу кожне дерево "голосує", чи є даний
приклад фішинговим або нормальним. Потім робиться підсумкове голосування, і класифікація
приймається на основі більшості голосів.

5.2. Основні кроки виявлення фішингових атак алгоритмом Random


Forest
Отже основними кроками використання Random Forest для виявлення фішингових атак є
збір та підготовка даних, навчання моделі, налаштування та оцінка моделі, виявлення фішингових
атак. Розглянемо їх детальніше.
Крок 1: Збір та підготовка даних
 Збір даних про фішингові атаки: Отримання данних про фішингові веб-сторінки,
спам-повідомлення, характеристики листів тощо.
 Очищення та підготовка даних: Обробка та очищення даних від дублікатів, відсутніх
значень, перетворення текстових/категоріальних даних в числовий формат.
# Приклад коду для підготовки даних на python
import pandas as pd
from sklearn.preprocessing import LabelEncoder

20
data = pd.read_csv('phishing_data.csv')
data.drop_duplicates(inplace=True)
data.dropna(inplace=True)
label_encoder = LabelEncoder()
data['encoded_feature'] = label_encoder.fit_transform(data['categorical_feature'])
Крок 2: Навчання моделі
 Розділення даних: Розділення на навчальний та тестовий набори для ефективного
навчання моделі та оцінки її точності.
 Навчання Random Forest:
# Приклад навчання на python
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
X = data.drop('target_column', axis=1)
y = data['target_column']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
random_forest = RandomForestClassifier(n_estimators=100, random_state=42)
random_forest.fit(X_train, y_train)
predictions = random_forest.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")
print(classification_report(y_test, predictions))
Крок 3: Налаштування та оцінка моделі
 Оптимізація гіперпараметрів: Використання крос-валідації для вибору оптимальних
гіперпараметрів моделі.
# Приклад оптимізації на python
from sklearn.model_selection import GridSearchCV
param_grid = {
'n_estimators': [50, 100, 150],
'max_depth': [None, 10, 20],
}
grid_search = GridSearchCV(RandomForestClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)
21
best_params = grid_search.best_params_
best_estimator = grid_search.best_estimator_
Крок 4: Виявлення фішингових атак
 Прогнозування на нових даних: Використання оптимізованої моделі для виявлення
підозрілих фішингових атак.
# Приклад використання моделі для виявлення фішингових атак на python
new_data = preprocess_new_data(new_data) # Попередня обробка нових даних
prediction = best_estimator.predict(new_data)

5.3. Висновки
Алгоритм Random Forest може ефективно застосовуватися для боротьби з таким видом
кіберзагроз, як фішингові атаки. Він дозволяє створювати моделі на основі багатьох випадкових
дерев, що усуває фішингові атаки шляхом голосування.
Використання цього алгоритму сприяє вчасному виявленню та класифікації підозрілих
фішингових веб-сторінок, листів чи повідомлень, забезпечуючи вищий рівень кібербезпеки та
зменшуючи їх ризик.

22
ВИСНОВОК

Застосування алгоритму Random Forest у вирішенні чотирьох ключових задач у контексті


кібербезпеки відображає різноманітність та гнучкість цього методу. Розглядаючи завдання
виявлення загроз та вразливостей у мережах, прогнозування атак та виявлення нових загроз,
підвищення рівня захисту, а також виявлення фішингових атак, ми спостерігаємо як спільні, так і
відмінні аспекти використання цього алгоритму.
Одним із спільних елементів є універсальність та адаптивність Random Forest. Він проявляє
ефективність у вирішенні різноманітних завдань, незважаючи на їх різноманітність та складність.
Метод може адаптуватися до нових умов та форм загроз, що є ключовою перевагою в динамічному
кіберсередовищі.
Однак, є відмінності у специфіці застосування Random Forest у кожній з цих задач.
Наприклад, в главі про підвищення рівня захисту, алгоритм акцентується на виявленні слабких
місць та побудові стратегій захисту систем. У той час, як у главі, що стосується фішингових атак,
акцент складається на голосуванні дерев для виявлення підозрілих повідомлень.
Іншою важливою відмінністю є характер використання даних для навчання моделі. У главі
про виявлення фішингових атак, збір даних може вимагати більш специфічної інформації про
текстові повідомлення або URL-адреси, в порівнянні з главою про прогнозування атак, де
важливою є аналіз історичних даних.
Отже, хоча Random Forest є потужним і універсальним методом у всіх цих задачах, його
використання в кожній має свої унікальні аспекти, специфічні для конкретного завдання в
кібербезпеці.

23
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
 https://habr.com/ru/articles/320726/
 https://alexanderdyakonov.wordpress.com/2016/11/14/%D1%81%D0%BB
%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B9-%D0%BB
%D0%B5%D1%81-random-forest/
 https://www.spotfire.com/glossary/what-is-a-random-forest
 https://towardsdatascience.com/random-forest-in-python-24d0893d51c0
 http://www.dy.nayka.com.ua/pdf/1_2022/4.pdf

24

You might also like