小组研究成果被ATC2027接收


研究团队针对操作系统服务中资源依赖复杂、深层缺陷难以触发的问题,提出了一种资源状态感知的模糊测试方法,构建测试框架 RAIF,用于检测通过进程间通信(IPC)提供功能的系统服务中的潜在缺陷。

该研究《Fuzz Testing on IPC Based OS Services with Resource State Awareness》在 OpenHarmony 的 RenderService,以及 Android 的 SurfaceFlinger、InputFlinger 和 MediaCodec 四个代表性系统服务上进行实证评估,共发现 21 个此前未知的缺陷,其中 14 个已由维护者确认并修复。与基线方法相比,RAIF 的分支覆盖率平均提高 25.8%,资源状态转移触发数量达到基线的 3.5 倍。 本研究由清华大学博士后沈煜恒、硕士生楚逸飞,中南大学硕士生丁帆、江西财经大学讲师张强等人合作完成,山东大学刘健中副教授,中南大学施鹤远教授,清华大学姜宇教授等人共同指导。

 

研究成果概要

图形显示、输入处理和多媒体等功能是现代操作系统的重要组成部分,通常由应用程序通过进程间通信访问的系统服务提供。这些服务会在多次请求之间持续维护图层、显示节点和缓冲区等资源,其潜在缺陷可能导致服务崩溃和系统功能异常。模糊测试是发现此类缺陷的有效技术。然而,现有方法主要关注请求格式与接口调用依赖,即使能够到达服务处理函数,也可能因资源未正确创建、后续操作未关联到同一对象,或状态更新未提交,而停留在浅层检查逻辑,难以触发依赖多次请求共同作用的深层缺陷。 

RAIF 围绕服务端资源依赖组织测试,将同一资源的创建、操作与更新提交关联起来,使测试从单个 IPC 请求扩展为具有资源关联的多客户端事务。围绕这一目标,RAIF 设计了三项核心机制:其一,基于资源的测试负载生成,识别接口在资源创建、操作和提交中的作用,生成围绕同一资源的事务块,并组装为多客户端测试序列;其二,资源感知的事务调度,在保持各客户端内部操作顺序的基础上,围绕 commit 或 flush 等提交接口安排事务执行,使不同客户端对同一资源的关联操作在请求顺序上尽可能接近,增加触发跨客户端交互缺陷的机会;其三,资源行为引导的用例变异,在服务端完成 IPC 请求反序列化并进入具体资源操作后,记录实际执行的操作与资源标识,在后续变异中保留这些资源标识之间的关联,并围绕已观测资源扩展新的操作。三者协同,使 RAIF 能够持续探索复杂资源状态与深层服务逻辑,为有状态操作系统服务的缺陷检测提供有效方法。 


研究团队针对分布式数据库中事务的跨节点执行时容易出现局部提交、数据不一致等原子性缺陷的问题, 提出了一种事务状态感知的故障注入与执行结果校验工具Davis,  用于发现复杂分布式数据库事务机制中的原子性缺陷。该研究《Understanding and Detecting Atomicity Violation Bugs in Distributed Database Transaction Mechanisms》系统性分析了 4 个分布式数据库中的 真实原子性缺陷,并在 MySQL NDB Cluster、TiDB、Citus、PolarDB-X、MariaDB Galera Cluster 和 OceanBase 6 个系统上开展评估, 共发现 41个此前未知的缺陷。 本研究由清华大学博士生吴志镛、符景洲和博士后张弛等人合作完成,北京航空航天大学梁杰副教授,中南大学施鹤远教授,清华大学姜宇教授等人共同指导。


 

研究成果概要

分布式数据库需要让同一事务涉及的多个节点共同提交或共同回滚。一旦提交协议、日志管理或故障恢复等环节出现实现错误,事务可能只在部分节点生效,导致数据不一致,甚至引发节点崩溃或系统不可用。研究团队梳理真实缺陷发现,跨分区事务与特定执行阶段的故障扰动是触发此类问题的关键:所分析缺陷中,92% 涉及跨分区事务,81% 需要在特定事务执行状态下引入扰动。现有测试方法难以同时覆盖这些条件并判断事务最终结果是否正确。

Davis 围绕这一发现设计了三项相互配合的机制:首先,依据数据分区和节点覆盖情况生成跨分区事务,充分触发多节点协作路径;其次,跟踪协调节点与数据节点之间的事务通信状态,在关键阶段有针对性地注入网络异常、节点故障等扰动;最后,根据系统记录的已提交事务顺序,在参考数据库中回放相应操作,并对照数据与元数据状态,同时监测节点和集群可用性。通过将故障触发与结果校验贯通,Davis 能够识别以数据不一致为表现、通常难以察觉的事务原子性违例缺陷。研究为分布式数据库事务机制的系统化测试提供了新的方法,也为发现真实分布式数据库系统中的隐蔽的41个未知缺陷。