Abstract:
In dieser Dissertation untersuchen wir die Kopplung von architekturbasierten Sicherheitsanalysen mit statischen Quelltextsicherheitsanalysen, um Sicherheitsschwachstellen in der Softwarearchitektur zu erkennen, die aus einer Implementierung entstehen, die nicht mit der Architekturspezifikation übereinstimmt.
Wir stellen Eigenschaften von Kopplungsansätzen vor, die geeignet sind, dieses Ziel zu erreichen (als Kopplungsentwurf bezeichnet), zwei Kopplungsansätze, die diesen Entwurf instanziieren, sowie einen Ansatz, um statische Quelltextsicherheitsanalysen mit domänenspezifischen Sicherheitssprachen auf Entwurfsebene in Beziehung zu setzen.
... mehr
Die meisten modernen Softwaresysteme verarbeiten oder speichern sensible Informationen und sind mit anderen Systemen vernetzt.
Aus diesem Grund müssen sie sicher entworfen und implementiert werden, um zu verhindern, dass Angreifer Schwachstellen im System ausnutzen und die Sicherheit kompromittieren.
Die Kompromittierung der Sicherheit kann schwerwiegende Folgen für Einzelpersonen und Unternehmen haben, zum Beispiel finanzielle Verluste, Identitätsmissbrauch oder Vertrauensverlust.
Schwachstellen in der kritischen Infrastruktur, etwa im Mobilitätsbereich, in der Energieversorgung oder im Gesundheitswesen, stellen besonders alarmierende Missbrauchsrisiken dar.
Diese Erkenntnisse motivierten Quelltextsicherheitsanalysen, um Schwachstellen in der Implementierung zu erkennen.
Darüber hinaus wurden architekturbasierte Sicherheitsanalysen entwickelt, die den Architekturentwurf analysieren, um Schwachstellen zu erkennen, bevor sie sich in der Implementierung manifestieren.
Forschung in diesem Bereich hat jedoch gezeigt, dass evolutionäre Änderungen zu Nichtübereinstimmung zwischen Architekturentwurf und Implementierung führen können.
Diese Nichtübereinstimmung stellt eine erhebliche Herausforderung für architekturbasierte Analysen dar, da diese Schwachstellen übersehen können, die im finalen System existieren.
Dies führt zu der Herausforderung, dass Softwareingenieure auf Basis der Ergebnisse architekturbasierter Analysen fälschlicherweise annehmen können, ein System sei sicher, während ein Angreifer eine Schwachstelle im bereitgestellten System ausnutzen kann.
In dieser Dissertation adressieren wir die Herausforderung übersehener architekturbezogene Sicherheitsschwachstellen infolge nicht übereinstimmender Implementierungen durch die Kopplung architekturbasierter Analysen mit statischen Quelltextsicherheitsanalysen.
Hierfür untersuchen wir geeigneten Eigenschaften von Kopplungsansätzen für die Kopplung architekturbasierter Analysen mit statischen Quelltextsicherheitsanalysen, Beziehungen zur Überbrückung der Lücke zwischen architekturbasierter Sicherheit und Sicherheit der Implementierung, sowie Mechanismen zur Ermöglichung des Informationsaustauschs zwischen architekturbasierten Analysen und Quelltextsicherheitsanalysen.
Unser erster Beitrag, der Kopplungsentwurf, stellt wiederverwendbares Wissen über Eigenschaften bereit, die geeignet sind, architekturbasierte Analysen mit Quelltextsicherheitsanalysen zu koppeln.
Der zweite Beitrag umfasst zwei Kopplungsansätze, welche zwei wichtige Typen statischer Quelltextsicherheitsanalysen und unterschiedliche Arten sicherheitsrelevanter Eigenschaften adressieren.
Beide Kopplungsansätze instanziieren unseren Kopplungsentwurf, definieren für die Kopplung notwendige Informationen, legen fest, wie diese Informationen in den Analysen in Beziehung gesetzt werden, und definieren, wie der Informationsaustausch zwischen den Analysen ermöglicht wird.
Unser dritter Beitrag ist SecLan, ein Ansatz zur Bestimmung von Beziehungen zwischen Sicherheitsschwachstellen die von statischen Quelltextsicherheitsanalysen gefunden werden und Sicherheitseigenschaften welche in domänenspezifischen Sprachen auf Entwurfsebene spezifiziert sind.
Unsere Beiträge werden empirisch evaluiert: mit Evaluierungsszenarien für den Kopplungsentwurf und die Kopplungsansätze sowie mit Expertenumfragen und Experteninterviews für SecLan.
Die Ergebnisse unserer Evaluation zeigen, dass die durch unsere Kopplungsansätze definierten Informationen durch die Analysen abgedeckt werden und dass die definierten Beziehungen in erfolgreichen Kopplungen existieren.
Die Evaluation der Genauigkeit zeigt, dass die Kopplungsansätze architekturbezogene Sicherheitsschwachstellen erkennen können, die aus nicht übereinstimmenden Implementierungen entstehen und ohne die Kopplung übersehen worden wären.
Unsere Ergebnisse zeigen jedoch auch, dass ein Kopplungsansatz aufgrund eingeschränkter Genauigkeit Raum für Verbesserungen bietet, während der andere Kopplungsansatz eine hohe Genauigkeit aufweist.
Die Ergebnisse unserer Evaluation von SecLan zeigen, dass das konzeptionelle Modell korrekt und vollständig ist und dass die von SecLan berechneten Beziehungen valide sind.
Hervorzuheben ist, dass unsere Ergebnisse darauf hindeuten, dass selbst Sicherheitsexperten sich nicht immer über alle Beziehungen zwischen Quelltextanalyse-Ergebnissen und Sicherheitseigenschaften, die in sicherheitsbezogenen Systementwürfen spezifiziert sind, bewusst sind.
Dies unterstreicht die Notwendigkeit von SecLan und unseren Kopplungsansätzen.
Insgesamt ermöglichen unsere Beiträge Softwareingenieuren, architekturbezogene Sicherheitsschwachstellen zu erkennen, die aus nicht übereinstimmenden Implementierungen entstehen, und Quelltextsicherheitsanalysen systematisch mit architekturbasierten Analysen in Beziehung zu setzen.
Abstract (englisch):
In this dissertation, we investigate the coupling of architectural security analyses with static source code security analyses to detect architectural vulnerabilities that arise from an implementation that is non-compliant with the architectural specification.
We present properties of coupling approaches suitable for achieving this goal (called coupling design), two coupling approaches that instantiate this design, and an approach to relate static source code analyses to design-level security domain-specific languages.
Most modern software systems process or store sensitive information, and are interconnected with other systems.
... mehr
Consequently, they must be designed and implemented securely to prevent attackers from exploiting vulnerabilities in the system and to compromise its security.
Compromising the security can have severe consequences for individuals and companies, such as financial loss, impersonation, or loss of trust.
Vulnerabilities in safety-critical systems, such as mobility systems, energy supply or healthcare systems, present particular alarming cases for misuse.
These insights motivated source code security analyses to detect vulnerabilities in the implementation.
Furthermore, architectural security analyses have been developed that analyze the architectural design to detect vulnerabilities before they manifest in the implementation.
However, research has shown that evolutionary changes can result in non-compliance between the architectural design and the implementation.
Non-compliance poses a significant challenge for architectural analyses, because they may miss vulnerabilities that actually exist in the final system.
This leads to the challenge that software engineers may wrongly assume the system to be secure based on the architectural analysis results, while an attacker can exploit vulnerabilities in the deployed system.
In this dissertation, we address the challenge of missed architectural vulnerabilities due to non-compliant implementations by coupling architectural analyses with static source code analyses.
We investigate suitable properties of coupling approaches, relations to bridge the gap between architectural security and implementation-level security, and mechanisms to enable the information exchange between architectural analyses and source code analyses.
Our first contribution, the coupling design, provides reusable knowledge on properties suitable to couple architectural analyses with source code analyses.
The second contribution comprises two coupling approaches addressing two types of static source code analyses and different types of security-related properties.
Both coupling approaches instantiate our coupling design, define information necessary for the coupling, define how to relate this information in the analyses, and define how to enable the information exchange between the analyses.
Our third contribution is SecLan, an approach to determine relations between the vulnerabilities detectable by source code analyses and security properties specified in design-level domain-specific languages based on a conceptual model.
Our contributions are empirically evaluated using evaluation scenarios for the coupling design and coupling approaches, and expert surveys and expert interviews for SecLan.
The results of our evaluation show that the information defined by our coupling approaches are covered by the analyses, and that the relations defined exist in successful couplings.
The evaluation of accuracy shows that the coupling approaches can detect architectural vulnerabilities arising from non-compliant implementations that would have been missed without the coupling.
However, our results also show that one coupling approach has further potential for improvement due to limited accuracy, while the other coupling approach exposes high accuracy.
The results of our evaluation of SecLan show that the conceptual model is correct and complete, and that the relations calculated by SecLan are valid.
Most notably, our results show that also security experts are not always aware of the relations between source code analysis results and security properties specified in security-related system designs, highlighting the necessity for SecLan and our coupling approaches.
Overall, our contributions allow software engineers to detect architectural vulnerabilities arising from non-compliant implementations, and to systematically relate source code analyses to architectural analyses.