$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
В этом разделе рассматриваются материалы и методы, связанные с системами обнаружения атак, в среде IoT. Для повторения экспериментов на наборе данных CIC-IoT-2023 этот протокол описывает конкретные процедуры. Последующий Таблица материалов содержит список всего используемого аппаратного и программного обеспечения. Python (pandas, scikit-learn и TensorFlow Keras) используется для реализации конвейера, который запускается на Google Colab с PySpark, доступным для предварительной обработки больших файлов. Подробное описание процедур предварительной обработки данных предоставлено.
Набор данных
Набор данных CIC-IoT-2023, опубликованный Канадским институтом кибербезопасности Университета Нью-Брансуика. «CIC IoT dataset 2023» (страница UNB CIC datasets) и статья34 являются официальной страницой и статьёй CIC для набора данных. Набор данных можно скачать с сайта CIC и он доступен широкой публике. Вместо использования сырых PCAP в этом исследовании используются заранее извлечённые CSV-файлы признаков (flows/features). Wireshark/mergecap и CICFlowMeter используются в исходных экспериментах, которые генерировали набор данных; в этой работе используются featured CSV. Этот набор данных основан на реальных IoT-устройствах и используется в данном исследовании. В наборе данных включены записи о 33 известных атаках на 105 различных IoT-устройствах. В отличие от предыдущих наборов данных IoT, CIC-IoT-2023 включает широкий спектр типов атак. Количество каждой метки, связанной с безвредным трафиком, показано на рисунке 1. Всего этот набор данных состоит из 46 атрибутов и одной метки. По сравнению с CSE-CIC-IDS 2018, где было 84 функции, у CIC-IoT-2023 на 37 функций меньше.

Рисунок 1: Количество атак в наборе данных CICIoT2023. В наборе данных CICIot2023 описаны названия различных типов атак и безобидные записи. Эти различные типы атак в целом делятся на 7 классов атак. Всего существует 8 классов, включая безобидных в мультиклассовой классификации. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Предварительная обработка данных
Наборы данных не должны использоваться в алгоритмах глубокого обучения без достаточной предварительной обработки. Предварительная обработка выполняется для обеспечения алгоритма более тонких данных, что в конечном итоге делает модель более эффективной. Выход предварительного конвейера — кодирование после метки, масштабирование признаков и выбор признаков — называется «Конечные данные» и служит входом для компонентов CNN и Transformer. Следующие шаги выполнены в Google Colab с использованием Python. В этом исследовании использовались Python 3.8.10, pandas 1.3.4, NumPy 1.21.4, scikit-learn 1.0.2, matplotlib 3.4.3 и TensorFlow/Keras 2.6.0. Случайный посев был установлен на 42 для всех ранов.
Сбор данных
Этот этап включает очистку данных, полученных из реальных контекстов, поскольку часто содержит множество ошибок и несоответствий. Если в наборе данных есть текстовые значения, например, невозможно использовать такие значения в глубоком обучении без предварительного преобразования в числовую форму. При работе с набором данных первым делом нужно удалять пустые значения и убирать ячейки без данных. Строки с отсутствующими данными были исключены, чтобы избежать негативных последствий для модели.
Набор данных CIC-IoT-2023 загружается с помощью pd.read_csv('ciciot2023_features_part.csv'). В этом исследовании использовался Google Colab для обучения моделей и PySpark для начальной очистки. Для обнаружения отсутствующих используются следующие методы: df.shape, df.info(), df.isnull().sum() и df.duplicated().sum() для дубликатов. Дублирующие устраняются с помощью df.drop_duplicates(inplace=True). Тип числового столбца проверяется по формуле df[col] = pd.to_numeric(df[col], errors='coerce'). Если появляются новые NaN, обработка пропущенного значения применяется заново. Признаки, которые являются постоянными или почти постоянными, также исключаются с помощью df.drop(columns=low_variance_cols, inplace=True).
Кодирование меток
Следующий шаг — преобразовать текстовые метки в числовое представление, чтобы модель могла их понять. Для бинарной классификации существуют два отдельных типа меток. Всего 46 686 579 записей, из которых 45 588 384 обозначены как вредоносные атаки. С учётом 1 098 195 записей, безвредный лейбл установлен на 0. В мультиклассовой классификации выделяется семь различных типов атак. Всего всего восемь лейблатов, включая безобидный трафик. На рисунке 2 показано количество каждой категории этих меток. Мультиклассовые карты, используемые в этом исследовании: 0 для доброкачественного, 1 для DoS, 2 для DDoS, 3 для разведки, 4 для веб-атаки, 5 для подделки, 6 для грубой силы и 7 для мираи-атаки.

Рисунок 2: Процент классов атак, включая безобидный трафик. В мультиклассовой классификации выделяется семь различных типов атак. Всего всего восемь лейблатов, включая безобидный трафик. На рисунке показано количество каждой категории этих меток. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Масштабирование признаков
Масштабирование признаков — распространённый метод повышения общей производительности моделей глубокого обучения. Масштабирование признаков в данном исследовании осуществляется с помощью технологий Min Max Scaler и Standard Scaler. Исследования не использовали их для тестирования; вместо этого он использовал скейлер только на обучающем наборе для предотвращения утечки данных. Данные могут быть нормализованы до распределения с нулевым средним и одним стандартным отклонением с помощью метода стандартного масштабера. Один из способов — делить исходное число на стандартное отклонение. Для этой функции StandardScaler() вызывается импортом StandardScaler из sklearn.preprocessing. Применяя диапазон, часто от 0 до 1, минимальный максимальный масштабер нормализует данные. Для реализации этого использовалась функция MinMaxScaler() из scikit-learn.
Как указано в уравнении (1), нормализующая формула выглядит так:
(1)
Где X означает исходное значение точки, а Xnormalized — преобразованную форму, Xmin — наименьшее значение переменной, а Xmax — наибольшее значение переменной в наборе данных.
Выбор функций
Включение всех характеристик из больших наборов данных в обучение не всегда полезно. Признаки внутри набора данных могут иметь корреляцию и не улучшать результат. Кроме того, чрезмерное количество ценностей увеличивает стоимость обучения. Чтобы найти признаки, которые не нужны, мы вычисляем их корреляционные матрицы и исключаем из набора датаных те, что имеют сильные корреляции. Коэффициент корреляции Пирсона, количественно определяющий линейную зависимость между двумя признаками, используется для вычисления этой корреляции. Значение между -1 и +1 получается делением ковариации двух переменных на произведение их стандартных отклонений. Это необязательно и выполняется в конвейере с помощью Recursive Feature Elimination (RFE) для выбора признаков с помощью классификатора дерева решений. Рекурсивное устранение признаков многократно находит наиболее релевантные признаки, обучая модель классификатора и отбрасывая наименее значимые. Код использует RFE из sklearn.feature_selection с классификатором дерева принятия решений в качестве оценщика. После внедрения рекурсивного устранения признаков было выбрано 30 из 46 характеристик для каждой из семи категорий атак, как показано в Таблице 2. Особенность может быть отнесена к множеству классификаций атак. После завершения процесса, описанного на рисунке 3, выполняется выбор классов атак, включённых в набор данных. Современные CNN отлично учат иерархические представления из исходных данных, но предварительный выбор небольшого, качественного набора функций с помощью RFE имеет значительные преимущества. Во-первых, RFE с классификатором дерева принятия решений быстро удаляет шумные или избыточные данные, которые могут задерживать сходимость в ранних учебных циклах. Во-вторых, сосредоточение CNN на небольшом пуле действительно ценных сигналов снижает перенагон, что крайне важно в наборах данных IoT-трафика с сильно искаженными, безвредными и вредными паттернами. Метод рекурсивной элиминации дерева принятия решений ранжирует признаки для лучшей объяснимости модели и выявления специфических для области смещений до глубокого обучения. Наконец, инициализация CNN-Transformer на этом урезанном наборе функций обеспечивает более быструю сходимость и снижает использование памяти GPU, доказывая, что RFE активно ускоряет и стабилизирует сквозное обучение функциям.
Таблица 2: Избранные особенности набора данных «CIC-IoT-2023». 30 из 46 характеристик были выбраны для каждой из семи категорий атак в этом исследовании с использованием RFE. В таблице описаны выбранные 30 признаков. Пожалуйста, нажмите здесь, чтобы скачать эту таблицу.

Рисунок 3: Работа предлагаемой гибридной модели. Завершение процесса описано на рисунке. Выполняется процесс выбора классов атак, включённых в набор данных. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Разделите набор данных на 80% и 20% тестовый, следуя следующему шагу: train_test_split (X_train, y_train, test_size=0.20, random_state=42). Тренировочный набор на 80% дополнительно делится с помощью train_test_split(X_train, y_train, test_size=0,20,random_state=42). Вся система выбора модели и настройка гиперпараметров выполняются с использованием этих точных разделений. Синтетическая техника перевыборки меньшинств (SMOTE) используется при проблеме классового дисбаланса. Только тренировочный набор подвергся SMOTE после разделения и масштабирования. Эффект SMOTE представлен в результатах. После RFE исследование идёт параллельно ветвлениям CNN и Transformer, используя те же 30 признаков, которые были выбраны для каждого образца. Дополнительные детали обработки этих 30 особенностей приведены в разделе предлагаемой методологии.
Предлагаемая методология
Эффективная система безопасности для IoT-систем, способная более точно обнаруживать атаки, будет создана с помощью модели глубокого обучения. Предлагается гибридная стратегия безопасности, сочетающая сверточные нейронные сети (CNN) с моделями трансформаторов. Этот метод включает обучение архитектуры CNN с использованием весов из большего набора данных, а затем тонкую настройку параметров модели с использованием меньшего набора данных в качестве цели. Основная цель этой модели — повысить эффективность обнаружения вторжений в IoT.
В этом исследовании использовалась платформа PySpark — Google Colab, которая позволяет пользователям запускать программы на Python на Apache Spark. С использованием пакетов Scikit-learn и Keras были разработаны алгоритмы глубокого обучения. Для обучения и тестирования модели использовалась следующая конфигурация: операционная система: Mac OS v12.6; - M2 Apple Silicon; - 13,3-дюймовый дисплей; - 8-ядерный процессор; - 8-ядерная видеокарта; - 32 ГБ оперативной памяти; - SSD объёмом 256 ГБ.
Канадский институт кибербезопасности (CIC) создал комплексный набор данных по угрозам IoT для продвижения приложений анализа безопасности в практических IoT-средах34. Всего было совершено 33 атаки на сеть из 105 подключённых устройств в системе IoT. Всего 46 179 314 инцидентов атаки делятся на семь групп: DDoS, Recon, DoS, веб-ориентированные, спуфинг и грубая сила, помимо Mirai. В обучающем наборе 37 349 263 экземпляра, в тестовом наборе — 8 830 051, а в наборе данных — всего 46 характеристик. В каждом случае злонамеренные IoT-устройства запускают атаки на другие IoT-устройства. Всего от атак пострадали 67 IoT-устройств и 38 устройств Zigbee и Z-Wave, подключённых к 5 хабам. Сеть подключённых датчиков, камер, микроконтроллеров и умных домашних устройств может быть создана для выполнения различных типов атак и записи их трафика. Wireshark захватывает сетевой трафик в формате PCAP для дальнейшего анализа. Поскольку каждый эксперимент хранит два потока данных, mergecap используется для объединения файлов PCAP. Для составления набора данных использовались различные IoT-устройства, включая аудиоплееры, видеорекордеры, хабы, розетки, системы домашней автоматизации, освещение, датчики и гаджеты NextGen.
В этом разделе представлена подробная методология исследования, состоящая из множества последовательных этапов, используемых в исследовании. Кроме того, часть последовательно определяет предложенный алгоритм и предоставляет подробную блок-схему исследовательского процесса.
CNN
Алгоритм CNN использует искусственную нейронную сеть — подход глубокого обучения. Рисунок 4 иллюстрирует базовый алгоритм, используемый CNN: полностью связанные слои, пулирование, плоскость и свёртка — все это часть системы. CNN не может функционировать без слоя свёртки. Полученные данные клетки обрабатываются сверточным слоем.
В уравнении (2) выходной объём (Vo) определяется P (шаг), Vi (входной объём), S (размер ядра нейрона сверточного слоя) и M (нулевое заполнение).
(2)
Затем используется фильтр для извлечения свойств входного значения во время свёртки. Этот слой создаёт карту объектов. Уменьшение размера входных данных путем пулинга упрощает обучение и уменьшает количество параметров для вычисления. Слой пула может быть выбран либо с использованием наибольшего значения в заданном размере, либо среднего значения. Разработанная техника включает два слоя свёртки и два уровня пулирования. Здесь начинается процесс извлечения признаков. Полученные данные признаков предоставляются для вычислений. Алгоритмы CNN доступны в одном, двух или трёх измерениях. Модель использовала сверточную нейронную сеть с одной измерением. Слои в зоне классификации называются сплющенными, полностью связанными. Данные должны быть сжаты после сверточной фазы, чтобы их можно было использовать в полностью связной фазе. Плоский слой — это место, где проводится этот процесс. Внутри полностью связанного слоя используется традиционная парадигма искусственных нейронных сетей. Чтобы применить CNN к данным, не основанным на изображениях, входные размеры должны быть преобразованы. В результате CNN может использовать одномерные сверточные слои, которые являютсяодномерными 35.

Рисунок 4: Базовый алгоритм CNN. Описываются основы работы и компоненты модели CNN. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Обучение на трансформерах
Кроме того, для проведения дальнейших экспериментов мы используем модель моделирования трансформаторов. Модель может одновременно обрабатывать все точки последовательности благодаря механизму самоконцентрации трансформатора. В результате увеличивается время обучения модели и более эффективное использование компьютерных ресурсов трансформатором во время вывода и обучения. Трансформатор в основном состоит из серии сложенных энкодеров и декодеров. Процесс кодирования включает изменение одного языка в другой, но процесс декодирования включает определение вероятности существования другого языка с использованием предыдущих результатов. Поскольку энкодеры в основном отвечают за извлечение признаков, предлагаемая модель использует исключительно компоненты энкодера. Кодировщик трансформатора состоит из вложения ввода/положения, нейронной сети прямой передачи, нормализации слоёв, многоголового самовнимания и остаточной сети.
Для подготовки входных данных к обработке трансформатором используется слой вложения для преобразования категориальных характеристик в плотные векторные представления. Вложение позиции показывает, как признаки связаны последовательно, а вложение входов — как разные входы связаны в общем пространстве. До того как трансформатор обрабатывает категориальные характеристики, это исследование использует вложение входов для преобразования их в плотные векторы.
Расширение механизма внимания, многоголовый механизм самовнимания лежит в основе архитектуры трансформаторов. Используя масштабируемое точечное произведение, это исследование применяет многоголовый механизм самосознания.
(3)
где соответственно обозначаются матрица запросов (Q), матрица ключей (K), матрица значений (V) и размерность матрицы ключей (dk). Позволяя модели концентрироваться на данных из различных признаков, отображаемых в отдельные подпространства, что приводит к различным значениям внимания, многоголовой механизм внимания с масштабируемым точечным произведением отличается от механизма внимания с масштабированным точечным произведением. Перенастройка реже вероятна, если уровень внимания рассчитывается независимо для каждой головы. Конкретная формулировка следующая:
(4)
(5)
Где h — количество голов внимания, модель dv и d представляют размерность v и модели. Тоже

Далее используется нормализация слоёв для стабилизации процесса обучения. Чтобы предотвратить взрыв градиента, нормализация слоя ограничивает выход каждого слоя определённым диапазоном. Это может улучшить как сходимость, так и скорость обучения модели. В то время как пакетная нормализация учитывает пакетные данные, нормализация слоёв — нет.
Предложенная модель CNN-Transformer
Это исследование предлагает гибридную технику CNN-трансформатора для обнаружения вторжений в сети IoT, учитывая явные преимущества обеих архитектур. На рисунке 5 показаны основные компоненты предлагаемой гибридной технологии CNN-трансформатор. После выполнения всех этапов предварительной обработки, включая очистку, нормализацию, кодирование меток и выбор признаков, каждый выбор в наборе данных представлен 30-мерным вектором признаков, который называется Final Data. Одни и те же Конечные данные дублируются и подаются параллельно обеим ветвям гибридной модели. Затем эти итоговые данные отправляются одновременно в блоки CNN и Transformer. CNN и трансформатор никак не зависят друг от друга; они могут одновременно работать с одними и теми же входными данными. Плоские выходы двух ветвей, CNN и Transformer, объединяются для получения сплавленного вектора признаков, который передаётся плотным слоям, которые их классифицируют. Блок CNN меняет форму входа на (num_features, 1), чтобы сверточные операции можно было выполнять между измерениями признаков для поиска локальных пространственных закономерностей. В то же время ветвь трансформера преобразует тот же вход в последовательный формат и отправляет его в пространство вложения с более высокой размерностью, за которой следует позиционное кодирование. Это позволяет трансформатору сосредоточиться на себе в пространстве признаков и находить глобальные контекстуальные связи. Уникальная конструкция трансформатора используется для извлечения признаков, а сигмоидная функция и полностью связанные слои обеспечивают отображение между признаками и метками. Модель CNN-трансформатора структурно представлена на рисунке 5. В результате получилась система классификации атак из восьми категорий, в составе которой входят DDoS, Recon, DoS, доброкачественные, веб-ориентированные, подделки, грубая сила и Mirai. Процесс оценки предлагаемого трансформатора CNN показан на рисунке 5.

Рисунок 5: Архитектура предлагаемой модели. На рисунке показана форма входа и процесс оценки предлагаемого трансформатора CNN. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Две одномерные сверточные нейронные сети (CNN) с фильтрами по 64 и 128 единиц, размером из 3 ядра, двумя слоями максимального пула, шагом выравнивания, тремя плотными слоями по 256, 128 и 64 единицы, а также тремя слоями dropout составляют слой сверточной нейронной сети (CNN).
Входные данные обрабатываются через одномерный сверточный слой с функцией активации ReLU, 64 фильтрами, ядром 3x3 и шагом 1x1 в первом слое. После предыдущего слоя следует слой MaxPooling1D с размером пула 2. Чтобы сделать модель более гибкой и снизить вычислительные затраты, этот слой уменьшает пространственные размеры выходной площади. Третий слой — ещё один одномерный сверточный слой; у него 128 фильтров, ядро трёх размеров, шаг один и функция активации под названием ReLU. Используя больше фильтров для извлечения входных характеристик, этот слой похож на первый уровень максимального пула. Выход первого слоя затем обрабатывается с помощью этой техники. После этого после второго слоя свертки добавлялся максимальный слой пула, размер пула также был 2. Опять же, этот слой используется для уменьшения дискретизации карт объектов. Пятый слой — это плоский слой, который берёт выход предыдущего слоя и превращает его в одномерный вектор.
Полученные подмножества признаков встраиваются на вход в качестве последнего шага перед тем, как стать входом трансформатора. Кроме того, для оценки значимости каждой головы используется многоголовное внимание — одномерный вектор из восьми голов с размерностью в 32 ключи. Многоголовочный слой внимания является основным компонентом трансформатора. Этот слой позволяет модели адаптивным образом учиться на встроенных представлениях различных характеристик. Многоголовый слой внимания состоит из нескольких голов самовнимания, которые также называют «масштабируемым точечным вниманием». После применения нормализации слоя с эпсилоном, установленным на 1e-6, цель — устранить расхождения масштаба между различными характеристиками и обеспечить стабильность выхода. Поддерживая выход каждого слоя в заранее определённом диапазоне, нормализация слоя снижает вероятность взрыва градиента. После выхода трансформатора следует слой выравнивания, который упрощает его сочетание с CNN, сведя его к одному вектору.
Следующий шаг — объединить плоские выходы CNN и Transformer с помощью слоя конкатенации. Функция активации «relu», регуляризация L2 и плотный слой с 256 единицами следуют за плоским слоем. Затем следует слой dropout с частотой 0,5, который помогает избежать перенасадки. Далее следует дополнительный плотный слой из 128 единиц с использованием L2-регуляризации и функции активации «relu». Процент выброса в дополнительном слое выброса составляет 0,3. Функция активации ReLU, регуляризация L2 и плотный слой на 64 единицы составляют следующий слой. Следующий слой представляет собой слой с выпадением скорости 0,2, случайным образом исключающий 20% единиц внутри. Плотный слой с функцией активации softmax создаёт вероятностное распределение для выходных классов последнего слоя. В этом слое ровно столько же единиц, сколько и выходных классов.
Предлагаемая модель может быть выражена численно следующим образом:
Пусть X — входные данные CNN, где X
R(n×1) после изменения формы, а n — количество выбранных признаков соответственно. X помещается в пространство вложения более высокомерного размера формы R(n × d_model) для блока Трансформера. Прежде чем перейти к механизму самовнимания, используется позиционное кодирование.
Ниже приведено выражение операции на слое Conv1D, который использует 64 фильтра и размер ядра 3:
(6)
где Yi,j — выходi-го фильтра в позиции j, k — ядро размера 3, b1
R64 — член смещения для каждого фильтра, Wk — веса фильтра, а ReLU — функция активации. Далее применяется слой MaxPooling с размером пула 2, получая выходZ 1,j.
(7)
Дополнительный слой свёртки ID с размером ядра 3 и 128 фильтрами включен в качестве третьего слоя модели; Её выражение:
(8)
Где k — ядро размера 3, b2
R128 — член смещения для каждого фильтра, а ReLU — функция активации. Применяется ещё один максимальный слой пула, получая вход со второго слоя свёртки с размером пула 2. Выход Z2,j задаётся формулой:
(9)
Пятый слой — это плоский слой, выраженный как:
(10)
Далее идут слои трансформаторов, которые включают слой вложения, слой внимания с несколькими головами и нормализацию слоёв
(11)
E — вектор вложения для входного класса метки c, а We — матрица весов, содержащая векторы вложения для всех категорий. Это отображает каждое целое число из c в плотный вектор из 32 вещественных компонент. Далее идёт слой внимания с несколькими головами, сформулированный в уравнениях (3), (4) и (5).
Матрица ключей имеет размер dk =32 и размерность h=8. Модель dv и d означают соответствующие размерности V и модели. Тоже
Для выхода x = MultiHead(Q,K,V) нормализация слоя обеспечивает:
(12)
Где y — нормализованный выход, γ и β — обучаемые параметры, а μ и σ2 обозначают среднее и дисперсию для x соответственно. Далее идёт слой выравнивания трансформатора, определяемый как

В конце всех слоёв результирующее выражение отображается как








Где Z1
R256, Z2
R128, Z3
R64 и Y
R8. Эта гибридная модель также вычисляет функцию потерь для мультиклассовой классификации, которую можно выразить как

где:
Yc обозначает истинную метку (кодированную однофазной) для класса cc,
Y'c — предсказанная вероятность для класса c
Предложенный алгоритм подробно объясняется в Таблице 3 .
Таблица 3: Предложенный алгоритм CNN-Transformer. Предложенный алгоритм объяснен пошагово в таблице 3. Пожалуйста, нажмите здесь, чтобы скачать эту таблицу.