基于安全契约的测试方法及其实现
发布时间:2021-03-25 00:56
软件安全问题自从软件诞生的那天起,就已经存在了,是一个不可回避的问题。随着软件的发展和互联网时代的兴盛,软件安全问题变得越来越突出,越来越重要,也越来越受到人们的重视。如何解决软件安全问题,成为了人们的最迫切的需求。解决软件安全问题,可以从两个方面入手,软件安全开发和软件安全测试。软件安全问题不能单独由软件安全开发或者软件安全测试解决,必须把两者结合起来才能最大程度地保证软件的安全性。本文提倡应该在软件开发的早期考虑软件安全问题,并进行软件安全测试。本文的工作是从安全契约出发,探讨软件安全测试的问题。在行文结构上,本文首先对软件安全和软件安全测试做了一个综述,介绍软件安全测试的定义、目的、特点和原则等基础知识,并介绍了当前软件安全测试方法的研究现状和发展趋势,同时阐明了本文的出发点。然后,从方法论角度讨论了基于安全契约的安全测试的方方面面,包括基于契约安全契约的软件安全测试的思想、安全契约的定义和表示,测试用例的生成,软件安全测试过程等。最后,在结合前述安全测试知识和方法论的基础上,设计了一个基于安全契约的安全软件测试工具,并以实例说明了工具的使用和效果。在内容研究方面,本文将测试分两...
【文章来源】:吉林大学吉林省 211工程院校 985工程院校 教育部直属院校
【文章页数】:59 页
【学位级别】:硕士
【部分图文】:
契约显示界面
有了安全契约文件Policy和对应的请求Request,还必须能由他们二者得到响应文件Response。对于一个打开的Policy,能由一个相关的Request得到响应文件ResPonse,同理对于一个打开的Request,也可以由一个相关的Policy得出响应文件Response。我们在菜单编辑(E)下定义两个子菜单RunwithRe明est和彻nwithPoliey,分别用来实现上述两个功能。在打开一个poliey(Request)文件的前提下,执行RunwithRequest(Runwithpoliey),会要求打开一个Request(Policy)文件,执行的结果是生成一个ResP0nse文件,为了更直观,在窗口的右半部显示ResP0nse的信息。同时,会在Request(Policy)所在目录生成一个Response文件,文件以当KJ’时间来命名。RunwithRequest和Rullwithpolicy这两个功能分别由函数RunwithRequestToolstripMenuftem_Cliek()和彻nwi怔olicyToolstripMenultem_Cliek实现。执行RunwithRequest后的效果如图4.3响应结果显示界面:
图4.3响应结果显示界面4..3程序层模块4.3.1数据结构的定义程序层的主要任务就是,完成测试时对各种数据的收集工作,其中包括契约层产生的数据和外部输入的数据,还有程序运行引起的安全变量的改变,这些都要做好记录工作,为验证阶段的顺利进行提供基础。还有一个重要的工作,必须在程序层完成,即数据结构的设计。良好的数据结构更有利于数据的保存,产生最少的代码冗余,从而保证测试的高效性。因此,数据结构的设计是研究工作的重中之重。如何更好的重组相关数据,解藕数据之间不必要的关联,是编码阶段的大问题,也是大难题。下面,就让我们一一清点程序涉及到的数据信息,详述这些数据的结构设计。首先,鉴于本文的核心就是如何让XACML更好的融入测试工具的设计之
【参考文献】:
期刊论文
[1]软件安全测试新武器——浅谈基于Dynamic Taint Propagation的测试技术[J]. 王宏,曹文霞. 程序员. 2008(05)
[2]软件安全性测试方法与工具[J]. 施寅生,邓世伟,谷天阳. 计算机工程与设计. 2008(01)
本文编号:3098723
【文章来源】:吉林大学吉林省 211工程院校 985工程院校 教育部直属院校
【文章页数】:59 页
【学位级别】:硕士
【部分图文】:
契约显示界面
有了安全契约文件Policy和对应的请求Request,还必须能由他们二者得到响应文件Response。对于一个打开的Policy,能由一个相关的Request得到响应文件ResPonse,同理对于一个打开的Request,也可以由一个相关的Policy得出响应文件Response。我们在菜单编辑(E)下定义两个子菜单RunwithRe明est和彻nwithPoliey,分别用来实现上述两个功能。在打开一个poliey(Request)文件的前提下,执行RunwithRequest(Runwithpoliey),会要求打开一个Request(Policy)文件,执行的结果是生成一个ResP0nse文件,为了更直观,在窗口的右半部显示ResP0nse的信息。同时,会在Request(Policy)所在目录生成一个Response文件,文件以当KJ’时间来命名。RunwithRequest和Rullwithpolicy这两个功能分别由函数RunwithRequestToolstripMenuftem_Cliek()和彻nwi怔olicyToolstripMenultem_Cliek实现。执行RunwithRequest后的效果如图4.3响应结果显示界面:
图4.3响应结果显示界面4..3程序层模块4.3.1数据结构的定义程序层的主要任务就是,完成测试时对各种数据的收集工作,其中包括契约层产生的数据和外部输入的数据,还有程序运行引起的安全变量的改变,这些都要做好记录工作,为验证阶段的顺利进行提供基础。还有一个重要的工作,必须在程序层完成,即数据结构的设计。良好的数据结构更有利于数据的保存,产生最少的代码冗余,从而保证测试的高效性。因此,数据结构的设计是研究工作的重中之重。如何更好的重组相关数据,解藕数据之间不必要的关联,是编码阶段的大问题,也是大难题。下面,就让我们一一清点程序涉及到的数据信息,详述这些数据的结构设计。首先,鉴于本文的核心就是如何让XACML更好的融入测试工具的设计之
【参考文献】:
期刊论文
[1]软件安全测试新武器——浅谈基于Dynamic Taint Propagation的测试技术[J]. 王宏,曹文霞. 程序员. 2008(05)
[2]软件安全性测试方法与工具[J]. 施寅生,邓世伟,谷天阳. 计算机工程与设计. 2008(01)
本文编号:3098723
本文链接:https://www.wllwen.com/falvlunwen/hetongqiyue/3098723.html