软件安全性测试-2019年文档资料.docVIP

  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.形式化安全测试   模型检测用状态迁移系统S描述软件的行为,用时序逻辑、计算树逻辑或演算公式F表示软件执行必须满足的性质,通过自动搜索S中不满足公式F的状态来发现软件中的漏洞。   2.基于模型的安全功能测试   基于模型的测试方法是对软件的行为和结构进行建模,生成测试模型,由测试模型生成测试用例,驱动软件测试[4]。常用的软件测试模型有有限状态机、UML模型、马尔可夫链等。   Mark Blackburn、Robea Busser研究了基于模型的安全功能测试。主要项目支撑是NIST Computer Security Division(CSD)部门的项目Automated Security Functional Testing。主要思路是利用SCRModeling工具对软件的安全功能需求进行建模,使用表单方式设计软件的安全功能行为模型,将表单模型转换为测试规格说明模型,利用T-VEC工具生成测试向量(由一组输入变量,期望输出变量组成),开发测试驱动模式和目标测试环境的对象映射,将测试向量输入测试驱动模式执行测试。这种方法是一种一般的安全功能测试方法,它的适用范围取决于安全功能的建模能力,特别适用于建模用与或子句表达逻辑关系的安全需求,对授权、访问控制等安全功能测试比较适用。   3.语法测试   语法测试是根据被测软件的功能接口的语法生成测试输入,检测被测软件对各类输入的响应。接口可以有多种类型,命令行、文件、环境变量、套接字等。语法测试基于这样一种思想,软件的接口或明确或隐含规定了输入的语法。语法定义了软件接受的输入数据的类型、格式。语法定义可采用BNF或正则表达式。语法测试的步骤是识别被测软件接口的语言,定义语言的语法,根据语法生成测试用例并执行测试。生成的测试输入应当包含各类语法错误,符合语法的正确输入。不符合语法的畸形输入等。通过察看被测软件对各类输入的处理情况,确定被测软件是否存在安全缺陷。语法测试适用于被测软件有较明确的接口语法,易于表达语法并生成测试输入的情况。语法测试结合故障注入技术可得到更好的测试效果。   4.模糊测试   模糊测试(Fuzz Testing)是一种发现安全漏洞的有效的测试方法,在安全性测试中越来越受到重视。模糊测试将随机的坏数据插入程序,观察程序是否能容忍杂乱输入。模糊测试是不合逻辑的,只是产生杂乱数据攻击程序。采用模糊测试攻击应用程序可发现其他采用逻辑思维来测试很难发现的安全缺陷。   5.基于属性的测试   相关报道描述了基于属性的测试方法,采用TASPEC语言对软件的安全属性进行描述生成安全属性规格说明,利用程序切片技术抽取与这个

文档评论(0)

135****6041 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档