Cargando…
DAFuzz: data-aware fuzzing of in-memory data stores
Fuzzing has become an important method for finding vulnerabilities in software. For fuzzing programs expecting structural inputs, syntactic- and semantic-aware fuzzing approaches have been particularly proposed. However, they still cannot fuzz in-memory data stores sufficiently, since some code path...
Autores principales: | , , , , , , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
PeerJ Inc.
2023
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10557509/ https://www.ncbi.nlm.nih.gov/pubmed/37810359 http://dx.doi.org/10.7717/peerj-cs.1592 |
_version_ | 1785117105162551296 |
---|---|
author | Zeng, Yingpei Zhu, Fengming Zhang, Siyi Yang, Yu Yi, Siyu Pan, Yufan Xie, Guojie Wu, Ting |
author_facet | Zeng, Yingpei Zhu, Fengming Zhang, Siyi Yang, Yu Yi, Siyu Pan, Yufan Xie, Guojie Wu, Ting |
author_sort | Zeng, Yingpei |
collection | PubMed |
description | Fuzzing has become an important method for finding vulnerabilities in software. For fuzzing programs expecting structural inputs, syntactic- and semantic-aware fuzzing approaches have been particularly proposed. However, they still cannot fuzz in-memory data stores sufficiently, since some code paths are only executed when the required data are available. In this article, we propose a data-aware fuzzing method, DAFuzz, which is designed by considering the data used during fuzzing. Specifically, to ensure different data-sensitive code paths are exercised, DAFuzz first loads different kinds of data into the stores before feeding fuzzing inputs. Then, when generating inputs, DAFuzz ensures the generated inputs are not only syntactically and semantically valid but also use the data correctly. We implement a prototype of DAFuzz based on Superion and use it to fuzz Redis and Memcached. Experiments show that DAFuzz covers 13~95% more edges than AFL, Superion, AFL++, and AFLNet, and discovers vulnerabilities over 2.7× faster. In total, we discovered four new vulnerabilities in Redis and Memcached. All the vulnerabilities were reported to developers and have been acknowledged and fixed. |
format | Online Article Text |
id | pubmed-10557509 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2023 |
publisher | PeerJ Inc. |
record_format | MEDLINE/PubMed |
spelling | pubmed-105575092023-10-07 DAFuzz: data-aware fuzzing of in-memory data stores Zeng, Yingpei Zhu, Fengming Zhang, Siyi Yang, Yu Yi, Siyu Pan, Yufan Xie, Guojie Wu, Ting PeerJ Comput Sci Data Science Fuzzing has become an important method for finding vulnerabilities in software. For fuzzing programs expecting structural inputs, syntactic- and semantic-aware fuzzing approaches have been particularly proposed. However, they still cannot fuzz in-memory data stores sufficiently, since some code paths are only executed when the required data are available. In this article, we propose a data-aware fuzzing method, DAFuzz, which is designed by considering the data used during fuzzing. Specifically, to ensure different data-sensitive code paths are exercised, DAFuzz first loads different kinds of data into the stores before feeding fuzzing inputs. Then, when generating inputs, DAFuzz ensures the generated inputs are not only syntactically and semantically valid but also use the data correctly. We implement a prototype of DAFuzz based on Superion and use it to fuzz Redis and Memcached. Experiments show that DAFuzz covers 13~95% more edges than AFL, Superion, AFL++, and AFLNet, and discovers vulnerabilities over 2.7× faster. In total, we discovered four new vulnerabilities in Redis and Memcached. All the vulnerabilities were reported to developers and have been acknowledged and fixed. PeerJ Inc. 2023-09-19 /pmc/articles/PMC10557509/ /pubmed/37810359 http://dx.doi.org/10.7717/peerj-cs.1592 Text en © 2023 Zeng et al. https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Computer Science) and either DOI or URL of the article must be cited. |
spellingShingle | Data Science Zeng, Yingpei Zhu, Fengming Zhang, Siyi Yang, Yu Yi, Siyu Pan, Yufan Xie, Guojie Wu, Ting DAFuzz: data-aware fuzzing of in-memory data stores |
title | DAFuzz: data-aware fuzzing of in-memory data stores |
title_full | DAFuzz: data-aware fuzzing of in-memory data stores |
title_fullStr | DAFuzz: data-aware fuzzing of in-memory data stores |
title_full_unstemmed | DAFuzz: data-aware fuzzing of in-memory data stores |
title_short | DAFuzz: data-aware fuzzing of in-memory data stores |
title_sort | dafuzz: data-aware fuzzing of in-memory data stores |
topic | Data Science |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10557509/ https://www.ncbi.nlm.nih.gov/pubmed/37810359 http://dx.doi.org/10.7717/peerj-cs.1592 |
work_keys_str_mv | AT zengyingpei dafuzzdataawarefuzzingofinmemorydatastores AT zhufengming dafuzzdataawarefuzzingofinmemorydatastores AT zhangsiyi dafuzzdataawarefuzzingofinmemorydatastores AT yangyu dafuzzdataawarefuzzingofinmemorydatastores AT yisiyu dafuzzdataawarefuzzingofinmemorydatastores AT panyufan dafuzzdataawarefuzzingofinmemorydatastores AT xieguojie dafuzzdataawarefuzzingofinmemorydatastores AT wuting dafuzzdataawarefuzzingofinmemorydatastores |