More about HKUST
Practical Symbolic Static Analysis for Effective Bug Detection
The Hong Kong University of Science and Technology
Department of Computer Science and Engineering
PhD Thesis Defence
Title: "Practical Symbolic Static Analysis for Effective Bug Detection"
by
Mr. Yiyuan GUO
Abstract:
Static analysis is a powerful approach that automatically detects software
bugs by analyzing the program behavior without requiring execution. Many
static analysis techniques leverage symbolic methods to achieve greater
precision, where they represent unknown values using symbolic variables and
describe program states with symbolic formulas. When applying the symbolic
method to detect bugs in realistic, million-line codebases, we encounter two
challenges. First, the inherent limitations of static analysis often lead to
the introduction of many under-constrained symbolic variables, causing
significant imprecision. Second, the scalability of symbolic methods is
influenced by their memory model, especially when intricate interactions
between the memory and numeric values exist or when the analysis is
path-sensitive. This thesis presents contributions to improve the precision
and scalability of the symbolic method for enabling practical static bug
detection at an industrial scale.
The first work focuses on the static detection of divide-by-zero bugs, a
client where the presence of under-constrained variables severely degrades
the precision of symbolic methods. Based on an extensive empirical study, we
propose to gather extra evidence about the under-constrained variables by
inferring the programmers' beliefs, which helps the static analyzer to
significantly improve its precision by reporting bugs that are more likely
to be true.
The second work investigates the problem of static buffer overflow
detection, which involves mutually dependent program properties of heap and
numeric value. Existing methods either sacrifice precision or efficiency in
addressing the mutual dependency. To address this dilemma, we propose a
novel memory model based on heap disjointness and design a summary-based
analysis algorithm, thereby enabling the precise and scalable detection of
buffer overflow bugs.
The third work concentrates on the scalability problem faced by the
path-sensitive memory model in data dependence analysis. We observe that a
key performance bottleneck of the analysis is to infer the condition under
which storing to a memory location may overwrite its old containing value.
Our solution improves the efficiency by decomposing the analysis efforts
into stages: We handle most of the memory updates efficiently based on a
must-kill relation among the heap stores, while reserving the expensive
path-sensitive analysis for the rest.
Date: Monday, 26 May 2025
Time: 3:00pm - 5:00pm
Venue: Room 3494
Lifts 25/26
Chairman: Prof. James Yeong Liang THONG (ISOM)
Committee Members: Prof. Charles ZHANG (Supervisor)
Prof. Qiong LUO
Dr. Shuai WANG
Dr. Shenghui SONG (ECE)
Dr. Dongmei ZHANG (MSRA)