RecordFlux: Formal Message Specification and Generation of Verifiable Binary Parsers

Research output: Contribution to book/conference proceedings/anthology/reportConference contributionContributedpeer-review

Contributors

Abstract

Various vulnerabilities have been found in message parsers of protocol implementations in the past. Even highly sensitive software components like TLS libraries are affected regularly. Resulting issues range from denial-of-service attacks to the extraction of sensitive information. The complexity of protocols and imprecise specifications in natural language are the core reasons for subtle bugs in implementations, which are hard to find. The lack of precise specifications impedes formal verification. In this paper, we propose a model and a corresponding domain-specific language to formally specify message formats of existing real-world binary protocols. A unique feature of the model is the capability to define invariants, which specify relations and dependencies between message fields. Furthermore, the model allows defining the relation of messages between different protocol layers and thus ensures correct interpretation of payload data. We present a technique to derive verifiable parsers based on the model, generate efficient code for their implementation, and automatically prove the absence of runtime errors. Examples of parser specifications for Ethernet and TLS demonstrate the applicability of our approach.

Details

Original languageEnglish
Title of host publicationFormal Aspects of Component Software - 16th International Conference, FACS 2019, Proceedings
EditorsFarhad Arbab, Sung-Shik Jongmans
PublisherSpringer, Berlin [u. a.]
Pages170-190
Number of pages21
ISBN (print)9783030409135
Publication statusPublished - 2020
Peer-reviewedYes

Publication series

SeriesLecture Notes in Computer Science, Volume 12018
ISSN0302-9743

Conference

Title16th International Conference on Formal Aspects of Component Software, FACS 2019
Duration23 - 25 October 2019
CityAmsterdam
CountryNetherlands

External IDs

ORCID /0000-0002-5007-445X/work/141545533

Keywords

Research priority areas of TU Dresden

Library keywords