• DocumentCode
    5606
  • Title

    SymbexNet: Testing Network Protocol Implementations with Symbolic Execution and Rule-Based Specifications

  • Author

    JaeSeung Song ; Cadar, Cristian ; Pietzuch, Peter

  • Author_Institution
    Dept. of Comput. & Inf. Security, Sejong Univ., Seoul, South Korea
  • Volume
    40
  • Issue
    7
  • fYear
    2014
  • fDate
    July 1 2014
  • Firstpage
    695
  • Lastpage
    709
  • Abstract
    Implementations of network protocols, such as DNS, DHCP and Zeroconf, are prone to flaws, security vulnerabilities and interoperability issues caused by developer mistakes and ambiguous requirements in protocol specifications. Detecting such problems is not easy because (i) many bugs manifest themselves only after prolonged operation; (ii) reasoning about semantic errors requires a machine-readable specification; and (iii) the state space of complex protocol implementations is large. This article presents a novel approach that combines symbolic execution and rule-based specifications to detect various types of flaws in network protocol implementations. The core idea behind our approach is to (1) automatically generate high-coverage test input packets for a network protocol implementation using single- and multi-packet exchange symbolic execution (targeting stateless and stateful protocols, respectively) and then (2) use these packets to detect potential violations of manual rules derived from the protocol specification, and check the interoperability of different implementations of the same network protocol. We present a system based on these techniques, SymbexNet, and evaluate it 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.
  • Keywords
    formal specification; open systems; program debugging; program testing; DHCP; DNS; SymbexNet; Zeroconf; interoperability issues; interoperability problems; machine readable specification; network protocol; protocol implementations; protocol specification; protocol specifications; rule based specifications; security vulnerabilities; semantic errors; symbolic execution; testing network protocol implementations; Computer bugs; Concrete; IP networks; Interoperability; Protocols; Servers; Testing; Symbolic execution; interoperability testing; network security; testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2014.2323977
  • Filename
    6815719