Erkennung und Validierung von Security-Patterns
Zusammenfassung der Projektergebnisse
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.
Projektbezogene Publikationen (Auswahl)
-
Automatically Extracting Threats from Extended Data Flow Diagrams. In: Caballero, Juan (Hrsg.) ; Bodden, Eric (Hrsg.) ; Athanasopoulos, Elias (Hrsg.): International Symposium on Engineering Secure Software and Systems, Springer Verlag, April 2016 (Lecture Notes in Computer Science), S. 56-71. ISBN 978-3-319-30806-7
Berger, Bernhard J. ; Sohr, Karsten ; Koschke, Rainer
-
What Are Security Patterns?: A Formal Model for Security and Design of Software. In: Proceedings of the 13th International Conference on Availability, Reliability and Security. New York, NY, USA : ACM, 2018 (ARES 2018), S. 35:1-35:6. ISBN 978-1-4503-6448-5
Behrens, Anika
-
The Architectural Security Tool Suite - ARCHSEC. In: 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM), 2019, S. 250-255
Berger, Bernhard J. ; Sohr, K. ; Koschke, R.
-
Towards Elective Verifcation of Multi-Model Access Control Properties. In: Proceedings of the 24th ACM Symposium on Access Control Models and Technologies. New York, NY, USA : ACM, 2019 (SACMAT '19), S. 149-160. ISBN 978-1-4503-6753-0
Berger, Bernhard J. ; Maeder, Christian ; Wete Nguempnang, Rodrigue ; Sohr, Karsten ; Rubio-Medrano, Carlos
-
Towards supporting software assurance assessments by detecting security patterns. In: Software Quality Journal (2020), 05
Bunke, Michaela ; Sohr, Karsten