
Автоматизированное выявление рисков безопасности с использованием инженерных данных на основе AutomationML
Этот прототип реализует методы, представленные в следующих двух публикациях:
По сути, он идентифицирует источники рисков безопасности (т.е. угрозы и уязвимости) и типы последствий атак на основе артефактов AutomationML (AML). Результаты процесса идентификации рисков могут быть использованы для генерации киберфизических графов атак, которые моделируют многоэтапные кибератаки, потенциально приводящие к физическому ущербу. Кроме того, идентифицируются каскадные эффекты и последствия атак, влияющих на качество продукции.
Этот прототип зависит от форкнутой версии реализации двунаправленного перевода между AML и OWL для статьи ETFA 2019 "Interpreting OWL Complex Classes in AutomationML based on Bidirectional Translation" от Hua и Hein.
Клонируйте репозиторий, скомпилируйте проекты и соберите пакет приложения aml_owl:
$ cd aml_models
$ mvn clean compile install
$ cd ../aml_io
$ mvn clean compile install
$ cd ../aml_owl
$ mvn clean compile install assembly:single
Клонируйте этот репозиторий, создайте базовый каталог приложения (обычно расположенный в домашнем каталоге пользователя) и поместите туда файлы, находящиеся в amlsec-base-dir, и собранный JAR-файл AML2OWL (находится в aml_owl/target/).
Базовый каталог AMLsec и путь к JAR-файлу AML2OWL должны быть указаны в файле конфигурации с помощью ключей baseDir и amlToOwlProgram соответственно.
Установите и запустите Apache Jena Fuseki:
$ java -jar <path_to_apache-jena-fuseki-X.Y.Z>/fuseki-server.jar --update
Если вы хотите запустить QualSec, вам необходимо установить LoLA - A Low Level Petri Net Analyzer.
Наконец, соберите и запустите приложение с помощью sbt.
$ sbt "runMain org.sba_research.worker.Main -q"
Используйте флаги -s и -q для запуска AMLsec и QualSec соответственно.
Реализованные методы используют механизм семантического отображения информации, реализованный с помощью библиотек AML. Эти библиотеки расширения безопасности AML и библиотеки расширения качества AML могут быть легко повторно использованы в инженерных проектах путем импорта их в AML-файлы.
Опять же, если вы хотите выполнить прототип метода, представленного в статье IEEE TDSC, используйте флаг -s.
Флаг -q, с другой стороны, соответствует методу, представленному в статье IEEE TII.
Возможности этого прототипа продемонстрированы в тематических исследованиях (AMLsec, QualSec). Запуск этого прототипа в исходном виде сформирует базу знаний (доступную через Fuseki), которая также включает результаты процесса идентификации рисков и результаты тематического исследования.
Кроме того, если запустить прототип с стандартным тематическим исследованием и флагом -s, будет создан следующий сокращенный киберфизический граф атак:
Прототип использует фреймворк Akka и способен распределять нагрузку по идентификации рисков между несколькими узлами. В качестве шаблона использовался пример распределенных рабочих Akka.
Для запуска кластера с несколькими узлами (примеры с флагом -q):
$ sbt "runMain org.sba_research.worker.Main cassandra -q"
$ sbt "runMain org.sba_research.worker.Main 2551 -q"
$ sbt "runMain org.sba_research.worker.Main 3001 -q"
$ sbt "runMain org.sba_research.worker.Main 5001 3 -q"
Если вы запускаете узлы на отдельных машинах, вам потребуется адаптировать настройки Akka в файле конфигурации.
Измерения и файлы журналов, полученные в ходе оценки производительности, доступны по запросу.
Если вы используете этот прототип в своих исследованиях, пожалуйста, рассмотрите возможность цитирования нашей публикации IEEE TDSC 2020 или IEEE TII 2022. Не стесняйтесь использовать BibTeX-записи статей (TDSC, TII).
Авторы хотели бы поблагодарить Yameng An за предоставление начальной версии OntoPLC.