Developers Deserve Security Warnings, Too: On the Effect of Integrated Security Advice on Cryptographic API Misuse

Peter Leo Gorski, Luigi Lo Iacono, Dominik Wermke, Christian Stransky, Sebastian Möller, Yasemin Acar, Sascha Fahl
2018 Symposium On Usable Privacy and Security  
Cryptographic API misuse is responsible for a large number of software vulnerabilities. In many cases developers are overburdened by the complex set of programming choices and their security implications. Past studies have identified significant challenges when using cryptographic APIs that lack a certain set of usability features (e. g. easy-to-use documentation or meaningful warning and error messages) leading to an especially high likelihood of writing functionally correct but insecure code.
more » ... To support software developers in writing more secure code, this work investigates a novel approach aimed at these hardto-use cryptographic APIs. In a controlled online experiment with 53 participants, we study the effectiveness of API-integrated security advice which informs about an API misuse and places secure programming hints as guidance close to the developer. This allows us to address insecure cryptographic choices including encryption algorithms, key sizes, modes of operation and hashing algorithms with helpful documentation in the guise of warnings. Whenever possible, the security advice proposes code changes to fix the responsible security issues. We find that our approach significantly improves code security. 73% of the participants who received the security advice fixed their insecure code. We evaluate the opportunities and challenges of adopting API-integrated security advice and illustrate the potential to reduce the negative implications of cryptographic API misuse and help developers write more secure code. Introduction A large number of software vulnerabilities are caused by developers who misuse security APIs [12, 19, 36] . Previous work identified multiple trouble spots including secure network connections [15] , the use of permissions in mobile apps [17] and the use of cryptographic APIs [1, 32] . Some of the most serious data breaches in recent history were caused by not properly using TLS to secure data in transit or not securely
dblp:conf/soups/GorskiIWSMAF18 fatcat:i2fm5zhxmngd5dizfj5vs3vvom