RU2805014C1 - Способ генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления - Google Patents

Способ генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления Download PDF

Info

Publication number
RU2805014C1
RU2805014C1 RU2022132242A RU2022132242A RU2805014C1 RU 2805014 C1 RU2805014 C1 RU 2805014C1 RU 2022132242 A RU2022132242 A RU 2022132242A RU 2022132242 A RU2022132242 A RU 2022132242A RU 2805014 C1 RU2805014 C1 RU 2805014C1
Authority
RU
Russia
Prior art keywords
industrial control
control system
adversarial
attack
intrusion detection
Prior art date
Application number
RU2022132242A
Other languages
English (en)
Inventor
Александр Игоревич Гетьман
Андрей Игоревич Перминов
Дмитрий Александрович Рыболовлев
Андрей Георгиевич Мацкевич
Максим Николаевич Горюнов
Мария Ивановна Булгакова
Original Assignee
Федеральное государственное бюджетное учреждение науки Институт системного программирования им. В.П. Иванникова Российской академии наук
Filing date
Publication date
Application filed by Федеральное государственное бюджетное учреждение науки Институт системного программирования им. В.П. Иванникова Российской академии наук filed Critical Федеральное государственное бюджетное учреждение науки Институт системного программирования им. В.П. Иванникова Российской академии наук
Application granted granted Critical
Publication of RU2805014C1 publication Critical patent/RU2805014C1/ru

Links

Abstract

Настоящее техническое решение относится к области вычислительной техники. Технический результат заключается в повышении вариативности значений выбранных признаков для повышения вероятности генерации эффективных состязательных примеров, позволяющих уклониться от обнаружения атаки со стороны системы обнаружения вторжений. Технический результат достигается за счёт того, что при генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления полученные данные, имеющие то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, дополнительно пропускают через сетевое устройство с MTU, отличным от MTU промышленной системы управления. 2 ил.

Description

Изобретение относится к области информационных технологий, в частности к информационной безопасности, и может быть использовано для обучения систем обнаружения вторжений (СОВ).
В рамках мероприятия «Методы обнаружения и противодействия атакам с внедрением закладок и зловредного кода в модели машинного обучения», разрабатываемого исследовательским центром доверенного искусственного интеллекта ИСП РАН, известны подходы к реализации состязательных атак в отношении моделей обнаружения вторжений. Настоящее изобретение также относится к области состязательного обучения, развивает предложенные центром доверенного искусственного интеллекта ИСП РАН подходы и описывает способ генерации примеров, реализующих состязательные атаки уклонения в отношении системы обнаружения вторжений промышленной системы управления.
Термины, используемые в тексте описания изобретения:
Система обнаружения вторжений (СОВ) – программная система, предназначенная для выявления несанкционированной и вредоносной активности в компьютерной сети или на отдельном узле.
Сетевые устройства – электронные устройства, необходимые для работы компьютерной сети, например: маршрутизатор, коммутатор, концентратор, коммутационная панель и др.
MTU (maximum transmission unit) – максимальный полезный блок данных одного пакета, который может быть передан сетевым устройством (сетью промышленной системы управления как совокупностью сетевых устройств) без фрагментации.
Сейчас большое внимание во всем мире уделяется информационной безопасности, в частности, безопасности промышленных систем управления. Для решения данных проблем ведется разработка и внедрение систем обнаружения вторжений, сигнатурных и несигнатурных. Недостатком сигнатурных СОВ является невозможность обнаружения новых, ранее неизвестных компьютерных атак. Для обнаружения новых атак оправдано использование несигнатурных СОВ, среди которых наиболее широкое распространение получают системы, основанные на применении методов машинного обучения.
Однако СОВ промышленных систем управления, основанные на машинном обучении, уязвимы в определенных аспектах. Моделью машинного обучения можно манипулировать посредством выборок, намеренно созданных злоумышленником. Атакующий, специальным образом подобрав пример входных данных, может заставить модель ошибаться: незначительное изменение примера входных данных приведёт к ошибке в ответе модели (классификатора) машинного обучения. Совокупность примеров входных данных модели, на которых модель ошибается, т.е. ошибочно классифицирует, называется состязательной выборкой. Возможность реализации состязательных атак создает потенциальную угрозу безопасности системы, основанной на машинном обучении.
Таким образом, проведение исследований в области состязательного обучения принципиально важно и актуально для обеспечения информационной безопасности. Разработка способов генерации состязательных примеров позволит смоделировать действия потенциального атакующего, которые могут привести к ошибке СОВ и тем самым позволят уклониться от обнаружения атаки, и выработать адекватные защитные механизмы.
Известен по патенту US20210067549A1 Способ обнаружения вторжения в компьютерную сеть и реагирования на него, включающий: генерацию набора обучающих состязательных данных, в который входят исходные примеры и состязательные примеры, посредством нарушения одного или нескольких исходных примеров с помощью интегрированной градиентной атаки для генерации состязательных примеров; кодирование исходной и состязательной выборок для генерации соответствующих исходных выборок и состязательных графовых представлений, основанных на агрегировании окрестностей узлов; обучение нейронной сети на основе графов для обнаружения аномальной активности в компьютерной сети с использованием состязательного набора обучающих данных и выполнение действия по обеспечению безопасности в ответ на обнаруженную аномальную активность.
Основным недостатком данного способа является обобщенное представление способа генерации состязательных примеров, основанное на применении так называемой «интегрированной градиентной атаки». Не раскрываются конкретные действия по получению состязательного примера из исходного примера; не указывается подмножество изменяемых признаков признакового пространства; не учитываются известные ограничения в области генерации признаков сессий сетевого трафика со стороны атакующего, например, невозможность прямого произвольного изменения значений признаков сессий сетевого трафика: длительности сессии, статистики длин пакетов, межпакетных задержек и др.
Наиболее близким по технической сущности и выполняемым функциям, выбранный в качестве прототипа, является Способ генерации состязательных примеров для промышленной системы управления по патенту US20210319113A1, включающий следующие шаги:
1) прослушивают генератором образцов трафик промышленной системы управления для получения данных, имеющих то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, размечают полученные данные и принимают размеченные аномальные данные в качестве исходных примеров атаки;
2) выполняют анализ трафика промышленной системы управления, извлекают признаки, включающие IP-адрес источника, номер порта источника, IP-адрес назначения, номер порта назначения, промежуток времени между пакетами, время передачи пакета и код назначения пакета;
3) создают и обучают классификатор машинного обучения на основе признаков, извлеченных на шаге 2;
4) преобразуют задачу обучения системы обнаружения вторжений промышленной системы управления в задачу оптимизации с использованием классификатора, созданного на шаге 3, и решают задачу оптимизации для получения состязательных примеров, при этом задача оптимизации состоит в следующем:
x* = arg min g(x) и
d(x*, x0) < dmax,
где x0 – исходный пример атаки;
x* – сформированный состязательный пример;
g(x) – вероятность того, что пример x* будет определён как аномальный пример (пример атаки);
d(x*, x0) – расстояние между состязательным примером и исходным примером атаки;
dmax – максимальное евклидово расстояние, разрешенное промышленной системой управления, указывающее на то, что состязательный пример не оказывает вредоносного воздействия, если расстояние превышено;
5) тестируют состязательный пример, созданный на шаге 4, в реальной промышленной системе управления, при этом если состязательный пример успешно обходит систему обнаружения вторжений промышленной системы управления и сохраняет возможность атаки, он принимается в качестве эффективного состязательного примера, а если состязательный пример не может уклониться от системы обнаружения вторжений промышленной системы управления или сохранить возможность атаки, состязательный пример отбрасывают.
Недостатком способа-прототипа является ограниченная вариативность значений признаков выбранного авторами признакового пространства, поскольку этап прослушивания трафика промышленной системы управления выполняется при конкретных настройках сети, а не в широком диапазоне допустимых настроек сети. Следствием поиска состязательных примеров в условиях ограниченной области определения признаков является относительно невысокая вероятность нахождения таких состязательных примеров.
Техническая проблема заключается в низкой вероятности нахождения состязательных примеров по причине ограниченной вариативности значений выбранных признаков.
Техническим результатом является повышение вариативности значений выбранных признаков для повышения вероятности генерации эффективных состязательных примеров, позволяющих уклониться от обнаружения атаки со стороны СОВ.
Техническая проблема решается и технический результат реализуется за счет того, что в способе генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления используют следующую последовательность действий:
- прослушивают генератором образцов трафика через сетевое устройство с MTU промышленной системы управления для получения данных, имеющих то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, размечают полученные данные и принимают размеченные аномальные данные в качестве исходных примеров атаки;
- далее анализируют трафик промышленной системы управления, извлекают признаки, включающие IP-адрес источника, номер порта источника, IP-адрес назначения, номер порта назначения, промежуток времени между пакетами, время передачи пакета и код назначения пакета;
- после чего создают и обучают классификатор машинного обучения на основе признаков, полученных при анализе трафика;
- преобразуют задачу обучения системы обнаружения вторжений промышленной системы управления в задачу оптимизации с использованием созданного классификатора и решают задачу оптимизации для получения состязательных примеров, при этом задача оптимизации состоит в следующем:
x* = arg min g(x) и
d(x*, x0) < dmax,
где x0 – исходный пример атаки;
x* – сформированный состязательный пример;
g(x) – вероятность того, что пример x* будет определён как аномальный пример (пример атаки);
d(x*, x0) – расстояние между состязательным примером и исходным примером атаки;
dmax – максимальное евклидово расстояние, разрешенное промышленной системой управления, указывающее на то, что состязательный пример не оказывает вредоносного воздействия, если расстояние превышено;
- затем тестируют созданный состязательный пример в реальной промышленной системе управления и по результату принимают либо не принимают в качестве эффективного состязательного примера.
Отличительной особенностью способа является то, что полученные данные, имеющие то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, дополнительно пропускают через сетевое устройство с MTU, отличным от MTU промышленной системы управления.
Прохождение сессии сетевого трафика через устройство с MTU, отличным от MTU промышленной системы управления, например, MTU было 1520 байт, а сессия сетевого трафика дополнительно пропускается через устройство с MTU 400 байт, приводит к изменению распределения длин пакетов в сессии, межпакетных задержек, длительности сессии, скорости поступления пакетов, характеристик указанных распределений и др. Таким образом достигается повышение вариативности значений признаков исходных примеров, расширяется область поиска, повышается вероятность нахождения состязательных примеров и эффективных состязательных примеров. При этом важным фактом при реализации заявляемого способа является учет известных ограничений в области генерации признаков сессий сетевого трафика со стороны атакующего, а именно невозможность прямого произвольного изменения значений отдельных признаков сессий сетевого трафика, т.к. модификация значений признаков сессии сетевого трафика атакующим выполняется дополнительным действием, реализуемым на практике – пропуском трафика через сетевое устройство с другим MTU.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностями признаков, тождественными всем признакам заявленного способа, отсутствуют. Следовательно, заявленное изобретение соответствует условию патентоспособности «новизна».
Перечисленная новая совокупность существенных признаков обеспечивает расширение возможностей способа прототипа за счет того, что сессии сетевого трафика, соответствующие состязательным примерам, дополнительно пропускают через сетевое устройство с MTU, отличным от MTU промышленной системы управления.
Результаты поиска известных решений в данной и смежной областях техники с целью выявления признаков, совпадающих с отличительными от прототипов признаками заявленного изобретения, показали, что они не следуют явным образом из уровня техники. Из определенного заявителем уровня техники не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения на достижение указанного технического результата. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
«Промышленная применимость» способа обусловлена технической возможностью реализации данного способа.
Заявленный способ поясняется чертежами:
фиг. 1 – блок-схема способа генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления.
фиг. 2 – схема генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления.
В блоке 1 (фиг. 1) прослушивают генератором образцов (фиг. 2, блок 2) трафик промышленной системы управления (фиг. 2, блок 3) для получения данных, имеющих то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления (фиг. 2, блок 4).
В блоке 2 (фиг. 1) полученные в блоке 1 (фиг. 1) данные дополнительно пропускают через сетевое устройство (фиг. 2, блок 1) с MTU, отличным от MTU промышленной системы управления (фиг. 2, блок 3), в результате чего размеры пакетов этих данных становятся отличными от размеров пакетов в промышленной системе управления.
В блоке 3 (фиг. 1) размечают полученные данные и принимают размеченные аномальные данные в качестве исходных примеров атаки (фиг. 2, блок 5).
В блоке 4 (фиг. 1) выполняют анализ трафика промышленной системы управления, извлекают признаки (фиг. 2, блок 6), включающие IP-адрес источника, номер порта источника, IP-адрес назначения, номер порта назначения, промежуток времени между пакетами, время передачи пакета и код назначения пакета.
В блоке 5 (фиг. 1) создают и обучают классификатор машинного обучения (фиг. 2, блок 7) на основе признаков (фиг. 2, блок 6), извлеченных в блоке 4 (фиг. 1).
В блоке 6 (фиг. 1) преобразуют задачу обучения состязательной системы обнаружения вторжений промышленной системы управления в задачу оптимизации с использованием классификатора (фиг. 2, блок 7), созданного в блоке 5 (фиг. 1).
В блоке 7 (фиг. 1) решают задачу оптимизации для получения состязательных примеров (фиг. 2, блок 8), при этом задача оптимизации состоит в следующем:
x* = arg min g(x) и
d(x*, x0) < dmax,
где x0 – исходный пример атаки;
x* – сформированный состязательный пример;
g(x) – вероятность того, что пример x* будет определён как аномальный пример (пример атаки);
d(x*, x0) – расстояние между состязательным примером и исходным примером атаки;
dmax – максимальное евклидово расстояние, разрешенное промышленной системой управления, указывающее на то, что состязательный пример не оказывает вредоносного воздействия, если расстояние превышено;
В блоке 8 (фиг. 1) тестируют состязательный пример (фиг. 2, блок 8), созданный в блоке 7 (фиг. 1), в реальной промышленной системе управления (фиг. 2, блок 3).
В блоке 9 (фиг. 1) проверяют условия, обходит ли состязательный пример систему обнаружения вторжений промышленной системы управления и сохраняет ли он возможность атаки. Если условия выполняются, то его принимают (фиг. 1, блок 10) в качестве эффективного состязательного примера (фиг. 2, блок 9), а если условия не выполняются, состязательный пример отбрасывают (фиг. 1, блок 11).
Заявленный способ подтвержден примером программы на языке программирования python с достигнутым заявленным результатом. В программе осуществляется построение классификатора и поиск состязательных примеров для данных, полученных на основе трафика промышленной системы управления с MTU, равным 1520 – эти данные соответствуют прототипу, и данных, полученных из трафика промышленной системы управления и дополнительно пропущенных через сетевое устройство с MTU, равным 400 – эти данные соответствуют дополнительному действию в заявленном способе. Затем производится сравнение количества обнаруженных состязательных примеров. Ожидается, что дополнительное действие в заявленном способе позволит увеличить количество обнаруженных эффективных состязательных примеров, и, следовательно, повысить вероятность генерации эффективных состязательных примеров, позволяющих уклониться от обнаружения атаки со стороны СОВ. Указанный результат соответствует заявленному техническому результату.
Ниже представлено описанием программы и выполняемых действий.
Загрузка необходимых библиотек:
import math
import pickle
from typing import List
import numpy as np
import pandas as pd
from sklearn import model_selection
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, , precision_score, recall_score
from sklearn.model_selection import train_test_split
Далее прослушивают трафик через сетевое устройство с MTU промышленной системы управления (1520 байт) для получения данных, имеющих то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, размечают полученные данные. В примере размеченные полученные данные записывают в файл 'Results_1520.csv' и затем читают в программе. Метки, соответствующие атакам (признак 'GlobalLabel'), размечены как "Attack", метки, означающие отсутствие атаки – "Benign". На основе этих данных создается датафрейм df_1520:
df_1520 = pd.read_csv('Results_1520.csv')
Перевод номинальных значений признака 'GlobalLabel' в датафрейме df_1520 в цифровые ("Attack" переводится в "1", "Benign" – в "0"):
df_1520['GlobalLabel']
= df_1520['GlobalLabel'].apply(lambda x: 0 if x == 'Benign' else 1)
Создание признака 'Packet Time', равного 1 / 'Flow Packets/s' и умножение его на 100000 для получения значения, превышающего 1:
df_1520['Packet Time'] = df_1520['Flow Packets/s'].apply(lambda x: 100000/x)
Удаление точек в значениях признаков 'Source IP' и 'Destination IP':
df_1520['Source IP'] = df_1520['Source IP'].apply(lambda x: x.replace('.',''))
df_1520['Destination IP'] = df_1520['Destination IP'].apply(lambda x: x.replace('.',''))
Выбор признаков:
• IP-адрес источника - 'Source IP';
• номер порта источника - 'Source Port';
• IP-адрес назначения - 'Destination IP';
• номер порта назначения -'Destination Port';
• промежуток времени между пакетами -'Flow IAT Mean';
• время передачи пакета - 'Packet Time':
webattack_features = ['Source IP',
'Source Port',
'Destination IP',
'Destination Port',
'Flow IAT Mean',
'Packet Time']
Просмотр выбранных признаков:
df_1520[webattack_features]
Source IP Source Port Destination IP Destination Port Flow IAT Mean Packet Time
0 8314919850 60514 1721803 443 1.634757e+05 16155.244716
1 8314919850 60516 1721803 443 5.279682e+05 50841.377774
2 8314919850 60628 1721803 443 7.404261e+05 71194.815457
3 8314919850 60630 1721803 443 1.372046e+06 131239.151936
4 8314919850 60786 1721803 443 1.007281e+06 95132.083668
... ... ... ... ... ... ...
17941 8314919850 54480 1721803 443 3.237820e+04 2698.183333
17942 8314919850 54650 1721803 443 8.489444e+02 80.426316
17943 8314919850 54652 1721803 443 5.656823e+05 53590.957786
17944 8314919850 54734 1721803 443 5.591972e+05 52976.573547
17945 8314919850 54816 1721803 443 1.038160e+04 865.133333
17946 rows × 6 columns
Формирование целевого вектора обучающей выборки:
y = df_1520['GlobalLabel'].values
Формирование матрицы объектов-признаков обучающей выборки:
X = df_1520[webattack_features].values
Просмотр размерности матрицы объектов-признаков и целевого вектора:
print(X.shape, y.shape)
(17946, 6) (17946,)
Разделение обучающей выборки на обучающую (X_train, y_train) и тестовую (X_test, y_test):
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, shuffle=True, random_state=42)
Построение классификатора типа "случайный лес":
RFmodel = RandomForestClassifier(max_depth=5, n_estimators=5, max_features=3)
Обучение классификатора на обучающей выборке:
RFmodel.fit(X_train, y_train)
Формирование вектора предсказаний модели на тестовой выборке:
y_pred = RFmodel.predict(X_test)
Получение матрицы ошибок модели RFmodel на исходной тестовой выборке:
matrix = confusion_matrix(y_test, y_pred)
print(matrix)
array([[1731, 61],
[ 178, 2517]])
Функция, осуществляющая вычисление и вывод метрик качества:
def print_metrics(y_eval: np.ndarray, y_pred: np.ndarray, average: str = 'binary') -> List[float]:
accuracy = accuracy_score(y_eval, y_pred)
precision = precision_score(y_eval, y_pred, average=average)
recall = recall_score(y_eval, y_pred, average=average)
f1 = f1_score(y_eval, y_pred, average=average)
print('Accuracy =', accuracy)
print('Precision =', precision)
print('Recall =', recall)
print('F1 =', f1)
Вывод метрик качества модели RFmodel на исходной тестовой выборке:
print_metrics(y_test, y_pred)
Accuracy = 0.9467350122576331
Precision = 0.9763382467028704
Recall = 0.9339517625231911
F1 = 0.954674758202162
Поиск состязательных примеров согласно способу-прототипу.
Формирование начального состояния состязательной выборки:
X_test_evasion_attack = X_test.copy()
Задача обучения состязательной системы обнаружения вторжений промышленной системы управления формулируется в виде задачи оптимизации согласно способу-прототипу. Из тестовой выборки берутся все сессии с меткой "атака", на которых модель не ошибается. Оптимизационная задача в настоящем примере для простоты решается методом перебора: для каждой сессии перебором изменяется значение признака "Packet Time" (от исходного до исходного+500). Если получилось изменить ответ классификатора, такой пример считается состязательным. Все состязательные примеры выводятся. Изменение значения признака "Packet Time" на практике может осуществляться внесением задержки на физическом уровне, поэтому такое изменение сохраняет действие атаки и обнаруженные представленным образом состязательные примеры являются эффективными состязательными примерами.
for i in range(0, X_test.shape[0]):
if (y_test[i] == 1) and (RFmodel.predict(X_test[[i]]) == 1):
X_test_attack = X_test[[i]]
j = math.ceil(X_test[i, 5])
for Packet_Time in range(j, j + 500):
X_test_attack[0, 5] = Packet_Time
pred = RFmodel.predict(X_test_attack)
if pred[0] < 1:
print(i, Packet_Time)
X_test_evasion_attack[i, 5] = Packet_Time
break
61 53083
261 22362
400 22362
598 22362
745 53083
831 22362
893 22362
948 22362
987 22362
1003 22362
1128 22362
1257 22362
1475 22362
1592 53083
1681 22362
1827 53343
1839 22362
1851 22362
1887 22362
2202 2800
2378 22362
2421 22362
2578 22362
2725 1720
2851 53083
2978 22362
3018 22362
3033 53343
3041 22362
3135 53083
3247 22362
3488 53083
3551 53083
3555 22362
3701 2800
3852 22362
3918 53083
4055 22362
4100 22362
4117 22362
4118 53083
4237 22362
4265 22362
4291 22362
4295 53343
4377 22362
4444 22362
4452 53343
4463 53083
Общее количество обнаруженных эффективных состязательных примеров (согласно способу-прототипу) – 49.
Сравнение предсказаний модели для одного из векторов исходной тестовой выборки и состязательного примера:
print("Пример строки исходной тестовой выборки:")
print(X_test[[61]])
pred = RFmodel.predict(X_test[[61]])
print("Предсказание модели для исходной тестовой выборки: ", pred[0])
print("Состязательный пример:")
print(X_test_evasion_attack[[61]])
y_pred_evasion_attack = RFmodel.predict(X_test_evasion_attack[[61]])
print("Предсказание модели для состязательного примера: ", y_pred_evasion_attack[0])
Пример строки исходной тестовой выборки:
[[' 8314919850' 39372 ' 1721803' 443 557563.11111111 52821.76845083388]]
Предсказание модели для исходной тестовой выборки: 1
Состязательный пример:
[[' 8314919850' 39372 ' 1721803' 443 557563.11111111 53083]]
Предсказание модели для состязательного примера: 0
Состязательный пример "обманывает" модель: при сохранении свойства атаки классификатор изменил ответ с 1 ("атака") на 0 ("не атака").
Формирование вектора предсказаний модели на тестовой выборке с добавленными состязательными примерами:
y_pred_evasion_attack = RFmodel.predict(X_test_evasion_attack)
Получение матрицы ошибок модели RFmodel на тестовой выборке с добавленными состязательными примерами:
matrix = confusion_matrix(y_test, y_pred_evasion_attack)
matrix
array([[1731, 61],
[ 227, 2468]])
Вывод метрик качества модели RFmodel на тестовой выборке с добавленными состязательными примерами:
print_metrics(y_test, y_pred_evasion_attack)
Accuracy = 0.9358145754401604
Precision = 0.9758797943851325
Recall = 0.9157699443413729
F1 = 0.9448698315467076
Качество модели снизилось, поскольку состязательные примеры, добавленные в тестовую выборку, "обманывают" модель.
Далее выполняются шаги, соответствующие дополнительному действию в заявленном способе.
Полученные из трафика промышленной системы управления данные, имеющие то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, дополнительно пропускают через сетевое устройство с MTU, равным 400 байтам, и отличным от MTU промышленной системы управления, равным 1520 байтам. В примере размеченные полученные данные записывают в файл 'Results_400.csv' и затем читают в программе. Метки, соответствующие атакам (признак 'GlobalLabel'), размечены как "Attack", отсутствие атаки – "Benign". На основе этих данных создается датафрейм df_400:
df_400 = pd.read_csv('Results_400.csv')
Перевод номинальных значений признака 'GlobalLabel' в датафрейме df_400 в цифровые ("Attack" переводится в "1", "Benign"- в "0"):
df_400['GlobalLabel'] = df_400['GlobalLabel'].apply(lambda x: 0 if x == 'Benign' else 1)
Создание признака 'Packet Time', равного 1 / 'Flow Packets/s' и умножение его на 100000 для получения значения, превышающего 1:
df_400['Packet Time'] = df_400['Flow Packets/s'].apply(lambda x: 100000/x)
Удаление точек в значениях признаков 'Source IP' и 'Destination IP':
df_400['Source IP'] = df_400['Source IP'].apply(lambda x: x.replace('.',''))
df_400['Destination IP'] = df_400['Destination IP'].apply(lambda x: x.replace('.',''))
Просмотр признаков webattack_features датафрейма df_400:
df_400[webattack_features]
Source IP Source Port Destination IP Destination Port Flow IAT Mean Packet Time
0 8314919850 60514 1721803 443 1.634757e+05 16155.244716
1 8314919850 60516 1721803 443 5.279682e+05 50841.377774
2 8314919850 60628 1721803 443 7.404261e+05 71194.815457
3 8314919850 60630 1721803 443 1.372046e+06 131239.151936
4 8314919850 60786 1721803 443 1.007281e+06 95132.083668
... ... ... ... ... ... ...
9725 8314919850 54480 1721803 443 3.237820e+04 2698.183333
9726 8314919850 54650 1721803 443 8.489444e+02 80.426316
9727 8314919850 54652 1721803 443 5.656823e+05 53590.957786
9728 8314919850 54734 1721803 443 5.591972e+05 52976.573547
9729 8314919850 54816 1721803 443 1.038160e+04 865.133333
9730 rows × 6 columns
Формирование целевого вектора обучающей выборки:
y_400 = df_400['GlobalLabel'].values
Формирование матрицы объектов-признаков обучающей выборки:
X_400 = df_400[webattack_features].values
Просмотр размерности матрицы объектов-признаков и целевого вектора:
print(X_400.shape, y_400.shape)
(9730, 6) (9730,)
Разделение обучающей выборки на обучающую (X_400_train, y_400_train) и тестовую (X_400_test, y_400_test):
X_400_train, X_400_test, y_400_train, y_400_test = train_test_split(X_400, y_400, test_size=0.25, shuffle=True, random_state=42)
Построение классификатора типа "случайный лес":
RFmodel_400 = RandomForestClassifier(max_depth=5, n_estimators=5, max_features=3)
Обучение классификатора на обучающей выборке:
RFmodel_400.fit(X_400_train, y_400_train)
Формирование вектора предсказаний модели на тестовой выборке:
y_400_pred = RFmodel_400.predict(X_400_test)
Получение матрицы ошибок модели RFmodel_400 на исходной тестовой выборке:
matrix = confusion_matrix(y_400_test, y_400_pred)
print(matrix)
array([[1167, 64],
[ 28, 1174]])
Вывод метрик качества модели RFmodel_400 на исходной тестовой выборке:
print_metrics(y_400_test, y_400_pred)
Accuracy = 0.9621866009042335
Precision = 0.9483037156704361
Recall = 0.9767054908485857
F1 = 0.962295081967213
Поиск состязательных примеров.
Формирование начального состояния состязательной выборки:
X_400_test_evasion_attack = X_400_test.copy()
Из тестовой выборки берутся все сессии с меткой "атака", на которых модель не ошибается. Для каждой сессии перебором изменяется значение признака "Packet Time" (от исходного до исходного+500). Если получилось изменить ответ классификатора, такой пример считается состязательным. Все состязательные примеры выводятся.
for i in range(0, X_400_test.shape[0]):
if (y_400_test[i] == 1) and (RFmodel_400.predict(X_400_test[[i]]) == 1):
X_400_test_attack = X_400_test[[i]]
j = math.ceil(X_400_test[i, 5])
for Packet_Time in range(j, j + 500):
X_400_test_attack[0, 5] = Packet_Time
pred = RFmodel_400.predict(X_400_test_attack)
if pred[0] < 1:
print(i, Packet_Time)
X_400_test_evasion_attack[i, 5] = Packet_Time
break
40 26658
117 26658
186 26658
217 26658
231 26658
280 26658
321 26658
353 26658
355 2981
475 26658
500 26658
525 53758
552 26658
571 2252
581 26658
637 26658
652 53758
689 26658
720 2252
736 26658
934 26658
935 2981
941 26658
1032 26658
1184 26658
1226 26658
1229 26658
1243 2252
1287 26658
1291 26658
1605 26658
1644 26658
1655 26658
1704 26658
1778 2981
1799 26658
1856 26658
1868 26658
1889 26658
1916 26658
1953 26658
1975 26658
1984 26658
1991 26658
2014 26658
2017 3554
2039 26658
2091 26658
2187 26658
2197 26658
2265 26658
2278 26658
2320 26658
2327 26658
2331 26658
2353 26658
2365 26658
2371 26658
2410 26658
2425 26658
Общее количество обнаруженных эффективных состязательных примеров после выполнения дополнительного действия заявленного способа – 60.
Сравнение предсказаний модели для одного из векторов исходной тестовой выборки и состязательного примера:
print("Пример строки исходной тестовой выборки:")
print(X_400_test[[40]])
pred_400 = RFmodel_400.predict(X_400_test[[40]])
print("Предсказание модели для исходной тестовой выборки: ", pred_400[0])
print("Состязательный пример:")
print(X_400_test_evasion_attack[[40]])
y_400_pred_evasion_attack = RFmodel_400.predict(X_400_test_evasion_attack[[40]])
print("Предсказание модели для состязательного примера: ", y_400_pred_evasion_attack[0])
Пример строки исходной тестовой выборки:
[[' 8314919850' 42692 ' 1721803' 443 280166.66666667 26542.105274403366]]
Предсказание модели для исходной тестовой выборки: 1
Состязательный пример:
[[' 8314919850' 42692 ' 1721803' 443 280166.66666667 26658]]
Предсказание модели для состязательного примера: 0
Состязательный пример "обманывает" модель: при сохранении свойства атаки классификатор изменил ответ с 1 ("атака") на 0 ("не атака").
Формирование вектора предсказаний модели на тестовой выборке с добавленными состязательными примерами:
y_400_pred_evasion_attack = RFmodel_400.predict(X_400_test_evasion_attack)
Получение матрицы ошибок модели RFmodel_400 на тестовой выборке с добавленными состязательными примерами:
matrix = confusion_matrix(y_400_test, y_400_pred_evasion_attack)
print(matrix)
array([[1167, 64],
[ 88, 1114]])
Вывод метрик качества модели RFmodel_400 на тестовой выборке с добавленными состязательными примерами:
print_metrics(y_400_test, y_400_pred_evasion_attack)
Accuracy = 0.9375256884504727
Precision = 0.9456706281833617
Recall = 0.9267886855241264
F1 = 0.9361344537815126
Качество модели снизилось, поскольку состязательные примеры, добавленные в тестовую выборку, "обманывают" модель.
Выводы.
При генерации состязательных примеров согласно способу-прототипу обнаружено 49 эффективных состязательных примеров. После выполнения дополнительного действия заявленного способа, а именно дополнительного пропуска трафика через сетевое устройство с MTU, отличным от MTU промышленной системы управления, удалось обнаружить ещё 60 эффективных состязательных примеров. Общее количество обнаруженных эффективных состязательных примеров в заявленном способе составило 109 примеров.
Дополнительное действие в заявленном способе – пропуск трафика через сетевое устройство с MTU, отличным от MTU промышленной системы управления – приводит к большей вариативности значений признаков исходных примеров, расширяет область поиска, повышает вероятность нахождения состязательных примеров и эффективных состязательных примеров.

Claims (14)

  1. Способ генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления, включающий следующие последовательности действий:
  2. прослушивают генератором образцов трафик через сетевое устройство с максимальным полезным блоком данных одного пакета (MTU), который передают протоколом без фрагментации промышленной системы управления для получения данных, имеющих то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, размечают полученные данные и принимают размеченные аномальные данные в качестве исходных примеров атаки;
  3. выполняют анализ трафика промышленной системы управления, извлекают признаки, включающие IP-адрес источника, номер порта источника, IP-адрес назначения, номер порта назначения, промежуток времени между пакетами, время передачи пакета и код назначения пакета;
  4. создают и обучают классификатор машинного обучения на основе признаков, полученных при анализе трафика;
  5. преобразуют задачу обучения системы обнаружения вторжений промышленной системы управления в задачу оптимизации с использованием созданного классификатора и решают задачу оптимизации для получения состязательных примеров, при этом задача оптимизации состоит в следующем:
  6. x* = arg min g(x) и
  7. d(x*, x0) < dmax,
  8. где x0 – исходный пример атаки;
  9. x* – сформированный состязательный пример;
  10. g(x) – вероятность того, что пример x* будет определён как аномальный пример (пример атаки);
  11. d(x*, x0) – расстояние между состязательным примером и исходным примером атаки;
  12. dmax – максимальное евклидово расстояние, разрешенное промышленной системой управления, указывающее на то, что состязательный пример не оказывает вредоносного воздействия, если расстояние превышено;
  13. тестируют созданный состязательный пример в реальной промышленной системе управления и по результату принимают либо не принимают в качестве эффективного состязательного примера;
  14. отличающийся тем, что полученные данные, имеющие то же распределение, что и обучающие данные, используемые системой обнаружения вторжений промышленной системы управления, дополнительно пропускают через сетевое устройство с MTU, отличным от MTU промышленной системы управления.
RU2022132242A 2022-12-09 Способ генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления RU2805014C1 (ru)

Publications (1)

Publication Number Publication Date
RU2805014C1 true RU2805014C1 (ru) 2023-10-10

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2839551C1 (ru) * 2024-11-01 2025-05-05 Федеральное государственное бюджетное учреждение науки Институт системного программирования им. В.П. Иванникова Российской академии наук Способ генерации состязательных примеров для сетевой системы обнаружения вторжений

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140376427A1 (en) * 2013-06-19 2014-12-25 Cisco Technology, Inc. Dynamically adjusting frame mtu to support low-latency communication
US20170223037A1 (en) * 2016-01-29 2017-08-03 Acalvio Technologies, Inc. Using high-interaction networks for targeted threat intelligence
CN111709034A (zh) * 2020-05-29 2020-09-25 成都金隼智安科技有限公司 基于机器学习的工控环境智能安全检测系统与方法
RU2738460C1 (ru) * 2020-02-26 2020-12-14 Общество с ограниченной ответственностью "Сайберлимфа" Способ выявления аномалий в работе сети автоматизированной системы
US20210319113A1 (en) * 2019-01-07 2021-10-14 Zhejiang University Method for generating malicious samples against industrial control system based on adversarial learning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140376427A1 (en) * 2013-06-19 2014-12-25 Cisco Technology, Inc. Dynamically adjusting frame mtu to support low-latency communication
US20170223037A1 (en) * 2016-01-29 2017-08-03 Acalvio Technologies, Inc. Using high-interaction networks for targeted threat intelligence
US20210319113A1 (en) * 2019-01-07 2021-10-14 Zhejiang University Method for generating malicious samples against industrial control system based on adversarial learning
RU2738460C1 (ru) * 2020-02-26 2020-12-14 Общество с ограниченной ответственностью "Сайберлимфа" Способ выявления аномалий в работе сети автоматизированной системы
CN111709034A (zh) * 2020-05-29 2020-09-25 成都金隼智安科技有限公司 基于机器学习的工控环境智能安全检测系统与方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Mohammed Baz "SEHIDS: Self Evolving Host-Based Intrusion Detection System for IoT Networks", опубл. 29.08.2022 на 35 страницах [найдено 26.05.2023], размещено в Интернет по адресу URL: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9460002/pdf/sensors-22-06505.pdf. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2839551C1 (ru) * 2024-11-01 2025-05-05 Федеральное государственное бюджетное учреждение науки Институт системного программирования им. В.П. Иванникова Российской академии наук Способ генерации состязательных примеров для сетевой системы обнаружения вторжений

Similar Documents

Publication Publication Date Title
Schüppen et al. {FANCI}: Feature-based automated {NXDomain} classification and intelligence
Chin et al. Phishlimiter: A phishing detection and mitigation approach using software-defined networking
Nguyen et al. Proactive detection of DDoS attacks utilizing k-NN classifier in an anti-DDoS framework
Merino et al. Expansion of cyber attack data from unbalanced datasets using generative adversarial networks
CN118802341B (zh) 基于蜜罐的apt攻击捕获和检测方法、装置、介质
CN112217800B (zh) 一种蜜罐识别方法、系统、装置及介质
Alyasiri et al. Grammatical evolution for detecting cyberattacks in Internet of Things environments
Almorabea et al. IoT network-based intrusion detection framework: a solution to process ping floods originating from embedded devices
CN119854001A (zh) 一种基于蜜罐技术的欺骗防御方法、装置及介质
EP4666541A1 (en) Identifying malware in a computer network
Huang et al. Mining Web User Behaviors to Detect Application Layer DDoS Attacks.
RU2805014C1 (ru) Способ генерации состязательных примеров для системы обнаружения вторжений промышленной системы управления
Pouget et al. Internet attack knowledge discovery via clusters and cliques of attack traces
Ghosh et al. Using auxiliary inputs in deep learning models for detecting DGA-based domain names
Prathap et al. Ai-enabled fast detection of ddos and adversary ddos attacks in sdn
Woodiss-Field et al. Towards evaluating the effectiveness of botnet detection techniques
Borah et al. DDoS attack detection using machine learning techniques
Saad et al. Neighbor discovery protocol anomaly-based detection system using neural network algorithm
RU2839551C1 (ru) Способ генерации состязательных примеров для сетевой системы обнаружения вторжений
RU2823895C1 (ru) Способ генерации состязательных примеров для сетевой системы обнаружения вторжений
CN108881255B (zh) 一种基于c&amp;c通信状态转换检测僵尸网络的方法
Zhang et al. Research on Unknown Distributed Denial-of-Service Attacks Intrusion Detection Based on Deep Learning
Petrov et al. Domainator: Detecting and Identifying DNS-Tunneling Malware Using Metadata Sequences
Mukkamala et al. Computational intelligent techniques for detecting denial of service attacks
Açıkgözoğlu Comparison of machine learning algorithms for detection of data exfiltration over dns