中文

覆盖引导的企业级 DBMS 模糊测试的工业实践

软件工程 2021-03-02 v1

摘要

作为数据持久化与分析的基础设施,数据库管理系统(DBMSs)是现代企业软件的基石。为提升其正确性,工业界数十年来一直应用黑盒模糊测试。近年来,研究界利用覆盖引导在模糊测试上取得了令人瞩目的增益。然而,由于企业级 DBMS 的复杂性与分布式特性,这些研究很少被应用于工业界。在本文中,我们将覆盖引导的模糊测试应用于华为与彭博有限合伙企业(Bloomberg LP)的企业级 DBMS。在测试 GaussDB 与 Comdb2 的实践中,我们在所有三个测试阶段均发现了重大挑战,即收集精确覆盖率、优化模糊测试性能以及分析根因。为寻求克服这些挑战的通用方法,我们提出了 Ratel,一种面向企业级 DBMS 的覆盖引导模糊测试器。凭借其面向工业的设计,Ratel 提升了反馈精度、增强了输入生成的鲁棒性,并对缺陷根因进行在线排查。结果表明,Ratel 在覆盖率与缺陷数方面优于其他模糊测试器。相较于工业黑盒模糊测试器 SQLsmith 与 SQLancer,以及覆盖引导的学术模糊测试器 Squirrel,Ratel 在 GaussDB、PostgreSQL 与 Comdb2 中分别比三者最佳结果多覆盖了 38.38%、106.14%、583.05% 的基本块。更重要的是,Ratel 已在 GaussDB、Comdb2 与 PostgreSQL 中分别发现 32、42 与 5 个未知缺陷。

关键词

引用

@article{arxiv.2103.00804,
  title  = {Industry Practice of Coverage-Guided Enterprise-Level DBMS Fuzzing},
  author = {Mingzhe Wang and Zhiyong Wu and Xinyi Xu and Jie Liang and Chijin Zhou and Huafeng Zhang and Yu Jiang},
  journal= {arXiv preprint arXiv:2103.00804},
  year   = {2021}
}