华中科技大学李伟明.PDFVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华中科技大学李伟明  在漏洞挖掘领域,fuzz testing (模糊测试)是一 种重要的技术。它通过向程序输入大量畸形数据来 使执行程序出现问题,发现可能的漏洞。  优点:  简单方便的黑盒测试,并且已经有大量经验可以发 掘各种漏洞。SPIKE,PEACH。  缺点:  测试数据量大,无法突破应用程序中的验证或检查, 无法进行更为深入的测试。  在2003年的BlackHat Federal 和Blackhat USA 安全会议上提出概念。2010在BlackHat安全大会 上,提出内存fuzz testing原型系统,提高效率。  内存Fuzzing 的方式:循环变异和快照恢复变异。 循环变异是指在被测试代码片段的末尾插入一个无 条件跳转,跳转到代码开头,并继续修改数据,循 环测试。而快照恢复变异是指在被测试代码开头, 保存进程快照,到末尾再把进程快照进行恢复,再 继续变异数据,进行下一轮测试。  内存fuzz testing的优缺点:  优点: 相对普通fuzz testing,不需要多次启动程序,一 次启动程序可以完成大量测试,提高了测试效率。  缺点: 需要较为复杂的配置,要找到合适的快照点和恢复 点,手工参与较多。  本文中提出了一种基于内存fuzz testing系统 PyFuzzer,综合利用了静态特征分析和动态污点跟 踪的技术。在函数级别,提高内存fuzz testing的 自动化。  利用了Distorm反汇编引擎对二进制程序静态解析 和发掘危险函数。  在可执行程序的函数解析中主要使用了基于 call\ret、jmp 指令的函数调用方法,并利用了PE 文件中的导入表来得到二进制程序的所有函数列表。  得到所有的函数后,并不是直接对函数进行fuzz testing测试,而是利用静态分析方法来为fuzz testing器找出潜在的高危函数,节省时间并提高效 率。  主要是利用模板比对发 现危险函数。  操作符用Operation表 示。例如mov记作M, inc记作I,test记作T , JMP 记作J 。  Operator ={x, i, r, a, m, f}  图中的典型结构就可以 记作MrmMmrIrTrrJi。  通过Needleman算法计算出危险指令模板与指 令串的Needleman距离,其值越小,相似度越 高。通过对大量循环结构观察分析,选取以15 作为阈值,当Needleman值小于15时,则认为 是危险指令序列。包含危险指令序列的为危险函 数。  获取危险函数的快照点和恢复点,作为内存fuzz testing的基础。  在静态分析后,会得到危险函数记录。利用 Pydbg函数库对所有危险函数进行Hook。当发 现被Hook 的函数对输入数据进行处理,就触发 了回调函数记录该函数的入口地址,返回地址及 函数参数信息。  通过分析危险函数的每个参数,判断该参数是否 从外界接收数据。如果从外部接收数据则作为内 存fuzz testing的对象。  fuzz testing通常作用于程序外部,根据一定策 略构造畸形数据并发送给目标程序。  而内存fuzz testing几乎全部作用于程序内部, 只需在开始进行测试时对程序发送一次数据,内 存模糊测试方法就可以在目标进程内自动生成测 试用例的畸形数据,其循环测试过程也不需外界 干预,这样就可以减少程序I/O,提高效率。 1. 确定模糊测试的快照点和恢复点 2. 定位输入数据位置,生成测试用例 3. 循环进行内存模糊测试 4. 记录所有出错现场信息  PyFuzzer对WarFTPD和Serv-U进行了测试,首 先通过静态分析,实验结果如表所示。  采用了网络FTP测试工具4n FTP Fuzzer与PyFuzzer测 试对比。在测试效率上,PyFuzzer测试效率为113次/s, 而4n FTP Fuzzer的测试效率只有48次/s。  本文提出了综合利用静态分析和动态分析的In- memory fuzz testing测试方法。设计并实现了 该方法的原型Pyfuzzer。  相对传统fuzz test

您可能关注的文档

文档评论(0)

aa15090828118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档