
Identificación Automatizada de Riesgos de Seguridad Utilizando Datos de Ingeniería Basados en AutomationML
Este prototipo implementa los métodos presentados en las siguientes dos publicaciones:
En esencia, identifica fuentes de riesgo de seguridad (es decir, amenazas y vulnerabilidades) y tipos de consecuencias de ataques basándose en artefactos de AutomationML (AML). Los resultados del proceso de identificación de riesgos se pueden utilizar para generar grafos de ataque ciberfísicos, que modelan ciberataques de múltiples etapas que potencialmente conducen a daños físicos. Además, se identifican los efectos en cascada y las consecuencias de los ataques que afectan la calidad del producto.
Este prototipo depende de una versión bifurcada de la implementación de la traducción bidireccional entre AML y OWL para el artículo de ETFA 2019 "Interpreting OWL Complex Classes in AutomationML based on Bidirectional Translation" de Hua y Hein. Clone el , compile los proyectos y ensamble un paquete de aplicación de :
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
Clone este repositorio, cree el directorio base de la aplicación (generalmente ubicado en el directorio de inicio del usuario) y coloque allí los archivos ubicados en amlsec-base-dir y el JAR de AML2OWL ensamblado (ubicado en aml_owl/target/).
El directorio base de AMLsec y la ruta al JAR de AML2OWL deben establecerse en el archivo de configuración usando las claves baseDir y amlToOwlProgram, respectivamente.
Instale e inicie Apache Jena Fuseki:
$ java -jar <path_to_apache-jena-fuseki-X.Y.Z>/fuseki-server.jar --update
Si desea ejecutar QualSec, necesita instalar LoLA - A Low Level Petri Net Analyzer.
Finalmente, construya e inicie la aplicación usando sbt.
$ sbt "runMain org.sba_research.worker.Main -q"
Use las banderas -s y -q para ejecutar AMLsec y QualSec, respectivamente.
Los métodos implementados utilizan un mecanismo de mapeo de información semántica realizado mediante librerías de AML. Estas librerías de extensión de seguridad de AML y librerías de extensión de calidad de AML se pueden reutilizar fácilmente en proyectos de ingeniería importándolas en archivos AML.
Nuevamente, si desea ejecutar el prototipo del método presentado en el artículo de IEEE TDSC, use la bandera -s. La bandera -q, por otro lado, corresponde al método presentado en el artículo de IEEE TII.
Las capacidades de este prototipo se demuestran en casos de estudio (AMLsec, QualSec). Ejecutar este prototipo tal cual generará la base de conocimiento (accesible a través de Fuseki), que también incluye los resultados del proceso de identificación de riesgos y los resultados del caso de estudio.
Además, si ejecuta el prototipo con el caso de estudio por defecto y la bandera -s, se creará el siguiente grafo de ataque ciberfísico podado:
El prototipo utiliza el framework Akka y es capaz de distribuir la carga de trabajo de identificación de riesgos entre múltiples nodos. Se utilizó como plantilla el ejemplo de trabajadores distribuidos de Akka.
Para ejecutar el clúster con múltiples nodos (ejemplos con bandera -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"
Si ejecuta los nodos en máquinas separadas, deberá adaptar la configuración de Akka en el archivo de configuración.
Las mediciones y archivos de registro obtenidos durante la evaluación de rendimiento están disponibles bajo solicitud.
Si utiliza este prototipo en su investigación, considere citar nuestra publicación de IEEE TDSC 2020 o IEEE TII 2022. Siéntase libre de usar las entradas BibTeX de los artículos (TDSC, TII).
Los autores agradecen a Yameng An por proporcionar la versión inicial de OntoPLC.