
Identification automatisée des risques de sécurité à l'aide de données d'ingénierie basées sur AutomationML
Ce prototype implémente les méthodes présentées dans les deux publications suivantes :
En substance, il identifie les sources de risques de sécurité (c'est-à-dire les menaces et les vulnérabilités) et les types de conséquences d'attaques à partir d'artefacts AutomationML (AML). Les résultats du processus d'identification des risques peuvent être utilisés pour générer des graphes d'attaque cyber-physiques, qui modélisent des cyberattaques multi-étapes pouvant potentiellement causer des dommages physiques. De plus, les effets en cascade et les conséquences des attaques affectant la qualité des produits sont identifiés.
Ce prototype dépend d'une version forkée de l'implémentation de la traduction bidirectionnelle entre AML et OWL pour l'article ETFA 2019 "Interpreting OWL Complex Classes in AutomationML based on Bidirectional Translation" par Hua et Hein. Clonez le dépôt, compilez les projets, et assemblez un bundle d'application 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
Clonez ce dépôt, créez le répertoire de base de l'application (généralement situé dans le répertoire personnel de l'utilisateur), et placez les fichiers situés dans amlsec-base-dir ainsi que le JAR AML2OWL assemblé (situé dans aml_owl/target/) à cet endroit. Le répertoire de base AMLsec et le chemin vers le JAR AML2OWL doivent être définis dans le fichier de configuration à l'aide des clés baseDir et amlToOwlProgram, respectivement.
Installez et démarrez Apache Jena Fuseki :
$ java -jar <path_to_apache-jena-fuseki-X.Y.Z>/fuseki-server.jar --update
Si vous souhaitez exécuter QualSec, vous devez installer LoLA - A Low Level Petri Net Analyzer.
Enfin, construisez et démarrez l'application en utilisant sbt.
$ sbt "runMain org.sba_research.worker.Main -q"
Utilisez les indicateurs -s et -q pour exécuter respectivement AMLsec et QualSec.
Les méthodes implémentées utilisent un mécanisme de correspondance d'informations sémantiques réalisé au moyen de bibliothèques AML. Ces bibliothèques d'extension de sécurité AML et bibliothèques d'extension de qualité AML peuvent être facilement réutilisées dans des projets d'ingénierie en les important dans des fichiers AML.
Encore une fois, si vous souhaitez exécuter le prototype de la méthode présentée dans l'article IEEE TDSC, utilisez l'indicateur -s. L'indicateur -q, quant à lui, correspond à la méthode présentée dans l'article IEEE TII.
Les capacités de ce prototype sont démontrées dans des études de cas (AMLsec, QualSec). L'exécution de ce prototype tel quel produira la base de connaissances (accessible via Fuseki), qui comprend également les résultats du processus d'identification des risques, ainsi que les résultats de l'étude de cas.
De plus, si vous exécutez le prototype avec l'étude de cas par défaut et l'indicateur -s, le graphe d'attaque cyber-physique élagué suivant sera créé :
Le prototype utilise le framework Akka et est capable de distribuer la charge de travail d'identification des risques entre plusieurs nœuds. L'exemple de workers distribués Akka a été utilisé comme modèle.
Pour exécuter le cluster avec plusieurs nœuds (exemples avec l'indicateur -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 vous exécutez les nœuds sur des machines séparées, vous devrez adapter les paramètres Akka dans le fichier de configuration.
Les mesures et fichiers journaux obtenus lors de l'évaluation des performances sont disponibles sur demande.
Si vous utilisez ce prototype dans votre recherche, veuillez envisager de citer notre publication IEEE TDSC 2020 ou IEEE TII 2022. N'hésitez pas à utiliser les entrées BibTeX des articles (TDSC, TII).
Les auteurs remercient Yameng An pour avoir fourni la version initiale de OntoPLC.