基于类型的动态污点分析技术研究
动态污点分析技术是目前一种主要的软件漏洞分析技术,但在二进制代码分析中由于缺少类型支持,目前只能工作在内存地址与寄存器粒度上,为漏洞机理语义分析带来了较大困难.本文提出了基于类型的动态污点分析技术,定义外部输入变量为污点变量,并添加变量的类型信息与符号值作为污点属性,利用函数、指令的类型信息来跟踪污点变量传播过程,进行类型感知的污点传播以及面向类型变量的符号执行,从而获得污点变量传播图与程序执行路径条件,求解出输入变量的约束条件,支持全面了解输入变量在数据流中的传递和对控制流的影响,最终达到更好的安全漏洞语义理解.本文以分析浏览器安全漏洞为例应用该技术,运用动态二进制代码插装技术将分析代码插入目标进程,动态执行污点分析,设定策略规则检测进程是否非法使用污点数据,结合符号执行,解出输入变量约束条件.从数据依赖和控制依赖两方面,获得含有外部输入类型信息的安全漏洞特征.实验结果验证,基于类型的动态污点分析方法可以有效提升安全漏洞机理分析的语义,能够输出更易理解与使用的安全漏洞特征.
软件漏洞 动态污点分析技术 污点变量 程序设计
陈力波 诸葛建伟 田繁 鲍由之 陆恂
清华大学计算机科学与技术系,北京100084;清华大学网络科学与网际空间研究院,北京100084 清华大学网络科学与网际空间研究院,北京100084
国内会议
上海
中文
195-214
2012-12-06(万方平台首次上网日期,不代表论文的发表时间)