LLM-Assisted Static Analysis for Detecting Security Vulnerabilities
<|reference_start|>LLM-Assisted Static Analysis for Detecting Security Vulnerabilities: Software is prone to security vulnerabilities. Program analysis tools to detect them have limited effectiveness in practice. While large language models (or LLMs) have shown impressive code generation capabilities, they cannot do complex reasoning over code to detect such vulnerabilities, especially because this task requires whole-repository analysis. In this work, we propose IRIS, the first approach that systematically combines LLMs with static analysis to perform whole-repository reasoning to detect security vulnerabilities. We curate a new dataset, CWE-Bench-Java, comprising 120 manually validated security vulnerabilities in real-world Java projects. These projects are complex, with an average of 300,000 lines of code and a maximum of up to 7 million. Out of 120 vulnerabilities in CWE-Bench-Java, IRIS detects 69 using GPT-4, while the state-of-the-art static analysis tool only detects 27. Further, IRIS also significantly reduces the number of false alarms (by more than 80% in the best case).<|reference_end|>
@article{li2024llm-assisted,
    title={LLM-Assisted Static Analysis for Detecting Security Vulnerabilities},
    author={Ziyang Li, Saikat Dutta, Mayur Naik},
    journal={arXiv preprint arXiv:2405.17238},
    year={2024},
    archivePrefix={arXiv},
    eprint={2405.17238},
    primaryClass={cs.CR cs.PL cs.SE}
}