Задача Хакатона - разработать модель, которая будет обнаруживать цифровые и физические атаки на оборудование промышленного предприятия
- Екатерина Жериборова
- Инесса Бабий
- Алексей Подлягин
- Виталий Бадин
- София Морий
Сделаем воду чистой и улучшим экологию!
Разработать модель для обнаружения цифровых и физических атак на оборудование промышленного предприятия на основании набора данных состояния оборудования, характеристик очищаемой воды и сетевого трафика, полученных путем имитации атак на уменьшенную копию реального завода по очистке воды Сингапурским университетом.
...................................................................................................................................................................
- Данные подготовлены Сингапурским университетом c помощью стенда для безопасной очистки воды (Secure Water Treatment, SWaT), который является уменьшенным вариантом реального завода
- Сбор данных проходил в течение 11 дней:
- Первые семь дней стенд эксплуатировался в штатном режиме без атак и отказов
- В последующие 4 дня были предприняты кибератаки и физические атаки без прекращения сбора данных
- Всего за 4 дня было осуществлено 36 киберфизических атак
- По результатам работы стенда были собраны следующие данные по состоянию оборудования, показателям технологического процесса и состоянию сетевого трафика:
- 1 датасет с состоянием оборудования и показателями работы системы при нормальной эксплуатации,
- 1 датасет с состоянием оборудования и показателями работы системы при работе во время атак,
- пул датасетов по состоянию сетевого графика за весь период эксплуатации
- Атаки в датасетах с параметрами состояния оборудования и работы системы размечены вручную
Работу над кейсом проводили с использованием следующих методов машинного обучения:
- Метод проверки 1 - Обучение моделей по размеченным данным (обучение с учителем):
- KNeighborsClassifier()
- DecisionTreeClassifier()
- RandomForestClassifier()
- MLPClassifier(max_iter=500)
- GaussianNB()
- LinearDiscriminantAnalysis()
- LinearDiscriminantAnalysis(solver='svd')
- QuadraticDiscriminantAnalysis()
- SVC()
- LogisticRegression()
- Метод проверки 2 - Модель обнаружения аномалий (обучение без учителя):
- PyOD
Настройка гиперпараметров проводились с помощью GridSearchCV. В целях продолжения эксперимента планируется применить случайный поиск/подбор CV гиперпараметров и с помощью optuna
По методу 1 (обучение с учителем):
- из 10 моделей обучения 3 показали наибольшую эффективность
- параметр время не оказывает никакого влияния на результаты доли правильных ответов (Accuracy)
- не всегда автоматический подбор гиперапараметров приводит к лучшим результатам
- лучшая модель DecisionTreeClassifier accuracy 0.999
По методу 2 (обучение без учителя):
- на результаты обучения сильно влияет качество подбора гиперпараметров
- применение нейронных сетей могут дать хорошие результаты в части поиска аномалий
- результаты accuracy 0.95, precision 0.85
- https://habr.com/ru/post/588320/
- Anomaly Detection by Auto Encoder (Deep Learning) in PyOD | Step-by-step Data Science (h1ros.github.io)
- Обнаружение аномалий с помощью автоэнкодеров Made Easy (machinelearningmastery.ru)
- Библиотека pyod - yzhao062/pyod: A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection) (github.com)