Abstract:
In dieser Arbeit haben wir architekturelle Sicherheitsanalysen entwickelt, um Zugriffsverletzungen und Angriffspfade zu ermitteln.
Durch die fortschreitende Digitalisierung und die zunehmende Vernetzung steigt die Bedeutung der IT-Sicherheit. Die Sicherheit eines Systems besteht aus mehreren verschiedenen Eigenschaften wie Vertraulichkeit oder Integrität.
In unserer Arbeit konzentrieren wir uns auf die Vertraulichkeit. Ein vertrauliches System teilt nur die benötigten Daten mit autorisierten Entitäten. Unbefugte oder böswillige Personen erhalten keinen Zugang zu vertraulichen Daten.
... mehr
Die Entwicklung eines vertraulichen Systems ist jedoch schwierig, da viele verschiedene Eigenschaften Einfluss auf die Vertraulichkeit haben. Ein wichtiger Einflussfaktor ist die Zugangskontrolle. Zugriffskontrollrichtlinien definieren für jedes Element innerhalb eines Systems, unter welchen Bedingungen der Zugriff gewährt werden kann. Diese Zugriffskontrollrichtlinien berücksichtigen oft den Kontext für den Zugriff. Der Kontext kann z.B. die Zeit oder der Standort von Personen sein. Durch die Berücksichtigung steigt die Komplexität der Spezifikation der Zugriffskontrolle. Dies kann zu einer Fehlspezifikation führen. Daher ist es wichtig, die Auswirkungen einer Zugriffskontrollrichtlinie zu ermitteln. Aufgrund der Komplexität ist es jedoch schwierig, die Auswirkungen zu bestimmen, da die Analyse auch den Kontext berücksichtigen muss.
Neben Zugriffskontrollrichtlinien können auch Schwachstellen die Vertraulichkeit des Systems beeinflussen. Schwachstellen können von Angreifer:innen ausgenutzt werden, um Zugang zu geschützten Entitäten im System zu erhalten. Sie ermöglichen es den Angreifer:innen also, die Zugangskontrollrichtlinien zu umgehen. Schwachstellen ermöglichen nicht nur den direkten Zugang zu Entitäten, sondern ermöglichen Angreifer:innen auch die Berechtigung anderer Personen zuerlangen. Diese Berechtigung kann dann von Angreifer:innen verwendet werden, um sich bei anderen Elementen Zugang zu verschaffen. Schwachstellen hängen jedoch auch von Zugangskontrollsystemen ab, da für einige Schwachstellen eine Berechtigung erforderlich ist. So können beispielsweise einige Schwachstellen nur von berechtigten Personen ausgenutzt werden. Um die Auswirkungen einer Schwachstelle abschätzen zu können, muss eine Analyse daher auch die Eigenschaften der Zugangskontrolle berücksichtigen. Darüber hinaus ist der Kontext der Angreifer:innen wichtig, da einige Schwachstellen nur dann ausgenutzt werden können, wenn der Angreifer:innen zuvor andere Entitäten im System kompromittiert haben. Daher wird bei Angriffen eine verkettete Liste kompromittierter Entitäten erstellt. Diese Liste wird auch als Angriffspfad bezeichnet. Sie besteht aus einer Kette von Schwachstellen, die die mehrfache Ausnutzung von Schwachstellen und Zugangskontrollrichtlinien durch Angreifer:innen darstellen. Die automatische Ableitung dieser möglichen Angriffspfade kann verwendet werden, um die Auswirkungen auf die Vertraulichkeit abzuschätzen, da sie den Expert:innen eine Rückmeldung darüber gibt, welche Elemente kompromittiert werden können.
Bestehende Ansätze zur Abschätzung der Sicherheit oder der Auswirkungen von Zugangskontrollrichtlinien oder Schwachstellen konzentrieren sich oft nur auf eine der beiden Eigenschaften. Ansätze, die beide Eigenschaften berücksichtigen, sind in der Anwendungsdomäne oft sehr begrenzt, z.B. lösen sie es nur für eine Anwendungsdomäne wie Microsoft Active Directory oder sie berücksichtigen nur ein begrenztes Zugangskontrollmodell. Darüber hinaus arbeiten die meisten Ansätze mit einer Netzwerktopologie. Dies kann zwar bei der Modellierung hilfreich sein, doch berücksichtigt eine Netzwerktopologie in der Regel keine weiteren Eigenschaften wie Bereitstellung von Diensten auf Servern oder die Nutzung von Komponenten.
Software-Architekturmodelle können diese Informationen jedoch liefern. Darüber hinaus ermöglicht die Verwendung von Modellen, ein System bereits während der Entwicklung oder während eines Ausfalls zu analysieren. Daher hilft es bei der Verwirklichung von Security by Design. Im Einzelnen sind unsere Beiträge:
Wir haben ein Metamodell für die Zugriffskontrolle entwickelt, um kontextbasierte Zugriffskontrollrichtlinien in der Software-Architektur zu spezifizieren.
Zusätzlich haben wir ein Schwachstellen-Metamodell entwickelt, um Schwachstellen in Software-Architekturen zu spezifizieren.
Die Zugriffskontrollrichtlinien können in einer szenariobasierten Zugriffskontrollanalyse analysiert werden, um Zugriffsverletzungen zu identifizieren.
Wir haben zwei Angriffsanalysen entwickelt. Beide können Angriffspfade auf einem Architekturmodell generieren und Schwachstellen und Zugangskontrollrichtlinien verwenden. Die eine Analyse betrachtet die Angriffsausbreitung von einem bestimmten Startpunkt in der Software-Architektur. Die andere findet Angriffspfade, die zu einem bestimmten Architekturelement führen.
Wir haben unsere Sicherheitsanalysen anhand verschiedener Evaluierungsszenarien evaluiert. Diese Szenarien wurden auf der Grundlage von Evaluierungsfällen aus verwandten Arbeiten oder realen Sicherheitsvorfällen erstellt. Für die erste Analyse haben wir die Genauigkeit bei der Identifizierung von Zugriffsverletzungen untersucht. Unsere Ergebnisse deuten auf eine hohe Genauigkeit hin.
Für die beiden Angriffsanalysen untersuchten wir die Genauigkeit hinsichtlich der gefundenen kompromittierten Elemente, die Aufwandsreduzierung bei der Verwendung unserer Analysen und die Skalierbarkeit. Unsere Ergebnisse deuten auf eine hohe Genauigkeit und eine Aufwandsreduzierung hin. Allerdings ist die Skalierbarkeit für beide Ansätze nicht ideal. Für kleinere Software-Architekturen ist sie jedoch akzeptabel.
Der von uns entwickelte Ansatz kann Software-Architekt:innen dabei helfen, sicherere Systeme zu entwerfen. Der Ansatz kann die Auswirkungen von Zugriffskontrollrichtlinien anhand von Zugriffsverletzungen und für Schwachstellen zusammen mit Zugriffskontrollrichtlinien anhand von Angriffspfaden aufzeigen. Durch die Verwendung von Software-Architekturmodellen kann unser Ansatz dieses Feedback bereits während des Entwurfs der Software liefern. Dies kann helfen, nach "Security by Design" zu entwickeln.
Abstract (englisch):
In this thesis, we developed architectural security analyses to identify access violations and attack paths.
Through the ongoing digitalization and increasing networking between various aspects of our daily life, the significance of security is on the rise. System security encompasses multiple properties, including confidentiality and integrity.
In our research, we specifically concentrate on confidentiality. The main aspect of a confidential system is that it only shares the required data with authorized entities. Unauthorized or malicious entities are prevented from gaining access to the data.
... mehr
However, designing a confidential system is challenging due to numerous factors influencing whether a system can be deemed confidential. One significant influencing factor is the access control. The access control is specified by access control policies. These policies define the conditions under which access can be granted to each entity within a system. Due to the ongoing digitalization, these access control policies must increasingly consider context factors when accessing data. For instance, the context may include a user's time or location. As considering contexts becomes more prominent, the complexity of specifying access control policies also rises. Consequently, there is a greater likelihood of access control policy misspecifications. Therefore, context information plays a crucial role in determining the impact of access control policies. However, due to the complexity of these policies, assessing their impact is equally challenging. This challenging impact estimation makes analyses that consider the context to determine the impact necessary.
In addition to access control policies, vulnerabilities can significantly affect the confidentiality of a system. Attackers exploit these vulnerabilities to gain unauthorised access to protected entities within the system, thereby bypassing access control policies. Vulnerabilities not only grant direct access to entities but can also lead to the unauthorised disclosure of authorisation or credential information. Attackers can leverage this leaked information to gain access to other entities. However, vulnerabilities are also dependent on access control systems, as certain vulnerabilities may require authorisation for exploitation. For example, some vulnerabilities can only be exploited by authorised users. Consequently, when estimating the impact of a vulnerability, an analysis must consider the access control properties. Furthermore, the context of the attacker is crucial, as some vulnerabilities can only be exploited if the attacker has previously compromised other entities within the system. This results in a chain of compromised entities, often referred to as attack paths. These paths consist of lateral movement and vulnerability chaining representing the multiple exploitations of vulnerabilities and access control policies through attackers. The automatic derivation of these potential attack paths can aid in estimating the impact on confidentiality by providing experts with feedback regarding potential compromised elements.
Existing approaches for estimating the security or impact of access control policies or vulnerabilities often concentrate solely on one aspect, either the access control policies or the vulnerabilities. Approaches considering both properties tend to be highly specialized, focusing on a single application domain, like Microsoft Active Directory, or employing a limited access control model. Moreover, many existing approaches primarily operate on a network topology, which aids in modelling but fails to account for additional important factors such as deployment and components within the system.
Software architecture models can provide this information. In addition, the usage of models enables us to analyse a system already during the development or in a downtime. Hence, it helps in achieving Security by Design. Our specific contributions are as follows:
Development of an access control metamodel to specify context-based access control policies within the software architecture.
Creation of a vulnerability metamodel to specify vulnerabilities within software architectures.
Development of a scenario-based access control analysis to analyse access control policies and identify access violations.
Development of two attack analyses that generate attack paths using vulnerabilities and access control policies based on the software architecture. One analysis focuses on the propagation of attacks from a specific starting point in the software architecture, while the other identifies attack paths leading to specific architectural elements.
We evaluated our security analyses on different evaluation scenarios. These scenarios are derived from evaluation cases found in related work, as well as real-world security incidents. For the first analysis, we investigated the accuracy of identifying access violations. Our findings indicate a high accuracy in this regard.
Regarding the two attack analyses, we investigated the accuracy in identifying compromised elements, the potential effort reduction through using our analyses and the scalability. Our findings indicate a high accuracy and an effort reduction. However, the scalability for both approaches could be improved. Nevertheless, for smaller software architectures, it is sufficient.
Our developed approach can help software architects to design secure systems. By providing access violations and attack paths, our approach helps in estimating the impact of access control policies and vulnerabilities within the software architecture. Moreover, through utilising software architecture models, our approach can provide feedback already during the design of the software. This can help to develop Secure Software by Design.