Verifying Security Vulnerabilities in Large Software Systems using Multi-Core k-Induction
Thales Silva, Carmina Porto, Erickson Alves, Lucas Cordeiro and, Herbert Rocha

TL;DR
This paper presents a scalable multi-core k-induction approach combined with preprocessing to verify large software systems for security vulnerabilities efficiently, demonstrated on real-world applications like PuTTY and SlimGuard.
Contribution
It introduces a multi-core k-induction method with preprocessing to improve Bounded Model Checking scalability for large software verification.
Findings
Successfully verified large software systems within practical timeframes.
Detected real security vulnerabilities in SlimGuard confirmed by developers.
Guided ESBMC to efficiently verify complex software with thousands of functions.
Abstract
Computer-based systems have been used to solve several domain problems, such as industrial, military, education, and wearable. Those systems need high-quality software to guarantee security and safety. We advocate that Bounded Model Checking (BMC) techniques can detect security vulnerabilities in the early stages of development processes. However, this technique struggles to scale up and verify large software commonly found on computer-based systems. Here, we develop and evaluate a pragmatic approach to verify large software systems using a state-of-the-art bounded model checker. In particular, we pre-process the input source-code files and then guide the model checker to explore the code systematically. We also present a multi-core implementation of the k-induction proof algorithm to verify and falsify large software systems iteratively. Our experimental results using the Efficient…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Reliability and Analysis Research · Software Testing and Debugging Techniques · Software Engineering Research
