Cargando…

MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols

The publish/subscribe model has gained prominence in the Internet of things (IoT) network, and both Message Queue Telemetry Transport (MQTT) and Constrained Application Protocol (CoAP) support it. However, existing coverage-based fuzzers may miss some paths when fuzzing such publish/subscribe protoc...

Descripción completa

Detalles Bibliográficos
Autores principales: Zeng, Yingpei, Lin, Mingmin, Guo, Shanqing, Shen, Yanzhao, Cui, Tingting, Wu, Ting, Zheng, Qiuhua, Wang, Qiuhua
Formato: Online Artículo Texto
Lenguaje:English
Publicado: MDPI 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7570995/
https://www.ncbi.nlm.nih.gov/pubmed/32933082
http://dx.doi.org/10.3390/s20185194
_version_ 1783597074845007872
author Zeng, Yingpei
Lin, Mingmin
Guo, Shanqing
Shen, Yanzhao
Cui, Tingting
Wu, Ting
Zheng, Qiuhua
Wang, Qiuhua
author_facet Zeng, Yingpei
Lin, Mingmin
Guo, Shanqing
Shen, Yanzhao
Cui, Tingting
Wu, Ting
Zheng, Qiuhua
Wang, Qiuhua
author_sort Zeng, Yingpei
collection PubMed
description The publish/subscribe model has gained prominence in the Internet of things (IoT) network, and both Message Queue Telemetry Transport (MQTT) and Constrained Application Protocol (CoAP) support it. However, existing coverage-based fuzzers may miss some paths when fuzzing such publish/subscribe protocols, because they implicitly assume that there are only two parties in a protocol, which is not true now since there are three parties, i.e., the publisher, the subscriber and the broker. In this paper, we propose MultiFuzz, a new coverage-based multiparty-protocol fuzzer. First, it embeds multiple-connection information in a single input. Second, it uses a message mutation algorithm to stimulate protocol state transitions, without the need of protocol specifications. Third, it uses a new desockmulti module to feed the network messages into the program under test. desockmulti is similar to desock (Preeny), a tool widely used by the community, but it is specially designed for fuzzing and is 10x faster. We implement MultiFuzz based on AFL, and use it to fuzz two popular projects Eclipse Mosquitto and libCoAP. We reported discovered problems to the projects. In addition, we compare MultiFuzz with AFL and two state-of-the-art fuzzers, MOPT and AFLNET, and find it discovering more paths and crashes.
format Online
Article
Text
id pubmed-7570995
institution National Center for Biotechnology Information
language English
publishDate 2020
publisher MDPI
record_format MEDLINE/PubMed
spelling pubmed-75709952020-10-28 MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols Zeng, Yingpei Lin, Mingmin Guo, Shanqing Shen, Yanzhao Cui, Tingting Wu, Ting Zheng, Qiuhua Wang, Qiuhua Sensors (Basel) Article The publish/subscribe model has gained prominence in the Internet of things (IoT) network, and both Message Queue Telemetry Transport (MQTT) and Constrained Application Protocol (CoAP) support it. However, existing coverage-based fuzzers may miss some paths when fuzzing such publish/subscribe protocols, because they implicitly assume that there are only two parties in a protocol, which is not true now since there are three parties, i.e., the publisher, the subscriber and the broker. In this paper, we propose MultiFuzz, a new coverage-based multiparty-protocol fuzzer. First, it embeds multiple-connection information in a single input. Second, it uses a message mutation algorithm to stimulate protocol state transitions, without the need of protocol specifications. Third, it uses a new desockmulti module to feed the network messages into the program under test. desockmulti is similar to desock (Preeny), a tool widely used by the community, but it is specially designed for fuzzing and is 10x faster. We implement MultiFuzz based on AFL, and use it to fuzz two popular projects Eclipse Mosquitto and libCoAP. We reported discovered problems to the projects. In addition, we compare MultiFuzz with AFL and two state-of-the-art fuzzers, MOPT and AFLNET, and find it discovering more paths and crashes. MDPI 2020-09-11 /pmc/articles/PMC7570995/ /pubmed/32933082 http://dx.doi.org/10.3390/s20185194 Text en © 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
spellingShingle Article
Zeng, Yingpei
Lin, Mingmin
Guo, Shanqing
Shen, Yanzhao
Cui, Tingting
Wu, Ting
Zheng, Qiuhua
Wang, Qiuhua
MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols
title MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols
title_full MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols
title_fullStr MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols
title_full_unstemmed MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols
title_short MultiFuzz: A Coverage-Based Multiparty-Protocol Fuzzer for IoT Publish/Subscribe Protocols
title_sort multifuzz: a coverage-based multiparty-protocol fuzzer for iot publish/subscribe protocols
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7570995/
https://www.ncbi.nlm.nih.gov/pubmed/32933082
http://dx.doi.org/10.3390/s20185194
work_keys_str_mv AT zengyingpei multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols
AT linmingmin multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols
AT guoshanqing multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols
AT shenyanzhao multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols
AT cuitingting multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols
AT wuting multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols
AT zhengqiuhua multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols
AT wangqiuhua multifuzzacoveragebasedmultipartyprotocolfuzzerforiotpublishsubscribeprotocols