加载中...

模糊测试(Fuzzing)是一种自动化漏洞挖掘与软件测试技术:持续向目标程序输入大量随机、变异或按规则生成的畸形数据,监视其是否崩溃、断言失败、内存越界或挂起,从而发现人工测试难以覆盖的缺陷。该方法源于 1988 年威斯康星大学 Barton Miller 对 Unix 工具健壮性的实验。
按输入构造方式分为变异型与生成型;按对程序内部的了解程度分为黑盒、灰盒与白盒。现代主流是覆盖率引导的灰盒模糊测试:以 AFL 及其继任者 AFL++、Google 的 libFuzzer 为代表,通过编译插桩获取代码覆盖反馈,保留能探索新路径的输入进化种子库。配合 AddressSanitizer 等内存错误检测器,可将隐蔽的内存破坏问题即时暴露。
Google 的 OSS-Fuzz 平台自 2016 年起为上千个开源项目提供持续模糊测试,累计发现数万个缺陷;Chrome、Linux 内核(syzkaller)、OpenSSL 等关键软件都依赖常态化 Fuzzing。近年研究热点包括结构感知模糊测试以及用大语言模型生成种子。

登录 后参与讨论
暂无讨论,来发表第一条评论吧