FUZZ测试总结
Fuzzing简介
模糊测试(fuzzing test)是一种软件测试技术,其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏,访问越界等。
Fuzzing测试框架使用了LLVM编译器框架中的libFuzzer作为Fuzzing引擎进行构建,libFuzzer是一个基于LLVM编译时路径插桩,可以对被测库API进行路径引导测试的Fuzzing引擎。
使用Fuzzing测试框架,需要完成fuzzer测试用例初始化、fuzzer用例编写、fuzzer用例编译和fuzzer用例执行几步。
Fuzzing测试关注的风险接口
开发者应该了解自身模块的接口数据输入是基于不可信的来源输入,特别是针对
- 解析处理远程发送来的TCP/UDP或者蓝牙等协议数据
- 通过复杂的文件解码处理等,包括音视频、图片解码、解压缩等
- IPC跨进程的数据输入处理
通过Fuzzing的覆盖引导能力,可以有效的探测和消减外部输入造成的内存安全问题,也可以极大的增强系统稳定性。
环境配置
将toolchains添加在环境变变中:
在cmd中用hdc_std shell检测
安装Linux扩展组件readline,安装命令如下:
本文详细介绍了Fuzzing测试技术,涵盖Fuzzing简介、libFuzzer应用、环境配置、测试流程、用例生成与执行,以及关键接口风险和配置参数。通过实例演示如何编写和执行Fuzz用例,以及测试结果分析和日志管理。
订阅专栏 解锁全文
2680

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



