Das Paper "Eigenschaften optimierter API-Dokumentationen im Entwicklungsprozess sicherer Software" von Rolf Huesmann, Alexander Zeier und Andreas Heinemann wurde auf dem Usable Security and Privacy Workshop der Mensch und Computer 2019 akzeptiert. Der Workshop findet am 08.09.2019 in Hamburg statt. Herzlichen Glückwunsch!
Abstract
Softwareentwicklern fällt es nicht leicht, die vom jeweiligen Hersteller herausgegebenen offiziellen Dokumentationen von Sicherheits-APIs zu lesen. Hingegen bevorzugen sie informelle Dokumentationen, wie sie zum Beispiel auf Q&A Plattformen wie Stack Overflow zu finden sind. Allerdings enthalten Codebeispiele solcher Quellen des Internets oft falschen bzw. aus Sicht der IT-Sicherheit unsicheren Code, welcher oft unreflektiert übernommen wird und letztendlich zu unsicheren Applikationen führt.
Diese Arbeit untersucht, welche Eigenschaften eine Dokumentation aus Sicht der Entwickler haben sollte, um sie bei der Erstellung von sicherem Code zu unterstützen. Dazu wurden insgesamt 26 Programmierer in sieben Fokusgruppen über die Vor- und Nachteile beispielhafter, gängiger Dokumentationsarten von APIs befragt. Abschließend wurden die Teilnehmer gebeten, Eigenschaften einer aus ihrer Sicht optimierten API-Dokumentation zu beschreiben.
Herausgestellt hat sich, dass eine optimierte Dokumentation viele Beispiele haben sollte. Sie sollte gut strukturiert, durchsuchbar und bei Google leicht auffindbar sein. Weitere wichtige Funktionen wären: Ein Bereich mit Tutorials, eine klassische Referenz und Videos für den schnellen Überblick. Zu jedem Themenbereich sollte es die Möglichkeit für Fragen, Antworten und Diskussionen geben. Durch ein Bewertungssystem sollten gute Lösungen aus der Diskussion in die Beispiele einfließen können.
Weiter konnte anhand der Antworten der Probanden ein Interaktionsmuster identifiziert werden, welches das Zusammenspiel der einzelnen Teile einer optimierten API-Dokumentation beschreibt.
Auf Basis dieser Erkenntnisse soll in einem nächsten Schritt ein Prototyp entwickelt und seine Wirksamkeit hinsichtlich der Unterstützung im Softwareentwicklungsprozess von sicherheitskritischen Anwendungen evaluiert werden.