首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 156 毫秒
1.
提出保障程序可信性的指针分析基础架构,为上层提供通用和丰富的接口及数据信息,不仅能够完成高效精确的指针分析,同时还为上层软件检测提供可信支持。该框架采用一种高效的流敏感、上下文敏感的可信指针分析技术,该方法充分利用扩展SSA形式,采用稀疏存储形式,提高了流敏感的分析效率。同时将需求驱动的分析策略引入到可信指针分析框架中来,能够有效地避免盲目的程序分析,使可信指针分析更具针对性,大大提高了分析的性能。最后通过实验验证了该框架进行可信指针分析的高效性和准确性。  相似文献   

2.
以软件可信性问题为主攻目标,首先阐述了可信软件的五大主要特征,给出了可信软件分析方法、测试方法和步骤,并总结了各个方法的缺点,重点对可信软件测试方法进行了分类总结和对比分析,同时给出了相应方法的测试工具;其次论述了可信软件的验证方法;最后进行了总结,并对今后可信软件分析和测试研究作出了展望。  相似文献   

3.
随着软件系统在信息社会中发挥越来越重要的作用,人们对软件系统的可信性方面的要求也愈来愈高。软件可信性可由软件可信属性集来进行描述和表示,但是人们根据软件系统的不同特征和不同层面提出了很多软件可信属性集。为此,本文提出一种软件可信属性的表示以及相关性分析的方法,给出了可信属性相关性、独立性和冗余性的概念,并基于相关性分析可以从所知的属性集中构建一个适合的可信属性最小子集作为对软件可信性进行评估的指标。此方法能够很好地对可信软件属性之间的相关性进行分析与度量。  相似文献   

4.
可信编译理论及其核心实现技术:研究综述   总被引:1,自引:0,他引:1       下载免费PDF全文
编译器是重要的系统软件之一,高级语言编写的软件都必须经过编译器的编译才能成为可执行程序。编译器的可信性对于整个计算机系统而言具有非常关键的意义,如果编译器不可信,则很难保证系统所运行软件的可信性。可信编译是指编译器在保证编译正确的同时提供相应的机制保证编译对象的可信性,对可信编译理论和技术的研究具有重要理论意义和实用前景。阐述了可信编译器的概念,介绍了编译过程正确性的形式化定义,对可信编译的主要研究进行了概括。在全面分析可信编译研究现状的基础上,从编译器自身可信性和确保编译对象可信性两个方面,对可信编译器设计和实现的相关理论和方法进行了分类和总结。最后,讨论了可信编译有待解决的问题和未来的研究方向。  相似文献   

5.
软件在安徽行政学院信息平台建设中非常重要,软件可信性评估渗透软件开发和应用的全阶段。本文从数学建模的角度阐述了软件可信性指标体系、可信性设计和可信性评估等内容,对软件可信性评估过程及其算法进行了分析,为可信软件在计算机系统中的应用提供了整体评估。  相似文献   

6.
软件的可信性很大程度上依赖于程序代码的可信性。影响软件可信性的主要因素包括来自软件内部的代码缺陷、代码错误、程序故障以及来自软件外部的病毒、恶意代码等,因此从代码角度来保证软件的可信性是实现可信软件的重要途径之一。编译器作为重要的系统软件之一,其可信性对整个计算机系统而言具有非常重要的意义。软件程序一般都需要经过编译器编译后方能执行,如果编译器不可信,则无法保证其所生成代码的可信性。本文主要讨论设计和实现可信编译器的主要思路和关键技术。  相似文献   

7.
随着软件在关键领域的应用日趋普遍,由于软件复杂性导致的各种问题层出不穷,为保证软件的可信性,探索软件可信的自动化分析与验证方法,文中基于模型检验方法提出了一种软件可信分析模型.该模型使用有限状态机(FSA)描述软件的非可信行为属性,使用下推自动机(PDA)描述软件运行中的行为和已知非可信行为,构建已知非可信行为库DPDA.基于模型检验方法自动验证软件是否存在可疑行为,并检查可疑行为是否为非可信行为库中的已知非可信行为.本模型能快速地对软件进行自动化可信分析,有效缓解一般模型检验过程中的状态爆炸问题,为软件可信的自动化验证与评估提供依据.  相似文献   

8.
《软件工程师》2015,(5):60-62
随着软件在信息社会中发挥越来越重要的作用,人们对软件系统的可信性方面的要求也愈来愈高。对可信软件和软件构件进行定义和分析的基础上,提出了一种基于构件的可信软件系统框架;一个基于构件的可信软件系统框架包括软件系统的信任根构件、可执行的构件集、HASH函数以及构件之间的控制权可信转移协议等部分;在此框架下,对基于构件的可信软件系统进行描述和表示。为基于构件的可信软件系统的构造和开发提供相应的理论支持和借鉴作用。  相似文献   

9.
赵倩  冯光升  李莉 《计算机科学》2013,40(5):173-176
针对软件可信演化中对软件可信性相关属性的需求,提出一种考虑历史数据的软件可信演化分析方法。通过收集软件演化的历史数据,提取软件可信演化相关属性并进行量化,建立软件可信演化着色原则,构建软件可信演化分析图。实验结果表明,通过对软件可信演化分析图中演化单元的观察,可实时、有效、直观地得到内嵌在演化数据中的隐藏信息,以此分析出软件演化是否为可信演化,从而为演化数据的分析提供支持。  相似文献   

10.
指针分析技术是一种基础的静态程序分析技术,也是软件安全方向的研究热点之一,在软件缺陷检测、恶意代码分析、程序验证、编译器优化等应用场景中发挥着重要的作用,指针分析的精度在这些应用场景中至关重要。流敏感分析和过程间分析是提高指针分析精度最有效的两种技术。文中对现有的提高过程间流敏感指针分析精度的技术进行总结,从为提高精度所消除的信息入手,将分析方法分为两大类:一类是消除分析中的虚假信息,以避免指向信息沿虚假的返回路径或是虚假调用关系传播;另一类是消除分析中保守的指向关系,在每个程序点处根据设置的规则尽可能确定指针的唯一指向,而不是笼统地计算指针的多个可能指向。据此,详细比较了过程间流敏感指针分析技术的异同,并对指针分析技术未来的研究方向进行了展望。  相似文献   

11.
一种用于指针程序安全性证明的指针逻辑   总被引:7,自引:3,他引:4  
在高可信软件的各种性质中,安全性是被关注的重点,其中软件满足安全策略的证明方法是研究的热点之一.文中根据作者所设想的安全程序的设计和证明框架,为类C语言的一个子集设计了一个指针逻辑系统.该逻辑系统是Hoare逻辑系统的一种扩展,它用推理规则来表达每一种语句引起指针信息的变化情况.它可用来对指针程序进行精确的指针分析,所获得的信息用来证明指针程序是否满足定型规则的附加条件,以支持程序的安全性验证.该逻辑系统也可用来证明指针程序的其它性质.  相似文献   

12.
上下文敏感的过程间指针分析   总被引:4,自引:0,他引:4  
提出了一种新的指针指向信息的过程间传播方法 ,对过程间指针分析所必须解决的若干重要问题给出了详尽的算法 ,从而形成了一种实用的上下文敏感的过程间指针分析框架 .该方法已在 C程序分析工具 Agassiz系统中实现 ,实验数据说明这些方法是行之有效的 .  相似文献   

13.
C语言作为安全关键软件的主要实现语言,其存在的内存泄漏缺陷具有很高的隐蔽性和危害性,如何保证内存泄漏检测的准确性和高效性是一大挑战。静态分析具有直接分析源码、能够较早发现软件错误,从而降低修复代价的优势。基于静态分析技术,提出了一种基于路径敏感的值流分析的内存泄漏检测方法,首先进行指针分析生成精确指向信息;然后基于指向信息构建值流约束,执行可达性分析以识别程序中的泄漏路径;最后借助指针与内存地址的有效生命周期进行验证。在典型基准C程序上的实验结果分析表明,本文方法与现有技术相比在效率和精度上都具有一定优势。  相似文献   

14.
刘鹏  赵荣彩  庞建民  姚远 《软件学报》2014,25(11):2486-2498
指针分析是数据流分析中的关键性技术,其分析结果是编译优化和程序变换的基础。在基于包含的指针分析算法研究的基础上,对 Narse 优先权约束评估算法中存在的冗余约束评估和优先权评估模型计算开销较大的问题进行分析,以指针的指向集更新信息确定约束评估的候选集,提出了基于指向更新的约束评估算法。采用约束语句间的解,引用依赖和标量依赖构建约束依赖图,通过依赖关系确定约束评估的优先权,提出了基于约束依赖图的优先权算法,简化了既有算法中复杂的优先权评估模型,进一步给出了优化后算法的整体框架。在基准测试集 SPEC 2000/SPEC 2006上进行实验,其结果表明,该算法与Narse优先权算法相比,在时间开销和存储开销上都有明显的性能提升。  相似文献   

15.
The use of pointers presents serious problems for software productivity tools for software understanding, restructuring, and testing. Pointers enable indirect memory accesses through pointer dereferences, as well as indirect procedure calls (e.g., through function pointers in C). Such indirect accesses and calls can be disambiguated with pointer analysis. In this paper we evaluate the precision of one specific pointer analysis (the FA pointer analysis by Zhang et al.) for the purposes of call graph construction for C programs with function pointers. The analysis is incorporated in a production-strength code-browsing tool from Siemens Corporate Research in which the program call graph is used as a primary tool for code understanding.The FA pointer analysis uses an inexpensive, almost-linear, flow- and context-insensitive algorithm. To measure analysis precision, we compare the call graph constructed by this analysis with the most precise call graph obtainable by a large category of existing pointer analyses. Surprisingly, for all our data programs the FA analysis achieves the best possible precision. This result indicates that for the purposes of call graph construction, inexpensive pointer analyses may provide precision comparable to the precision of expensive pointer analyses.  相似文献   

16.
指针分析是对软件进行编译优化、错误检测的核心基础技术之一.现有经典指针分析框架,如Doop,会将待分析程序和分析算法转化成Datalog评估问题并进行求解,如程序规模较大,单次求解分析时间开销较大.在程序频繁变更发布的情况下,相关程序分析的开销更是难以负担.近年来,增量分析作为一种在代码频繁变更场景下有效复用已有分析结果提升分析效率的技术受到了越来越多的关注.然而,目前的增量指针分析技术通常针对特定算法设计,支持的指针分析选项有限,其可用性也受到较大限制.针对上述问题,本文设计并实现了一种基于差分式Datalog求解的增量指针分析框架DDoop(Differential Doop). DDoop实现了增量输入事实生成技术与增量分析规则自动化重写技术,将多版本程序增量分析问题表达为差分Datalog评估问题,从而可以充分利用成熟的差分式Datalog求解引擎,如DDlog,来实现端到端的增量指针分析,并最大化兼容复用Doop中已有的指针分析实现,提供透明的增量化支持.我们在广泛应用的真实世界程序上对DDoop进行了实验评估,实验结果显示DDoop相较于非增量的Doop框架具有显著的性能优势,同时高度兼容Doop中已有的各种指针分析规则.  相似文献   

17.
内存错误漏洞是以不安全语言编写软件系统中安全性和可靠性问题的主要原因。这些漏洞常被用来将代码执行重定向到攻击者控制的位置。诸如代码复用攻击这样的内存错误漏洞利用的流行促使主要处理器制造商设计基于硬件的防御机制。一个例子是ARMv8.3中引入的指针认证(PAuth)机制。PAuth使用签名密钥和指针上下文信息对指针进行签名, 上下文信息是缩小保护范围和开发不同类型安全机制的关键元素。通过使用轻量级分组密码算法QARMA64并将指针认证码(PAC)存储在指针未使用位中, PAuth可以较小的性能和存储开销检查指针的完整性。当前一些研究使用PAuth降低内存安全机制的性能开销, 还有一些研究基于PAuth提高控制流完整性的保护精度。虽然PAuth受到越来越多的关注, 但它仍然遭受暴力攻击和PAC伪造攻击。因此, 很有必要对当前基于PAuth的安全应用进行总结, 并分析其存在的问题。本文首先介绍内存错误漏洞利用的相关背景和相应的保护机制。然后, 我们详细介绍了PAuth机制的详细信息, 包括硬件支持、加密算法和密码密钥管理, 及其潜在的安全问题。然后, 我们总结了当前基于PAuth的内存安全和控制流完整性的研究, 特别是指针上下文的选择方法。最后, 基于我们的调查, 讨论和展望ARM PAuth未来可能的研究方向。未来的研究方向可能包括以下几个方面: PAuth密钥管理和上下文选择、针对推测攻击的防御, 以及PAuth与其他ARM安全机制的结合使用。  相似文献   

18.
空指针解引用是C语言中的一类常见的动态内存错误。Manevich R等提出了一种适用于检测空指针解引用错误的后向分析方法。本文将后向分析的思想和流敏感、上下文敏感的指针分析结合在一起,给出了一种需求驱动的空指针解引用检测静态分析算法。该算法首先由指针分析获得别名信息,然后针对所关心的数据做后向数据流分析,追踪数据传递的源头,以确定程序中的表达式是否产生解引用错误。我们在SUIF2平台上实现了这一算法。实验结果表明,算法具有较高的检测精度。  相似文献   

19.
指针分析是编译优化、程序静态分析中的基础,很多应用都需要基于指针分析,低精度的指针分析会给这些应用带来高误报率和漏报率,通过添加上下文敏感信息是提高指针分析的精度的一个重要手段.自从面向对象的概念被提出来之后,该概念得到了广泛的应用,Java、C++、.NET、C#等主流语言都支持面向对象的特性,面向对象程序的指针分析...  相似文献   

20.
Pointer analysis is a technique to identify at copile-time the potential values of the pointer expressions in a program,which promises significant benefits for optimzing and parallelizing complilers.In this paper,a new approach to pointer analysis for assignments is presented.In this approach,assignments are classified into three categories:pointer assignments,structure(union)assignents and normal assignments which don‘t affect the point-to information.Pointer analyses for these three kinds of assignments respectively make up the integrated algorithm.When analyzing a pointer assigemtn.a new method called expression expansion is used to calculate both the left targets and the right targets.The integration of recursive data structure analysis into pointer analysis is a significant originality of this paper,which uniforms the pointer analysis for heap variables and the pointer analysis for stack variables.This algorithm is implemented in Agassiz,an analyzing tool for C programs developed by Institute of Parallel Processing,Fudan University,Its accuracy and effectiveness are illustrated by experimental data.  相似文献   

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

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