
Automatisierte Sicherheitsrisikoidentifikation mittels AutomationML-basierter Ingenieurdaten
Dieser Prototyp implementiert die Methoden, die in den folgenden zwei Publikationen vorgestellt werden:
Im Wesentlichen identifiziert es Sicherheitsrisikoquellen (d. h. Bedrohungen und Verwundbarkeiten) und Arten von Angriffsfolgen basierend auf AutomationML (AML)-Artefakten. Die Ergebnisse des Risikoidentifikationsprozesses können verwendet werden, um cyber-physische Angriffsgraphen zu generieren, die mehrstufige Cyberangriffe modellieren, die potenziell zu physischen Schäden führen. Darüber hinaus werden Kaskadeneffekte und Folgen von Angriffen identifiziert, die die Produktqualität beeinträchtigen.
Dieser Prototyp hängt von einer geforkten Version der Implementierung der bidirektionalen Übersetzung zwischen AML und OWL für das ETFA 2019 Paper "Interpreting OWL Complex Classes in AutomationML based on Bidirectional Translation" von Hua und Hein ab.
Klonen Sie das Repository, kompilieren Sie die Projekte und erstellen Sie ein Anwendungsbundle von 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
Klonen Sie dieses Repository, erstellen Sie das Anwendungsbasisverzeichnis (normalerweise im Home-Verzeichnis des Benutzers) und legen Sie die Dateien aus amlsec-base-dir sowie die erstellte AML2OWL-JAR (befindet sich in aml_owl/target/) dort ab.
Das AMLsec-Basisverzeichnis und der Pfad zur AML2OWL-JAR müssen in der Konfigurationsdatei mit den Schlüsseln baseDir bzw. amlToOwlProgram gesetzt werden.
Installieren und starten Sie Apache Jena Fuseki:
$ java -jar <path_to_apache-jena-fuseki-X.Y.Z>/fuseki-server.jar --update
Wenn Sie QualSec ausführen möchten, müssen Sie LoLA - A Low Level Petri Net Analyzer installieren.
Erstellen und starten Sie schließlich die App mit sbt.
$ sbt "runMain org.sba_research.worker.Main -q"
Verwenden Sie die Flags -s und -q, um AMLsec bzw. QualSec auszuführen.
Die implementierten Methoden nutzen einen semantischen Informationsabbildungsmechanismus, der mithilfe von AML-Bibliotheken realisiert wird. Diese AML-Sicherheitserweiterungsbibliotheken und AML-Qualitätserweiterungsbibliotheken können durch Importieren in AML-Dateien leicht in Engineering-Projekten wiederverwendet werden.
Wenn Sie den Prototyp der im IEEE TDSC-Paper vorgestellten Methode ausführen möchten, verwenden Sie das Flag -s.
Das Flag -q entspricht hingegen der im IEEE TII-Paper vorgestellten Methode.
Die Fähigkeiten dieses Prototyps werden in Fallstudien demonstriert (AMLsec, QualSec). Das Ausführen dieses Prototyps wie besehen erzeugt die Wissensbasis (zugänglich über Fuseki), die auch die Ergebnisse des Risikoidentifikationsprozesses und die Ergebnisse der Fallstudie enthält.
Wenn Sie den Prototyp mit der Standard-Fallstudie und dem Flag -s ausführen, wird der folgende bereinigte cyber-physische Angriffsgraph erstellt:
Der Prototyp nutzt das Akka Framework und kann die Arbeitslast der Risikoidentifikation auf mehrere Knoten verteilen. Das Akka distributed workers sample wurde als Vorlage verwendet.
So führen Sie den Cluster mit mehreren Knoten aus (Beispiele mit 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"
Wenn Sie die Knoten auf separaten Maschinen ausführen, müssen Sie die Akka-Einstellungen in der Konfigurationsdatei anpassen.
Die während der Leistungsbewertung gewonnenen Messungen und Logdateien sind auf Anfrage erhältlich.
Wenn Sie diesen Prototyp in Ihrer Forschung nutzen, erwägen Sie bitte, unsere IEEE TDSC 2020 oder IEEE TII 2022 Publikation zu zitieren. Sie können die BibTeX-Einträge der Papiere verwenden (TDSC, TII).
Die Autoren danken Yameng An für die Bereitstellung der ersten Version von OntoPLC.