Concolic测试关键技术研究

来源 :北京邮电大学 | 被引量 : 2次 | 上传用户:gwo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
网络空间安全中的各种博弈行为,漏洞挖掘、恶意代码检测、模型提取与分析作为一种战略资源而被各方积极关注。如何快速有效地发现漏洞、检测恶意代码行为是解决软件自身安全问题的根本,也是信息安全领域的研究重点。漏洞检测与分析、恶意软件行为分析,以及模型自动化提取与分析都是建立在测试用例自动化生成的基础上,配合各个领域的检测特征和行为规范,实现不同的安全分析、检测目的。所以,测试用例的有效性与自动化程度直接决定了各种安全分析的效率。Concolic测试解决了覆盖特定执行路径测试用例的自动化生成问题,能够有效地帮助安全人员理解数据内部流向和恶意行为触发条件、方式等问题,具有高路径覆盖率,低冗余测试、准确性高的特点,极大地提高了漏洞挖掘、恶意代码分析的效率。在漏洞挖掘时,Concolic测试能够帮助研究人员在复杂的数据依赖关系中捕获数据之间内在约束,并且精确记录路径动态执行过程中的约束条件,从而进一步判定路径可行性和路径约束的完备性,加之配合不同漏洞类型的约束规则,能够对不同类型的软件漏洞进行挖掘。恶意代码分析过程中,研究人员利用Concolic测试配合事先制定的搜索策略和恶意行为特征规则,精确定位检测恶意代码的触发条件,进而捕获其恶意行为,达到分析恶意软件行为的目的。Concolic测试是程序分析理论中一种典型的程序混合分析技术,是一种能够覆盖特定执行路径测试用例的方法模型,与程序的抽象和推理、模型检测等理论相互结合,为程序优化、漏洞检测与分析、恶意软件行为分析等技术提供基础。“ Concolic ”由“ concrete”和“ symbolic ”组合而成,代表模糊测试技术和符号执行技术的结合。符号执行技术和模糊测试技术是程序静态分析和动态分析领域的两大典型技术,符号执行技术的核心思想是利用符号模拟程序执行收集当前路径分支语句中的谓词,并形成路径约束条件;而模糊测试技术的核心思想是利用随机输入驱动程序真实执行。二者都是面向路径的程序分析方法,前者由于没有真实执行程序,存在路径爆炸隐患;后者由于大量随机输入可能并未改变被测程序的执行路径,存在测试冗余问题。所以,研究人员致力于将两种方法的优势结合起来,克服各自缺陷。然而,Concolic测试发展至今,在工业界仍然没有被大规模的应用,其主要原因是由于Concolic测试本身还有诸多困难需要克服,例如路径爆炸、环境交互、复杂数学函数、符号指针操作,中间语言优化、浮点数计算等问题。这些问题阻碍了 Concolic测试技术的发展,使得Concolic测试无法实现理论上百分之百的路径覆盖率,以及不得不面临测试效率和准确性的质疑。本文以改进Concolic测试效率和准确性为最终目标,深入分析了 Concolic测试技术的优劣及面临的主要挑战,重点研究了 Concolic测试技术中存在的中间语言优化、环境交互和复杂数学函数三个典型问题,并最终提出切实有效的解决方案,主要贡献和创新性成果如下:首先,针对Concolic测试的中间语言冗余问题,提出一种基于冗余标志位检测和删除的中间语言优化方法。中间语言优化是指通过精简优化中间语言的代码结构,提高Concolic测试后续分析效率。本文分析并讨论了中间语言中存在的冗余标志位的原因,并根据标志寄存器和汇编指令的依赖关系,对x86指令进行分类和索引,深入研究了冗余标志位的检测和删除过程。本文以中间语言Vine IL为例,提出一种针对汇编指令冗余标志位检测和删除的方法,设计并实现了运行于x86架构下冗余标志位检测和删除系统。冗余标志位检测和删除方法具体如下:首先,根据汇编指令和标志寄存器的依赖关系,将汇编指令分成三类建立索引,并分析常用指令序列,提高后续指令查找效率。其次,提出一种逆序线性扫描算法,过滤标志寄存器无关指令,检测依赖标志寄存器的指令以及上下文中影响该标志寄存器的指令,建立标志寄存器和对应指令的依赖关系FRC( flag relevant chain, FRC)。最后,根据FRC探测去除冗余标志位的中间表示过程,最大程度地精简每条指令的中间表示,提高后续求解效率。其次,针对Concolic测试的环境交互问题,提出一种基于数据输入函数探测和校正的隐藏路径探索算法。环境交互问题研究是指分析数据输入函数(data input interface function,DIIF)引起的部分代码必须在特定外部条件下才能被访问的现象,目的在于解决环境密集型程序中隐藏路径的探测问题。本文讨论了由DIIF引起的环境交互问题的原因,深入研究DIIF的探测和校正过程,提出基于模拟器和文件插桩两种方式的数据输入函数探测和校正算法,解决了环境密集型程序的某些关键代码或者潜在漏洞被遗漏的问题。该方法具体包括:首先,明确给出了 DIIF定义,根据其输出参数特性,从Windows SDK、C语言标准库中筛选DIIF及其具有输出属性的参数,建立DIIF索引。其次,提出一种细粒度的污点分析算法,在程序执行过程中,检测函数调用指令,借助DIIF索引判断该函数是否为DIIF,并根据DIIF函数签名,定位其输出参数所在内存区域。最后,在程序执行过程中,对关键分支的决定条件,即相应DIIF输出值进行校正,实现隐藏路径的探测。最后,针对Concolic测试的复杂数学函数引起的路径无解问题,提出一种基于局部模糊测试的复杂数学函数返回值的探测和校正方法。复杂数学函数问题研究是指分析包含复杂数学函数的路径约束条件超出约束求解器求解能力的现象,目的在于解决复杂数学函数引起的大量路径无解问题。针对这一问题,本文针对复杂数学函数返回值进行建模,利用二进制文件插桩工具进行用户态级别的指令插桩,实现复杂数学函数返回值的探测和校正算法,解决复杂数学函数导致的路径无法求解问题。该算法具体内容如下:首先,根据黑盒函数处理的思想,提出一种针对复杂数学函数的细粒度的污点分析算法,匹配函数返回值模型,仅收集复杂数学函数返回值相关的分支条件谓词,定位复杂数学函数返回值所在内存区域。其次,提出一种定向路径搜索方法,通过添加复杂数学函数标签,优先访问复杂数学函数所在路径。最后,文本提出一种针对复杂数学函数进行局部模糊测试的方法,用来验证约束求解结果的正确性,解决不可达路径访问的问题。
其他文献
某一区域推行“跨越式”经济发展战略,必须具备一定的要素条件,才能取得突出成效,否则有可能造成政经动荡,人民遭受损失。1999-2008年的十年期间,在资本、劳动、土地和管理等生产
当前大学生的诚信危机日益突出,诚信教育迫在眉睫。高校要通过多种途径加强对大学生的诚信教育,并建立信用评价体系,营造社会诚信工程,推进高校思想政治建设。
在大学生心理问题日益突显的新形势下,心理咨询已成为加强和改进大学生思想政治教育工作的一个重要手段。本文从论述心理咨询与德育工作的区别与联系,来说明心理咨询与德育工
健康教育是整体护理系统中不可或缺的部分,是通过信息传播和行为干预,帮助个人和群体掌握卫生保健知识,树立健康观念,自愿采纳有利于健康的行为和生活方式的教育活动与过程。护士
目的对遗传性对称性色素异常症一个家系DSRAD基因突变进行检测,以期寻找到新的致病突变。方法收集一患有遗传性对称性色素异常症家系,该家系除了有典型的皮疹外,身体发育、智力
石门蒙泉话归属于汉语西南官话,其人称代词颇具特色。本文在普通话文献语料和田野调查实际语料的基础上,从形式和用法两方面对石门蒙泉话的人称代词进行描写,并和普通话比较,
目的:探讨胸腔镜肺叶切除术治疗老年早期周围型肺癌的临床疗效。方法将我院2011年1月至2013年1月收治的64例早期周围型肺癌患者按照入院顺序随机分为两组,每组各32例,其中对照组
为实现对大规模养鸡场内环境的远程监控,设计了基于ZigBee无线传感器网络和以太网技术的远程监控系统,可以对鸡舍内的温度、湿度、光照以及红外报警等信息进行实时采集和远程
综述了44年来个旧白云山霞石正长岩开发利用研究的基本情况.研究表明,采用烧结-水热合成工艺生产13X分子筛并副产碳酸钾、碳酸钠和白炭黑,产品市场前景好、投资较省、经济效
目的调查分析2012年我院抗生素处方存在的问题及其特点,并探讨应对措施,促进我院临床合理使用抗生素。方法随机抽查1500份处方抗生素电子处方单,邀请资深专家进行处方点评,统计抗