计算机软件安全检测方法探讨
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机软件安全检测方法探讨
摘要伴随着科学技术的发展,计算机软件的应用范围越来越广泛。本文从计算机软件安全检测的概述出发,在论述计算机软件安全检测需要注意问题的基础上阐述了计算机软件安全检测的方法。关键词计算机;软件安全;检测方法
中图分类号tp31 文献标识码a 文章编号 1674-6708 (2010)25-0236-02
从计算机软件的应用来说,计算机软件安全检测的目的是避免由于软件应用所带来的潜在风险。计算机软件安全检测方法的研究对软件安全检测工作来说有着不可低估的作用,是保障计算机软件安全必不可少的手段之一。
1 计算机软件安全检测概述
计算机软件安全检测是软件开发的重要环节,检测的目的是为了发现软件所存在的故障而对程序进行执行的过程,从而有效的对计算机软件潜在的风险进行更正。软件安全检测的目标是用较少的测试用例来达到最大的软件检测覆盖,从而极好的发现软件存在的问题。计算机软件安全检测其的存在并不能证明程序中没有错误,它仅仅是查找程序错误的手段。从目前计算机软件安全检测情况来看,进行安全测试的方法主要分为静态与动态两大类[1]。
计算机软件安全检测是确定软件所具有的安全实现是否能够与
软件预期的设计要求一致的过程,这个过程包括功能测试、渗透测试与验证过程3个部门。计算机软件安全检测的安全性与一般的软
件缺陷有一定的区别,软件安全检测所强调的是软件不应该做什么,而不是软件应该做什么。计算机软件安全检测通常分为安全功能与安全漏洞进行检测两个方面。安全功能测试是检测计算机软件安全功能是否与安全需要之间步调一致。软件安全功能需求做涉及的内容比较广,具体包括机密性、授权、访问控制及安全管理等等。而计算机软件安全漏洞的检测则与此不同,其针对的是软件可能存在的缺陷,该缺陷有可能导致软件在应用中存在一定的风险。
2 计算机软件安全检测是应注意的问题
从计算机软件安全检测来看,其是一个动态的检测过程。在进行软件安全检测是需要关注到的问题有:
一是要针对所检测的计算机软件所特有特点与涉及要求,在综合分析的基础上通过选择适合软件的检测技术手段,并从实际出发的角度制定合理的安全检测方案。同时,在进行计算机软件安全检测时要关注检测人员的多元化,在计算机软件安全检测过程中不仅仅要配备软件安全分析员,还要需要配备对该软件系统熟悉同时是还是该系统的总体设计人员参加,只有多领域的配合才能更好的对软件安全进行检测。
二是在进行计算软件安全检测时,系统级、需求级与代码级的分析是必须的。如果该软件的规模比较大,还应对其进行软件结构设计方面的分析。在具体的分析过程中从实际工作需要选择合理的分析技术,必要时可以进行仿真环境与分析工具来协助检测工作。
从计算机安全检测的角度来看,其过程是一个系统化的过程,无
法通过简单的方法来解决一个系统的所有安全检测问题,因而在具体的家算计安全检测过程中,需要选择合理的安全检测方法。
3 计算机软件安全检测方法
3.1 计算机软件安全检测的程序
通常情况下,规模较大的软件系统是由一定数量的子系统组成,不同的子系统又由若干个模块组成。
在计算机软件安全检测中通常采用的步骤是,先进行单元测试,也就是模块测试,该检测针对的是软件设计中的最小单位进行的安全检测。进行模块测试的目的是能够发现系统所属的各个模块可能存在的各种缺陷。在模块测试的基础上,对所有模块按照程序设计的要求组装成系统,并对与涉及相关的体系结构进行安全检测。在前两个软件安全测试程序的基础上进行有效性测试,有效性测试的任务是对软件的功能与性能进行检测,检测是否与用户的需求相符合。最后进行系统测试,简而言之,就是将通过有效性检测的软件,与计算机硬件、某些支持软件、数据等其他系统元素结合起来进行测试。
3.2 计算机软件安全检测的主要方法
一是形式化安全测试。该安全检测方法是确立软件的数学模型,通过形式规格说明语言的支持提供形式化的规格说明。比较常用的形式规格语言有基于模型的语言、基于有限状态的语言及基于行为的语言。有定理证明与模型检测两种形式化安全检测的方法。
二是基于模型的安全功能测试。该方法是对计算机软件的行为与
结构通过建模的方式生成测试模型,以测试模型为基础生成检测用例,进而驱动软件安全检测。比较常用的模型安全功能测试方法有有限状态机与马尔可夫链等等。
三是语法测试。该测试方法是以被检测软件的功能接口的语法生成软件的测试输入,通过这种方式检测软件对不同种类输入的反映情况。用该方法进行测试的通常程序是对软件接口的语言进行识别,定义语言的语法,在以语法为基础生产测试用例同时执行安全检测。
四是基于故障注入的安全性测试。该安全检测方法是应用故障分析树与故障数的最小割集来生产检测用命。故障树分析法用系统最不该发生的时间作为顶事件,在寻找导致事故发生可能的中间事件与底事件,通过合理的逻辑门符号将顶事件、中间事件与底事件进行连接,形成故障树。该方法可以显著提高检测的自动化程度,是比较充分的安全检测方法。
五是模糊测试。目前所用的是基于白盒的模糊测试,是对传统模糊测试技术的进步。该检测方法有效的结合传统的模糊测试技术与动态测试用例。
六是基于属性的测试。该软件安全检测方法是首先确定软件的安全编程规则,将确定的规则编码作为安全属性来验证系统程序的代码是否对这些规则进行了遵守。该检测方法的优势是能够有效分析安全漏洞的交互性及扩展性等的。
另外,近年来基于web服务的分布式软件快速发展,如何对web服
务开展安全性测试是分布式软件安全性测试面临的崭新课题[2]。而软件安全检测方法的存在其主要作用就是检测、分析软件或软件设计中存在的这些安全问题,从而指导软件进行安全性能改善[3]。综上所述,计算机软件安全检测是信息安全体系中必不可少的组成部分,软件安全检测对计算机软件应用来说是其发展与应用的必然环节。有必要在今后的学习和工作中进一步加强对计算机软件安全检测方法的研究。
参考文献
[1]蒋廷耀,王训宇,马凯,关国翔.基于eai和aop的软件安全测试及应用研究[j].计算机科学,2009(4).
[2]陈璇.浅谈关于软件安全性测试方法研究[j].电脑知识与
技术,2009(3).
[3]晁永胜,郑秋梅.软件安全建模与检测[j].计算机仿真,
2007(10).