开题报告基于程序切片软件安全测试.docVIP

开题报告基于程序切片软件安全测试.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
开题报告基于程序切片软件安全测试 南京邮电大学毕业设计(论文)开题报告 题 目 基于程序切片的软件安全测试 学生姓名 专业 信息安全 一、 对课题任务的学习与理解 1. 课题产生背景 随着计算机技术的高速发展,纷繁众多的计算机应用对人们工作和生活的影响越来越大。但是,软件规模的日益庞大以及繁琐的分工使得软件产品的质量往往难以得到保证,从而带来了日益严重的软件安全问题和安全隐患。因此,发掘软件中的潜在漏洞和脆弱点,诊断已发生的攻击行为并及时采取措施,都能在很大程度上降低软件受到恶意攻击的风险,减少攻击所造成的破坏和损失。 软件测试是保证软件质量的一个重要环节,在现代软件工程中,软件测试在整个软件生命周期中所处的地位越来越高。随着软件规模和复杂性的不断提高,采用传统的软件测试技术发现和定位软件中的错误也越来越难。 程序切片技术是一种分析和理解程序的技术,具有可以简化问题,缩小目标范围的特点。程序切片技术已被实践证明是一种能有效发掘软件漏洞、诊断软件攻击的技术,受到了研究者们的重视。因此,探讨一种利用程序切片技术来对软件进行高效安全分析的手段,有着很现实的意义。 2. 课题实现目标 本课题要求通过实际具体的 C 程序分析工具,获取相应的程序依赖图并对其进行安全测试研究。具体的成果形式包括: (1)给出基于 C 程序源码切片的安全测试方法; (2)提交毕业设计报告及其相关电子文档。 二、 文献调研综述 1. 程序切片技术的概述 M. Weiser 博士首先在 1979 年定义了程序切片的概念:程序中的某个输出只与这个程序的部分相关语句以及控制谓词有关系,因此如果删除其他的语句或者控制谓词将对这个输出没有任何影响。也就是说,对于一个特定的输出,源程序和对于删除不相关的语句和控制谓词后所得的程序是作用相同的。其形式化定义如下: 把满足如下两个条件的切片称为 M. Weiser 切片:第一,一个程序切片需要对应一个切片准则,用表示,其中 n 指程序中的某个兴趣点,一般指一条语句,V 表示在这条 语句使用的变量的集合。第二,程序 P 的切片 s 可以通过在 P 中删除零条或者多条语句后得到,且保证程序 P 和所得的切片 S 关于切片准则的作用是相同的。 当时,M. Weiser 博士把只与某个输出相关联的语句和控制谓词构成的程序称之为源程序的静态切片。由此可见,一个程序的切片大多数是源程序的一个子集,这个概念准确的说其实就是程序切片的一个核心思想。 后来随着研究的发展,研究者们对 M. Weiser 博士程序切片的概念进行了扩展,由于程序切片不一定都是可执行的,因此又包含了不可执行的切片思想,这也是一种静态切片,这样就丰富和发展了程序切片的内涵。随后,Korel 和 Laski 又提出了动态切片的概念,它只考虑程序的某个特定执行情况,程序中的信息如数组、指针和循环依赖关系都可以在程序执行时动态确定。因此,动态切片与静态切片相比结果更加的准确。 2. 程序切片的发展历程 图 1 程序切片技术的发展历程 第一个阶段是基于数据流方程的切片阶段,这其实就是 M. Weiser 博士提出切片概念的阶段,主要使用了基于控制流图的数据流方程来计算程序切片。 第二个阶段是基于依赖图的程序切片阶段,这一阶段产生了对程序切片提出了很多新的概念和算法。首先,Ottenstein 等人在提出了基于程序依赖图的图可达性算法,并可以计算过程内后向程序切片,接着又提出了前向切片的概念和算法,以及基于依赖图的两步遍历图的可达性算法。最后 Korel 和 Laski 提出了动态切片的概念和算法。 第三个阶段是面向对象的程序切片阶段,这一阶段是伴随着面向对象的高级程序语言的发展而产生,在 1996 年 M.J.Horrald 等人首次使用类依赖图来扩展系统依赖图,从而表示面向对象的 C++程序,并通过改进的两步遍历图可达性算法来计算程序的切片。随后Christon Steindl 在 1999 年通过对各种数据流以及控制流的计算,提出了面向对象程序切片计算的解决方法,起到了很重要的作用。 最后一个阶段是程序切片变体阶段,这一阶段出现了各种程序切片的变体形式,例如砍片、削片、层次切片等等,这些都极大地促进了程序切片技术的迅速发展。 3. 程序切片的分类 自程序切片提出以来,伴随着各自领域的发展出现了许多略有不同的定义,相关的切片准则以及计算切片的算法。按照切片准则的不同,程序切片可分为静态切片和动态切片、前向切片和后向切片(或过程内切片和过程间切片)、面向对象切片以及条件切片、分解切 片等其他切片。 4. 程序依赖图和系统依赖图 程序依赖图(PDG):PDG 是程序的一种图形

文档评论(0)

177****8759 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档