I What Is Fuzz Testing
Fuzz testing is a novel way to discover security vulnerabilities or bugs in software applications. Unlike traditional software testing methodologies – SAST, DAST or IAST – fuzz testing essentially “pings” code with random (or semi-random) inputs in an effort to crash it and thus identify “faults” that would otherwise not be apparent. (GitLab Definition)
1、Fuzzing技术首先是一种自动化技术,即软件自动执行相对随机的测试用例。因为是依靠计算机软件自动执行,所以测试效率相对人来讲远远高出几个数量级。比如,一个优秀的测试人员,一天能执行的测试用例数量最多也就是几十个,很难达到100个。而Fuzzing工具可能几分钟就可以轻松执行上百个测试用例。
2、Fuzzing技术本质是依赖随机函数生成随机测试用例,随机性意味着不重复、不可预测,可能有意想不到的输入和结果。
3、根据概率论里面的“大数定律”,只要我们重复的次数够多、随机性够强,那些概率极低的偶然事件就必然会出现。Fuzzing技术就是大数定律的典范应用,足够多的测试用例和随机性,就可以让那些隐藏的很深很难出现的Bug成为必然现象。

本文探讨了Fuzzing技术的原理,如通过自动化和随机性发现软件漏洞,以及其在测试中的优势,包括高效率、低成本和自动化。还介绍了Fuzzing的实施步骤,如选择目标系统、生成模糊数据和使用AFL和libFuzzer等工具。重点聚焦于如何通过Scenic和Python AST变异进行复杂场景生成,并揭示了当前的前景和实践技巧。
最低0.47元/天 解锁文章
2661

被折叠的 条评论
为什么被折叠?



