Project Details
Projekt Print View

Recognition and validation of security patterns

Subject Area Software Engineering and Programming Languages
Term from 2015 to 2021
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 269496544
 
Final Report Year 2020

Final Report Abstract

Security-Patterns beschreiben Lösungsmuster für wiederkehrende Sicherheitsprobleme in verschiedenen IT-Kontexten. Dieses Projekt untersuchte, ob und wie automatisierte Verfahren zur Erkennung und Validierung von Security-Patterns im Rahmen eines Softwareevaluierungsprozesses eingesetzt werden können. Dazu wurden zunächst Bestandsaufnahmen zu Security-Patterns durchgeführt und Security-Patterns auf ihre Beschreibungsform hin untersucht. Weiterhin wurde untersucht, ob die bestehenden Beschreibungsformen von Security-Patterns geeignet sind, in einem automatisierten Prozess verarbeitet zu werden. Es konnte festgestellt werden, dass die für eine automatisierte Analyse fehlenden Informationen durch eine formale Beschreibung von Security-Patterns ergänzt werden kann. Eine umfassende Arbeit zur Klassikation von Security-Patterns im Hinblick auf automatisierte Source-Code-Analyse ist in der Dissertationsschrift von Michaela Bunke dokumentiert worden. Anschließend wurden Source-Code-Analysen durchgeführt, um Security-Patterns im Programmcode von Software zu erkennen und auszuwerten. Es wurden sowohl Open-Source- als auch Closed-Source-Projekte analysiert und einander gegenübergestellt. Es konnte festgestellt werden, dass Security-Patterns sowohl in Open-Source- als auch Closed-Source- Projekten Security-Patterns verwendet werden, welche im Quellcode von Programmen durch statische Code-Analyse erkannt werden können. Neben Security-Patterns , die bevorzugte Lösungsmuster für wiederkehrende Sicherheitsprobleme darstellen, konnten auch sicherheitsrelevante Designmängel erkannt werden. Um Schwachstellen in der Architektur von Software zu erkennen, wurden sogenannte Extended Data Flow Diagrams (EDFDs) eingeführt. Es konnte dargestellt werden, wie mit Hilfe von EDFDs durch einen Threat-Modelling-Ansatz Entwurfsmängel im Programmcode identiziert werden können. In einer weiteren, vorbereitenden Arbeit wurde ein modulares Zugriffskontrollmodell zur Auswertung des Autorisierungs-Patterns eingeführt und an einem Kommunikationssystem für Häfen (Port Community System, PCS), einem Krankenhausinformationssystem (Clinical Information System, CIS) und einem Identitätsmanagementsystem (Identity Management System, IdMS) ausgewertet. In einer weiteren Arbeit konnte dann eine kontextsensitive Analyse für auf Java basierende Software-Systeme implementiert werden, um Autorisierungs-Patterns zu erfassen. Hierbei wurden sogenannte Autorisierungsgraphen aus der Implementierung extrahiert. Die von Security-Patterns beschriebenen Informationen über miteinander interagierende Objekte im Programmcode konnten in einer weiteren Arbeit durch den Einsatz von Connected Object Process Graphs (COPGs) identiziert werd. Dieser Ansatz ist gegenwärtig darauf spezialisiert, Android-Anwendungen zu analysieren. Eine Auswertung des Analysewerkzeuges wurde mit 25 sicherheitskritischen Android-Anwendungen von Google Play durchgeführt, sodass damit eine Sicherheitsevaluation von etwa 7 Millionen Codezeilen vorgenommen wurde. Diese Analyse unterstützt 17 verschiedene Security-Pattern -Varianten. Es konnten 199 Pattern-Instanzen in den Quelltexten erkannt werden. Im Rahmen von Expertenbefragungen wurde zudem festgestellt, dass die Information, dass Instanzen von zuvor denierten Security-Patterns im Quellcode fehlen, einen wichtigen Beitrag im Qualitätssicherungsprozess leisten kann. Im Rahmen einer weiteren Studie, in der Experteninterviews und eine Online-Umfrage unter Studierenden, Entwicklern und Software-Architekten durchgeführt wurde, konnte die Bedeutung von Security-Patterns im Softwareentwicklungs- und Qualitätssicherungsprozess in akademischem Kontext und industrieller Praxis qualitativ und quantitativ weiter untersucht werden. Unter den 264 Umfragerückmeldungen der Online-Umfrage konnten Wissensfragen zu Security-Patterns von Teilnehmern nur unzureichend beantwortet werden, obwohl die Befragten angaben, gute Programmierkenntnisse zu haben und Security-Patterns zu kennen und regelmäÿig zu nutzen. Dieses überraschende Ergebnis wurde anschlieÿend mit Security-Experten diskutiert. Die Experten stammen aus verschiedenen Bereichen der IT-Branche mit sicherheitsrelevantem Kontext, sodass ein umfassendes Bild zur Nutzung von Security-Patterns allgemein sowie die Verwendung von Programmanalysewerkzeugen zur Erkennung und Auswertung von Security-Patterns im praktischen Arbeitsumfeld der Sicherheitsexperten erstellt werden konnte.

Publications

 
 

Additional Information

Textvergrößerung und Kontrastanpassung