Universität Stuttgart

Permanent URI for this communityhttps://elib.uni-stuttgart.de/handle/11682/1

Browse

Search Results

Now showing 1 - 10 of 76
  • Thumbnail Image
    ItemOpen Access
    Comparison and analysis of web vulnerability scanners
    (2019) Lis, Alexander
    Within the last years the commercial relevance of web applications increased steadily. They developed from simple information sharing platforms to serious business applications like online-banking, e-commerce and social media platforms. Unlike most other technologies, web-based applications are accessible from around the world continuously. Additionally, they are very susceptible for vulnerabilities as there are various technologies interacting. These factors render web applications to very attractive targets for criminals because they are often easy to attack, globally accessible and yield valuable exploits. As a consequence, much effort was put into research to prevent, detect and eliminate web application vulnerabilities. However manual security audits are time-consuming, costly and demand expertknowledge. Web vulnerability scanners tackle this problem. They are programs that test web applications for the existence of vulnerabilities. Additionally they categorize and report them. Because these tools work automatically, faster as humans and reduce the necessary knowledge in network security, they became an interesting supplementation to traditional security audits. On the other side web vulnerability scanners also have their limits. They can not test for the absence of vulnerabilities and thus produce false positives or miss weaknesses. Furthermore previous research has shown that there are also vulnerability classes that are especially intricate to detect like stored SQL injections or stored cross-site scripting vulnerabilities. Nonetheless web vulnerability scanners show very much potential and there is a growing interest into automatic web application testing. This is reflected in the increasing diversity of commercial web vulnerability scanners that can be found online. Thus this thesis compares and examines three web vulnerability scanners, namely Acunetix, Arachni and w3af. Focus is set on delineating the current capabilities and limits of state-of-the-art vulnerability scanners.
  • Thumbnail Image
    ItemOpen Access
    A methodology and initial exploration of personality traits of GitHub Developers as expressed in GitHub issues
    (2019) Greinert, Florian
    Software engineering as a collaborative task relies on the fact that people work together. This work can be influenced by personalities of the participating developers and because projects can fail because of individual differences it becomes more important to understand the human side of software engineering. This work will look at the question of GitHub issues can be used to study the personality of its authors and which, if any, constraints may apply. Using LIWC a methodology will be developed to facilitate that research with a firm grounding in personality theory and it’s practical usage within the domain of software engineering using the Five Factor Model to construct a personality profile of the type of users on GitHub who open up and comment in issues.
  • Thumbnail Image
    ItemOpen Access
    Service Injection von TOSCA-basierten Diensten in Java-Anwendungen
    (2019) Kiefer, Leon
    Viele Cloud Anwendungen bestehen aus mehreren Komponenten und Services, die miteinander kommunizieren. Die Topology and Orchestration Specification for Cloud Applications (TOSCA) definiert einen Standard, um solche Cloud Anwendungen zu beschreiben und zu managen. Um Cloud Services in lokalen Anwendungen zu verwenden, müssen abhängig von der verwendeten Kommunikationstechnologie und der Implementierung der Cloud Services Verbindungsinformationen ausgetauscht werden und spezielle Client Bibliotheken verwendet werden. Dies sorgt für eine hohe Komplexität und schlechte Wiederverwendbarkeit der Implementierung von lokalen Anwendungen. In dieser Arbeit wird ein Konzept vorgestellt, bei dem die komplexe und technologiespezifische Kommunikation nicht in der lokalen Anwendung implementiert wird. Stattdessen werden vorgefertigte Adapter für die jeweilige Technologie mit den passenden Verbindungsinformationen der externen Services in die lokale Anwendung injiziert. Es wird ein Programmiermodell vorgestellt mit dem diese lokalen Anwendungen entwickelt und bereitgestellt werden können. Externen Services werden automatisiert bereitgestellt, wenn diese von der lokalen Anwendung benötigt werden. Die Umsetzbarkeit des Konzeptes wird anhand einer prototypischen Implementierung in Java und der Verwendung von TOSCA-basierten Cloud Services validiert.
  • Thumbnail Image
    ItemOpen Access
    Modeling paths in knowledge graphs for context-aware prediction and explanation of facts
    (2019) Stadelmaier, Josua
    Knowledge bases are an important resource for question answering systems and search engines but often suffer from incompleteness. This work considers the problem of knowledge base completion (KBC). In the context of natural language processing, knowledge bases comprise facts that can be formalized as triples of the form (entity 1, relation, entity 2). A common approach for the KBC problem is to learn representations for entities and relations that allow for generalizing existing connections in the knowledge base to predict the correctness of a triple that is not in the knowledge base. In this work, I propose the context path model, which is based on this approach. In contrast to existing KBC models, it also provides explanations for predictions. For this purpose, it uses paths that capture the context of a given triple. The context path model can be applied on top of several existing KBC models. In a manual evaluation, I observe that most of the paths the model uses as explanation are meaningful and provide evidence for assessing the correctness of triples. I also show in an experiment that the performance of the context path model on a standard KBC task is close to a state of the art model.
  • Thumbnail Image
    ItemOpen Access
    Experimentelle Bestimmung vergleichsoptimaler Sortieralgorithmen
    (2019) Obst, Julian
    Die gängigsten Sortierverfahren sortieren Mengen, indem sie zwei Elemente miteinander vergleichen und damit Schritt für Schritt eine Ordnung aufbauen. Es stellt sich die Frage, was die minimale Anzahl an Vergleichen ist, die benötigt wird, um eine beliebige Permutation einer Menge zu sortieren. Das zentrale Ziel dieser Arbeit ist es, die theoretischen Grundlagen zur Bestimmung vergleichsoptimaler Sortieralgorithmen zu erläutern und die Anzahl der Vergleiche von solchen Algorithmen zu bestimmen. Dabei werden auch die praktischen Ansätze besprochen, die benutzt wurden, um einen Algorithmus zu erstellen, der dieses Problem lösen soll. In diesem Zusammenhang werden die Aspekte der Implementierung dieses Algorithmus beleuchtet. Vor allem werden in diesem Punkt aber auch Optimierungen beschrieben, die helfen sollen, die Laufzeit zu verkürzen. Für n = 12, 13 konnten bekannte Ergebnisse bestätigt werden.
  • Thumbnail Image
    ItemOpen Access
    Evaluating the Effectiveness of Proposed Service-based Maintainability Metrics for Microservices
    (2019) Szidlovszky, Marcel
    Die Wartung von Softwaresystemen ist ein kritischer Prozess in der Entwicklung. Obwohl die Kosten der Wartung auf 60-80% des Softwareentwicklungslebenszyklus geschätzt wird, kommt es trotzdem häufig vor, dass in der Entwicklung die Wartbarkeit an letzter Stelle gesetzt und man den Fokus mehr auf andere Komponenten legt. Dies bekommen, dann die Entwickler, die aus präventiven, korrektiven, adaptiven oder perfektiven Gründen die Software warten müssen, zu spüren. Um eine aufwändige Wartung richtig planen zu können, das heißt den Kosten- und Zeitaufwand zu schätzen, muss man als erstes bestimmen wie wartbar eine Software ist. Dafür werden vor allem Statische-Code und Runtime-Daten Analysen verwendet, welche sich unter anderem auch auf Software Metriken beziehen. Für die herkömmlichen Monolithische Architekturen gibt es bereits eine Menge Literatur, die die Wirksamkeit von Wartbarkeitsmetriken bewertet und nachweist. Da es aber in den letzten Jahren, vor allem bei großen Enterprise Systemen und Software As A Service (SAAS) einen Wechsel von Monolithischen Architekturen zu Microservice Architekturen gab, müssen wir uns anpassen. Weltbekannte Webservices wie Netflix und Amazon zeigen uns dabei wie erfolgreich dieser relativ neuer Architekturtyp sein kann. Diese Systeme folgen dem SAAS Modell und haben somit einen konstanten Wartungsprozess, wobei eine effektive Wartbarkeitsmessung, sehr von Vorteil wäre. Mit diesem Paper wollen wir die Lücke in der Literatur füllen und evaluieren ob Service-basierte Wartbarkeitsmetriken effektiv für Microservices benutzt werden können. Spezifisch sollen bisher noch nicht evaluierte Service-basierten Metriken untersucht werden. Um dieses Ziel zu erreichen wurde als erstes eine aktuelle Liste von vorgestellten Service-basierten Wartbarkeitsmetriken erstellt und eine Menge von Beispielsystemen zusammengestellt, anhand deren wir die Messbarkeit und Effektivität evaluieren können. Die Effektivität wurde dabei über die Messbarkeit und der Aussagekraft der untersuchten Metriken bestimmt. Die Aussagekraft wurde mithilfe folgender Evaluationsmethoden evaluiert: Zum einen wurde eine Korrelation zwischen Metriken und Expertenbewertungen, basierend auf den Wartbarkeitseigenschaften: Größe, Kopplung und Kohäsion, für Beispielsysteme aufgestellt und nach signifikanten Übereinstimmungen untersucht. Der zweite Teil der Evaluation beinhaltet eine Szenario-basierte Analyse, in der qualitativ Evaluiert wurde, wie Metriken im Verhältnis zu theoretischen Reaktionen von Architekturen stehen. Dabei wurde analysiert ob sie den geschätzten Aufwand und die Verschiedenheiten, der Reaktionen von den verschiedenen Architekturen, vorhersagen konnten. Das Ergebnis der Evaluationen zeigt, dass sowohl die untersuchten Kopplungsmetriken, als auch Größenmetriken, sehr effektiv sein können um die Wartbarkeit zu bestimmen. Allerdings konnte keine Aussage über die untersuchte Kohäsionsmetrik getroffen werden, da sich herausgestellt hat, dass die, für die Evaluation benutzten Beispielsysteme, möglicherweise ungeeignet waren.
  • Thumbnail Image
    ItemOpen Access
    A Validation of Cognitive Complexity as a Measure of Source Code Understandability
    (2019) Muñoz Barón, Marvin
    Das Verstehen von Quellcode ist ein wesentlicher Bestandteil des Softwareentwicklungsprozesses. Es hat bereits zahlreiche Versuche gegeben, Quellcodemetriken zu beschreiben, die mit der Verständlichkeit korrelieren, aber nur wenige werden empirisch ausgewertet und diejenigen, die es sind, zeigen keine bedeutsame Unterstützung für ihren Zweck. Eine neuere Anstrengung ist Cognitive Complexity, ein Maß, das speziell als Metrik für die Verständlichkeit beschrieben wird. Das primäre Ziel dieser Studie war es, Beweise für die Bestimmung der Validität von Cognitive Complexity als Maß für die Verständlichkeit von Quellcode zu finden. Um dies zu erreichen, haben wir eine systematische Literaturrecherche geplant und durchgeführt, um Quellcode-Schnipsel zu finden, die in früheren Studien hinsichtlich ihrer Verständlichkeit bewertet wurden. Die Cognitive Complexity dieser Schnipsel wurde dann mit den in den Studien verwendeten Maßen der Verständlichkeit korreliert. Die Literaturrecherche identifizierte Daten aus 14 Studien, die 324 Code-Schnipsel und ungefähr 24.400 individuelle menschliche Auswertungen umfassten und in der Korrelationsanalyse verwendet wurden. Die Ergebnisse zeigen, dass die Cognitive Complexity bei den meisten Maßen aus bestehenden Studien signifikant mit der Verständlichkeit des Quellcodes korreliert. Der Mittelwert der signifikanten Korrelationen betrug 0,654 für die Zeit zum Verstehen und 0,411 für die subjektive Bewertung der Verständlichkeit, Lesbarkeit und der Zuversicht der Studienteilnehmer. Die Korrelation mit der Korrektheit der Veständnisaufgaben zeigte gemischte Ergebnisse, mit einigen signifikanten positiven und einigen signifikanten negativen Korrelationen. Insgesamt zeigen die in dieser Studie gesammelten Beweise eine signifikante Unterstützung für die Validität von Cognitive Complexity. Nach unserer Kenntnis ist Cognitive Complexity die erste rein codebasierte Metrik, die in bedeutsamer Weise mit der Verständlichkeit von Quellcode korreliert.
  • Thumbnail Image
    ItemOpen Access
    Practical aspects of FaaS applications' migration
    (2019) Müller, Christian
    With the huge variety of available FaaS platforms in cloud and self-hosted environments the idea of migrating function applications from one provider to another is becoming a important consideration. This work investigates the challenges developers encounter when manually migrating applications between Amazon Web Services, Microsoft Azure and IBM Cloud regarding the efforts needed to migrate the functions and the services. This work also proposes a simple approach to reduce the coupling between the function application and the cloud provider by externalizing the business logic into a serparate, completely vendor independant, package. We see that this approach reduces the efforts needed to migrate the source code to another provider but it does not reduce the effort of migrating the functions configuration and services. We see that the efforts for migration are not only affected by the migration of the source code but also by the migration of the services, especially in self-hosted environments. There developers also have to find a proper substitution of the service for their use-case.
  • Thumbnail Image
    ItemOpen Access
    Visualisierung großer Straßengraphen mittels Vulkan
    (2019) Bektas, Sabri
    Das Ziel dieser Forschung ist es einen dreidimensionalen Straßengraphen in Globusdarstellung auf Basis der Vulkan Grafikkarten API zu erstellen. Die Vulkan API ist eine Computergrafikschnittstelle, die einen plattformunabhängigen Zugriff auf moderne GPUs ermöglicht. Als Grundlage für die Straßendaten dient die Geodatenbank OpenStreetMap, welche aus Längen- und Breitengrad aufgebauten Knotendaten liefert. Mithilfe dieser Datenform wird eine Globusdarstellung ermöglicht. Der auf Vulkan basierte Straßengraph bietet eine dynamische Änderung des angezeigten Graphen. Es können Straßenkategorien, wie zum Beispiel Autobahnen oder Landstraßen, ein- und ausgeblendet werden. Zuerst werden verwandte Arbeiten zu dem Vulkan basierten Straßengraphen vorgestellt. Nach einem allgemeinen Überblick auf Straßengraphen, werden die Grundlagen dieses Projekts nahegelegt. OpenStreetMap und ihre grundlegende Struktur der Daten bilden das erste Fundament der Grundlagen. Hier soll verdeutlicht werden, welche Daten für einen Straßengraphen von Bedeutung sind. Im Anschluss wird die Vulkan API analysiert, indem die spezifischen Vulkan Objekte erklärt werden. Nach dem vermittelten Grundwissen folgt die Offenlegung des vulkanbasierten Straßengraphen von der Entwicklungsumgebung über die verwendeten Bibliotheken bis hin zum Benchmarking des Programms. Auf dieser Grundlage ist es empfehlenswert die Vulkan API als Basis für Straßengraphen zu wählen. Die hardwarenahe Programmierung erfordert ein stabiles Grundwissen, kann jedoch für eine gesteigerte Effizienz in der Darstellung sorgen. Weiterführende Implementierung könnte sich mit Text- oder Flächendarstellung beschäftigen oder eine Überführung zu mobilen Endgeräten realisieren.
  • Thumbnail Image
    ItemOpen Access
    Simulation von hängenden Textilien für eine automatische Bilderkennung
    (2019) Stach, Marius
    Das Einführen von Textilien in Wasch- und Mangelanlagen muss in der industriellen Textilproduktion bisher von Hand erfolgen und stellt einen ungesunden Arbeitsplatz in heißer und feuchter Umgebung dar. Um diese Aufgabe zu automatisieren sollen Roboter Abhilfe schaffen, welche die Textilien greifen und dabei automatisch erkennen und richtig weiterverarbeiten. Das Ziel dieser Arbeit ist es deshalb, die Form und Lage eines hängenden Textils anhand von Kameradaten zu erkennen. Um dies zu erreichen, werden die Kameradaten mit einer vorher erstellten Datenbank von simulierten Lagen deformierter Textilien abgeglichen. Zuerst wird dazu ein partikelbasierter Modellansatz für das Verhalten von Textilien nach [Eberhardt et al., 1996] vorgestellt. Anhand der dort definierten Energiegleichungen erfolgt mithilfe der Lagrangeschen Betrachtungsweise die Aufstellung der Bewegungsgleichung des Systems in Eigenarbeit. Um diese Bewegungsgleichung effizienter zu lösen, wird anschließend eine Semi-Impliziter Formulierung nach einem Ansatz aus [Baraff und Witkin, 1998] gewählt. Die so berechnete Bewegungsgleichung wird zur Lösung in ein System von Differentialgleichungen erster Ordnung umgeschrieben. Als nächstes wird der Ablauf des fertigen Tools zur automatischen Bilderkennung im Gesamten beschrieben. Danach wird die Implementierung der Simulation sowie des zum Abgleich von Kameradaten und Simulationsergebnissen nötigen Programms vorgestellt. Als letztes werden Ergebnisse aus Laufzeit und numerischen Experimenten vorgestellt sowie ein Ausblick auf mögliche weiterführende Arbeiten gegeben.