首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 156 毫秒
1.
针对目前现有静态分析方法存在的漏报率和误报率较高的问题,提出一种基于数据融合的源代码静态分析漏洞检测技术.该技术通过对不同检测方法的分析结果进行解析和数据融合,有效地降低误报率和漏报率.设计与实现了一个可扩展的源代码静态分析工具原型,可通过用户的反馈信息自动寻优.实验结果表明:相对于单个漏洞检测方法而言,该方法的误报率和漏报率明显降低.  相似文献   

2.
内存泄漏是C/C++程序的一种常见的、难以发现的缺陷,一直困扰着软件开发者,尤其是针对长时间运行的程序或者系统软件,内存泄漏的后果十分严重.针对内存泄漏的检测,目前主要有静态分析和动态测试两种方法.动态测试实际运行程序,具有较大开销,同时依赖测试用例的质量;静态分析技术及自动化工具已经被学术界和工业界广泛运用于内存泄漏缺陷检测中,然而由于静态分析采取了保守的策略,其结果往往包含数量巨大的误报,需要通过进一步人工确认来甄别误报,但人工确认静态分析的结果耗时且容易出错,严重限制了静态分析技术的实用性.本文提出了一种基于混合执行测试的静态内存泄漏警报的自动化确认方法.首先,针对静态分析报告的目标程序中内存泄漏的静态警报,对目标程序进行控制流分析,并计算警报的可达性,形成制导信息;其次,基于警报制导信息对目标程序进行混合执行测试;最后,在混合执行测试过程中,监控追踪内存对象的状态,判定内存泄漏是否发生,对静态警报进行动态确认并分类.实验结果表明该方法可以对静态内存泄漏警报进行有效的分类,显著降低了人工确认的工作量.实验详情参见:http://ssthappy.github.io/memleak/.  相似文献   

3.
软件测试自动化静态分析研究   总被引:18,自引:6,他引:12  
为了加快软件测试的速度,减少人力投入,可以采用测试自动机对软件进行自动测试。测试自动化静态分析工具是一种软件,可以利用它对程序的源代码进行分析,自动测试应用系统的很多方面。在软件测试中,静态分析工具并不执行所测试的程序,只是扫描所测试程序的正文,对程序的源代码进行分析,它类似于编译程序中的词法分析和语法分析,但工作量远不止于此。  相似文献   

4.
随着软件漏洞的危害性不断增强,软件漏洞分析已经成为了国内外安全研究的热点。已有的工作大致可以分为静态分析和动态分析两类。本文在开源的软件漏洞静态分析工具Bugscam的基础上,提出了一种建立漏洞模型,映射漏洞模型为分析程序,并进行漏洞分析的思路。对于大量的软件漏洞,我们提出,将其分为函数漏洞和逻辑漏洞两类,并分别探讨了两种模型与程序之间的对应关系。最后,对我们编写的一个改进的自动化漏洞分析工具clearBug进行了介绍,并用实验验证了模型与程序的正确性和有效性。  相似文献   

5.
张弛  黄志球  丁泽文 《计算机科学》2017,44(12):126-130, 155
在安全关键领域中,如何保证软件的安全性已经成为了一个广受关注的重要课题。静态程序分析是一类十分有效的程序自动化验证方法。基于抽象解释的静态分析技术在验证软件的非功能性安全属性上表现十分突出。可配置程序分析(Configurable Program Analysis,CPA)是一种通用静态分析方法形式化体系,旨在用一种形式化体系对静态分析的分析阶段进行建模。使用CPA对基于抽象解释的静态分析进行建模,给出如何使用CPA形式化体系描述基于抽象解释的静态分析,给出了从待分析程序到CPA形式化体系的转换规则;提供了一种在安全关键性领域中的软件正确性自动验证方法,为基于抽象解释的静态分析工具的实现提供了一种可行方案。  相似文献   

6.
《软件》2016,(12):97-101
静态分析和符号执行是发现源代码缺陷和提高源代码质量的两种有效方式。然而,这两种技术都面临各自的问题,静态分析误报率较高和符号执行一直面临着路径爆炸难题。为了减少静态分析和符号执行的这些限制,本文构建了一个称为ABARZER-SE的工具,它是第一个基于GCC结合符号执行和静态分析的源代码检测工具。ABAZER-SE由两个阶段组成,第一阶段是通过符号执行获取可行性路径,第二阶段应用静态分析技术对可行性路径分析找到源代码中缺陷。实验结果表明该工具具有可行性、有效性和可扩展性。  相似文献   

7.
陈平  王成耀 《微计算机信息》2007,23(24):189-190,120
本文给出了以抽象语法树为基础的软件静态分析工具的体系结构,介绍了该工具中各个模块的设计与实现方法,着重于规则库的设计,以及利用定义好的规则实现自动化的代码检测的过程。  相似文献   

8.
陈超  李俊  孔德光 《计算机工程》2008,34(20):66-68
采用数据融合技术对源代码进行静态分析,实现可扩展的原型系统。对现有静态分析工具的分析结果进行解析和数据融合,并对相应的参数进行估计。为便于读取和分析输出结果,采用XML格式输出结果。对常用网络软件进行测试,结果表明相对于单个源代码分析工具,该技术有效地降低了误报率和漏报率。  相似文献   

9.
缓冲区溢出漏洞是一类严重的安全性缺陷。目前存在动态测试和静态分析技术来检测缓冲区溢出缺陷:动态测试技术的有效性取决于测试用例的设计,而且往往会引入执行开销;静态分析技术及自动化工具已经被广泛运用于缓冲区溢出缺陷检测中,然而静态分析由于采取了保守的策略,其结果往往包含数量巨大的误报,需要通过进一步人工确认来甄别误报,但人工确认静态分析的结果耗时且容易出错,严重限制了静态分析技术的实用性。符号执行技术使用符号代替实际输入,能系统地探索程序的状态空间并生成高覆盖度的测试用例。本文提出一种基于目标制导符号执行的静态缓冲区溢出警报确认方法,使用静态分析工具的输出结果作为目标,制导符号执行确认警报。我们的方法分为3步:首先在过程间控制流图中检测静态分析警报路径片段的可达性,并将可达的警报路径片段集合映射为用于确认的完整确认路径集合;其次在符号执行中通过修剪与溢出缺陷疑似语句无关的路径,指导符号执行沿特定确认路径执行;最后在溢出缺陷疑似语句收集路径约束并加入溢出条件,通过约束求解的结果,对静态分析的警报进行分类。基于上述方法我们实现了原型工具BOVTool,实验结果表明在实际开源程序上BOVTool能够代替人工减少检查59.9%的缓冲区溢出误报。  相似文献   

10.
程序静态分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分析、控制流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。首先对程序静态分析的特点、常用静态分析技术、静态分析实现方式进行描述,然后通过一个实例讲解C语言静态代码分析中函数与变量的调用关系的实现方法,总结了现今在C语言调用关系分析中可以借鉴的工具与实现方式。  相似文献   

11.
基于二进制代码的缓冲区溢出检测研究   总被引:1,自引:0,他引:1       下载免费PDF全文
叶永青  李晖  郑燕飞  洪璇  郑东 《计算机工程》2006,32(18):141-143
随着Internet 应用的广泛深入,计算机系统的安全问题日益引起人们的重视,其中,缓冲区溢出漏洞攻击的数量呈逐年上升之势。该文从缓冲区溢出的原理开始,描述了一种利用静态分析和动态分析相结合的基于二进制代码的缓冲区溢出分析检测技术及工具,比较和分析了该工具检测二进制代码的结果与传统工具检测对应源程序的结果,并提出了存在的不足和改进之处。  相似文献   

12.
随着软件系统功能的日益强大,软件编写的代码量呈指数趋势增长,程序错误控制和程序性能优化变得越来越困难。为了在代码量增加的情况下,有效控制程序质量,改进程序性能,程序员大多采用动态二进制分析工具进行程序分析。动态二进制代码插入框架有效地简化了动态二进制工具的构建,因此准确掌握每种动态二进制代码插入框架的特征,成为准确构建不同工具的前提。本文通过对常用的五种二进制代码插入框架进行深入研究分析,总结归纳了每种框架的特点和特定情况下的适用性,为在工具构建过程中进行框架的准确有效选择提供了参考。  相似文献   

13.
陈诗然  胡凯  张伟  张璐 《计算机工程》2008,34(13):75-77
介绍一种多集群计算模式,在分析了多集群系统结构灵活、具有可重组性等特点的基础上,研究适用于该模式的并行作业性能监测分析方法与技术,设计和实现了一个并行作业性能监测分析工具。它采用动态性能分析方法,遵循分布式软件设计架构,具有高内聚、低耦合的模块组织结构,运行验证表明其能够在多集群计算模式下有效工作。  相似文献   

14.
为了给医生利用医学图象进行诊断和分析心血管疾病提供一个有效的工具和途径,利用计算机视觉中的正则化方法,结合心脏和心血管动态特征的临床知识,对两种医学动态图象(超声心动图和心血管造影图)进行了定量的运动分析,并完成了一套应用软件.实验结果证明,该方法明显优于以往的图象分析方法。  相似文献   

15.
在针对二进制程序的实际分析场景中,动态分析方法因具有更高的准确性而得到更为广泛的关注和运用.但是以动态污点分析为代表的细粒度分析方法通常会产生较高的性能和资源开销.为缓解这些问题,本文提出一种改进的轻量级在线解耦的动态污点分析方法,其主要思想是在线解耦程序执行和指令分析,同步构建分析代码并完成分析.该方法能够进一步降低对目标程序运行时的性能影响,并易将分析过程迁移至其它上下文环境中,从而可进一步减小对目标程序运行环境的干扰.本文通过采用多种实际程序进行实验,结果表明该方法能够比传统在线污点分析具有更高的分析性能,并具有较低的系统资源消耗,易于在实际环境中进行部署和应用.  相似文献   

16.
Dynamic analysis (instrumenting programs with code to detect and prevent errors during program execution) can be an effective approach to debugging, as well as preventing harm from being caused by malicious code. One problem with this approach is the runtime overhead introduced by the instrumentation. We define several techniques that involve using the results of static analysis to identify some cases where instrumentation can safely be removed. While we have designed the techniques with a specific dynamic analysis in mind (that used by the Runtime Type-Checking tool), the ideas may be of more general applicability.  相似文献   

17.
C++程序中异常处理的分析与测试技术研究   总被引:2,自引:1,他引:2  
异常处理机制是一种运行时错误通知机制,将程序的正常控制代码和错误处理代码分离.然而异常机制的引入使得程序控制信息变得更为复杂;且开发人员一般难以熟练使用它,导致程序中会潜伏许多异常错误.扩展已有的显式异常分析技术,对隐式异常也进行了全面的分析并提出了过程间(内)控制流图的构造方法,并以此为基础给出了一个C++程序健壮性改进模型.同时还提出了针对异常的两种动态测试策略:基于约束求解的异常测试策略和统计结构性异常测试策略.最后实现了一个初步的异常分析与测试原型工具并进行了初步实验分析,其结果表明本文提出的分析与测试方法对程序质量有较大程度的提高.  相似文献   

18.
目前提高软件可靠性的方法有3种:动态测试、静态分析和程序验证。动态测试的结果依赖于测试集的设计,误报率低,漏报率高,分析结果不稳定。程序验证可以对程序的各种性质进行完备的验证。但目前程序验证通常都需要手动证明,分析成本最高。而程序静态分析可以更早、更全面、较高效和低成本地检测到程序中的缺陷。其中符号执行技术是一种比较有应用前景的静态分析技术,可以很好地控制 精确度。针对符号执行可伸缩性差和容易产生路径爆炸的问题,在符号执行过程中利用形状分析技术实现自动推导循环不变式和构建函数行为规范,实现了一个较为实用的C程序分析工具。  相似文献   

19.
Methods of symbolic analysis enable obtaining a considerable body of useful information on a dynamic system with a minimum of data for the system itself. In this paper, a number of problems solved with the aid of symbolic analysis methods are set out and basic definitions of symbolic dynamics are given. An algorithm for producing a symbolic image of the dynamic system and one of the methods of the symbolic image analysis, namely, the method of localization of positively and negatively invariant sets are considered. An example of the functions of the given method with the aid of a software tool developed by the author is displayed.  相似文献   

20.
基于模型驱动的航电系统安全性分析技术研究   总被引:2,自引:0,他引:2  
谷青范  王国庆  张丽花  翟鸣 《计算机科学》2015,42(3):124-127, 143
针对综合化航空电子系统安全性分析存在的失效模式完备性和动态失效问题以及数据一致性问题,将航电系统分为3个层次:应用操作层、功能层和资源层,采用形式化方法分别对每个层次进行建模,利用模型转换技术实现3个层次之间的语义转换,确保语义的一致性。利用Event-B语言对系统应用操作和功能层建模,实现对应用操作模式完备性的检查,利用AltaRica语言能够对系统的异常行为建模,实现对系统动态失效问题的分析。以飞机自动飞行控制系统为例,利用Event-B建模工具Rodin实现对应用操作模式的分析,借助基于AltaRica语言的SimFia工具对其安全性进行分析,结果验证了所提方法的有效性和实用性。  相似文献   

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

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