4 research outputs found
Recommended from our members
Development Tools for Communication Protocols: An Overview
This paper presents an overview of commonly used protocol development tools falling under two categories: construction tools and validation tools. Construction tools are used to develop protocols from specifications to working systems. They include tools for specification synthesis and implementation. Validation tools are used to analyze protocols behavior. They include tools for formal verification, performance evaluation and testing. For each tool, we examine the key underlying issues, outline the main approaches, and illustrate its application to a send-and wait protocol
SymbexNet: Checking Network Protocol Implementations using Symbolic Execution
The implementations of network protocols, such as DNS, DHCP and Zeroconf, are prone to flaws,
security vulnerabilities and interoperability issues caused by ambiguous requirements in protocol
specifications. Detecting such problems is not easy because (i) many bugs manifest themselves
only after prolonged operation; (ii) the state space of complex protocol implementations is large;
and (iii) problems often require additional information about correct behaviour from specifications.
This thesis presents a novel approach to detect various types of flaws in network protocol implementations
by combining symbolic execution and rule-based packet matching. The core idea
behind our approach is to generate automatically high-coverage test input packets for a network
protocol implementation. For this, the protocol implementation is run using a symbolic execution
engine to obtain test input packets. These packets are then used to detect potential violations of
rules that constrain permitted input and output packets and were derived from the protocol specification.
We propose a technique that repeatedly performs symbolic execution on selected test input
packets to achieve broad and deep exploration of the implementation state space. In addition, we
use the generated test packets to check interoperability between different implementations of the
same network protocol.
We present a system based on these techniques, SYMBEXNET, and show that it can automatically
generate test input packets that achieve high source code coverage and discover various bugs. We
evaluate SYMBEXNET on multiple implementations of two network protocols: Zeroconf, a service
discovery protocol, and DHCP, a network configuration protocol. SYMBEXNET is able to discover
non-trivial bugs as well as interoperability problems, most of which have been confirmed by the
developers
A system for testing protocol implementations
SIGLELD:6180.5135(NPL-DITC--9/82) / BLDSC - British Library Document Supply CentreGBUnited Kingdo