ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

fuzzing 综述

2022-03-02 11:01:10  阅读:266  来源: 互联网

标签:case Fuzzers 综述 bugs 目标程序 fuzzing test Fuzzing


文章

Liang H, Pei X, Jia X, et al. Fuzzing: State of the art[J]. IEEE Transactions on Reliability, 2018, 67(3): 1199-1218.

综述

Fuzzing技术可以概括为通过自动化生成并执行大量的随机测试用例,来发现目标程序的未知漏洞。

Fuzzing的一般过程如图:

 

 

Target program可以为binary或source code;

monitor利用符号执行、taint analysis等技术获取目标程序的useful runtime information;

Test case generator用于生成测试用例,可分为基于变异的和基于语法的两种;

Bug detector检测、收集潜在的bugs。当目标程序崩溃或报告一些错误时,收集并分析相关的信息(例如stack traces),以判断是否存在一个bug。

Bug filter从Bug detector检测到的bug中提取可利用的bugs。

 

黑盒、白盒、灰盒fuzzing

根据需要目标程序运行时信息的多少,fuzzer可分为黑盒、白盒、灰盒三种。如白盒fuzzer需要完整的程序内部逻辑信息,使用动态符号执行和覆盖率最大化的启发式搜索算法可以explore all execution paths;灰盒利用code instrumentation与污点分析技术,尽量使得测试用例可以覆盖更多的路径。

漏洞可分为导致目标程序崩溃的shallow bugs与存在于程序逻辑深处且难以触发的hidden bugs(如复杂的分支语句)。通常黑盒fuzzer适用于发现shallow bugs而白/灰盒适用于hidden bugs。在工业界黑灰盒更常用而白盒开销高不常用。

 

Fuzzing主要的问题:

1)如何生成或选择seed test case,如何生成其他test case:如从补丁中提取

2) 如何使这些test case可以通过目标程序的输入验证:如通过hash验证

3)如何处理引起crash的test case:比如区分、提取不同执行路径的test case

4)如何更好的利用运行时信息:如使用动态符号执行时,如何解决路径爆炸问题

5)如何提高fuzzing的可扩展性

 

现有的fuzzer根据应用领域分类:

General Purpose Fuzzers、Fuzzers for Compilers and Interpreters、Fuzzers for Application Software、Fuzzers for Network Protocols、Fuzzers for OS Kernels、Fuzzers for Embedded Devices, Drivers and Components

汇总表如下:

 

 

 

 

Fuzzing的研究方向:

Input Validation and Coverage、Smart Fuzzing(program analysis techniques、scalable and efficient)、Filtering Fuzzing Outputs、Seed/Input Generation and Selection、Combining Different Testing Methods、Combining Other Techniques With Fuzzing

标签:case,Fuzzers,综述,bugs,目标程序,fuzzing,test,Fuzzing
来源: https://www.cnblogs.com/lqerio/p/15954062.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有