Refine
Year of publication
Document Type
- Conference Proceeding (22)
- Master's Thesis (4)
- Article (2)
- Bachelor Thesis (2)
- Part of a Book (1)
- Diploma Thesis (1)
- Workingpaper / Report (1)
- Study Thesis (1)
Is part of the Bibliography
- no (34) (remove)
Keywords
- security (8)
- security requirement (6)
- problem frames (4)
- security engineering (4)
- requirements engineering (3)
- security requirement engineering (3)
- software engineering (3)
- Bachelor (2)
- IT Security (2)
- M (2)
Department/institution
- Digitale Vernetzung und Informationssicherheit (34) (remove)
The discipline of engineering secure software and services brings together researchers and practitioners from software, services, and security engineering. This interdisciplinary community is fairly new, it is still not well integrated and is therefore confronted with differing perspectives, processes, methods, tools, vocabularies, and standards. We present a Common Body of Knowledge (CBK) to overcome the aforementioned problems. We capture use cases from research and practice to derive requirements for the CBK. Our CBK collects, integrates, and structures knowledge from the different disciplines based on an ontology that allows one to semantically enrich content to be able to query the CBK. The CBK heavily relies on user participation, making use of the Semantic MediaWiki as a platform to support collaborative writing. The ontology is complemented by a conceptual framework, consisting of concepts to structure the knowledge and to provide access to it, and a means to build a common terminology. We also present organizational factors covering dissemination and quality assurance.
This paper presents a conceptual framework for security engineering, with a strong focus on security requirements elicitation and analysis. This conceptual framework establishes a clear-cut vocabulary and makes explicit the interrelations between the different concepts and notions used in security engineering. Further, we apply our conceptual framework to compare and evaluate current security requirements engineering approaches, such as the Common Criteria, Secure Tropos, SREP, MSRA, as well as methods based on UML and problem frames. We review these methods and assess them according to different criteria, such as the general approach and scope of the method, its validation, and quality assurance capabilities. Finally, we discuss how these methods are related to the conceptual framework and to one another.
Problem frames are patterns for analyzing, structuring, and characterizing software development problems. This paper presents a formal metamodel for problem frames expressed in UML class diagrams and using the formal specification notation OCL. That metamodel clarifies the nature of the different syntactical elements of problem frames, as well as the relations between them. It provides a framework for syntactical analysis and semantic validation of newly defined problem frames, and it prepares the ground for tool support for the problem frame approach.
We present a pattern system/or security requirements engineering, consisting of security problem frames and concretized security problem frames. These are special kinds of problem frames that serve to structure, characterize, analyze, and finally solve software development problems in the area of software and system security. We equip each frame with formal preconditions and postconditions. The analysis of these conditions results in a pattern system that explicitly shows the dependencies between the different frames. Moreover, we indicate related frames, which are commonly used together with the considered frame. Hence, our approach helps security engineers to avoid omissions and to cover all security requirements that are relevant for a given problem.
The authors present a security engineering process based on security problem frames and concretized security problem frames. Both kinds of frames constitute patterns for analyzing security problems and associated solution approaches. They are arranged in a pattern system that makes dependencies between them explicit. The authors describe step-by-step how the pattern system can be used to analyze a given security problem and how solution approaches can be found. Afterwards, the security problems and the solution approaches are formally modeled in detail. The formal models serve to prove that the solution approaches are correct solutions to the security problems. Furthermore, the formal models of the solution approaches constitute a formal specification of the software to be developed. Then, the specification is implemented by generic security components and generic security architectures, which constitute architectural patterns. Finally, the generic security components and the generic security architecture that composes them are refined and the result is a secure software product built from existing and/or tailor-made security components.
We present a security engineering process based on security problem frames and concretized security problem frames. Both kinds of frames constitute patterns for analyzing security problems and associated solution approaches. They are arranged in a pattern system that makes dependencies between them explicit. We describe step-by-step how the pattern system can be used to analyze a given security problem and how solution approaches can be found. Further, we introduce a new frame that focuses on the privacy requirement anonymity.
We give an enumeration of possible problem frames, based on domain characteristics, and comment on the usefulness of the obtained frames. In particular, we investigate problem domains and their characteristics in detail. This leads to fine-grained criteria for describing problem domains. As a result, we identify a new type of problem domain and come up with integrity conditions for developing useful problem frames. Taking a complete enumeration of possible problem frames (with at most three problem domains, of which only one is constrained) as a basis, we find 8 new problem frames, 7 of which we consider as useful in practical software development.
Considering legal aspects during software development is a challenging problem, due to the cross-disciplinary expertise required. The problem is even more complex for cloud computing systems, because of the international distribution, huge amounts of processed data, and a large number of stakeholders that own or process the data. Approaches exist to deal with parts of the problem, but they are isolated from each other. We present an integrated method for elicitation of legal requirements. A cloud computing online banking scenario illustrates the application of our methods. The running example deals with the problem of storing personal information in the cloud and based upon the BDSG (German Federal Data Protection Act). We describe the structure of the online banking cloud system using an existing pattern-based approach. The elicited information is further refined and processed into functional requirements for software development. Moreover, our method covers the analysis of security-relevant concepts such as assets and attackers particularly with regard to laws. The requirements artifacts then serve as inputs for existing patterns for the identification of laws relevant for the online banking cloud system. Finally, our method helps to systematically derive functional as well as security requirements that realize the previously identified laws.
In der vorliegenden Bachelorarbeit geht es um das menschliche Verhalten bei der Passworterstellung. Hierbei wird die Möglichkeit untersucht dieses menschliche Verhalten über die Software hashcat nachzubilden, um so Passwörter effzienter anzugreifen. Durch die Konzeption und den Test von Passwortangriffsszenarien, deren Fokus auf dem Faktor Mensch liegt, wird versucht aufzuzeigen, dass selbst sichere Passwortverfahren, durch das individuelle Verhalten von Menschen an Sicherheit verlieren können. Zudem werden die Tests der Szenarien Schwächen der Software hashcat aufzeigen, die im späteren Verlauf der Arbeit als Grundlage für die Entwicklung einer selbstprogrammierten Erweiterung von hashcat dienen.
We present a process to develop secure software with an extensive pattern-based security requirements engineering phase. It supports identifying and analyzing conflicts between different security requirements. In the design phase, we proceed by selecting security software components that achieve security requirements. The process enables software developers to systematically identify, analyze, and finally realize security requirements using security software components. We illustrate our approach by a lawyer agency software example.
Die Sicherheit von Softwareprojekten ist ein zentraler Faktor für ihren Erfolg, der oft nicht ausreichend gewährleistet wird. Aus diesem Grund werden in der vorliegenden Arbeit neue Ansätze entwickelt, um dem Entwickler bei der Durchsetzung der Softwaresicherheit zu helfen. Dafür wird untersucht, welche neuen Ansätze für die Unterstützung bei der Vermeidung ausgewählter Fehler hilfreich sein können, sowie welche konzeptionellen Vor- und Nachteile sie aufweisen.
Zunächst wird ein Überblick über die nötigen Grundlagen für die Entwicklung der neuen Ansätze geschaffen. Elementar ist dabei das Secure Coding Prinzip, nach dem verschiedenste sicherheitsrelevante Implementierungsfehler bereits früh in dem Lebenszyklus eines Softwareprojekts, während seiner Implementierung zu vermeiden sind. Ein Mittel für diesen Zweck sind die sogenannten Secure Coding Richtlinien, die typische Fehler beschreiben und konkrete Vorgehensweisen für ihre Vermeidung und Behebung definieren, aber oft nicht eingehalten werden. Werkzeuge zur statischen Code-Analyse können hierbei Abhilfe schaffen, da sie verschiedenste Fehler automatisiert erkennen und den Entwickler über sie informieren.
Auf der Basis dieser Grundlagen werden Verbesserungsmöglichkeiten untersucht, um den Entwickler anhand von statischer Code-Analyse besser bei der Einhaltung relevanter Secure Coding Richtlinien zu unterstützen. Der Fokus dieser Arbeit liegt dabei auf der Vermeidung von Fehlern bei der Validierung von Eingaben, da diese Fehlerform besonders weit verbreitet und schwerwiegend ist.
Um eine entsprechende Hilfestellung gewährleisten zu können, werden drei Ansätze zur Unterstützung bei der Anwendung von Richtlinien für die Programmiersprache Java näher betrachtet. Diese Ansätze helfen dem Entwickler komplementär zu der Funktionalität herkömmliche Werkzeuge zur statischen Code-Analyse für das Auffinden von Fehlern auch bei der Vermeidung und Behebung dieser Fehler. Die neuen Ansätze basieren auf der Verwendung von textuellen Annotationen für die Umsetzung des Validierungsprozesses einer Eingabe, dem Einsatz einer API zur Validierung einer Eingabe und der Nutzung eines IDE-Plugins, um den nötigen Quellcode für den Validierungsprozess automatisiert zu generieren. Die nähere Betrachtung und Evaluierung dieser Ansätze zeigt, dass der annotationsbasierte Ansatz sich nicht für diesen Zweck eignet, während sowohl der API-basierte Ansatz, als auch der Ansatz für das Generieren des Quellcodes eine effektive und effiziente Ergänzung herkömmlicher Werkzeuge zur statischen Code-Analyse darstellen und dementsprechend in der weiteren Forschung aufgegriffen werden sollten.
Die im Laufe des Jahres veröffentlichten Passwörter auf der Plattform "Have I been pwnd" zeigen deutlich, dass Nutzer aufgrund von besserer Merkbarkeit schwache Passwörter wählen. Dies hat zur Folge, dass die sensiblen Daten der Nutzer nur unzureichend geschützt sind. Aus diesem Grund gewinnt das Themengebiet der IT-Sicherheit zunehmend an Bedeutung. Passwortmanager stellen für dieses Szenario eine mögliche Lösung dar.
Der im Rahmen dieser Masterthesis entwickelte Passwortmanager "Safeword" ermöglicht, sensitive Daten, die mittels adäquaten kryptografischen Verfahren geschützt werden, zentral an einer Stelle abzulegen und sukzessive unsichere Passwörter durch starke zufällige Passwörter zu ersetzen. Der Nutzer muss sich nur ein starkes Hauptkennwort merken, mit dem er sich bei dem Passwortmanager authentisiert und anschließend die gespeicherten Passwörter abrufen kann. Der Passwortmanager bietet zahlreiche Funktionen, die die Nutzung der Anwendung erleichtern, wie die simple und moderne Oberfläche, einen Passwort-Generator, der kryptografisch sichere Zufallspasswörter erstellt, oder Funktionen zur besseren Handhabung von Passwörtern, beispielsweise Label oder Notizen.
Safeword basiert auf einer modularen und erweiterbaren Architektur, die auf Code-Sharing setzt. Das Code-Sharing vereinfacht die Wartung der Anwendung und ermöglicht bei Schwachstellen eine schnellere Behebung. Die Ergebnisse aus dem Vergleich existierender Passwortmanager flossen direkt in die Entwicklung von Safeword ein, sodass aus Fehlern anderer Mitbewerber gelernt werden konnte. Um den Beitrag zur Open-Source-Welt sicherzustellen, wird Safeword unter der GPLv3-Lizenz bereitgestellt, sodass auch in Zukunft viele Nutzer von dem Passwortmanager profitieren können.
Voraussetzung für den Produktiveinsatz von Safeword ist die Entwicklung noch fehlender Funktionen und die Prüfung des Quelltexts nach aktuellen Standards der IT-Sicherheit.
Developing security-critical systems is difficult, and there are many well-known examples of vulnerabilities exploited in practice. In fact, there has recently been a lot of work on methods, techniques, and tools to improve this situation already at the system specification and design. However, security-critical systems are increasingly long-living and undergo evolution throughout their lifetime. Therefore, a secure software development approach that supports maintaining the needed levels of security even through later software evolution is highly desirable. In this chapter, we recall the UMLsec approach to model-based security and discuss on tools and techniques to model and verify evolution of UMLsec models.
While developing for multiple platforms at once seems like a convenient solution, there are several challenges arising when trying to abstract the entire mobile development. This paper is meant to evaluate current cross-platform development for mobile applications. The background for its necessity, its conceptual approach and the problems to face when developing cross-platform were determined and explained in detail. Afterwards, certain solutions were evaluated against the former insights. Based on the results, an informed discussion and conclusion was performed. The mobile environment consist of only two big players by now, Android and iOS. These operating systems differ in architecture, design and consequently in the way applications are developed for each of them. Therefore, high demands are made towards cross-platform solutions. Tools which allow for the creation of applications for multiple platforms at once have to match native applications in regard to user experience and performance. At the same time they need to be able to optimize developments with the goal of being cost efficient. Apache Cordova, Xamarin and NativeScript were selected for evaluation in regard to their ability to meet these requirements. Cordova acts as the comparison group of cross-platform tools. It is the big player in the field and there are reasons for this. However, aspiring solutions with higher nativity and ambitious approaches are emerging. Xamarin and NativeScript deliver top quality results while offering loosely coupled developments. Therefore it is possible to develop high quality applications and still benefit from the advantages of platform-independent solutions. As a consequence mobile development is about to change in the foreseeable future. More sophisticated approaches may lead to a higher number of developments done cross-platform, and rightfully so.
The ISO 27000 is a well-established series of information security standards. The scope for applying these standards can be an organisation as a whole, single business processes or even an IT application or IT infrastructure. The context establishment and the asset identification are among the first steps to be performed. The quality of the results produced when performing these steps has a crucial influence on the subsequent steps such as identifying loss, vulnerabilities, possible attacks and defining countermeasures. Thus, a context analysis to gather all necessary information in the initial steps is important, but is not offered in the standard. In this paper, we focus on the scope of cloud computing systems and present a way to support the context establishment and the asset identification described in ISO 27005. A cloud system analysis pattern and different kinds of stakeholder templates serve to understand and describe a given cloud development problem, i.e. the envisaged IT systems and the relevant parts of the operational environment. We illustrate our support using an online banking cloud scenario.