SegFuzz: Segmentizing Thread Interleaving to Discover Kernel Concurrency Bugs through Fuzzing.

SP(2023)

引用 0|浏览26
暂无评分
摘要
Discovering kernel concurrency bugs through fuzzing is challenging. Identifying kernel concurrency bugs, as opposed to non-concurrency bugs, necessitates an analysis of possible interleavings between two or more threads. However, because the search space of thread interleaving is vast, it is impractical to investigate all conceivable thread interleavings. To explore the vast search space, most previous approaches perform random or simple heuristic searches without having coverage for thread interleaving or with an insufficient form of coverage. As a result, they either conduct wasteful searches with redundant executions or overlook concurrent bugs that their coverage cannot address. To overcome such limitations, we propose SEGFUZZ, a fuzzing framework for kernel concurrency bugs. When exploring the search space of thread interleavings, SEGFUZZ decomposes an entire thread interleaving into a set of segments, each of which represents an interleaving of the small number of instructions, and utilizes individual segments as interleaving coverage, called interleaving segment coverage. When searching for thread interleavings, SEGFUZZ mutates interleavings in explored interleaving segments to construct new thread interleavings that have not yet been explored. With SEGFUZZ, we discover new 21 concurrency bugs in Linux kernels, and demonstrate the efficiency of SEGFUZZ by showing that SEGFUZZ can identify known bugs on average 4.1 times quickly than the state-of-the-art approaches.
更多
查看译文
关键词
fuzzing,kernel,concurrency-bug,operating-systems-security,software-testing
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要