G-Fuzz: A Directed Fuzzing Framework for gVisor

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Li, Yuwei, Chen, Yuan, Ji, Shouling, Zhang, Xuhong, Yan, Guanglu, Liu, Alex X., Wu, Chunming, Pan, Zulie, Lin, Peng
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866916402543198208
author Li, Yuwei
Chen, Yuan
Ji, Shouling
Zhang, Xuhong
Yan, Guanglu
Liu, Alex X.
Wu, Chunming
Pan, Zulie
Lin, Peng
author_facet Li, Yuwei
Chen, Yuan
Ji, Shouling
Zhang, Xuhong
Yan, Guanglu
Liu, Alex X.
Wu, Chunming
Pan, Zulie
Lin, Peng
contents gVisor is a Google-published application-level kernel for containers. As gVisor is lightweight and has sound isolation, it has been widely used in many IT enterprises \cite{Stripe, DigitalOcean, Cloundflare}. When a new vulnerability of the upstream gVisor is found, it is important for the downstream developers to test the corresponding code to maintain the security. To achieve this aim, directed fuzzing is promising. Nevertheless, there are many challenges in applying existing directed fuzzing methods for gVisor. The core reason is that existing directed fuzzers are mainly for general C/C++ applications, while gVisor is an OS kernel written in the Go language. To address the above challenges, we propose G-Fuzz, a directed fuzzing framework for gVisor. There are three core methods in G-Fuzz, including lightweight and fine-grained distance calculation, target related syscall inference and utilization, and exploration and exploitation dynamic switch. Note that the methods of G-Fuzz are general and can be transferred to other OS kernels. We conduct extensive experiments to evaluate the performance of G-Fuzz. Compared to Syzkaller, the state-of-the-art kernel fuzzer, G-Fuzz outperforms it significantly. Furthermore, we have rigorously evaluated the importance for each core method of G-Fuzz. G-Fuzz has been deployed in industry and has detected multiple serious vulnerabilities.
format Preprint
id arxiv_https___arxiv_org_abs_2409_13139
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle G-Fuzz: A Directed Fuzzing Framework for gVisor
Li, Yuwei
Chen, Yuan
Ji, Shouling
Zhang, Xuhong
Yan, Guanglu
Liu, Alex X.
Wu, Chunming
Pan, Zulie
Lin, Peng
Cryptography and Security
gVisor is a Google-published application-level kernel for containers. As gVisor is lightweight and has sound isolation, it has been widely used in many IT enterprises \cite{Stripe, DigitalOcean, Cloundflare}. When a new vulnerability of the upstream gVisor is found, it is important for the downstream developers to test the corresponding code to maintain the security. To achieve this aim, directed fuzzing is promising. Nevertheless, there are many challenges in applying existing directed fuzzing methods for gVisor. The core reason is that existing directed fuzzers are mainly for general C/C++ applications, while gVisor is an OS kernel written in the Go language. To address the above challenges, we propose G-Fuzz, a directed fuzzing framework for gVisor. There are three core methods in G-Fuzz, including lightweight and fine-grained distance calculation, target related syscall inference and utilization, and exploration and exploitation dynamic switch. Note that the methods of G-Fuzz are general and can be transferred to other OS kernels. We conduct extensive experiments to evaluate the performance of G-Fuzz. Compared to Syzkaller, the state-of-the-art kernel fuzzer, G-Fuzz outperforms it significantly. Furthermore, we have rigorously evaluated the importance for each core method of G-Fuzz. G-Fuzz has been deployed in industry and has detected multiple serious vulnerabilities.
title G-Fuzz: A Directed Fuzzing Framework for gVisor
topic Cryptography and Security
url https://arxiv.org/abs/2409.13139