Google Project Zero:用内存追踪攻克竞态条件

Testing Race Conditions

Google Project Zero:用内存追踪攻克竞态条件

竞态条件因其对多线程执行顺序的极度敏感,一直是安全测试中的顽疾。手动复现困难,回归测试难以稳定触发,自动化模糊测试也难以覆盖所有有趣的线程交错。我在 Linux 内核中开发了 MAccConc 工具,利用 ASAN 内存访问追踪和 KCOV 机制,结合基于堆栈的延迟注入技术,自动测试所有可能的 A-B-A 交错情况。这套工具不仅提供了自动测试功能,还包含终端和图形界面供开发者手动探索线程交错,旨在让竞态条件的发现与验证像查看 ASCII 图一样直观,无需依赖繁琐的虚拟机快照或手动调试。

许多安全漏洞都是竞态条件,只有当多线程执行以特定的交错顺序发生时,负面效果才会显现。

同日更多故事

2026-09-12