Dieser Datensatz enthält die technischen Informationen, die notwendig sind, um die Evaluationsergebnisse der Masterarbeit "Abbildung von UMLsec-Vertraulichkeitsanalysen auf Data-Centric Palladio" nachzuvollziehen. Die Struktur dieser Beschreibung folgt der Struktur, die von Stephan Seifermann, Robert Heinrich und Ralf Reussner für die Beschreibung der Evaluation der ICSA 2019 Veröffentlichung "Data-Driven Software Architecture for Analyzing Confidentiality" verwendet wird. Der folgende Abschnitt beschreibt die im Datensatz vorhandenen Daten.
Der Quellcode und die Metamodelle, die zur Erzeugung der Modelle und Prolog-Programme notwendig sind, sind in diesem Datensatz enthalten.
Das Metamodell von Data-Centric Palladio (DCP) ist in org.palladiosimulator.pcm.dataprocessing/model/dataprocessing.ecore beschrieben. Es ist als Ecore-Metamodell spezifiziert und verwendet das Eclipse Modeling Framework (EMF).
Um das Metamodell mit dem Palladio-Komponentenmodell (PCM) zu verwenden, ist das EMF-Profil, das in org.palladiosimulator.pcm.dataprocessing.profile/profile.emfprofile_diagram beschrieben ist, notwendig.
Die Spezifikation des Operationsmodells ist in DataFlowSystemModel/model/dataflowsystem.ecore verfügbar. Auch diese Metamodell ist als Ecore-Metamodell spezifiziert.
Die Transformation von Data-Centric Palladio zum Operationsmodell ist in dem Ordner org.palladiosimulator.pcm.dataprocessing.analysis.transformation verfügbar. Die Abbildung von Data-Centric Palladio auf das Operationsmodell basiert auf Xtend.
Die Modell-zu-Text-Transformation, die ein Operationsmodell in ein Prolog-Programm transformiert, ist ebenfalls mit Xtend realisiert. Der Quellcode ist in dem Ordner PrologTranslator verfügbar.
Die Generation des Prolog-Programms und die durchgeführten Analysen können separat reproduziert werden. Im Folgenden sind dafür die Anleitungen gegeben.
Um die Operationsmodelle und Prolog-Programme zu erzeugen, muss eine Eclipse-Instanz installiert werden. Nachfolgend ist eine Schritt-für-Schritt-Anleitung für die Installation und Einrichtung dieser Eclipse-Instanz gegeben.
Die PCM-Modelle, die Operationsmodelle und die Prolog-Programme sind in Evaluation/models/ verfügbar. Die Operationsmodelle haben den Dateinamen expected.xmi und die Prolog-Programme den Dateinamen output.pl. In der Datei analysis.pl eines jeden Modells sind die Prolog-Regeln gegeben, die an das generierte Prolog-Programm angehängt werden und den Kern der jeweiligen Analyse darstellen. Der Inhalt von analysis.pl ist innerhalb einer Analyse (Secure Links oder Secure Dependencies) jeweils identisch. Wird die Evaluation ausgeführt werden die bereits vorhandenen und zur Evaluation verwendeten Dateien expected.xmi und output.pl überschrieben. Aufgrund der Verwendung von Zufallszahlen während der Transformation eines Operationsmodells in ein Prolog-Programm können sich die eindeutigen Bezeichner einiger Modellelemente zu den vorher vorhanden Prolog-Programmen unterscheiden. Der Inhalt der Prolog-Programme ist jedoch äquivalent.
Im Folgenden ist zunächst erklärt, wie die Prolog-Analyseergebnisse und die CARiSMA-Analyseergebnisse ermittelt werden können. Anschließend wird kurz erklärt, wie die Modelle inspiziert werden können und abschließend werden die Eingabemodelle, die für die einzelnen Experimente verwendet werden, genannt, sowie ein Beispiel gegeben, das illustriert, wie das in der Masterarbeit beschriebene Verfahren angewendet wird.
Um die Prolog-Programme auszuführen, muss ein Prolog-Interpreter installiert sein, der ISO Prolog unterstützt. Für die Evaluation wurde SWI Prolog verwendet. Nach der Installation können Sie ein Prolog-Programm laden, indem Sie in den Ordner des gewünschten Modells (z. B. Evaluation/models/secure-links-evaluation-dcp-1 wechseln und auf der Kommandozeile den Befehl swipl output.pl ausführen. Die abzufragende Prolog-Regel ist abhängig von dem Experiment.
Um die CARiSMA-Analyse auszuführen, müssen Sie Eclipse starten und in Evaluation/models/ in einen der Ordner wechseln, der ein UMLsec-Modell enthält (z. B. Evaluation/models/secure-links-evaluation-umlsec-1). Dieser Ordner enthält bis zu vier Dateien (die Namen sind beispielhaft für Modelle der Secure-Links-Evaluation):
In diesem Ordner öffnen Sie mit Eclipse die Datei secure-links_analysis.adf. Diese Datei hält eine Referenz auf die Datei secure-links.uml des Ordners, in dem Sie sich befinden. Ferner enthält die Datei secure-links_analysis.adf die ausgewählte UMLsec-Checks. Gegebenenfalls ist es notwendig, diese Datei neu zu erzeugen. Sollte Eclipse für diese Datei Fehler melden, die sich nicht intuitiv beheben lassen, kann die Datei neu erzeugt werden, indem Sie das Kontextmenü von secure-links.uml öffnen und CARiSMA - Create Analysis File auswählen. In der neu erzeugen Analysedatei müssen Sie das Plus-Symbol unter Selected checks anklicken und in der erscheinenden Liste den UMLsec-Check UMLsec secure links Check auswählen. Die CARiSMA-Analyse kann nun ausgeführt werden, indem in der Datei secure-links_analysis.adf Run ausgewählt wird.
Die UMLsec-Modelle können über die Dateien *.di geöffnet werden und in einer grafischen Oberfläche inspiziert werden. Für die Modelle von DCP muss eine innere Eclipse-Instanz gestartet werden. Dazu kann das Kontextmenü auf einem beliebigen Eclipse-Projekt geöffnet werden und Run as - Eclipse Application ausgewählt werden. Importieren Sie die Modelle in die innere Eclipse-Instanz, indem Sie in der inneren Eclipse-Instanz die Option File - Import - General - Existing Projekts into Workspace ausführen. Wählen Sie den Ordner, in dem diese Datei liegt, als Wurzelordner aus. Markieren Sie nur das Projekt Evaluation für den Import. Anschließend können sie die DCP-Modelle in der inneren Eclipse-Instanz öffnen und inspizieren.
Zur Reproduktion der Ergebnisse für das Experiment zur Evaluierung der Fragestellung F2.1 der Secure-Links-Evaluation müssen Sie für die Modelle secure-links-evaluation-umlsec-X (X = 1..80) und secure-links-evaluation-umlsec-structural-Y (Y = 1..5) das in der Masterarbeit beschriebene Vorgehen anwenden. Zum besseren Verständnis sind im Folgenden die Ergebnisse und das Vorgehen für secure-links-evaluation-umlsec-15 dargestellt.
Zunächst werden die erwarteten Ergebnisse ermittelt. Dazu wird die UMLsec-Analyse auf dem Modell durchgeführt. Die Ergebnisse für dieses Modell sind:
The analysis detected 2 errors. ERROR: default attacker can read/insert/delete at CommunicationPath 'CommunicationPath'. ERROR: default attacker can insert at CommunicationPath 'CommunicationPath'.
Es werden also vier Sicherheitsprobleme in der DCP-Analyse erwartet. Anschließend wird die Modelltransformation für das Eingabemodell durchgeführt. Daraus entsteht das Modell secure-links-evaluation-dcp-15. Die DCP-Analyse für dieses Modell wird ausgeführt, indem secureLinks('default', OP, D, ACT, L, DS) ausgeführt wird. Die Ausgabe wird auf ATT = 'default' eingeschränkt, da der in secure-links-evaluation-umlsec-15 definierte Angreifer der Standardangreifer ist. Die Ergebnisse dieser Abfrage sind:
?- secureLinks('default', OP, D, ACT, L, DS).
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Call Parameter',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral Integrity (_yxegIP7hEeizQdLqRSCK5g)' ;
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Call Parameter',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)' ;
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Return Value',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral Integrity (_yxegIP7hEeizQdLqRSCK5g)' ;
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Return Value',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)'
Es werden also wie erwartet vier Sicherheitsprobleme ausgegeben. Die Überprüfung, dass die ausgegebene Operation zu der Netzwerkressource korrespondiert, welche zu dem Kommunikationspfad CommunicationPath korrespondiert, kann über eine Inspektion des Modells nachvollzogen werden. Alle dafür notwendigen eindeutigen Bezeichner der Komponenteninstanzen sind im Namen der Operation OP gegeben.
Zur Reproduktion der Ergebnisse für das Experiment zur Evaluierung der Fragestellung F2.2 der Secure-Links-Evaluation müssen Sie für die Modelle secure-links-evaluation-dcp-X (X = 1..40) und secure-links-evaluation-dcp-structural-Y (Y = 1..4) das in der Masterarbeit beschriebene Vorgehen anwenden. Zum besseren Verständnis sind im Folgenden die Ergebnisse und das Vorgehen für secure-links-evaluation-dcp-10 dargestellt.
Zunächst werden die erwarteten Sicherheitsprobleme ermittelt. Dazu wird die DCP-Analyse auf dem Modell durchgeführt. Es wird eine Abfrage secureLinks('default', OP, D, ACT, L, DS) für den Standardangreifer und eine Abfrage für den Insiderangreifer secureLinks('insider', OP, D, ACT, L, DS) gestellt. Die Ergebnisse der Analyse sind:
?- secureLinks('default', OP, D, ACT, L, DS).
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Call Parameter',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral Secrecy (_ycUIcP7hEeizQdLqRSCK5g)' ;
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Return Value',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral Secrecy (_ycUIcP7hEeizQdLqRSCK5g)'
?- secureLinks('insider', OP, D, ACT, L, DS).
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Call Parameter',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral Secrecy (_ycUIcP7hEeizQdLqRSCK5g)' ;
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g',
D = 'Return Value',
ACT = [read, insert, delete],
L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)',
DS = 'EnumCharacteristicLiteral Secrecy (_ycUIcP7hEeizQdLqRSCK5g)'
Anschließend werden die Parameterbelegungen zusammengefasst, die dasselbe Sicherheitsproblem melden und sich nur in der Datenflussrichtung D unterscheiden. Dies führt zu folgenden Ergebnissen, welche die erwarteten Ergebnisse darstellen.
Für den Standardangreifer
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral Secrecy (_ycUIcP7hEeizQdLqRSCK5g)'
Für den Insiderangreifer
OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral Secrecy (_ycUIcP7hEeizQdLqRSCK5g)'
Es wird also sowohl für den Standardangreifer, als auch für den Insiderangreifer je ein Sicherheitsproblem erwartet. Anschließend wird die Modelltransformation durchgeführt. Daraus entstehen die Modelle secure-links-evaluation-umlsec-10 (Standardangreifer) und secure-links-evaluation-umlsec-42 (Insiderangreifer). Für diese beiden Modelle wird die CARiSMA-Analyse durchgeführt. Die Ergebnisse sind für den Standardangreifer:
The analysis detected 1 errors. ERROR: default attacker can read at CommunicationPath 'CommunicationPath'.
Für den Insiderangreifer sind die Ergebnisse:
The analysis detected 1 errors. ERROR: insider attacker can read at CommunicationPath 'CommunicationPath'.
Es wird also wie erwartet jeweils ein Sicherheitsproblem gefunden. Die Überprüfung, dass die ausgegebene Operation zu der Netzwerkressource korrespondiert, welche zu dem Kommunikationspfad CommunicationPath korrespondiert, kann über eine Inspektion des Modells nachvollzogen werden.
Zur Reproduktion der Ergebnisse für das Experiment zur Evaluierung der Fragestellung F2.3 der Secure-Links-Evaluation müssen Sie für die Modelle secure-links-evaluation-umlsec-X (X = 1..80) und secure-links-evaluation-umlsec-structural-Y (Y = 1..5) das in der Masterarbeit beschriebene Vorgehen anwenden. Zum besseren Verständnis sind im Folgenden die Ergebnisse und das Vorgehen für secure-links-evaluation-umlsec-20 dargestellt.
Zunächst sind die UMLsec-Analyse-Ergebnisse für das Modell zu ermitteln. Diese sind:
The analysis detected 1 errors. ERROR: default attacker can delete at CommunicationPath 'CommunicationPath'.
Anschließend wird die Modelltransformation durchgeführt. Daraus entsteht das Modell secure-links-evaluation-dcp-20. Dieses Modell wird zurück nach UMLsec transformiert. Daraus entstehen die Modelle secure-links-evaluation-umlsec-20 (Standardangreifer) und secure-links-evaluation-umlsec-53 (Insiderangreifer). Da für das ursprüngliche UMLsec-Modell der Standardangreifer definiert ist, wird secure-links-evaluation-umlsec-53 verworfen. Anschließend wird das Analyse-Ergebnis der CARiSMA-Analyse für secure-links-evaluation-umlsec-20 erzeugt. Dieses ist:
The analysis detected 1 errors. ERROR: default attacker can delete at CommunicationPath 'CommunicationPath'.
Die Ergebnisse vor der Hin- und Rücktransformation stimmen also mit den Ergebnissen nach der Hin- und Rücktransformation überein.
Zur Reproduktion der Ergebnisse für das Experiment zur Evaluierung der Fragestellung F2.4 der Secure-Links-Evaluation müssen Sie für die Modelle secure-links-evaluation-dcp-X (X = 1..40) und secure-links-evaluation-dcp-structural-Y (Y = 1..4) das in der Masterarbeit beschriebene Vorgehen anwenden. Zum besseren Verständnis sind im Folgenden die Ergebnisse und das Vorgehen für secure-links-evaluation-dcp-12 dargestellt.
Zunächst sind die DCP-Analyse-Ergebnisse für das Modell zu ermitteln. Dazu wird die Abfrage secureLinks(ATT, OP, D, ACT, L, DS) verwendet. Die Ergebnisse sind:
?- secureLinks(ATT, OP, D, ACT, L, DS). ATT = default, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Call Parameter', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)' ; ATT = insider, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Call Parameter', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)' ; ATT = default, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Return Value', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)' ; ATT = insider, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Return Value', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)'
Anschließend wird die Modelltransformation durchgeführt. Daraus entstehen die Modelle secure-links-evaluation-umlsec-12 (Standardangreifer) und secure-links-evaluation-umlsec-44 (Insiderangreifer). Diese Modelle werden zurück nach DCP transformiert. Aus beiden Modellen entsteht dadurch das Modell secure-links-evaluation-dcp-12. Für dieses Modell werden die Ergebnisse der DCP-Analyse ermittelt und mit den zuvor ermittelten Ergebnissen verglichen. Die Ergebnisse sind:
?- secureLinks(ATT, OP, D, ACT, L, DS). ATT = default, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Call Parameter', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)' ; ATT = insider, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Call Parameter', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)' ; ATT = default, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Return Value', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)' ; ATT = insider, OP = 'DataTransmissionProxyOperation_PerformDataTransmissionOperation C1_call_C2 (__mLrA_-MEeiCvJvtMoMgzQ) - AC _DsDPEP7bEeizQdLqRSCK5g_ResourceDemandingSEFF (_PdH5J_7KEeizQdLqRSCK5g) - AC _LDNNYP7cEeizQdLqRSCK5g', D = 'Return Value', ACT = [read, insert, delete], L = 'EnumCharacteristicLiteral Internet (_roPzoP7hEeizQdLqRSCK5g)', DS = 'EnumCharacteristicLiteral High (_MH-ywDnlEemMj9CR_tVLHg)'
Die Ergebnisse vor der Hin- und Rücktransformation stimmen also mit den Ergebnissen nach der Hin- und Rücktransformation überein.
Zur Reproduktion der Ergebnisse für das Experiment zur Evaluierung der Fragestellung F2.1 der Secure-Dependencies-Evaluation müssen Sie für die Modelle secure-dependencies-evaluation-umlsec-X (X = 1..128) das in der Masterarbeit beschriebene Vorgehen anwenden. Zum besseren Verständnis sind im Folgenden die Ergebnisse und das Vorgehen für secure-dependencies-evaluation-umlsec-11 dargestellt.
Dieses Modell verfügt über eine Sicherheitsverletzung, da die konsumierende Klasse Integrität fordert, aber die realisierende Klasse nur Vertraulichkeit garantiert. Es wird also für die DCP-Analyse erwartet, dass mindestens eine Sicherheitsverletzung ausgegeben wird. Das Modell wird nach DCP transformiert. Das entstehende Modell ist secure-dependencies-evaluation-dcp-11. Für diese Modell wird die DCP-Analyse durchgeführt, indem secureDependencies(OP, S, R, V) abgefragt wird. Das Ergebnis der DCP-Analyse ist:
?- secureDependencies(OP, S, R, V). OP = 'PerformDataTransmissionOperation C1_call_M1_C2 (_fOMk80sYEem1JdSEg6s8Tg) - AC _WfgasEsREemsh7XLKVN3yA', S = ['PerformDataTransmissionOperation C1_call_M1_C2 (_fOMk80sYEem1JdSEg6s8Tg) - AC _WfgasEsREemsh7XLKVN3yA', opCall_9aa241cb, 'SystemDiscardData C1_call_M1_C2_discard (_h-Ocl0sYEem1JdSEg6s8Tg) - AC _WfgasEsREemsh7XLKVN3yA', opCall_69e3847, 'ResourceDemandingSEFF (_6xMA50sNEemsh7XLKVN3yA) - AC _WfgasEsREemsh7XLKVN3yA', opCall_f0a03647, 'PerformDataTransmissionOperation Scenario1_call_C1 (_iR-b00sUEemsh7XLKVN3yA) - AC n/a', opCall_7dc632eb, 'UserReadData Scenario1_discard (_2qi3fEsUEemsh7XLKVN3yA) - AC n/a'|...], R = 'C1_call_M1_C2_returnValue_RETURN_686539a2', V = 'EnumCharacteristicLiteral Integrity (_yxegIP7hEeizQdLqRSCK5g)' ; OP = 'PerformDataTransmissionOperation C1_call_M1_C2 (_fOMk80sYEem1JdSEg6s8Tg) - AC _WfgasEsREemsh7XLKVN3yA', S = ['PerformDataTransmissionOperation C1_call_M1_C2 (_fOMk80sYEem1JdSEg6s8Tg) - AC _WfgasEsREemsh7XLKVN3yA', opCall_9aa241cb, 'SystemDiscardData C1_call_M1_C2_discard (_h-Ocl0sYEem1JdSEg6s8Tg) - AC _WfgasEsREemsh7XLKVN3yA', opCall_69e3847, 'ResourceDemandingSEFF (_6xMA50sNEemsh7XLKVN3yA) - AC _WfgasEsREemsh7XLKVN3yA', opCall_f0a03647, 'PerformDataTransmissionOperation Scenario1_call_C1 (_iR-b00sUEemsh7XLKVN3yA) - AC n/a', opCall_7dc632eb, 'UserReadData Scenario1_discard (_2qi3fEsUEemsh7XLKVN3yA) - AC n/a'|...], R = 'C1_call_M1_C2_returnValue_RETURN_686539a2', V = 'EnumCharacteristicLiteral Secrecy (_ycUIcP7hEeizQdLqRSCK5g)'
Es wird also wie erwartet mindestens ein Sicherheitsproblem zurückgegeben.