Sicherheit opus:10007 Umfrage Human Factors in Secure Software Development ths Prof. Dr. Freisleben Bernd Freisleben, Bernd (Prof. Dr.) https://doi.org/10.17192/z2021.0231 2021-06-08 Fachbereich Mathematik und Informatik Faktor Mensch in der sicheren Softwareentwicklung 2021-06-08 Philipps-Universität Marburg privacy 2021-03-29 software development, Obwohl in der IT-Sicherheitsforschung signifikante Fortschritte in der Erforschung und Entwicklung theoretisch sicherer Methoden, Software und Algorithmen gemacht wurden, ist Software in der Praxis oft von Sicherheitsschwachstellen betroffen. Darunter ist der Faktor Mensch ein häufiger Angriffspunkt, der oftmals auch als schwächstes Glied in der Softwaresicherheit bezeichnet wird. Um diese Problematik anzugehen, beschäftigt sich die Forschung im Bereich Faktor Mensch in der Sicherheits- und Privatsphäreforschung mit Nutzer:innen von Technologien, sowie mit ihren Ansprüchen an IT-Sicherheit. Die Forschung erörtert, auf welche Weise Technologien Nutzer:innen unterstützen können, während Risiken minimiert werden und Nutzer:innen die Kontrolle über ihre Daten behalten. Die in der Forschung entwickelten Sicherheitslösungen sollen von Entwickler:innen umgesetzt werden, deren sicherheitskritische Programmierfehler sich auf alle Nutzer:innen der entwickelten Software übertragen. Beispielsweise setzt Software, in welcher Daten unsicher gespeichert, Netzwerkverbindungen unsicher aufgebaut oder andere Standards der sicheren Softwareentwicklung nicht eingehalten werden, alle ihre Nutzer:innen Sicherheitsrisiken aus. Daher ist es von entscheidender Wichtigkeit, dass Entwickler:innen Softwaresicherheit korrekt implementieren. Die Sicherheit steht bei Entwickler:innen jedoch selten im primären Fokus. Außerdem fehlen ihnen häufig Bewusstsein, Wissen, Ausbildung und Erfahrung im Bereich der sicheren Softwareentwicklung. Mangelnde Benutzbarkeit von Softwarebibliotheken, -dokumentationen und unterstützenden Tools, die für sicherheitskritische Entwicklung genutzt werden, kann das Problem verschlimmern, da sie die für sichere Softwareentwicklung notwendige Zeit und Arbeit vervielfachen. Diese Dissertation befasst sich mit der Frage, wie Entwickler:innen im Prozess der sicheren Softwareentwicklung unterstützt werden können. Ziel dieser Forschung ist es, zu verstehen, wie Entwickler:innen Ressourcen nutzen, um (sicher) zu entwickeln, und wie ihre Haltungen und Denkweisen sowie ihr Hintergrund und ihre Erfahrungen die Softwaresicherheit beeinflussen. Um diese Forschung durchzuführen, wurden qualitative, quantitative und gemischte Methoden online und im Labor angewandt sowie große Datensätze untersucht. Ergebnis dieser Forschung ist, dass die Informationsquellen, die Entwickler:innen während des Programmierens benutzen, zu Sicherheit und Schwachstellen im Programmcode beitragen können. Verglichen mit der Nutzung offizieller Dokumentation, begünstigt das Kopieren und Einfügen von Codefragmenten aus Internetforen zwar die schnellere Programmierung funktionierenden Codes, führt jedoch häufig zu Schwachstellen. Ebenso zeigen wir, dass schlechte Benutzbarkeit, unsichere, möglicherweise veraltete Standardwerte sowie wenig hilfreiche Dokumentationen kryptographischer Bibliotheken zu unsicherem Programmcode beitragen. Erfreulicherweise unterstützen gut durchdachte Dokumentationen und Abstraktionslevel die Benutzbarkeit von Softwarebibliotheken, und somit auch ihre sichere Benutzung. Außerdem zeigen wir, dass Studien, die Informatikstudent:innen anstelle von Entwickler:innen als Proband:innen nutzen, aussagekräftige Forschungsergebnisse über das Verhalten von Entwickler:innen im Prozess der sicheren Softwareentwicklung liefern können. Weiterhin zeigten unsere Untersuchungen, dass es online eine breite Fächerung an Ratschlägen für die sichere Softwareentwicklung zu finden gibt, dass diese Informationsquellen jedoch häufig unvollständig sind und als effektive Hilfestellung für die sichere Softwareentwicklung ungeeignet sein können. Dieses kann Entwicker:innen dazu verleiten, inoffizielle, nicht überprüfte und daher potentiell unsichere Informationsquellen zur Unterstützung heranzuziehen. Diese Dissertation belegt, dass (a) sichere Softwareentwicklung den Herausforderungen des Faktors Mensch unterliegt und dass (b) Softwaresicherheit verbessert werden kann, indem diese Herausforderungen adressiert und Entwickler:innen unterstützt werden. Die Forschungsarbeit, die in dieser Dissertation vorgestellt wird, war maßgeblich daran beteiligt, den Forschungsbereich Faktor Mensch in der Softwaresicherheit in der Sicherheits- und Privatsphäreforschung zu etablieren und hat den wissenschaftlichen Diskurs über den rigorosen Einsatz empirischer Methoden in der Sicherheits- und Privatsphäreforschung vorangetrieben. In diesen Forschungsprojekten wurde wiederholt festgestellt, dass Benutzbarkeitsprobleme von Sicherheits- und Privatsphäremechanismen sowie von Entwicklungsprozessen und -verhaltensweisen zum Großteil der Sicherheits- und Privatsphäreprobleme führen, die Millionen von Nutzer:innen betreffen. benutzbare IT-Sicherheit 185 application/pdf Experiment 2021 security human factors in security Softwareentwicklung monograph Mathematics Mathematik doctoralThesis https://archiv.ub.uni-marburg.de/diss/z2021/0231/cover.png human factors in secure software development urn:nbn:de:hebis:04-z2021-02314 HCI English Acar, Yasemin Acar Yasemin sichere Softwareentwicklung Faktor Mensch Publikationsserver der Universitätsbibliothek Marburg Universitätsbibliothek Marburg While security research has made significant progress in the development of theoretically secure methods, software and algorithms, software still comes with many possible exploits, many of those using the human factor. The human factor is often called ``the weakest link'' in software security. To solve this, human factors research in security and privacy focus on the users of technology and consider their security needs. The research then asks how technology can serve users while minimizing risks and empowering them to retain control over their own data. However, these concepts have to be implemented by developers whose security errors may proliferate to all of their software's users. For example, software that stores data in an insecure way, does not secure network traffic correctly, or otherwise fails to adhere to secure programming best practices puts all of the software's users at risk. It is therefore critical that software developers implement security correctly. However, in addition to security rarely being a primary concern while producing software, developers may also not have extensive awareness, knowledge, training or experience in secure development. A lack of focus on usability in libraries, documentation, and tools that they have to use for security-critical components may exacerbate the problem by blowing up the investment of time and effort needed to "get security right". This dissertation's focus is how to support developers throughout the process of implementing software securely. This research aims to understand developers' use of resources, their mindsets as they develop, and how their background impacts code security outcomes. Qualitative, quantitative and mixed methods were employed online and in the laboratory, and large scale datasets were analyzed to conduct this research. This research found that the information sources developers use can contribute to code (in)security: copying and pasting code from online forums leads to achieving functional code quickly compared to using official documentation resources, but may introduce vulnerable code. We also compared the usability of cryptographic APIs, finding that poor usability, unsafe (possibly obsolete) defaults and unhelpful documentation also lead to insecure code. On the flip side, well-thought out documentation and abstraction levels can help improve an API's usability and may contribute to secure API usage. We found that developer experience can contribute to better security outcomes, and that studying students in lieu of professional developers can produce meaningful insights into developers' experiences with secure programming. We found that there is a multitude of online secure development advice, but that these advice sources are incomplete and may be insufficient for developers to retrieve help, which may cause them to choose un-vetted and potentially insecure resources. This dissertation supports that (a) secure development is subject to human factor challenges and (b) security can be improved by addressing these challenges and supporting developers. The work presented in this dissertation has been seminal in establishing human factors in secure development research within the security and privacy community and has advanced the dialogue about the rigorous use of empirical methods in security and privacy research. In these research projects, we repeatedly found that usability issues of security and privacy mechanisms, development practices, and operation routines are what leads to the majority of security and privacy failures that affect millions of end users. usable security human factors Mathematik und Informatik Privatsphäre