基于混合符号执行的样本生成技术-基于matlab的一维条形码检测

时间:2024-06-27 13:51:38
【文件属性】:

文件名称:基于混合符号执行的样本生成技术-基于matlab的一维条形码检测

文件大小:2.93MB

文件格式:PDF

更新时间:2024-06-27 13:51:38

逆向 漏洞 挖掘 安全

北京大学博士学位论文 第五章 反馈式畸形样本生成技术研究 的传播。Buzzfuzz的测试模块根据污点传播信息,生成新的测试数据。Buzzfuzz系 统强烈依赖于目标程序的源代码。但是现代软件开发过程,由于模块化程度高, 普遍会依赖于第三方库。例如,C语言开发的软件通常会依赖于libc库。源代码植 入技术无法跟踪污点数据在第三方库执行过程中的传播,识别安全相关数据时存 在漏报。MIT研究人员也把该思想应用于web安全分析,实现了面向PHP语言的 安全检测[101]。 Google安全研究人员D. Will和O. Tavis在二进制植入平台Valgrind[125]基础 上,实现了基于污点分析的模糊测试工具Flayer[75]。但是Flayer仅跟踪数据是否 来源于输入,即仅跟踪数据的0/1污点属性,未实现细颗粒度污点分析,因此并不 能定位安全相关数据的具体位置。 5.3 基于混合符号执行的样本生成技术 5.3.1 方法原理 基于细颗粒度污点分析的导向性模糊测试并没有解决测试过程中的代码覆盖 率问题。例如,即使图5.1 中x被识别为安全相关数据,如何自动生成导致程序异 常的x依然困难。因此,本文进一步实现了基于混合符号执行的样本生成技术。作 为导向性模糊测试的互补,基于混合符号执行的样本生成技术能够对执行轨迹深 度安全分析,也能够以代码覆盖率为指导,生成高覆盖率样本。 1. int x, y; 2. x = read_16bits(); 3. y = read_16bits(); 4. if(x>0 && y>0 && x*y*4>x && x*y*4>y*4){ 5. p = malloc(x*y*4); 6. if(p==NULL) return 0; 7. 图 5.4: Adobe Flash Player 整数溢出漏洞(CVE-2010-2170)伪码 下面结合图5.4中代码,介绍基于混合符号执行的样本生成技术的原理。 图5.4展示的是本文在Adobe Flash Player中发现的零日漏洞(CVE漏洞编号CVE- 2010-2170)的原理代码。变量x和y都源于输入数据,其中read_16bits函数用于 – 75 –


网友评论