
Identificazione Automatizzata dei Rischi di Sicurezza Utilizzando Dati di Ingegneria Basati su AutomationML
Questo prototipo implementa i metodi presentati nelle seguenti due pubblicazioni:
In sostanza, identifica le fonti di rischio per la sicurezza (cioè minacce e vulnerabilità) e i tipi di conseguenze degli attacchi basandosi su artefatti AutomationML (AML). I risultati del processo di identificazione dei rischi possono essere utilizzati per generare grafi di attacco cyber-fisici, che modellano attacchi cyber multi-stadio potenzialmente in grado di causare danni fisici. Inoltre, vengono identificati effetti a cascata e conseguenze di attacchi che influiscono sulla qualità del prodotto.
Questo prototipo dipende da una versione forkata dell'implementazione della traduzione bidirezionale tra AML e OWL per l'articolo di ETFA 2019 "Interpreting OWL Complex Classes in AutomationML based on Bidirectional Translation" di Hua e Hein.
Clonare il repository, compilare i progetti e assemblare un bundle dell'applicazione di 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
Clonare questo repository, creare la directory di base dell'applicazione (solitamente situata nella home directory dell'utente) e posizionare lì i file situati in amlsec-base-dir e il JAR di AML2OWL assemblato (situato in aml_owl/target/).
La directory di base di AMLsec e il percorso del JAR di AML2OWL devono essere impostati nel file di configurazione utilizzando rispettivamente le chiavi baseDir e amlToOwlProgram.
Installare e avviare Apache Jena Fuseki:
$ java -jar <path_to_apache-jena-fuseki-X.Y.Z>/fuseki-server.jar --update
Se si desidera eseguire QualSec, è necessario installare LoLA - A Low Level Petri Net Analyzer.
Infine, compilare e avviare l'app utilizzando sbt.
$ sbt "runMain org.sba_research.worker.Main -q"
Utilizzare i flag -s e -q per eseguire rispettivamente AMLsec e QualSec.
I metodi implementati utilizzano un meccanismo di mappatura semantica delle informazioni realizzato mediante librerie AML. Queste librerie di estensione della sicurezza AML e librerie di estensione della qualità AML possono essere facilmente riutilizzate in progetti di ingegneria importandole nei file AML.
Ancora, se si desidera eseguire il prototipo del metodo presentato nell'articolo IEEE TDSC, utilizzare il flag -s.
Il flag -q, invece, corrisponde al metodo presentato nell'articolo IEEE TII.
Le capacità di questo prototipo sono dimostrate in casi di studio (AMLsec, QualSec). Eseguendo questo prototipo così com'è si otterrà la base di conoscenza (accessibile tramite Fuseki), che include anche i risultati del processo di identificazione dei rischi, e i risultati del caso di studio.
Inoltre, se si esegue il prototipo con il caso di studio predefinito e il flag -s, verrà creato il seguente grafo di attacco cyber-fisico ridotto:
Il prototipo utilizza il framework Akka ed è in grado di distribuire il carico di lavoro dell'identificazione dei rischi su più nodi. L'esempio di lavoratori distribuiti Akka è stato utilizzato come modello.
Per eseguire il cluster con più nodi (esempi con flag -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"
Se si eseguono i nodi su macchine separate, sarà necessario adattare le impostazioni di Akka nel file di configurazione.
Le misurazioni e i file di log ottenuti durante la valutazione delle prestazioni sono disponibili su richiesta.
Se si utilizza questo prototipo nella propria ricerca, si prega di considerare la citazione della nostra pubblicazione IEEE TDSC 2020 o IEEE TII 2022. Sentitevi liberi di utilizzare le voci BibTeX dei documenti (TDSC, TII).
Gli autori ringraziano Yameng An per aver fornito la versione iniziale di OntoPLC.