Estimating Residual Risk in Greybox Fuzzing

被引:11
作者
Boehme, Marcel [1 ,2 ]
Liyanage, Danushka [1 ]
Wuestholz, Valentin [3 ]
机构
[1] Monash Univ, Clayton, Vic, Australia
[2] MPI SP, Bochum, Germany
[3] ConsenSys, Berlin, Germany
来源
PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21) | 2021年
基金
澳大利亚研究理事会;
关键词
software testing; statistics; estimation; assurance; correctness; PROBABILITY;
D O I
10.1145/3468264.3468570
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
For any errorless fuzzing campaign, no matter how long, there is always some residual risk that a software error would be discovered if only the campaign was run for just a bit longer. Recently, greybox fuzzing tools have found widespread adoption. Yet, practitioners can only guess when the residual risk of a greybox fuzzing campaign falls below a specific, maximum allowable threshold. In this paper, we explain why residual risk cannot be directly estimated for greybox campaigns, argue that the discovery probability (i.e., the probability that the next generated input increases code coverage) provides an excellent upper bound, and explore sound statistical methods to estimate the discovery probability in an ongoing greybox campaign. We find that estimators for blackbox fuzzing systematically and substantially under-estimate the true risk. An engineer-who stops the campaign when the estimators purport a risk below the maximum allowable risk-is vastly misled. She might need execute a campaign that is orders of magnitude longer to achieve the allowable risk. Hence, the key challenge we address in this paper is adaptive bias: The probability to discover a specific error actually increases over time. We provide the first probabilistic analysis of adaptive bias, and introduce two novel classes of estimators that tackle adaptive bias. With our estimators, the engineer can decide with confidence when to abort the campaign.
引用
收藏
页码:230 / 241
页数:12
相关论文
共 28 条
  • [1] [Anonymous], 2021, AFLP AFLP VERS 300C
  • [2] [Anonymous], 2020, FUZZB FUZZ BENCHM PL
  • [3] A Probabilistic Analysis of the Efficiency of Automated Software Testing
    Boehme, Marcel
    Paul, Soumya
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2016, 42 (04) : 345 - 360
  • [4] Bohme M., 2020, P 28 ACM JOINT M EUR, P713
  • [5] Boosting Fuzzer Efficiency: An Information Theoretic Perspective
    Bohme, Marcel
    Manes, Valentin J. M.
    Cha, Sang Kil
    [J]. PROCEEDINGS OF THE 28TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '20), 2020, : 678 - 689
  • [6] Coverage-Based Greybox Fuzzing as Markov Chain
    Bohme, Marcel
    Van-Thuan Pham
    Roychoudhury, Abhik
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2019, 45 (05) : 489 - 506
  • [7] STADS: Software Testing as Species Discovery
    Bohme, Marcel
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2018, 27 (02)
  • [8] Chao A, 2017, SORT-STAT OPER RES T, V41, P3, DOI 10.2436/20.8080.02.49
  • [9] AN EVALUATION OF RANDOM TESTING
    DURAN, JW
    NTAFOS, SC
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1984, 10 (04) : 438 - 444
  • [10] Statistical Symbolic Execution with Informed Sampling
    Filieri, Antonio
    Pasareanu, Corina S.
    Visser, Willem
    Geldenhuys, Jaco
    [J]. 22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, : 437 - 448