VeriFi: Model-Driven Runtime Verification Framework for Wireless Protocol Implementations

Abstract

Validating wireless protocol implementations is challenging. Today’s approaches require labor-intensive experimental setup and manual trace investigation, but produce poor coverage and inaccurate and irreproducible results. We present VeriFi, the first systematic sniffer-based, model-guided runtime verification framework for wireless protocol implementations. VeriFi takes a formal model of the protocol being verified as input. To achieve good coverage, it first applies state reachability analysis by applying model checking techniques. It then uses a new PacketSniper component to selectively trigger packet losses required to quickly investigate all reachable protocol states. Our results show that the selective packet jamming allows VeriFi to significantly improve the coverage of protocol states. Finally, VeriFi accommodates uncertainty caused by the sniffer when validating traces, allowing it to provide accurate and reproducible results. By modeling uncertainty, VeriFi highlights likely protocol violations for developers to examine.

Built by the metalsmith-blue Metalsmith pipeline.
Created 2/28/2019
Updated 2/28/2019
Commit 4a99ff2 // History // View
Built 8/9/2018 @ 20:00 EDT