As technology continues to advance and we usher in the era of Industry 5.0, there has been a profound paradigm shift in operating systems, file systems, web, and network applications. The conventional utilization of multiprocessing and multicore systems has made concurrent programming increasingly pervasive. However, this transformation has brought about a new set of issues known as concurrency bugs, which, due to their wide prevalence in concurrent programs, have led to severe failures and potential security exploits. Over the past two decades, numerous researchers have dedicated their efforts to unveiling, detecting, mitigating, and preventing these bugs, with the last decade witnessing a surge in research within this domain. Among the spectrum of concurrency bugs, data races or race condition vulnerabilities stand out as the most prevalent, accounting for a staggering 80\% of all concurrency bugs. This survey paper is focused on the realm of race condition bug detectors. We systematically categorize these detectors based on the diverse methodologies they employ. Additionally, we delve into the techniques and algorithms associated with race detection, tracing the evolution of this field over time. Furthermore, we shed light on the application of fuzzing techniques in the detection of race condition vulnerabilities. By reviewing these detectors and their static analyses, we draw conclusions and outline potential future research directions, including enhancing accuracy, performance, applicability, and comprehensiveness in race condition vulnerability detection.
翻译:随着技术的不断进步以及工业5.0时代的到来,操作系统、文件系统、Web和网络应用领域已发生深刻的范式转变。传统上对多进程和多核系统的利用,使得并发编程日益普及。然而,这一转变也带来了新一类问题——并发错误。由于并发程序中的广泛存在,并发错误已导致严重的系统故障和潜在的安全漏洞。过去二十年间,众多研究者致力于揭示、检测、缓解和预防这些错误,而近十年该领域的研究更是呈现井喷之势。在各类并发错误中,数据竞争或竞态条件漏洞最为常见,占所有并发错误的80%。本综述论文聚焦于竞态条件错误检测器。我们根据其所采用的不同方法对这些检测器进行系统分类。此外,我们深入探讨了与竞态检测相关的技术与算法,追溯了该领域随时间的演变历程。更进一步,我们阐明了模糊测试技术在竞态条件漏洞检测中的应用。通过审视这些检测器及其静态分析方法,我们得出结论并勾勒出潜在的未来研究方向,包括在竞态条件漏洞检测中提升准确性、性能、适用性和全面性。