利用动态污点跟踪优化模糊测试的方法_报告人赵斌华中科技大学

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

利用动态污点跟踪优化模糊测试的方法汇报提纲•1.研究背景•2.研究意义•3.系统架构设计•4.实验与分析•5.总结展望21.研究背景优点:•一是模糊测试目标是二进制可执行代码,不需要获取目标程序源代码,而白盒测试方法是以获取目标软件源代码为前提,有很大局限性;•二是模糊测试是动态执行的,相比静态分析会提高检测的准确性;•三是模糊测试实现了自动化,不需要大量测试人员参与。缺点:•一是测试用例生成没有目标性,大量冗余测试用例导致测试效率低下;•二是多数模糊测试用例生成采用随机变异或者人为变异,导致测试用例数量过大,测试时间过长,测试效果不理想。•……32.研究意义•利用动态污点跟踪优化模糊测试的方法减少冗余测试用例。•对有效测试用例并行化处理,进一步提高模糊测试效率。43.系统架构设计四个模块:模糊测试模块、动态污点跟踪模块、相似度计算模块、并行化处理模块。系统的执行分两个阶段,第一阶段获取有效测试用例集合;第二阶段对每一有效测试用例,采用并行化处理,将当前进程状态和污点状态迁移到新的虚拟机中。5图1系统架构图3.1模糊测试•目前改进模糊测试程序方法,一是数据变异策略;二是代码覆盖率;三是数据变异位置的优化。但这三方面改进都是围绕提高模糊测试端效率考虑,忽略了测试用例在被测端的执行效果。•为解决大量冗余测试用例的问题,借助污点传播路径相似度比对方法过滤掉冗余测试用例,生成有效测试用例集。63.2动态污点跟踪•污点初始化:二进制程序与外界进行数据交换是借助系统调用完成的,所以通过监控系统调用,获取接受函数数据缓冲区,然后将缓冲区中的数据标记在影子内存中,从而实现污点初始化.•指令执行分析:机器指令的操作数中含有污点,如果指令执行中污点复制到其它存储单元就会发生污点传播,如果指令执行后污点被设置为空就会发生污点清除,所以通过获取指令执行的情况,可以判断污点的状态。•污点传播路径的生成:通过对指令执行的分析,将发生污点传播与清除的指令按序记录在日志文件中,从而生成污点传播路径.73.2动态污点跟踪•根据对Intelx86机器指令的分析,将可能导致污点传播与清除的机器指令分成三类•一是数据移动指令,包括mov、cmov、movsz、movzx、repmovs、lods、stos、push、pop、pushad、popad、pushfd、popfd等;•二是算术运算指令,包括add、sub、mul、div、and、or、xor等;•三是特殊指令,包括call、leave等。83.3相似度计算•原理:将污点传播路径中的每条指令进行排列后,形成一个数组,记为:,然后在对数组Seq提取特征值,记为p。如果有两个污点传播路径数组的特征值p1和p2,可以定义相似性公式为:similarity=sim(p1,p2),其中similarity表示两个特征值的相似性。•方法:采用Simhash算法以及海明距离来计算污点传播路径的相似度.具体步骤为:•步骤一计算每条指令的哈希值;•步骤二将每条指令哈希值与指令对应权值相乘;•步骤三将步骤二结果相加合并;•步骤四将步骤三合并结果降维,生成二进制形式的哈希值;•步骤五计算步骤四的哈希值与已有污点传播路径哈希值的海明距离,海明距离越小说明两条污点传播路径越相似,进而说明对应的两个测试用例相似,反之则为不相似.93.3.1相似度比对算法的改进•1.词频乘以系数•TF-IDF(TermFrequency-InvertedDocumentFrequency)方法用于评估一个文件集合内某个词对某个文件的重要程度。受TF-IDF方法的启发,将机器指令的权重定义为指令在一条污点传播路径中出现的频率与该指令对该路径的重要程度的乘积.具体公式:•某指令在一路径内的高频率,以及该指令在所有路径集合中的低频率,可以产生出高权重W.•这种方法有两点缺陷,一是IDF的简单结构并不能有效地反映指令的重要程度和分布情况,使其无法很好地完成对权值调整的功能,所以TF-IDF算法的精度并不高;二是TF-IDF算法并没有体现出指令的位置信息,权重的计算方法应该体现污点传播路径的结构特征.103.3.1相似度比对算法的改进•2.分割法•将几条指令组合在一起作为一个特征词汇,这种方法增加了特征词汇种类,提升了比对效率。两个优点,一是考虑了污点传播路径中指令的位置,使权值的确定更合理;二是增加了特征词汇的种类,使特征词汇的分布类似于文档,这恰好符合Simhash算法的应用场景。•测试了G为1-40的情况,经过测试表明,当固定值G设定为30正确率达到了最大,595次相似度比对鉴定出了588个不相似路径.113.3.1相似度比对算法的改进•3.滑动窗口法•滑动窗口的方法与分割法类似,但是相比分割法,滑动窗口的方法更重视指令的位置,并且它大幅度提升了特征词汇的种类,使指令序列更像一篇文档,因此理论上相似度比对的效率更高.其具体实现的思想就是将报文污点序列排成一个污点序列,设定一个窗口值W,以W次从该序列中取指令组成一个特征词汇,与分割法不同的是滑动窗口每次滑动一个单位,而分割法是滑动多个单位.123.4并行化处理•将有效测试用例现场交由并行化处理模块做进一步处理.并行化处理模块的主要作用是提高模糊测试漏洞挖掘和定位的效率.并行化处理模块由多个虚拟机组成,每个虚拟机运行的环境相同,包含有效测试用例执行现场.通过虚拟机静态迁移方法,将源主机上的操作系统以及应用程序迁移到目的主机来实现并行处理。134.实验与分析•3.1FTP和HTTP协议测试•实验详细环境如表1所示14FTPHTTP操作系统WindowsXPSP3Ubuntu12.04WindowsXPSP3Ubuntu12.04虚拟机QEMU1.0QEMU1.0文件系统HDFSHDFS被测程序War-ftp1.65HFS测试框架改进的Sulley改进的Sulley测试程序ftpfuzz.pyPython2.7HFSfuzz.pyPython2.7插桩平台Pin2.13(Windows版本)Pin2.13(Windows版本)表1实验环境4.实验与分析•3.1FTP和HTTP协议测试•系统优化后如图2(a)所示,15图2(a)系统运行示意图4.实验与分析•3.1FTP和HTTP协议测试•由二进制插装平台Pin实现动态污点跟踪,记录污点传播情况,而后进行相似度计算.如图2(b)所示16图2(b)虚拟机迁移示意图4.实验与分析•3.2性能分析17FTP测试用例HTTP测试用例优化前34869452优化后1014608表2优化前后效率对比4.实验与分析•3.2性能分析18表3优化前后的模糊测试性能对比优化前优化后测试协议FTPHTTPFTPHTTP测试用例3486945234869452有效测试用例348694521014608第一次测试时间1h20m3h39m2h14m6h2m第二次测试时间1h20m3h39m40m24m漏洞定位时间58h6m157h32m3h23m2h2m5.总结展望•本文设计并实现了原型系统,并对2个协议进行了测试,实验结果表明系统能有效过滤冗余测试用例,显著提高模糊测试的效率.今后将侧重以下几方面工作:增加对未知协议的支持,使系统适用性增强;进一步改进相似度比对算法,提高路径比对的准确性;Pin插装被测程序对程序的稳定性产生了影响,探索对程序稳定性产生较小影响的其他方法.19谢谢!

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功