Applying Symbolic Execution to Test Implementations of a Network Protocol Against its Specification
2022 (English)In: 2022 IEEE 15TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2022), Institute of Electrical and Electronics Engineers (IEEE), 2022, p. 70-81Conference paper, Published paper (Refereed)
Abstract [en]
Implementations of network protocols must conform to their specifications in order to avoid security vulnerabilities and interoperability issues. We describe our experiences using symbolic execution to thoroughly test several implementations of a network security protocol against its specification. We employ a methodology in which we first extract requirements from the protocol's RFC and turn them into formulas. These formulas are then utilized by symbolically executing the protocol implementation to explore code paths that can be traversed on packet sequences that violate a requirement. When this exploration exposes a bug, corresponding input values are produced and turned into test cases that can validate the bug in the original implementation. Since we let symbolic execution be guided by requirements, it can naturally produce a wide variety of requirement-violating input sequences, which is difficult to achieve with existing techniques for protocol testing. We applied this methodology to test four different implementations of MILS against the protocol's RFC. We were able to quickly expose a known CVE in an older version of OpenSSL, and to discover numerous previously unknown vulnerabilities and nonconformance issues in DTI.S implementations, which have by now been confirmed and fixed by their implementors.
Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2022. p. 70-81
Series
IEEE International Conference on Software Testing Verification and Validation, ISSN 2381-2834
Keywords [en]
symbolic execution, network security testing
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:uu:diva-484748DOI: 10.1109/ICST53961.2022.00019ISI: 000850246600007ISBN: 978-1-6654-6679-0 (electronic)ISBN: 978-1-6654-6680-6 (print)OAI: oai:DiVA.org:uu-484748DiVA, id: diva2:1696430
Conference
15th IEEE International Conference on Software Testing, Verification and Validation (ICST), APR 04-13, 2022, ELECTR NETWORK
Funder
Swedish Research CouncilSwedish Foundation for Strategic Research2022-09-162022-09-162023-08-25Bibliographically approved