TY - THES A1 - Littig, David T1 - Konzeption und Entwicklung eines erweiterbaren Passwortmanagers als Cross-Platform Open-Source-Software mit gemeinsamer Code-Basis N2 - 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. N2 - The publication of several passwords on the online plattform "Have I been pwnd" are showing clearly that users prefer weak passwords in favor of better memorability. This results in the fact that sensitive user data insufficently secured. Therefore gains the topic attention increasingly. Passwords could be possible solution for this scenario. The in this thesis developed password manager "Safeword" enables to store sensitive data, which is protected by appropriate cryptographic method, centrally at one place and to replace unsecure passwords by strong random passwords progressively. The user just needs to memorize a strong master password, with which he authenticates at the password manager and access to the passwords is being granted afterwards. The password manager provides several functions that simplify the use, for example the simple and modern userinterface, a password generater that generates cryptographic secure random passwords, or functions that improve the handling of passwords like labels or notes. Safeword is based on an modular and extensible architecture, which relies on code sharing. Code sharing simplifies the maintenance of the application and reduces the time to close a weakness effectively. The results of the comparison of existing password managers were included directly in the development of Safeword, so that lessons from mistakes of the competitors could be learned. To ensure the contribution to the open source world Safeword is licensed under GPLv3, so that users can profit of this password manager in the future. Requirement for the production use of Safeword is the development of missing functions and the validation of the source code regarding the current metrics of IT security. KW - Passwort KW - Passwortmanager KW - Open Source KW - Cross-Platform-Development KW - IT Security KW - Masterthesis Y1 - 2018 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:hbz:due62-opus-15830 PB - Hochschule Düsseldorf CY - Düsseldorf ER - TY - THES A1 - Geywitz, Julian T1 - ”What the Hack?“ - Konzeption und Implementierung eines erweiterbaren und adaptiven Serious Game zur Verbesserung von Information Security Awareness T1 - ”What the Hack?“ - Concept and implementation of an extensible and adaptive serious game to improve information security awareness N2 - Diese Masterarbeit beschreibt den Entwurf und die Neuimplementierung von What the Hack, einem digitalen Serious Game zur Verbesserung von Information Security Awareness. What the Hack ist ursprünglich in einem Studentenprojekt entstanden und soll in der Unity Game Engine neu implementiert, erweitert und verbessert werden. Nach einer Untersuchung gängiger Literatur auf Merkmale eines guten Serious Games wird der aktuelle Markt von Serious Games zum Thema Information Security Awareness untersucht. Es zeigt sich, dass es dem Markt an Spielen für eine fortgeschrittene, technische Zielgruppe mangelt. Ebenfalls ersichtlich wird, dass sich wenige Spiele spezialisieren oder anpassen lassen. Es folgt eine Bestandsaufnahme der originalen Implementierung. Mit den Ergebnissen der theoretischen Untersuchungen wird die originale Implementierung von What the Hack auf Kriterien eines guten Serious Games untersucht. Anschließend werden Anforderungen für die Neuimplementierung von What the Hack gestellt. Es folgt eine Beschreibung des Game Designs und der Implementierung wichtiger Eigenschaften des Spiels, wie die Unterstützung von Schwierigkeitsgraden und der Erweiterbarkeit. Abschließend folgt eine Analyse der Neuimplementierung. Es zeigt sich, dass das Spiel die gestellten Anforderungen erfüllt und What the Hack sich zu einer, auf eine technische Zielgruppe fokussierte, Serious Game Plattform entwickelt hat. N2 - This thesis describes the design and re-implementation of What the Hack, a digital serious game which teaches information security awareness. What the Hack has its roots in a student project. In this thesis the game is re-implemented, extended and improved utilizing the Unity Game Engine. A research about characteristics of a good serious game is followed by an investigation of available serious games that teach information security awareness. The findings indicate that only a few games target advanced and technical people. Also, only a few of them can be specialized or adapted. Thereafter, the original implementation is examined and documented. Using the results of the theoretical investigation, requirements for the re-implementation of What the Hack are defined. Then a description of the game design and important game properties follows. This includes the support for different difficulty levels and the support of Plugins. Finally, the re-implementation is investigated. It becomes apparent that the game fulfills the given requirements. KW - Serious Game KW - Sicherheitsbewusstsein KW - Unity KW - Security Awareness KW - IT Security KW - Master Y1 - 2019 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:hbz:due62-opus-17720 CY - Düsseldorf ER - TY - THES A1 - Treiber, Marc T1 - Entwicklung individueller Ansätze für die Anwendung von Secure Coding Richtlinien für Java basierend auf statischer Code-Analyse T1 - Development of individual approaches to utilize secure coding guidelines for Java based on static code analysis N2 - 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. N2 - Software security is a defining factor for the success of any software, that is often not sufficiently enforced. On this account, several new approaches to assist the developer with the implementation of software security are developed in the thesis at hand. In doing so, new approaches that might aid in the prevention of selected mistakes are explored and their conceptual advantages and disadvantages are evaluated. Initially, an outline of the needed fundamentals for the development of new approaches is established. In this regard, the Secure Coding Principle is elementary in its ability to prevent security-relevant errors already during the implementation phase of the Software Development Life Cycle. A tool for this purpose are Secure Coding Guidelines, which depict specific mistakes and define best practices for their prevention and remediation, but are often not adhered to. Static Code Analysis Tools can help with the development of secure software, as they can automatically detect various types of such mistakes and report them to the developer. Based on these fundamentals, options for improvement are examined to better aid the developer in the appliance of appropriate Secure Coding Guidelines with the help of static code analysis. More specifically, this thesis is focused on preventing mistakes in the area of input validation, as this type of mistake is widely spread and may result in severe vulnerabilities. In order to provide adequate assistance, three approaches to aid in the appliance of Secure Coding Guidelines for the Java Programming Language are explored. These approaches complement the common functionality of Static Code Analysis Tools for the detection of errors by also helping with their prevention and remediation. The new approaches are based around the ideas of using textual annotations to define the validation process for an input, using APIs to validate inputs and employing a plugin for an IDE to automatically generate the required source code for the process of input validation. On closer examination of these approaches, it becomes apparent that the usage of annotations is not suited for this purpose, whereas both the API based approach, as well as the idea of generating the needed source code can provide effective and efficient extensions of traditional Source Code Analysis Tools and should be closer examined in further research. KW - Secure Coding KW - Java KW - statische Analyse KW - IT-Sicherheit KW - Secure Coding Guidelines Y1 - 2020 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:hbz:due62-opus-21568 PB - Hochschule Düsseldorf CY - Düsseldorf ER - TY - THES A1 - Leuer, Sebastian T1 - Sharper Crypto-API Analysis: Entwicklung eines integrierten Plugins zur statischen Code-Analyse der Nutzung von Krypto-APIs in C# N2 - Untersuchungen haben ergeben, dass bis zu 95% aller verfügbaren Android Apps mindestens einen Programmierfehler bei der Verwendung von sogenannten Krypto-APIs besitzen. Bei korrekter Anwendung dieser APIs können mit ihnen sensible System- und Benutzerdaten vor Angriffen geschützt werden. Bisher gibt es nur wenige verfügbare Tool-basierte Hilfsmittel für Programmierer, welche die Verwendungsfehler identifzieren können. Für die Programmiersprache Java konnten bislang nur sehr wenige dieser spezialisierten Hilfsmittel gefunden werden, darunter das statische Codeanalysetool CogniCrypt. Ein derartiges Werkzeug für C# konnte nicht gefunden werden. Diese Arbeit befasst sich mit der Entwicklung eines Plugins für die IDE Visual Studio zur statischen Codeanalyse namens Sharper Crypto-API Analysis. Sein Hauptziel ist, Programmierern beim Verwenden der .NET Krypto-API mit der Programmiersprache C# zu unterstützen. Durch Beobachtungen im Entwicklungsprozess sollen einerseits die Parallelen und Unterschiede zwischen der Java- und der C#-Welt im Umgang mit Krypto-APIs erkennbar werden. Andererseits beschreibt diese Arbeit den erforderlichen Aufwand, um ein hoch spezialisiertes, statisches Codeanalysetool zu entwickeln. Die Beobachtungen zeigen, dass die Unterschiede der Java- und C#-Technologien nicht oberflächlich, sondern hauptsächlich im Detail liegen und daher während der Implementierung des Tools besondere Aufmerksamkeit erfordern. Die Entwicklungsphase selbst zeigt sich als besonders anspruchsvoll, da mit Unsicherheitsfaktoren bezüglich der Funktions- und Verhaltensweisen von Visual Studio umgegangen werden müssen. Das Hauptziel von Sharper Crypto-API Analysis konnte durch die Implementation von vier Hauptfunktionsgruppen umgesetzt werden. Die wichtigste von ihnen ist das Bereitstellen von Codeanalysen, welche ausschließlich auf die Verwendung der .NET Krypto-API spezialisiert sind. Die hier entwickelten Codeanalysen betrachten besonders Fehlerquellen, die Programmierer am häufigsten begehen. Um den Programmierern nachhaltig Wissen bezüglich der Krypto-API zu vermitteln, führt diese Arbeit erweiterte Analyseberichte ein, die zusätzlich über Schwachstellen oder Angriffsszenarien informieren. Besonderheiten und Alleinstellungsmerkmale der anderen Funktionsgruppen werden in dieser Arbeit unter besonderer Berücksichtigung von Implementationshinweisen dokumentiert. N2 - Recent researches have shown that up to 95% of all available Andriod Apps contain at least one programming error caused by wrongly applying so-called Crypto-APIs. By using these APIs, applications can ensure protection of sensitive data against attacks. Currently there is a very limited amount of program-based tools available which help programmers identifying their mistakes in using Crypto-APIs. The programming language Java seems to be most prominent as many of the few tools found are specialized for this language. One of them is called CogniCrypt. A specialized tool for the C# programming language however could not be found. The thesis at hand addresses the development of a static code analysis plugin for the IDE Visual Studio called Sharper Crypto-API Analysis. To assist programmers using the .NET Crypto-API in C# shall be its main goal. Observations during the development process shall point out differences between the Java and C# ecosystems in handling Crypto-APIs. Furthermore the work at hand describes the necessary expenditure to develop a static code analysis tool. On the one hand the observations show differences between Java and C#, which only become obvious after a careful examination. Hence, attention must be paid during the implmentation of the tool. On the other hand the development process revealed itsself to be challenging because of unpredictable and undocumented behaviour of the host platform Visual Studio. The main goal of Sharper Crypto-API Analysis could be achieved by implementing four primary function classes. The most important class contains code analyzers which investigate exspecially the usage of the .NET Crypto-API. In particular the analysis specialized at errors which programmers tend to do most commonly. In addition to analyzing bare source code the tool also presents more detailed reports that shall help programmers to understand weaknesses and attacks their code allows to perform and most importantly how to fix the identified issues. Lastly this work will also document the other function classes and point out their features and behaviours with a special consideration on implementation details. KW - Krypto-API KW - C# KW - Plug in KW - Statische Analyse Y1 - 2019 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:hbz:due62-opus-16430 CY - Düsseldorf ER -