Information flows to support software developers in using security APIs
- At the end of 2019, about 4.1 billion people on earth were using the internet. Because people entrust their most intimate and private data to their devices, the European legislation has declared the protection of natural persons in relation to the processing of personal data as a fundamental right. In 2018 23 million people worldwide, having the responsibility of implementing data security and privacy, were developing software. However, the implementation of data and application security is a challenge, as evidenced by over 41 thousand documented security incidents in 2019. Probably the most basic, powerful, and frequently used tools software developers work with are Application Programming Interfaces (APIs). Security APIs are essential tools to bring data and application security into software products. However, research results have revealed that usability problems of security APIs lead to insecure API use during development. Basic security requirements such as securely stored passwords, encrypted files or secure network connections can become an error-prone challenge and in consequence lead to unreliable or missing security and privacy. Because software developers hold a key position in the development processes of software, not properly operating security tools pose a risk to all people using software. However, little is known about the requirements of developers to address the problem and improve the usability of security APIs. This thesis is one of the first to examine the usability of security APIs. To this end, the author examines to what extent information flows can support software developers in using security APIs to implement secure software by conducting empirical studies with software developers. This thesis has contributed fundamental results that can be used in future work to identify and improve important information flows in software development. The studies have clearly shown that developer-tailored information flows with adapted security-relevant content have a positive influence on the correct implementation of security. However, the results have also led to the conclusion that API producers need to pay special attention to the channels through which they direct information flows to API users and how the information is designed to be useful for them. In many cases, it is not enough to provide security-relevant information via the documentation only. Here, proactive methods like the API security advice proposed by this thesis achieve significantly better results in terms of findability and actionable support. To further increase the effectiveness of the API security advice, this thesis developed a cryptographic API warning design for the terminal by adopting a participatory design approach with experienced software developers. However, it also became clear that a single information flow can only support up to a certain extent. As observed from two studies conducted in complex API environments in web development, multiple complementary information flows have to meet the extensive information needs of developers to be able to develop secure software. Some evaluated new approaches provided promising insights towards more API consumer-focused documentation designs as a complement to API warnings.
- Ende 2019 nutzten rund 4,1 Milliarden Menschen auf der Erde das Internet. Da die Menschen ihre intimsten und privatesten Daten ihren Geräten anvertrauen, hat die europäische Gesetzgebung den Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten zu einem Grundrecht erklärt. Im Jahr 2018 haben weltweit 23 Millionen Menschen Software entwickelt. Diese tragen die Verantwortung, die Datensicherheit und den Datenschutz zu gewährleisten. Die Umsetzung von Daten- und Anwendungssicherheit ist allerdings eine Herausforderung, wie über 41 Tausend dokumentierte Sicherheitsvorfälle im Jahr 2019 belegen. Die wohl grundlegendsten, leistungsfähigsten und am häufigsten verwendeten Werkzeuge, mit denen Software-Entwickler arbeiten, sind Application Programming Interfaces (APIs). Security-APIs sind elementare Werkzeuge, um Daten- und Anwendungssicherheit in Softwareprodukte zu integrieren. Forschungsergebnisse haben jedoch gezeigt, dass Usability Probleme von Security-APIs zu einer unsicheren Nutzung bei der Entwicklung führen. Grundlegende Sicherheitsanforderungen, wie sicher gespeicherte Passwörter, verschlüsselte Dateien oder sichere Netzwerkverbindungen, können dadurch zu einer fehleranfälligen Herausforderung werden und in der Konsequenz zu unzuverlässiger oder fehlender Sicherheit und Privatsphäre führen. Da Softwareentwickler eine Schlüsselrolle in den Entwicklungsprozessen von Software spielen, stellen nicht ordnungsgemäß funktionierende Sicherheitswerkzeuge ein Risiko für alle Personen dar, die Software verwenden. Es ist jedoch nur wenig über die existierenden Anforderungen von Entwicklern bekannt, um dieses Problem anzugehen und die Nutzbarkeit von Security-APIs zu verbessern. Diese Arbeit ist eine der ersten, die zu der Gebrauchstauglichkeit von Security-APIs forscht. Zu diesem Zweck untersucht der Autor, inwieweit Informationsflüsse Softwareentwickler bei der Nutzung von Security-APIs zur Implementierung sicherer Software unterstützen können, indem er empirische Studien mit Softwareentwicklern durchführt. Diese Thesis hat grundlegende Ergebnisse erbracht, die in zukünftigen Arbeiten zur Identifizierung und Verbesserung wichtiger Informationsflüsse in der Softwareentwicklung genutzt werden können. Die Studien haben deutlich gezeigt, dass auf den Entwickler zugeschnittene Informationsflüsse mit abgestimmten sicherheitsrelevanten Inhalten einen positiven Einfluss auf die korrekte Implementierung von Sicherheit haben. Die Ergebnisse haben jedoch auch zu der Schlussfolgerung geführt, dass API-Produzenten besonders darauf achten müssen, über welche Kanäle sie Informationsflüsse zu API-Benutzern leiten und wie die Informationen gestaltet sein müssen, damit sie für die Zielgruppe gebrauchstauglich sind. In vielen Fällen reicht es nicht aus, sicherheitsrelevante Informationen nur über die Dokumentation zur Verfügung zu stellen. Hier erzielen pro-aktive Methoden, wie die in dieser Arbeit vorgeschlagenen API-Sicherheitsempfehlungen, deutlich bessere Ergebnisse in Bezug auf die Auffindbarkeit und eine direkt anwendbare Unterstützung. Um die Wirksamkeit von API-Sicherheitsempfehlungen weiter zu verbessern, wurde in dieser Arbeit ein Design für kryptographische API-Warnungen in der Konsole entwickelt. Dazu wurde ein partizipativer Designansatz mit erfahrenen Softwareentwicklern gewählt. Es wurde jedoch auch deutlich, dass ein einzelner Informationsfluss nur bis zu einem gewissen Grad Unterstützung leisten kann. In zwei Studien, die in komplexen API-Umgebungen für die Webentwicklung durchgeführt wurden, konnte beobachtet werden, dass mehrere sich ergänzende Informationsflüsse den umfangreichen Informationsbedarf der Entwickler decken müssen, damit diese in die Lage versetzt werden, sichere Software zu entwickeln. Ergänzend zu API-Warnungen, lieferten einige der neuen evaluierten Ansätze vielversprechende Erkenntnisse über mehr benutzerorientierte API Dokumentationsdesigns.
Document Type: | Doctoral Thesis |
---|---|
Language: | English |
Author: | Peter Leo Gorski |
Title translated (German): | Informationsflüsse zur Unterstützung von Softwareentwickler*innen bei der Benutzung von Sicherheits-APIs |
URL: | https://www.h-brs.de/de/gi/news/dissertationen-erfolgreich-verteidigt |
DOI: | https://doi.org/10.14279/depositonce-11683 |
Referee: | Sebastian Möller, Luigi Lo Iacono, Simone Fischer-Hübner |
Publisher: | Technische Universität |
Place of publication: | Berlin |
Date of exam: | 2020/07/03 |
Contributing Corporation: | Technische Universität Berlin |
Date of first publication: | 2021/04/22 |
Award: | Magna cum laude |
Funding: | BMBF, 13FH016IX6, IngenieurNachwuchs 2016: ULS3 - Ultra-Large Scale System Security; BMWi, 01MU14002, Einfach intuitiv – Usability für den Mittelstand |
Keyword: | API Gebrauchstauglichkeit; Informationsflüsse; Sicherheits-APIs; Softwareentwicklung; entwicklerzentrierte Sicherheit API usability; developer centered security; information flows; security APIs; software development |
Departments, institutes and facilities: | Fachbereich Informatik |
Graduierteninstitut | |
Dewey Decimal Classification (DDC): | 0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik |
Entry in this database: | 2021/04/24 |