首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到18条相似文献,搜索用时 46 毫秒
1.
误报率和漏报率是静态缺陷检测的关键技术指标,提高分析精度是降低误报和漏报的主要手段.文中介绍了缺陷模式及其有限状态机描述,提出基于传统数据流分析的缺陷检测方法.采用变量抽象取值来近似地表示程序动态执行信息,通过状态条件中的变量抽象取值范围为空来判断不可达路径,以实现路径敏感分析;使用缺陷相关的函数摘要来表示缺陷检测所需函数调用信息,其中缺陷相关的函数摘要包括前置约束信息、后置约束信息和函数特征信息三部分,实现了上下文敏感的跨函数分析.文中方法已在缺陷检测系统DTS中实现,在大型开源软件分析中的实验结果表明,该方法能减少误报和漏报.  相似文献   

2.
提高路径敏感缺陷检测方法的效率及精度研究   总被引:1,自引:0,他引:1  
路径敏感的缺陷检测方法其缺陷状态会关联当前控制流节点的所有数据流信息,由于其中包含与缺陷检测无关的数据流,因此会导致分析效率下降.为了避免全路径敏感分析时的路径爆炸问题,一般会在控制流汇合节点进行缺陷状态合并,而这种粗糙的合并策略带来的精度损失会引起误报.针对上述问题,文中提出一种基于缺陷的程序切片方法,该方法基于缺陷...  相似文献   

3.
边攀  梁彬  石文昌 《计算机科学》2014,41(1):220-224
通过静态检测发现源程序中的潜在缺陷,可以帮助程序员在软件发布之前发现并修补程序缺陷,提高软件的安全性。提出一种通过静态分析CIL代码来检测C#程序代码缺陷的方法。采用改进的深度优先搜索算法遍历目标程序的控制流程图,结合历史状态缓存机制,能够大幅度提高检测效率;另外,为便于实施别名分析,还提出一种基于内存区域的变量表示方法。基于所述分析方法,开发了一个C#源代码缺陷静态检测系统,并对实际开源项目进行了检测。实验结果表明,本系统能够高效、准确地检测C#程序中常见类型的缺陷。  相似文献   

4.
软件缺陷是衡量软件测试充分性的一项重要指标,为了提高基于BPEL的组合Web服务流程的可靠性和健壮性提出了一种死路径语义下路径敏感的缺陷检测方法.死路径是BPEL提供的特殊语义,不具有任何执行信息,但是可以连接两个可执行路径片段.为了避免死路径对检测精度的影响,将死路径和路径条件有机地结合起来,采用了变量的抽象取值范围来表示流程的执行状态,即属性状态条件.通过状态条件中变量抽象取值范围为空来识别不可达路径及死路径,并在汇合节点进行了属性状态条件的合并.采用一个既与死路径相关又与执行路径相关的未初始化变量的缺陷检测贯穿整个分析与验证过程,进而说明了该方法的有效性.  相似文献   

5.
大量而广泛存在的源码系统使得软件源码的安全问题日益重要。文中在大型源码系统中采取路径敏感的方式挖掘关联变量访问规则,并自动检测系统中因不一致访问关联变量引发的源码缺陷。通过结合程序源码的逻辑信息及路径敏感信息,挖掘出其中的源码关联变量,避免路径非敏感方法带来的错误。对路径敏感方法挖掘源码关联变量中面临的主要挑战:路径权重不均、路径爆炸问题,提出较高效的解决办法。在Linux源码系统中验证方法的正确性和高效性,实验结果表明该方法可高效、准确提取模式。  相似文献   

6.
定值-引用类错误是一类非常重要且常见的错误.当前,对这类错误的检测很难同时达到高精度和高可扩展性.通过合理组合敏感和不敏感的检测方法并控制两类方法的实施范围,可以同时达到高检测精度和高可扩展性.提出一种新颖的场景敏感的检测方法,该方法根据触发状态对潜在错误语句分类,识别不同类别语句的触发场景并实施不同开销的检测,在不降低精度的同时最小化检测开销.设计了一个多项式时间复杂度的流敏感、域敏感和上下文敏感的场景分析以进行分类,并基于程序依赖信息识别触发场景,仅对必要的触发场景实施路径敏感的检测.为上述方法实现了一种原型系统——Minerva.通过使用空指针引用错误检测为实例研究以及总代码规模超过290万行,最大单个应用超过200万行的应用验证,用例实验结果表明,Minerva的平均检测时间比当前先进水平的路径敏感检测工具Clang-sa和Saturn分别快3倍和46倍.而Minerva的误报率仅为24%,是Clang-sa和Saturn误报率的1/3左右,并且Minerva未发现漏报已知错误.上述数据表明,所提出的场景敏感的错误检测方法可同时获得高可扩展性和高检测精度.  相似文献   

7.
文件系统中的TOCTTOU缺陷是类Unix操作系统面临的一个严重安全问题,现有的静态检测方法具有很高的误报率.原因有2点:一是对导致TOCTTOU缺陷的函数对缺乏精确定义和分析;二是分析过程过度抽象,忽略了很多重要的程序信息.因此,首先对TOCTTOU缺陷进行了分类,并系统分析了C标准库中可以导致TOCTTOU缺陷的函数对.在此基础上,提出了一种TOCTTOU缺陷的静态分析方法,利用有限状态安全属性刻画TOCTTOU缺陷,分析精度达到了过程内路径敏感、过程间流敏感.实验结果表明,该方法能够有效检测C 程序中的TOCTTOU缺陷,相比现有方法,有效降低了误报率.  相似文献   

8.
目前Android应用程序的安全问题得到越来越多的关注. 提出一种检测Android应用程序中恶意行为的静态分析方法, 该方法采用静态数据流分析技术, 并实现了常量分析算法, 通过跟踪应用程序对常量值的使用来检测恶意订购、资费消耗等多种类型的恶意行为. 实验结果表明, 该方法可以有效检测出Android应用程序的恶意行为, 具有较高的实用性.  相似文献   

9.
可执行程序的缺陷函数检测是软件漏洞发现的重要技术手段之一。从二进制代码指令流的角度出发,研究了缺陷函数的签名机制,提出了一种基于可执行程序静态分析的缺陷函数检测方法。该方法通过静态分析应用程序的可执行代码,建立进程运行过程中可能的函数调用序列集合。以该集合为基础,通过对比分析缺陷函数签名,可以准确检测该程序调用的缺陷函数集合,以及分析可能导致的脆弱性。通过实验分析,验证了该方法对于缺陷函数检测的有效性。  相似文献   

10.
数据流异常是指程序中与变量使用有关的不合常规的“可凝”情况。仅靠传统的数据流异常检查技术不能发现面向对象程序中与实例变量有关的数据流异常,将方法序列规范与传统的检查技术结合起来,提出了一种能检查对象的实例变量的数据流异常的方法。  相似文献   

11.
使用敏感路径识别方法分析安卓应用安全性   总被引:1,自引:0,他引:1  
缪小川  汪睿  许蕾  张卫丰  徐宝文 《软件学报》2017,28(9):2248-2263
安卓系统在手机端操作系统中长期占据主导地位,但由于安卓系统开放共享的特性和不够严谨的第三方市场审核机制,安卓平台受到众多恶意应用的侵扰.本文结合静态程序分析和机器学习方法,提出了基于敏感路径识别的安卓应用安全性分析方法.首先,针对恶意应用中存在的恶意行为以及触发条件,定义了敏感路径.其次,针对安卓应用中存在大量组件间函数调用关系,提出了一种生成应用组件间函数调用关系图的方法.再次,由于提取出的敏感路径信息无法直接作为识别特征,实现了一种基于敏感路径信息抽象的特征提取方法.最后,从GooglePlay、豌豆荚、Drebin等来源收集了493个应用APK文件作为实验数据集,本文方法的准确率为97.97%,高于基于API-Feature的检测方法(90.47%),此外,在恶意应用和良性应用检测的精度、召回率、F度量等方面,本文方法均优于API-Feature方法.另外,实验表明APK文件大小会影响实验的结果,尤其体现在分析时间上(0-4MB大小的APK平均分析用时89秒;文件增大后,平均分析用时增长明显).  相似文献   

12.
不可达路径增加了程序的复杂度和冗余度,不可达路径的检测是结构测试中的一个关键问题。提出了一种包含异常处理结构的程序不可达路径的静态检测方法。该方法根据数据流信息判断产生冲突的分支,进而利用分支冲突检测路径的可达性;在数据流分析时考虑异常处理结构和变量别名对数据流信息的影响。实例分析结果表明,该方法可以进一步提高路径可达性检测的准确度。  相似文献   

13.
软件安全漏洞的静态检测技术   总被引:5,自引:3,他引:2       下载免费PDF全文
张林  曾庆凯 《计算机工程》2008,34(12):157-159
软件安全漏洞问题日益严重,静态漏洞检测提供从软件结构和代码中寻找漏洞的方法。该文研究软件漏洞静态检测的两个主要方面:静态分析和程序验证,重点分析词法分析、规则检查、类型推导、模型检测、定理证明和符号执行等方法,将常用的静态检测工具按方法归类,讨论、总结静态检测技术的优势、适用性和发展趋势。  相似文献   

14.
基于SMT求解器的路径敏感程序验证   总被引:1,自引:0,他引:1  
何炎祥  吴伟  陈勇  徐超 《软件学报》2012,23(10):2655-2664
随着软件规模的不断扩大以及复杂度的不断增长,人们越来越关注软件的可信性问题.验证程序是否满足断言所描述的性质,是保证软件可信性的一种常见方法.路径敏感的程序验证由于不可能遍历所有的路径,需要合并路径信息,因此造成精度上的损失.提出一种基于SMT求解器的路径敏感程序验证方法,在保证精确度的前提下,有效减少路径搜索空间.其基本思想是,利用最大强连通分量压缩循环路径,然后根据目标断言对控制流图进行切片.使用一种布尔表达式方法对路径空间进行抽象,结合抽象解释和符号执行技术对路径进行验证.结合F-Soft平台和Z3工具对该方法进行了实验验证,结果表明,该方法在验证的精确度和效率上都有较好的效果.  相似文献   

15.
王德朋  王前  薛伟 《软件》2013,(12):68-72
软件缺陷是导致软件不可靠的根本原因,提高软件可靠性的关键在于减少软件缺陷。基于缺陷模式的代码分析技术根据预先设定好的缺陷模式对待测代码进行缺陷分析,这种缺陷分析具有使用简单、查找速度快等优点,是近年来静态代码分析技术中发展比较迅速的新技术。但是目前基于这种分析技术的大多数工具并没有为用户提供足够易用、高效的扩展方式以扩充其缺陷检测能力。本文出了一种支持用户定制语法相关缺陷模式的测试方法及系统,该方法能够让用户根据实际情况需要对缺陷模式进行定制,目的是检测程序代码中是否包含语法相关的缺陷。  相似文献   

16.
基于缺陷关联的静态分析优化   总被引:2,自引:0,他引:2  
缺陷检测一般包括静态分析与人工审查两个阶段.静态检测工具报告大量缺陷,但是主要的缺陷确认工作仍由人工完成,这是一件费时、费力的工作.巨大的审查开销可能会导致软件开发人员拒绝使用该静态缺陷检测工具.提出一种可靠的基于缺陷关联的静态分析优化方法,能够分组静态检测工具所报告的缺陷,在分组后的任意一组缺陷中,如果其主导缺陷被证明是误报(或者是真实的),就能确认其他缺陷也是误报(也是真实的).实验结果表明,基于缺陷关联的静态分析优化方法在较小的时间和空间开销下减少了22%的缺陷审查工作,能够较好地适应于大型的关键嵌入式系统程序缺陷检测.  相似文献   

17.
程序切片是一种传统的程序分析方法:通过去掉无关代码,获取可能影响某行代码的子集。程序切片在程序理解、软件测试和程序调试等众多领域有着广泛的应用。随着互联网技术的发展,JavaScript语言得到广泛应用,但针对该语言的切片工具非常有限。本文针对JavaScript语言的特殊性,提出一种基于程序依赖图的JavaScript程序切片算法,并基于WALA程序分析框架实现了该切片算法。试验结果表明,本文的切片算法可以得到较为理想的切片结果。试验中切片平均大小约为原程序代码的70%,较手工切片仅有约19%冗余。  相似文献   

18.
带控制流的静态函数调用分析方法   总被引:2,自引:0,他引:2       下载免费PDF全文
提出一种带有控制流的静态函数调用分析的方法,通过建立模型,对源程序进行静态分析,得到程序中的控制流信息和函数调用信息。和已有的静态函数调用关系图分析工具calltree和Source Insight相比,该方法生成的函数调用流图不仅能展现函数间的调用次序,还可以了解程序设计的逻辑复杂度,有助于代码阅读和分析人员更快更好地理解程序结构以及设计流程,并为分析程序控制条件、设计路径覆盖测试用例和进行程序优化奠定基础。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号