一.fuzzing的定义
Fuzz本意是“羽毛、细小的毛发、使模糊、变得模糊”,后来用在软件测试领域,中文一般指“模糊测试”,英文叫“Fuzzing”。
Fuzzing技术是一种基于黑盒(或灰盒)的测试技术,通过自动化生成并执行大量的随机测试用例来发现产品或协议的未知漏洞。
二.fuzzing的特点
在软件领域有一个著名的bug:苹果手机在锁屏后,用户需要等待128年后才能解锁。而这一bug是一个小孩在玩她妈妈手机时遇到的,因为孩子的思维并不按套路出牌。所以为了尽可能地模拟真实世界中可能会出现的输入(穷举所有的输入显然也不现实,等产品测试完上线黄花菜都凉了),fuzzing产生的输入应该是“模糊”(不确定)的。