A Language-Based Approach for Improving the Robustness of Network Application Protocol Implementations
Résumé
The secure and robust functioning of a network relies on the defect-free implementation of network applications. As network protocols have become increasingly complex, however, hand-writing network message processing code has become increasingly error-prone. In this paper, we present a domain-specific language, Zebu, for describing protocol message formats and related processing constraints. From a Zebu specification, a compiler automatically generates stubs to be used by an application to parse network messages. Zebu is easy to use, as it builds on notations used in RFCs to describe protocol grammars. Zebu-based applications are also efficient, as the memory usage is tailored to application needs and message fragments can be specified to be processed on demand. Finally, Zebu-based applications are robust, as the Zebu compiler automatically checks specification consistency and generates parsing stubs that include validation of the message structure. Using a message torture suite in the context of SIP and RTSP, we show that Zebu-generated code reliably accepts valid messages and rejects invalid ones. Results of experiments on a real trace for SIP show that Zebu-generated code does not compromise performance while preserving application robustness.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...