Professional Documents
Culture Documents
РГР Бусько
РГР Бусько
Розрахунково-графічна робота
із дисципліни «Безпека інформаційно-комунікаційних систем та мереж»
на тему «Дослідження задач кібербезпеки, для яких використовуються
технології штучного інтелекту»
Виконав:
Студент 4 курсу групи БІ-443Б
Бусько Андрій Петрович
Прийняв:
Висоцька Олена Олександрівна
Бали
Якість виконання
Додаткові завдання
Відповіді на
питання
Термін здачі
Сумарний бал
КИЇВ 2023
1
ЗМІСТ
2
ПЕРЕЛІК ПОЗНАЧЕНЬ І СКОРОЧЕНЬ
3
ВСТУП
5
Рис.1 Схематичне зображення алгоритму "Random Forest"
"Random Forest" складається з колекції дерев рішень, кожне з яких створюється зі зразка
даних, вибраного з навчального набору заміщенням. Цей метод, відомий як "бутстреп", дозволяє
кожному дереву використовувати лише частковий набір даних для навчання. Ще одним елементом
випадковості є вибір випадкових ознак, що додає різноманітність до набору даних та зменшує
кореляцію між деревами рішень.
6
1.3. Переваги та недоліки "Random Forest"
Перевагами використання "Random Forest" у кібербезпеці є:
Виявлення аномалій та вразливостей. Алгоритм дозволяє виявляти незвичайні
патерни та аномалії в мережевому трафіку. Це стає важливим аспектом для
виявлення потенційних атак або вразливостей у системах, що використовуються.
Прогнозування нових атак. Його здатність адаптуватись та прогнозувати нові форми
атак робить його незамінним інструментом для кіберзахисту. "Random Forest"
аналізує зміни у шаблонах атак і може передбачити нові типи загроз, що раніше були
невідомі.
Підвищення рівня захисту. Алгоритм допомагає не лише виявляти потенційні
ризики, а й реагувати на них. Ефективний моніторинг мережі та реагування на
виявлені загрози стають ключовими функціями "Random Forest" у сфері
кібербезпеки.
До недоліків можна віднести:
Робота з великими обсягами даних. У кібербезпеці важливо мати можливість
обробки великих обсягів інформації у реальному часі. Використання "Random Forest"
з великою кількістю дерев може створювати обчислювальні виклики через
необхідність обробки багатьох даних.
Зберігання та обробка інформації. Враховуючи об'ємність даних, вимагається
ефективне зберігання та обробка інформації. Це може становити виклик для систем з
обмеженими ресурсами.
Важливість узгодженості та оновлення моделі. У кібербезпеці необхідно забезпечити
постійне оновлення моделей "Random Forest" для врахування нових атак та змін у
загрозах, що може бути викликом через потребу постійного моніторингу і адаптації.
7
Розробка стратегій відповіді на атаки. Алгоритм не лише ідентифікує загрози, а й
надає важливі дані для розробки ефективних стратегій відповіді та захисту.
Цей алгоритм викорористовується для аналізу об'ємних даних та виявлення складних
взаємозв'язків між ними з метою прогнозування аномальних подій та виявлення загроз у
кіберпросторі. "Random Forest" дозволяє створювати моделі, які ефективно виявляють аномалії та
забезпечують інструменти захисту від потенційних атак.
Одним із ключових переваг "Random Forest" у кібербезпеці є його здатність реалізувати
аналіз великої кількості даних. Великий обсяг інформації, яку він може обробляти, дозволяє
виявляти складні аномалії, які можуть бути непоміченими менш потужними методами аналізу
даних.
До інших переваг алгоритму "Random Forest" у сфері кібербезпеки належить його здатність
до прогнозування нових типів атак. Алгоритм адаптується до змін у шаблонах атак та може
виявляти нові форми загроз, які раніше не були відомі.
Крім того, "Random Forest" допомагає в розробці стратегій відповіді на виявлені загрози.
Він не лише виявляє потенційні ризики, а й допомагає в забезпеченні ефективного моніторингу
мережі та реагуванні на вторгнення.
Загалом, використання алгоритму "Random Forest" у кібербезпеці є важливим засобом для
захисту від сучасних кіберзагроз. Його здатність аналізувати великі обсяги даних та прогнозувати
незвичайні події робить його корисним інструментом для створення ефективних систем захисту
від кібератак.
Цей приклад створює випадковий набір даних, розділяє його на навчальний та тестувальний
набори, ініціалізує модель Random Forest з 100 деревами рішень та навчає її на навчальних даних.
Після цього здійснює прогноз на тестових даних, оцінюючи точність моделі за допомогою метрики
точності (accuracy_score).
1.6. Висновок
Кібербезпека та машинне навчання в сучасному світі стають важливими компонентами
захисту інформації та інфраструктури. ML стає невід'ємною частиною кібербезпеки, дозволяючи
автоматизувати процес виявлення загроз та аналізувати великі обсяги даних для передбачення
атак.
Застосування алгоритмів машинного навчання, таких як Random Forest, у сфері
кібербезпеки стає ключовим елементом. Вони можуть аналізувати мережевий трафік,
ідентифікувати аномалії та передбачати можливі атаки, що робить їх важливим інструментом для
захисту систем від загроз.
9
2. ЗАДАЧА «ВИЯВЛЕННЯ ЗАГРОЗ ТА ВРАЗЛИВОСТЕЙ В
МЕРЕЖАХ»
2.3. Висновки
Random Forest виявляється потужним інструментом для виявлення загроз та вразливостей в
мережах. Використовуючи його можливості аналізу великих обсягів даних, алгоритм дозволяє
ідентифікувати незвичайні патерни та виявляти аномальні події в мережевому трафіку.
Основні етапи використання Random Forest для виявлення загроз включають збір та
підготовку даних, навчання моделі, налаштування та оцінку, а також підтримку та оновлення
моделі. Ці кроки стають ключовими для успішного використання даного алгоритму в кібербезпеці,
допомагаючи ефективно виявляти загрози та забезпечувати безпеку мереж та систем.
12
3. ЗАДАЧА «ПРОГНОЗУВАННЯ АТАК ТА ВИЯВЛЕННЯ
НОВИХ ЗАГРОЗ»
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. ЗАДАЧА «ПІДВИЩЕННЯ РІВНЯ ЗАХИСТУ»
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. ЗАДАЧА «ВИЯВЛЕННЯ ФІШИНГОВИХ АТАК»
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
ВИСНОВОК
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