ble55ing的技术专栏 code analysis ,fuzzing technique and ctf

TaintScope 分析

2019-05-17
ble55ing


TaintScope 分析

TaintScope: A Checksum-Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection ,是用动态污点分析来进行样本格式中完整性检查的校验位获取

论文关注的研究现状

自定义格式的方法是很昂贵的,不可取

自动提取格式规范的方法也没有如何规避完整性检查

论文的主要工作

我们提出了 TaintScope基于动态污染分析的定向符号执行的一种格式检查和感知的方法。 Taintscope 背后的关键思想是程序执行过程中的污点传播信息可以用来检测和绕过基于校验和的完整性检查,可以直接生成畸形的测试用例,再进一步通过混合符号执行技术来修复畸形测试中的校验和字段。

论文要点

本文主要贡献:

.1 提出一种新颖的方法来推断一个程序检查输入实例的完整性执行校验的感知模糊操作。TaintScope 可以改变目标程序的执行轨迹,定位完整性检查点,仿佛生成的测试用例没有违反诚信检查,本文称之为校验感知模糊。(感觉如果能够锁定校验位check的部分的话直接patch掉也是可以的)

  1. TaintScope是一个在字节级进行细粒度污染分析的定向模糊化工具。监视目标应用程序如何访问和使用输入数据,并在整个程序执行过程中跟踪传播这些标签。检查能够流入malloc,strcpy等位置的敏感信息定向变异。

  2. TaintScope 是全自动的,从检测检验结果,指示 fuzzing 修复损坏的样本。可以在生成的测试用例中修复校验和字段使用符号执行混合技术。taintscope 只替代测试用例中的校验和字段使用符号值(即,将大多数输入字节保留为具体值) ,并收集校验和的跟踪约束。 简化了原始的复杂跟踪约束简单的约束。 通过解决这些简单的约束可以修复生成的测试用例。

TaintScope总共有四个阶段: 动态污染跟踪,检测校验检查点,定向模糊,修复破坏的样本,

本文所说的修复破坏的样本并不是对样本进行操作,而是确定校验位之后在运行时确定校验和字段的值,并通过这个字段来对原样本进行修复。

组关联格式修复

基于路径反馈的样本格式修复技术能够有效的解决强格式定义、弱格式定义和非格式定义的区别,但是对于组关联的格式不能产生较好的效果。因此需要在其基础上提出针对组关联格式的检测技术。1. 基于动态污点追踪的组关联格式修复技术,采用细粒度的动态污点追踪来识别输入实例中的校验和字段,使用分支分析准确定位基于校验和的完整性检查,再通过控制测试样本来绕过这些检查。

组关联格式由于其校验功能的特殊性,会在基于路径反馈的样本格式修复技术中会被归类到强格定义当中。而基于动态污点追踪的组关联格式修复技术则会在这其中分析得出属于组关联格式的字节并进行自动修复,即可以感知校验和并进行修复的技术。这项技术可以防止测试用例过早的被测试程序排除掉,因而能达到更好的效果。组关联格式修复技术只针对校验和字段进行追踪,可以很大程度上减少消耗。

组关联格式的检测通过对校验的特殊分支谓词进行。对应于完整性检查 p。 谓词在输入格式良好的实例时,p 总是 true / false,而在对于畸形实例的时候该谓词总是 false / true。此技术的目标之一就是准确定位二进制程序中的潜在完整性检查点而不是自己识别校验和算法,在此之后通过动态污点追踪获取到程序进行完整性校验的谓词判定,并依此来对样本进行修复。


Similar Posts

上一篇 NEUZZ分析

Content