Ferret
Ferret copied to clipboard
Automatic Test generator and Differential Tester for DNS Nameserver implementations
Ferret
Ferret is the first automatic test generator for DNS nameserver implementation RFC compliance.
The test case generation module is implemented in C# and symbolically executes the Zen model of the authoritative DNS, which is based on our updated DNS formal semantics. The formal semantics were part of the earlier SIGCOMM paper we published. The testing module uses Docker to test implementations.
Follow the steps mentioned in test case generation README to generate tests using Zen. Use either the Zen generated tests or custom tests to test implementations by following the steps mentioned in DifferentialTesting README. To simply serve a zone using an implementation docker container follow these steps.
:page_with_curl: NSDI 2022 -- SCALE: Automatically Finding RFC Compliance Bugs in DNS Nameservers
:desktop_computer: Slides and Talk
Citing Ferret
@inproceedings {278336,
author = {Siva Kesava Reddy Kakarla and Ryan Beckett and Todd Millstein and George Varghese},
title = {{SCALE}: Automatically Finding {RFC} Compliance Bugs in {DNS} Nameservers},
booktitle = {19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22)},
year = {2022},
isbn = {978-1-939133-27-4},
address = {Renton, WA},
pages = {307--323},
url = {https://www.usenix.org/conference/nsdi22/presentation/kakarla},
publisher = {USENIX Association},
month = apr,
}
Bugs Found
Legend - Fixed: ✅ Confirmed: ☑️ Bug but not fixing it: :warning:
# Implementations with unreported issues due to missing or unimplemented features