Using AI Assistants in Software Development: A Qualitative Study on Security Practices and Concerns
2024Konferenz / Journal
Autor*innen
Sascha Fahl Awais Rashid Heather Richter Lipford Daniel Votipka Akond Rahman Fabio Massacci Carson Powers Alena Naiakshina Cordell Burton Jr. Cordelia Ludden Nikhil Patnaik Stefan Albert Horstmann Jan H. Klemmer
Research Hub
Research Hub D: Benutzerfreundlichkeit
Research Challenges
RC 10: Engineers and Usability
Abstract
Following the recent release of AI assistants, such as OpenAI's ChatGPT and GitHub Copilot, the software industry quickly utilized these tools for software development tasks, e.g., generating code or consulting AI for advice. While recent research has demonstrated that AI-generated code can contain security issues, how software professionals balance AI assistant usage and security remains unclear. This paper investigates how software professionals use AI assistants in secure software development, what security implications and considerations arise, and what impact they foresee on security in software development. We conducted 27 semi-structured interviews with software professionals, including software engineers, team leads, and security testers. We also reviewed 190 relevant Reddit posts and comments to gain insights into the current discourse surrounding AI assistants for software development. Our analysis of the interviews and Reddit posts finds that, despite many security and quality concerns, participants widely use AI assistants for security-critical tasks, e.g., code generation, threat modeling, and vulnerability detection. Participants' overall mistrust leads to checking AI suggestions in similar ways to human code. However, they expect improvements and, therefore, a heavier use of AI for security tasks in the future. We conclude with recommendations for software professionals to critically check AI suggestions, for AI creators to improve suggestion security and capabilities for ethical security tasks, and for academic researchers to consider general-purpose AI in software development.