The search result changed since you submitted your search request. Documents might be displayed in a different sort order.
  • search hit 1 of 10
Back to Result List

Entwicklung individueller Ansätze für die Anwendung von Secure Coding Richtlinien für Java basierend auf statischer Code-Analyse

Development of individual approaches to utilize secure coding guidelines for Java based on static code analysis

  • 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 nichtDie 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.show moreshow less
  • 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 automaticallySoftware 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.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Marc Treiber
Fachbereich/Einrichtung:Hochschule Düsseldorf / Fachbereich - Medien
Hochschule Düsseldorf / Fachbereich - Medien / Digitale Vernetzung und Informationssicherheit​
Document Type:Master's Thesis
Year of Completion:2020
Referee:Holger Schmidt, Markus Dahm
Language:German
Place of publication:Düsseldorf
Creating Corporation:Hochschule Düsseldorf
Pagenumber:141
URN:urn:nbn:de:hbz:due62-opus-21568
Tag:IT-Sicherheit; statische Analyse
Java; Secure Coding; Secure Coding Guidelines
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 000 Informatik, Informationswissenschaft, allgemeine Werke
Licence (German):Creative Commons - CC BY - Namensnennung 4.0 International
Release Date:2020/06/19