面向嵌入式CGI的内存破坏漏洞挖掘研究

Research on Discovering Memory Corruption Vulnerabilities for Embedded CGIs

  • 摘要: AFL-CGI-wrapper (ACW)是桌面CGI程序的漏洞自动挖掘方法,其利用QEMU仿真器执行二进制CGI来实施模糊测试。但在嵌入式设备中直接应用ACW进行CGI漏洞挖掘会面临两个难题:1) 固定输入模型难以应对嵌入式设备的多样性;2) 主模块跟踪难以覆盖依赖外部调用的分支路径,导致漏洞挖掘效率低下。针对这两个问题,一种基于反馈的惰性输入模型和选择性外部函数跟踪被提出,并在原型系统BCFuzzer中实现。最后使用实际的嵌入式CGI程序集进行了实验,结果表明相比现有方法,其能自动探索更多的代码路径,也能更快地发现更多未知漏洞。

     

    Abstract: AFL-CGI-wrapper (ACW) is designed for detecting vulnerabilities in desktop CGI programs, the core idea is fuzzing CGI via executing the targeted program in the QEMU environment. However, there are two challenges when applying ACW on discovering vulnerabilities of embedded CGIs: 1) the diversity of devices makes fuzzing via fixed input-model is inefficient; 2) only tracing the main module of CGI cannot utilize coverage information to guide fuzzing to explore those code paths that are dependent on functions hosted in extern module. To overcome these two challenges, a lazy input-model based on feedback and a selective extern function tracing are presented and implemented in the prototyping system named BCFuzzer. Finally, several experiments had been conducted based on a set of embedded CGIs from some real-word devices. The result shows that the techniques of BCFuzzer can help to explore more code paths and detect more vulnerabilities as soon as possible.

     

/

返回文章
返回