When Software Security Meets Large Language Models: A Survey
Top Cited Papers
- 20 January 2025
- journal article
- research article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE/CAA Journal of Automatica Sinica
- Vol. 12 (2) , 317-334
Abstract
Software security poses substantial risks to our society because software has become part of our life. Numerous techniques have been proposed to resolve or mitigate the impact of software security issues. Among them, software testing and analysis are two of the critical methods, which significantly benefit from the advancements in deep learning technologies. Due to the successful use of deep learning in software security, recently, researchers have explored the potential of using large language models (LLMs) in this area. In this paper, we systematically review the results focusing on LLMs in software security. We analyze the topics of fuzzing, unit test, program repair, bug reproduction, data-driven bug detection, and bug triage. We deconstruct these techniques into several stages and analyze how LLMs can be used in the stages. We also discuss the future directions of using LLMs in software security, including the future directions for the existing use of LLMs and extensions from conventional deep learning research.Keywords
This publication has 98 references indexed in Scilit:
- An Empirical Study on Fine-Tuning Large Language Models of Code for Automated Program Repair2023
- CAT-LM Training Language Models on Aligned Code And Tests2023
- Automated Vulnerability Detection in Source Code Using Deep Representation Learning2018
- Learn&Fuzz: Machine learning for input fuzzing2017
- An Industrial Evaluation of Unit Test Generation: Finding Real Faults in a Financial Application2017
- A Model-Driven approach for functional test case generationJournal of Systems and Software, 2015
- Deep learningNature, 2015
- A systematic literature review of software requirements prioritization researchInformation and Software Technology, 2014
- BugRedux: Reproducing field failures for in-house debugging2012
- ReCrash: Making Software Failures Reproducible by Preserving Object States2008