发表时间: 2024-03-20 10:05:35
作者: 北京青草莓科技有限公司
浏览:
模糊测试主要的形式
首先找到被测目标需要处理的不被信任的输入数据,然后通过模糊测试工具对数据进行变异,将变异后的数据输入给被测目标进行处理,来发现被测目标在处理变异数据的过程中产生的问题
那么模糊测试到底能发现那些问题呢
在模糊测试过程中主要能观测到的问题类型大概有:
被测系统重启,
被测系统无响应,
某项服务无响应
某项服务明显异常等
一般在模糊测试的过程中我们都会添加监控器,一般通过主流监控器能发现的问题有:
被测系统ping不同,
被测系统服务端口无响应,
被测系统某项服务流程不能正常完成等
在测试的过程中或者测试之后,我们也可以通过被测系统的日志和debug命令来寻找错误,大概的问题有:
进程重启,
错误断言等
上边说的问题类型都是外在的表现,那么引起问题的根因类型大概有那些呢
我们可以通过对源代码的分析来寻找根因,某些被测语言支持地址消毒技术,我们也可以通过在测试的过程中打开地址消毒选项来寻找根因
错误代码常见的根因有
全局变量,栈变异,堆变量的读写溢出
数组读写越界
内存泄露,内存多次释放,
内存变量,栈变量等释放后使用
变量未初始化使用
全局变量多线程错误访问
线程死锁等
上边发现的问题一般都是通过模糊测试的常用手段来发现
我们当然还可以利用模糊测试来发现被测目标的逻辑功能问题
发现逻辑问题在模糊测试的过程中一般并不常用,因为需要耗费大量的人力,想要发现某种逻辑问题,首先要将这个逻辑告诉模糊测试工具
比如一些系统存在非法的密码能够成功登录的问题,比如超长密码
想要利用模糊测试发现上述问题,首先要告诉模糊测试工具什么样的密码是非法密码,并且要能控制在这个测试过程中只变异非法密码
很显然,我么几乎要为每一种逻辑问题单独定制测试过程,
通常我们利用模糊测试来发现安全漏洞,但实际并不是所有模糊测试发现的问题都能够被漏洞利用,那些不能利用的问题也同样需要修改,来提升被测程序的健壮性 因此,在某些公司,模糊测试活动被划分到安全测试范畴,在另一些公司,模糊测试被划到可靠性测试范畴
北京青草莓科技有限公司(模糊测试-解决方案提供商)
wanghao@cyan-strawberry.com
客服1