[Review] Assisting Static Analysis with Large Language Models: A ChatGPT Experiment
The paper demonstrates the effectiveness of LLM in static analysis.
The most important thing of this paper is the task division and the workflow design. First we need to figure out what the LLM is good at, and assign such tasks to it. What’s more, we need to care about the design of the workflow, which could significantly affect the final result.
Background
Traditional static analysis tools have some shortages. Embedding LLM into the toolchain can help the analysis.
In this paper, Use Before Initialization (UBI) bugs are chosen as the example.
UBITect, which is a tool for UBI bugs, has some shortcomings in detecting, and may discord some cases. LLM can help determine whether these bugs are true bugs.
![[Review] Assisting Static Analysis with Large Language Models: A ChatGPT Experiment](/blog/images/42/cover.png)
![[Review] Detecting Missed Security Operations Through Differential Checking of Object-based Similar Paths](/blog/images/41/cover.png)
![[Review] GPTScan: Detecting Logic Vulnerabilities in Smart Contracts by Combining GPT with Program Analysis](/blog/images/40/cover.png)
![[Review] MoonShine: Optimizing OS Fuzzer Seed Selection with Trace Distillation](/blog/images/39/cover.png)
![[Review] One Simple API Can Cause Hundreds of Bugs: An Analysis of Refcounting Bugs in All Modern Linux Kernels](/blog/images/38/cover.png)
![[Review] HEALER: Relation Learning Guided Kernel Fuzzing](/blog/images/37/cover.png)
![[Review] Towards Precise Reporting of Cryptographic Misuses](/blog/images/36/cover.png)
![[Review] How Good Are the Specs? A Study of the Bug-Finding Effectiveness of Existing Java API Specifications](/blog/images/35/cover.png)
![[Review] Python Crypto Misuses in the Wild](/blog/images/32/cover.png)
![[Review] Evaluation of Static Vulnerability Detection Tools with Java Cryptographic API Benchmarks](/blog/images/31/cover.png)