- BrainTools - https://www.braintools.ru -
Современная система автоматизированного управления технологическими процессами (АСУ ТП) представляет собой киберфизическую систему, объединяющую информационные технологии (IT) и операционные технологии (OT). В таких системах OT-инфраструктура играет ключевую роль, обеспечивая управление производственными процессами. Однако именно атаки на OT-системы являются наиболее критичными и сложными для обнаружения, что делает их защиту одной из приоритетных задач в области кибербезопасности.
Основной задачей АСУ ТП является поддержание непрерывности OT-процессов, что напрямую связано с бесперебойной работой производственных систем. Сбои в OT могут привести к немедленным и необратимым повреждениям оборудования, а также к значительным финансовым потерям. Так, согласно данным Positive Technologies, в 2023 году и первой половине 2024-го наибольшее количество кибератак пришлось на промышленные предприятия (11%), что в некоторых случаях (37%) привело, в том числе, к нарушению основной деятельности [1]. В связи с этим, помимо усиления защиты цифровой среды (IT), для АСУ ТП крайне важно обеспечить надёжную защиту их основного функционала — OT-инфраструктуры.
В данной статье речь пойдет о классе решений, разработанных с целью обеспечения защиты OT-инфраструктур, включая системы, о которых наши знания ограничены. Это достигается за счёт использования адаптивных механизмов обеспечения безопасности, способных эффективно реагировать [1] на изменяющиеся угрозы.
Для оценки эффективности разработанного решения проведён эксперимент по выявлению аномальной сетевой активности в CIC Modbus dataset 2023.
Выбор датасета
В качестве датасета для эксперимента выбран CIC Modbus dataset 2023 [2], разработанный Canadian Institute for Cybersecurity (CIC), занимающимся, в числе прочего, созданием датасетов [3] для оценки эффективности работы средств защиты информации.
В отличие от, например, от Tennesse Eastman Process [4], представляющего данные в формате CSV, в CIC Modbus dataset 2023 данные поставляются в формате PCAP, что позволяет анализировать те же данные, которые попадали бы в систему при работе в режиме реальной эксплуатации (без учета предварительной обработки). В отличие от популярного Kitsune Network Attack Dataset [5], представляющего ориентир для выявления атак в корпоративных сетях, CIC Modbus dataset 2023 описывает промышленный трафик, и он больше подходит для оценки качества работы системы, разработанной для защиты OT-инфраструктуры. Также стоит упомянуть датасеты от iTrust, в том числе SWaT Dataset (A3 и A6, имеющие PCAP-дампы) [6], предоставляющий данные об атаках на смоделированную водоочистную станцию: несмотря на схожесть целей, этот датасет имеет меньший охват сценариев атак, что ограничивает его применимость.
Таким образом, CIC Modbus dataset 2023 становится предпочтительным выбором для эксперимента, направленного на защиту OT-инфраструктуры.
Описание датасета
CIC Modbus dataset 2023 содержит нормальную сетевую активность подстанции (в основном, Modbus-трафик) и различные атаки на неё, основанные на методах из MITRE ICS ATT&CK.
Датасет получен на моделируемом испытательном стенде (на Docker-контейнерах), включает исполнительные (IEDS) и управляющие (SCADA HMI) устройства. Логика [2] работы IEDS – периодическое изменение значений напряжения случайным образом или при получении соответствующего запроса от SCADA HMI, логика работы SCADA HMI – отправка управляющих команд на основе значений, полученных от IED.
Выбор подхода
Теги в АСУ ТП представляют собой ключевые элементы, хранящие важные параметры и настройки технологических процессов. Несанкционированное изменение или передача некорректных данных через них может привести к нарушению работы системы, что в свою очередь способно вызвать сбои в производственных процессах. Выявление аномалий возможно, если построена модель нормального функционирования защищаемой системы.
Для выявления аномалий в передаваемых данных существует множество подходов – от классических методов машинного обучения [3] (например, одноклассовый SVM[7], разделяющей нормальные данные от всего остального пространства с помощью отображения в «удобное» пространство признаков) до нейронных сетей на основе архитектуры автокодировщика [8] (использование сжатия-разжатия для оценки похожести новых данных на те, которые сеть видела при обучении).
У каждого метода есть свои достоинства и недостатки. Так, например, OC SVM объясним, но ограничен в адаптивности: для каждой новой защищаемой системы потребуется донастройка. Автокодировщик – наоборот, имеет возможность адаптироваться к защищаемой системе без участия оператора, но при этом в силу особенностей нейронных сетей имеет некоторые дополнительные сложности в объяснимости.
Отдельное направление в моделировании систем – построение автоматов, описывающих передаваемые данные. Существуют конечные автоматы (FSM — Finite-state machine), которые позволяют описывать систему в терминах состояний S и переходов T [9] FSM = (S, T, s0), с возможностью указания начального состояния s0. Полезная особенность конечных автоматов – объяснимость и возможность дополнения экспертным знанием уже после обучения модели. Объяснимость возникает ввиду описания изменения переменных внутри состояний в формате уравнений, понятных оператору защищаемой системы. А возможность дополнения экспертным знанием может быть реализована путём анализа доменным экспертом сформированного автомата и, при необходимости, непосредственной корректировки коэффициентов уравнений.
При этом конечные автоматы описывают изменение системы только в рамках состояний, предполагая, что смена одного состояния на другое происходит бесследно. В реальности бывает так, что переход из одного состояния в другое сопровождается изменением внутренних переменных системы, не соответствующих ни начальному, ни конечному состояниям – для обработки таких ситуаций может быть использован механизм гибридных автоматов.
Гибридный автомат [10] в отличие от конечного характеризуется возможностью описания как дискретных, так и непрерывных величин в моделируемой киберфизической системе, что позволяет сформировать более точную модель.
Гибридный автомат можно определить как HA=(Loc,Edge,Flow,Jump,X), где:
Loc = {locn}1numOfModes – конечный набор состояний гибридного автомата;
Edge ∈ Loc × Loc – набор возможных переходов между состояниями;
Flow = {flown}1numOfModes – описание изменения переменных в каждом из состояний (система дифференциальных уравнений);
Jump = {jumpn}1|Edge| = {(guard,reset )n}1|Edge| – описание условия на выполнение перехода системы из одного состояния в другое (guard-выражения) и описание изменения переменных при выполнении этого перехода (reset-выражения);
X – набор переменных, изменение которых отслеживает и моделирует автомат.
Существуют методы формирования гибридных автоматов по историческим данным. Некоторые из них [11] позволяют построить автомат, но имеют ограничения по обработке изменений, поступающих из внешней (неконтролируемой и не описываемой автоматом) среды. Другой метод [12] решает эту проблему, но имеет ограничение по формированию уравнений изменения данных при переходах. Работа [13], хотя и может быть улучшена (улучшения и доработки будут описаны в настоящей статье), лишена обоих этих недостатков, поэтому предложенный в ней алгоритм взят в качестве основы для разработки собственного решения.
Гибридный автомат
Основные компоненты гибридного автомата описаны выше (Loc, Edge, Flow, Jump, X).
Общая последовательность действий:
1) Обучение (по принципам, изложенным в [13], с некоторой доработкой):
a. Сформировать автомат по историческим данным (определить контролируемые переменные, описать состояния и переходы); полученный автомат позволяет по известному вектору значений для текущего шага и известному состоянию системы предсказывать значения в следующий момент времени.
b. Рассчитать пороговые значения ошибки [4] для выявления аномалий для каждой переменной и для их комплекса:

Для каждого элемента вектора значений порог может быть выбран индивидуально, что позволит получать дополнительную информацию при объяснении причины принятия решения о наличии аномалии.
2) Эксплуатация (циклично):
a. Для текущего состояния l ∈ Loc и известного вектора значений Xt автомат предсказывает X(t+1) на следующий момент времени.
b. Сравнение предсказанных X(t+1) и фактических Xactual с учётом выбранного при обучении порога: если |Xactual – X(t+1) | > ϵ, то фиксируется аномалия.
Для интерпретации модели и добавления знания доменных экспертов в модель необходимо в человекочитаемом виде экспортировать:
переменные X и их соответствие тегам в трафике;
состояния Loc и переходы Edge;
рассчитанные уравнения изменения переменных внутри состояний Flow и описания наличия и свойств переходов Jump.
Этапы обучения и эксплуатации модели, основанной на идее гибридного автомата, приведены в таблице ниже. Для удобства сопоставлены исходный алгоритм и доработанный нами. Предложенный алгоритм реализован для протокола Modbus, но может быть адаптирован и к другим протоколам: для интеграции достаточно корректно описать способ формирования векторов.
Таблица 1 – Этапы обучения и эксплуатации модели системы на основе гибридного автомата
|
Этап |
Исходный алгоритм [13] |
Доработанный алгоритм |
|
Выбор исходных данных |
Все траектории (записанные дампы) склеиваются в одну. |
Пакеты трафика анализируются утилитой Zeek с доработанными скриптами для глубокого разбора протокола Modbus. Для гибридного автомата формируются вектора, состоящие из набора контролируемых областей памяти [5]. Xvt={xvk}1|X|, где xk – значение контролируемой области памяти. Как только каждый контролируемая область памяти была передана хотя бы раз (в векторе не остаётся пустых ячеек), текущий вектор Xvt передаётся гибридному автомату и начинает формироваться следующий. Тут следует отметить, что в текущем гибридном автомате нет понятия времени, и t – это лишь номер шага, но временная шкала может быть искусственно добавлена интеграцией тега времени в вектор. |
|
Сегментация трейсов |
Для каждой точки вычисляются производные в прямом и обратном направлении. Границами сегментов называются такие точки, в которых производные «вперёд» и «назад» имеют разные знаки, а производные «назад» для этой и предыдущей точек имеют один знак. |
Выполняется сглаживание полученного ряда значений Xv каждого тега. Рассчитываются значения первой Der1 и второй Der2 частных производных в каждой точке траектории, при этом для ∆t временная шкала заменяется отсчётами. Задаётся порог чувствительности выделения сегментов segThr. При этом: Если |Der2 ⁄ Der1| > segThr, то точка – граница (край) сегмента. В случае, если предсказаны границы в последовательных Xv(t=k), Xv(t=k+1), …, Xv(t=k+n), то для каждого t выбирается максимум среди |Der2 ⁄ Der1| для всех переменных, и выбор границы из всего набора соседних Xvt происходит по величине этого отношения. В случае, если тег бинарный, то выбирается индекс следующего сегмента как такой, где действительно происходит изменение. |
|
Кластеризация сегментов |
Крайние (первые и последние) сегменты каждой траектории удаляются (предполагается, что они содержат неполную траекторию и могут мешать кластеризации). |
Для каждого сегмента, для каждого тега сегмента рассчитываются коэффициенты линейной функции, аппроксимирующей её изменение. В результате для каждого сегмента, для каждого тега формируются признаки – набор коэффициентов segA (включая свободный член segB), длина сегмента segLen, значение регистров в начальной точке сегмента Xvk. Полученные сегменты кластеризуются с использованием самоорганизующейся сети Кохонена (SOM). В результате обработки картой Кохонена все сегменты разделяются на кластера, определяется конечное множество Loc = {locn}1numOfModes. |
|
Расчёт уравнений состояний |
Коэффициенты ОДУ рассчитываются с помощью линейной регрессии. Определяются инварианты для состояний: для каждого состояния выбираются минимальное и максимальное значения для переменных. |
Коэффициенты ОДУ рассчитываются с помощью линейной регрессии с регуляризацией. При этом коэффициент регуляризации подбирается адаптивно. Модель минимизирует MSE. Скор-функция для выбора лучшей модели минимизирует максимальную ошибку предсказания (для уменьшения порога принятия решения об аномалии). В результате каждое состояние из Loc описывается набором уравнений Xv = Xv × A + B. Инварианты для состояний не вычисляются ввиду отсутствия необходимости. |
|
Выявление переходов |
Сначала определяются места перехода. Место перехода – такие три последовательные точки из исходных траекторий, чтобы первые две точки были в одном кластере (состоянии), а третья – в другом. После определения места перехода рассчитываются условия выполнения перехода. Для этого значения в выбранных точках центруются, нормализуются. Обучается SVM для нескольких наборов гиперпараметров, перебором выбирается лучший. Из обученной SVM-модели выделяются коэффициенты гиперплоскости, которые присваиваются переходам. С использованием коэффициентов нормализации и центрирования значения возвращаются в исходный диапазон. Изменение значений при переходе определяется с помощью построения модели линейной регрессии: по значениям последней точки исходного состояния модель учится предсказывать первую точку конечного состояния. Из обученной модели забираются коэффициенты для описания уравнений, описывающих изменение переменных при переходе из одного состояния в другое. |
Для каждого Xvt указывается loc(t+1) ∈ Loc для Xv(t+1). Количество состояний конечно и определено заранее (на этапе объединения сегментов в состояния). Обучается классификатор на основе SVM, исходные данные для которого – Xvt, цель – loc(t+1). При обучении SVM для каждого сегмента не учитывается последний (переходной) вектор Xv: экспериментально определено, что так уравнения плоскостей формируются точнее – ранее переход запаздывал. Обученная модель (в виде набора гиперплоскостей как представления guard для каждого Jump) сохраняется в файл для использования в режиме предсказания. Уравнения изменения значений тегов при переходе reset для каждого Jump определяются отдельно аналогично алгоритму из оригинальной статьи. |
|
Расчёт максимальной допустимой ошибки |
В исходном алгоритме отсутствует |
Для тестовой части нормальных данных для каждого регистра вычисляется максимальный модуль относительной ошибки предсказания maxMAPE. Далее это значение умножается на коэффициент допуска tol и называется «порог ошибки» errorTol = maxMAPE ∙ tol для выявления аномалии для каждого регистра. |
|
Эксплуатация модели для выявления аномалий |
В исходном алгоритме отсутствует |
Для Xvt выбрать loc(t+1) с помощью обученной SVC-модели. Если loc(t+1) ≠ loct, то предсказать Xpredicted для t+1 с помощью reset из соответствующего Jump, иначе – с помощью соответствующего Flow. Если при проверке отклонения предсказанного значения от актуального (с учетом погрешности) превышает рассчитанный ранее порог, то поднимается флаг, сообщающий об аномалии. |
Набор детекторов для протокола Modbus
Также модель гибридного автомата дополнена детекторами для выявления отдельных аномалий в трафике протокола Modbus. Эти детекторы обеспечивают контроль следующих параметров:
контроль областей памяти: список используемых каждым узлом областей памяти;
состояние соединений: изменения в установленных соединениях, включая их разрывы и повторные подключения;
события некорректного завершения запросов (Exception в разных вариантах);
задержки между запросами для каждого узла: средние значения и стандартные отклонения для оценки допустимых временных интервалов;
количество запросов за временное окно.
Эти детекторы позволяют дополнять модель гибридного автомата, предоставляя дополнительные сигналы для выявления атак, связанных с нарушением протокольных спецификаций или поведением [6] узлов.
В CIC Modbus dataset 2023 заявлено присутствие нескольких типов атак.
Таблица 2 – Типы атак в CIC Modbus dataset 2023
|
Атака |
Суть |
|
Recon. Range: N |
Recon = Reconnaissance — разведка. Целью злоумышленника является разведка опытным путем параметров устройств Modbus: поддерживаемые номера функций, поддерживаемые адреса в памяти |
|
Query Flooding |
Атака представляет собой отправку большого числа идентичных запросов в сторону ПЛК. Либо если скомпрометирован сам ПЛК, то в ответ на один запрос ПЛК отправляет множество ответов с идентичным Transaction ID. |
|
Brute force or specific coil. Address N |
Использование функции №5 (Write Single Coil) для записи информации по адресу N |
|
Length manipulation |
Суть атаки состоит в том, что в modbus-заголовке поле длина содержит неверное значение. Согласно спецификации modbus это поле определяет размер следующей за этим полем части пакета. В данном случае указан размер Modbus пакета целиком (00 0С). Wireshark, например, не разбирает этот пакет, как и Zeek. |
|
Replay |
Повторение [7] ранее замеченного запроса с другим transaction id |
|
Payload injection |
Попытки считать данные разными функциями с первых адресов с transactionID=0. В трафике ответа от ПЛК нет. |
|
Stacked Modbus Frames |
Объединение нескольких Modbus-пакетов в один TCP-пакет |
|
False data injection |
В случае скомпрометированного ПЛК в ответ на запрос отправляются данные, которые не могут быть декодированы как нормальный ответ из-за размерности. |
|
Delay response |
Скомпрометированное устройство отвечает на запрос дольше, чем обычно (в примерах задержки до 8 секунд). |
В качестве защищаемых узлов выбраны ПЛК IED1A (185.175.0.4) и IED1B (185.175.0.5). Атака считалась обнаруженной, если разработанный алгоритм поднимал флаг об аномалии в течение не более чем 5 секунд после её появления в трафике. Оценка точности выполнялась по разметке, представленной в репозитории CIC Modbus 2023 [3].
В результате получены следующие метрики:
Здесь можно было бы показать рассчитанную полноту (recall) для класса «аномалии», которая показательно была бы близка к 1.0 из-за десятков тысяч атак типа «Brute force», каждый элемент которых обозначен в датасете отдельно. Но фактически эти аномалии расположены очень близко во времени, поэтому по-честному поднятие флага хотя бы об одной аномалии из группы говорит о возможности выявления всей группы. С другой стороны, атак типа «Length manipulation» было всего три-четыре сотни на весь датасет, но во времени они распределены – соответственно, выявление одной атаки не позволяет выявить и другие.
Поэтому все тестовые данные были разделены на интервалы около 5 секунд, для каждого из которых по разметке известно, были ли в нём аномалии. Для таких интервалов рассчитаны точность и полнота выявления аномалий и результаты работы на «чистом» трафике (режим нормального функционирования OT-системы при отсутствии атак).
По метрикам видно, что на одном из устройств ложных сработок нет, а на другом доля ложных срабатываний (False Positive Rate) менее 0,5%. Выявляется от 81% до 94% всех аномальных 5-секундных окон. При этом следует помнить (из Рисунок 2 и Рисунок 3), что 19% и 6% невыявленных окон – это, вероятнее всего, атаки типа Length Manipulation, которые не могут быть выявлены из-за особенностей работы используемого анализатора сетевых пакетов (Zeek). Гибридный автомат имеет возможность выявлять аномалии только в том, что обнаруживает Zeek, поэтому некоторые атаки, например, относящиеся к типу Length Manipulation, не могут быть выявлены из-за пропуска таких пакетов на уровне Modbus (архитектурно).
Кроме достаточно неплохих метрик качества (и доли выявленных атак разных типов) к достоинствам гибридного автомата следует отнести интерпретируемость и возможность интеграции экспертного знания доменных экспертов.
Также стоит отметить, что в текущей реализации используется автомат, относящийся к классу «без памяти», не имеющий понятия о времени. Это вносит некоторые ограничения в его работу, и в будущем добавление памяти автомату может быть одним из направлений исследований по повышению точности детектирования аномалий в OT-системах.
TAdviser. Потери от киберпреступности.
https://www.tadviser.ru/index.php/Статья:Потери_от_киберпреступности [8]
Kwasi Boakye-Boateng, Ali A. Ghorbani, and Arash Habibi Lashkari, “Securing Substations with Trust, Risk Posture and Multi-Agent Systems: A Comprehensive Approach [9],” 20th International Conference on Privacy, Security and Trust (PST), Copenhagen, Denmark, August. 2023.
Canadian Institute for Cybersecurity Datasets https://www.unb.ca/cic/datasets/index.html [10].
Downs, J. J., & Vogel, E. F. (1993). A plant-wide industrial process control problem. Computers & chemical engineering, 17(3), 245-255.
Kitsune Network Attack [Dataset]. (2019). UCI Machine Learning Repository. https://doi.org/10.24432/C5D90Q [11].
iTrust, Center for Research in Cyber Security, Singapore University of Technology and Design. iTrust Labs Datasets. [Online]. https://itrust.sutd.edu.sg/itrust-labs_datasets/dataset_info/ [12].
Estimating the support of a high-dimensional distribution Schölkopf, Bernhard, et al. Neural computation 13.7 (2001): 1443-1471.
Kramer, Mark A. (1991). “Nonlinear principal component analysis using autoassociative neural networks” (PDF). AIChE Journal. 37 (2): 233–243. https://doi.org/10.1002/aic.690370209 [13].
A. Salomaa, “Michael A. Arbib. Theories of abstract automata. Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1969, xiii + 412 pp.,” Journal of Symbolic Logic, vol. 37, no. 2. Cambridge University Press (CUP), pp. 412–413, Jun. 1972. https://doi.org/10.2307/2273007 [14]
Raskin, JF. (2005). An Introduction to Hybrid Automata. In: Hristu-Varsakelis, D., Levine, W.S. (eds) Handbook of Networked and Embedded Control Systems. Control Engineering. Birkhäuser Boston. https://doi.org/10.1007/0-8176-4404-0_21 [15]
M. García Soto, T. A. Henzinger, and C. Schilling, “Synthesis of Parametric Hybrid Automata from Time Series,” Automated Technology for Verification and Analysis. Springer International Publishing, pp. 337–353, 2022. https://doi.org/10.1007/978-3-031-19992-9_22 [16].
X. Yang, O. A. Beg, M. Kenigsberg, and T. T. Johnson, “A Framework for Identification and Validation of Affine Hybrid Automata from Input-Output Traces,” ACM Transactions on Cyber-Physical Systems, vol. 6, no. 2. Association for Computing Machinery (ACM), pp. 1–24, Apr. 11, 2022. https://doi.org/10.1145/3470455 [17].
A. Gurung, M. Waga, and K. Suenaga, “Learning nonlinear hybrid automata from input-output time-series data.” arXiv, 2023. https://doi.org/10.48550/ARXIV.2301.03915 [18].
Автор статьи: Алексей Синадский, исследователь исследовательского центра UDV Group
Автор: CyberLympha
Источник [19]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/11920
URLs in this post:
[1] реагировать: http://www.braintools.ru/article/1549
[2] Логика: http://www.braintools.ru/article/7640
[3] обучения: http://www.braintools.ru/article/5125
[4] ошибки: http://www.braintools.ru/article/4192
[5] памяти: http://www.braintools.ru/article/4140
[6] поведением: http://www.braintools.ru/article/9372
[7] Повторение: http://www.braintools.ru/article/4012
[8] https://www.tadviser.ru/index.php/Статья:Потери_от_киберпреступности: https://www.tadviser.ru/index.php/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F:%D0%9F%D0%BE%D1%82%D0%B5%D1%80%D0%B8_%D0%BE%D1%82_%D0%BA%D0%B8%D0%B1%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%81%D1%82%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D0%B8
[9] Securing Substations with Trust, Risk Posture and Multi-Agent Systems: A Comprehensive Approach: https://www.computer.org/csdl/proceedings-article/pst/2023/10320154/1Sjek6SezlK
[10] https://www.unb.ca/cic/datasets/index.html: https://www.unb.ca/cic/datasets/index.html
[11] https://doi.org/10.24432/C5D90Q: https://doi.org/10.24432/C5D90Q
[12] https://itrust.sutd.edu.sg/itrust-labs_datasets/dataset_info/: https://itrust.sutd.edu.sg/itrust-labs_datasets/dataset_info/
[13] https://doi.org/10.1002/aic.690370209: https://doi.org/10.1002/aic.690370209
[14] https://doi.org/10.2307/2273007: https://doi.org/10.2307/2273007
[15] https://doi.org/10.1007/0-8176-4404-0_21: https://doi.org/10.1007/0-8176-4404-0_21
[16] https://doi.org/10.1007/978-3-031-19992-9_22: https://doi.org/10.1007/978-3-031-19992-9_22
[17] https://doi.org/10.1145/3470455: https://doi.org/10.1145/3470455
[18] https://doi.org/10.48550/ARXIV.2301.03915: https://doi.org/10.48550/ARXIV.2301.03915
[19] Источник: https://habr.com/ru/articles/879716/?utm_campaign=879716&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.