Recovering Security in Model-Based Software Engineering by Context-Driven Co-Evolution
- Software systems have an increasing impact on our daily lives. Many systems process sensitive data or control critical infrastructure. Providing secure software is therefore inevitable. Such systems are rarely being renewed regularly due to the high costs and effort. Oftentimes, systems that were planned and implemented to be secure, become insecure because their context evolves. These systems are connected to the Internet and therefore also constantly subject to new types of attacks. The security requirements of these systems remain unchanged, while, for example, discovery of a vulnerability of an encryption algorithm previously assumed to be secure requires a change of the system design. Some security requirements cannot be checked by the system’s design but only at run time. Furthermore, the sudden discovery of a security violation requires an immediate reaction to prevent a system shutdown. Knowledge regarding security best practices, attacks, and mitigations is generally available, yet rarely integrated part of software development or covering evolution. This thesis examines how the security of long-living software systems can be preserved taking into account the influence of context evolutions. The goal of the proposed approach, S²EC²O, is to recover the security of model-based software systems using co-evolution. An ontology-based knowledge base is introduced, capable of managing common, as well as system-specific knowledge relevant to security. A transformation achieves the connection of the knowledge base to the UML system model. By using semantic differences, knowledge inference, and the detection of inconsistencies in the knowledge base, context knowledge evolutions are detected. A catalog containing rules to manage and recover security requirements uses detected context evolutions to propose potential co-evolutions to the system model which reestablish the compliance with security requirements. S²EC²O uses security annotations to link models and executable code and provides support for run-time monitoring. The adaptation of running systems is being considered as is round-trip engineering, which integrates insights from the run time into the system model. S²EC²O is amended by prototypical tool support. This tool is used to show S²EC²O’s applicability based on a case study targeting the medical information system iTrust. This thesis at hand contributes to the development and maintenance of long-living software systems, regarding their security. The proposed approach will aid security experts: It detects security-relevant changes to the system context, determines the impact on the system’s security and facilitates co-evolutions to recover the compliance with the security requirements.
- Softwaresysteme haben einen zunehmenden Einfluss auf unser tägliches Leben. Viele Systeme verarbeiten sensitive Daten oder steuern wichtige Infrastruktur, was die Bereitstellung sicherer Software unabdingbar macht. Derartige Systeme werden aus Aufwands- und Kostengründen selten erneuert. Oftmals werden Systeme, die zu ihrem Entwurfszeitpunkt als sicheres System geplant und implementiert wurden, deswegen unsicher, weil sich die Umgebung dieser Systeme ändert. Dadurch, dass verschiedenste Systeme über das Internet kommunizieren, sind diese auch neuen Angriffsarten stetig ausgesetzt. Die Sicherheitsanforderungen an ein System bleiben unberührt, aber neue Erkenntnisse wie die Verwundbarkeit eines zum Entwurfszeitpunkt als sicher geltenden Verschlüsselungsalgorithmus erzwingen Änderungen am System. Manche Sicherheitsanforderungen können dabei nicht anhand des Designs sondern nur zur Laufzeit geprüft werden. Darüber hinaus erfordern plötzlich auftretende Sicherheitsverletzungen eine unverzügliche Reaktion, um eine Systemabschaltung vermeiden zu können. Wissen über geeignete Sicherheitsverfahren, Angriffe und Abwehrmechanismen ist grundsätzlich verfügbar, aber es ist selten in die Softwareentwicklung integriert und geht auf Evolutionen ein. In dieser Arbeit wird untersucht, wie die Sicherheit langlebiger Software unter dem Einfluss von Kontext-Evolutionen bewahrt werden kann. Der vorgestellte Ansatz S²EC²O hat zum Ziel, die Sicherheit von Software, die modellbasiert entwickelt wird, mithilfe von Ko-Evolutionen wiederherzustellen. Eine Ontologie-basierende Wissensbasis wird eingeführt, die sowohl allgemeines wie auch systemspezifisches, sicherheitsrelevantes Wissen verwaltet. Mittels einer Transformation wird die Verbindung der Wissensbasis zu UML-Systemmodellen hergestellt. Mit semantischen Differenzen, Inferenz von Wissen und der Erkennung von Inkonsistenzen in der Wissensbasis werden Kontext-Evolutionen erkannt. Ein Katalog mit Regeln zur Verwaltung und Wiederherstellung von Sicherheitsanforderungen nutzt erkannte Kontext-Evolutionen, um mögliche Ko-Evolutionen für das Systemmodell vorzuschlagen, welche die Einhaltung von Sicherheitsanforderungen wiederherstellen. S²EC²O unterstützt Sicherheitsannotationen, um Modelle und Code zum Zwecke einer Laufzeitüberwachung zu koppeln. Die Adaption laufender Systeme gegen Bedrohungen wird ebenso betrachtet wie Roundtrip-Engineering, um Erkenntnisse aus der Laufzeit in das System-Modell zu integrieren. S²EC²O wird ergänzt um eine prototypische Implementierung. Diese wird genutzt, um die Anwendbarkeit von S²EC²O im Rahmen einer Fallstudie an dem medizinischen Informationssystem iTrust zu zeigen. Die vorliegende Arbeit leistet einen Beitrag, um die Entwicklung und Wartung langlebiger Softwaresysteme in Bezug auf ihre Sicherheit zu begleiten. Der vorgestellte Ansatz entlastet Sicherheitsexperten bei ihrer Arbeit, indem er sicherheitsrelevante Änderungen des Systemkontextes erfasst, den Einfluss auf die Sicherheit der Software prüft und Ko-Evolutionen zur Bewahrung der Sicherheitsanforderungen ermöglicht.
Author: | Jens Bürger |
---|---|
URN: | urn:nbn:de:kola-19898 |
Referee: | Jan Jürjens, Timo Kehrer |
Advisor: | Jan Jürjens |
Document Type: | Doctoral Thesis |
Language: | English |
Date of completion: | 2019/11/07 |
Date of publication: | 2019/11/08 |
Publishing institution: | Universität Koblenz, Universitätsbibliothek |
Granting institution: | Universität Koblenz, Fachbereich 4 |
Date of final exam: | 2019/10/31 |
Release Date: | 2019/11/08 |
Tag: | evolution; long-living systems; model-based; security; software engineering |
Number of pages: | xviii, 201 |
Institutes: | Fachbereich 4 / Institut für Softwaretechnik |
Dewey Decimal Classification: | 0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik |
BKL-Classification: | 54 Informatik / 54.38 Computersicherheit |
54 Informatik / 54.52 Software engineering | |
Licence (German): | Es gilt das deutsche Urheberrecht: § 53 UrhG |