Automated Verification of an In-Production DNS Authoritative Engine

Naiqian Zheng,Mengqi Liu,Yuxing Xiang,Linjian Song,Dong Li,Feng Han,Nan Wang,Yong Ma,Zhuo Liang,Dennis Cai,Ennan Zhai,Xuanzhe Liu,Xin Jin
DOI: https://doi.org/10.1145/3600006.3613153
2023-01-01
Abstract:This paper presents DNS-V, a verification framework for our in-production DNS authoritative engine, which is the core of our DNS service. The key idea for automated verification in general is based on the layered verification principle. However, we face the challenge that our in-production DNS authoritative engine lacks modularity, more specifically, as can be seen with unclean interfaces and poor data structure encapsulation. This makes the layered verification hard to apply. To address this challenge, we propose a summarization approach that performs full-path symbolic execution to accumulate all path conditions and computation effects, and then represents a module's behavior in an abstract form as a set of input-effect pairs. In addition, for portability to future iterated versions of our DNS authoritative engine, we identify common dependency library modules that remain stable across different versions, and carefully design their abstractions to make them amenable to automated reasoning. Our framework has been successful in identifying and preventing tens of critical bugs in different versions of our DNS authoritative engine from reaching production, with a porting effort of less than one person-week.
What problem does this paper attempt to address?