多重循环程序内存访问越界增量检测方法

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:zsj_bj
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在严重威胁软件系统可靠性和安全性的多类软件缺陷中,内存访问越界属于危害性很强且广泛存在的一类缺陷,可被黑客利用并转变成多种拒绝服务漏洞和著名的缓冲区溢出等高危险性的安全漏洞。现有的内存访问越界缺陷检测方法,对现实程序中内含复杂条件分支的多重循环,无法有效分析其内部频繁的指针运算和内存操作,因此检测效果不佳。特别是,循环执行次数无法预知而由外部输入动态确定、内存操作受循环内条件分支影响而动态变化等常见情况,对当前热门的符号执行类精确检测方法构成巨大挑战,导致该类方法在遍历程序路径实施检测时,会遇到严重的路径组合爆炸问题,即使消耗非常多时间,也常常无法正常终止。另外,现有方法被设计成对完整的程序代码实施全面检测,但现实软件系统常常会由于各种原因被更新和升级,若每次软件更新后都进行全面检测,代价过高。而且,现有方法也没有针对软件更新时容易引入新缺陷的代码区域进行专门检测,因此大部分检测时间被花费在无意义的重复检测之中。经分析,其问题根源是:现有符号执行类方法单纯追求代码覆盖率而缺陷针对性不强。因此,提出了一种面向多重循环程序的内存访问越界缺陷增量检测方法。针对内存访问越界缺陷与循环归纳变量运算紧密关联的特点,首次将递推链扩展代数与符号执行类缺陷检测方法相结合,设计了面向多重循环的缺陷检测指导信息,同时利用软件更新影响的局部性特点,实现了基于路径指导的定向检测和基于更新影响的增量检测。其主要算法如下:1)根据软件更新对源代码的文本修改,结合控制与数据依赖分析,识别受软件更新实际影响的语义变化区域。有针对性地在该区域中分析多重循环中指针运算和内存读写模式,初步识别出内存访问越界疑似缺陷,再根据控制与数据依赖关系标记出疑似缺陷所依赖的语句和变量,作为缺陷依赖区域,构造能充分检测软件更新引入缺陷的相关执行要素最小集合——精简检测流图,及早排除与缺陷检测无关的语句。2)基于精简检测流图进行多重循环分析,跟踪和分析多重循环中缺陷依赖变量的递推关系,将其统一表示为递推链扩展代数的形式,再根据该代数规则进行符号操作,从而推导出缺陷依赖变量的值或上下界的闭形式函数,构建循环摘要和函数摘要。接着,根据内存范围等安全性限制条件,利用循环摘要和函数摘要,构造缺陷触发条件并求解,从而判断缺陷触发的可能性,及时排除疑似缺陷集合中的误报,还可推断出用于预测和选取缺陷关联路径的缺陷检测指导信息。3)根据路径选取方向性、条件分支检测优先级、各个循环的有效迭代次数范围等缺陷检测指导信息,有指导地以按需符号执行方式实施路径敏感和位运算级精度的缺陷定向检测。每次经过疑似缺陷点时,主动检测缺陷触发条件,并结合在检测路径上收集的路径分支条件进行约束求解,通过判断触发路径的条件可满足性来进一步避免缺陷误报。而每次在路径分叉点,按需克隆执行环境以避免相同路径前缀的重复执行,并立即求解所选取分支的路径条件集,以及时剪除不可行的路径分支。最后,生成无误报的缺陷集合、能真实触发这些缺陷的程序输入集合以及相应的触发路径集合,作为缺陷并非误报的验证信息。基于上述算法,设计和实现了能面向多重循环程序实施内存访问越界缺陷增量检测的原型系统,并在国内首次将微软主流编译器的下一代工业级编译平台Phoenix用于软件缺陷检测,作为该系统的基础支撑环境。该系统已检测Filezilla Server、SpamAssassin、WGet和OpenSSL等多个知名开源软件,找到了真实的代码缺陷。实验结果表明,利用递推链扩展代数进行多重循环分析,有指导地以符号执行方式实施定向检测,能够克服多重循环程序对现有符号执行类方法造成的困难,包括循环次数由输入确定、内存操作受循环内条件分支影响等难题,既避免了盲目路径遍历,又保持了路径敏感和位运算级的检测精度,提高了检测效率和准确性。同时,利用软件更新影响的局部性特点,实现缺陷增量检测,提高了检测时效性和针对性。另外,该方法能够在检测和定位内存访问越界缺陷同时,生成相应的程序输入和触发路径等验证信息,这在软件安全性测试和信息对抗等领域有很大的应用价值。
其他文献
<正> 一达尔文(1809—1882)的不朽著作“物种起源”於1859年11月24日在英国伦敦初次出版,印数1,250本,当天立刻售完;於1860年发行第二版,印数3,000册;於1861年发行第三版;第
期刊
信息时代的飞速发展加剧了信息安全的重要性,生物特征识别作为身份验证的重要手段,一直是信息安全的主流研究方向。由于生物特征识别技术利用人体固有的生理特征或行为作为信
研究硝基苯初始浓度、pH静、重金属和NaCl浓度对硝基苯微生物降解的影响。从污染现场筛选、分离出8株硝基苯降解菌,进行无空列重复1次的正交试验,采用紫外分光光度计对降解体系
利用1962~2011年贵州省黔南地区12个气象站的月降水和月平均气温资料,采用高桥浩一郎经验公式计算月蒸发量,根据水量平衡关系,得出各月的可利用降水量,分析黔南地区可利用降水
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
消防系统对高速公路隧道的行车安全起着至关重要的作用。本文从消防取水、消防水池、火灾报警系统、消防系统施工难点等几方面介绍了高速公路隧道消防系统的工程设计内容,实
随着信息科学技术的进步,人们的生活、工作已经离不开信息化建设的发展,高校档案管理工作也是如此,档案信息化建设管理工作是当前高校工作重要的组成部分,它体现着一个学校档案的
目的对美罗华+CHOP方案治疗侵袭性B细胞性淋巴瘤的疗效进行探究,为其治疗水平上的提升提供重要依据。方法随机选取我院2010年1月~2018年12月收治的侵袭性B细胞性淋巴瘤患者为
目的分析老年糖尿病患者失眠的原因和探索护理措施。方法把糖尿病引起的失眠病人随机进行分组,再对照组实行平常式护理,对观察组中进行循环式护理,并且增强护理人员的专业知
随着微电子技术的高速发展,人们对电子产品的强大需求使得现代集成电路系统的规模和复杂度日益提高。在系统芯片(SOC)设计中,可以利用IP构成复杂的大规模系统。但是,SOC的验