当前位置:主页 > 论文 > 计算机论文 >

计算机软件安全的缺陷

发布人: 谜语网 发布时间:2015-10-21 字体: | | 打印文章

推荐阅读:摘要:黑客、病毒、间谍软件、木马程序、流氓软件、千年虫、熊猫烧香等等,每个计算机用户或多或少的都有着这样恼火的经历,怎样提高计算机软件安全对于现代的计算机用户来说显得尤为重要。本文就计算机软件缺陷及其安全检测技术进行了深入的探讨和研究。 关

  摘要:黑客、病毒、间谍软件、木马程序、流氓软件、千年虫、熊猫烧香等等,每个计算机用户或多或少的都有着这样恼火的经历,怎样提高计算机软件安全对于现代的计算机用户来说显得尤为重要。本文就计算机软件缺陷及其安全检测技术进行了深入的探讨和研究。

  关键词:计算机软件;安全检测技术;软件缺陷

  一、软件安全缺陷软件缺陷,指的是软件中隐藏或者出现的问题造成软件不能正常运行。也就是程序员俗称的Bug,是程序员最不希望出现的,同时它也是程序员最希望出现的,程序出现了Bug才能针对Bug去不断完善软件。

  软件缺陷按照其造成问题的严重性程度,又分为四个级别,从轻到重分别是微小级、一般级、严重级、致命级。软件安全缺陷一旦出现往往都会是严重级或者致命级,它与普通的软件缺陷有着显着的区别:

  1.软件安全缺陷往往都是黑客或者不法人员想通过寻找软件漏洞来获取利益时发现的,而普通的软件缺陷通常都是由一般用户反映或者测试人员直接测试出来的。

  2.软件安全缺陷的出现都是高危险性的级别,一旦出现就可能对机构或者个人造成巨额的亏损且不易弥补,而普通的软件缺陷一般都是某个小模块不能运行、显示不正常等危险性较低的,即便是危险性高的功能缺陷一般也都会在软件测试中发现并及时修补,并不会对运营造成危害。

  3.软件安全缺陷一旦出现则必须马上组织人员修复,务必在最短时间内解决问题,避免损失的出现,而普通的软件缺陷则可以累积进行一次性的处理,如问题较多且集中的可直接对软件进行升级一并解决缺陷。

  软件安全缺陷按照正交分类法,又分为需求缺陷、设计缺陷、代码缺陷和文档缺陷。其中,需求缺陷包括功能、性能、接口、控制流、数据流、一致性、文档版本这些小类;设计缺陷包括功能、性能、接口、逻辑、数据使用、错误处理、一致性、文档版本这些小类;代码缺陷包括功能、性能、接口、逻辑、数据使用、错误处理、编程语言、编程规范、代码版本这些小类;文档缺陷包括完备性、一致性、正确性、文档版本这四个小类。

  二、计算机软件安全检测技术概述计算机软件检测是软件开发过程中必不可少的一环,即利用测试工具按照产品的设计方案对产品进行功能和性能的测试,必要时还需测试人员编写相应的测试工具,对测试中可能出现的问题进行分析,制成测试文档反馈给开发人员进行修复,后续过程中继续对产品故障进行跟踪,最终确保产品达标。

  计算机软件检测的目的是为了发现程序中的错误并提出解决方案,以便及时改进。而计算机安全检测仅仅是对计算机安全问题进行检测,利用最少的检测资源达到最大的安全检测目标,挖掘软件中隐藏的安全问题,以确保软件的安全性能够达到设计中预期的效果。计算机软件安全检测与计算机软件一般检测的最大的区别在于他们的出发点的不同,计算机软件一般检测的出发点是为了测试需求的功能是否完成并帮助其完成,而计算机软件安全检测的出发点则是测试软件中是否做了不该做的威胁软件安全的事情并对其进行遏制。

  计算机软件安全检测包括两个方面,分别是安全功能检测和安全漏洞检测。其中安全功能检测是基于软件的需求设计,检测软件的安全性能是否能达到需求中所述的目标,是否按照需求中所述的方式方法实现等等。安全漏洞检测则是基于攻击者的想法,结合软件安全缺陷的分析,对每个环节可能出现的缺陷予以扼杀,不给黑客们有一丝可乘之机。结合安全检测的两个方面,通过计算机软件安全检测要确保计算机软件在功能上不出现任何缺陷,即使出现缺陷也需保证软件缺陷的级别是一般级以下,不会对软件安全造成严重打击。实现这一目标才能算是安全合格的软件。

  三、计算机软件安全检测技术结合计算机软件安全检测技术的分类,下面将对数种使用较为频繁的安全检测技术进行阐述。

  1.形式化安全检测技术。该技术是通过建立数学模型,并在形式规格语言的支持下建立形式规格说明,常用的形式规格语言有基于模型的VDM、Z等、有基于有限状态的SDL等、有代数语言OBJ等、有混合语言离散数学等。运用形式化安全检测技术只能通过数学模型对系统进行证明,但不能说明系统中就一定没有错误,因此该技术可以为保密设备提供安全性的保障。

  2.模型检测技术。该技术是了解软件行为和软件具体结构,建立软件模型对系统进行检测。具体流程:首先要对被检测软件进行理解分析,了解软件的输入输出过程,理解软件内部的数据交换和计算过程;然后针对软件选择合适的检测模型;最后建立模型,并生成测试用例,完成后人工检查是否正确。常见的检测模型有运行于SUN平台的toolSET_Certify、IBM的GOTCHA、支持统计测试的Cleanroom Certification Assistant、UML模型测试工具TestMetor等。

  3.猜错法检测技术。该技术是依据经验和直觉,建立一些不按常理的测试用例,往往能够得到意想不到的效果。但对于一个新的软件,无任何可借鉴经验和背景,则很难运用该检测技术,也尽量避免使用该技术,以免降低检测的可信度。

  4.模糊检测技术。该技术是一种有效的检测安全漏洞的方法,它是不合逻辑的,采用杂乱无章的数据攻击程序,可能会发现其他技术发现不了的安全漏洞。该数据检测过程非常简单,只需要用随机数据替换被测文件中的某段代码,再运行程序,观测会产生怎样的影响。

  5.语法检测技术。该技术是根据被测软件的功能接口的语法生成测试用例,检测各类用例输入的反应。具体步骤:首先先识别软件接口语言;然后定义语言的语法;再者输入测试用例,查看软件是否存在缺陷,其中除了正确的用例外,还包括各类语法错误的用其 它例,甚至不符合语法的畸形用例。该类技术对有明确的接口语法说明的软件,是非常有效的,并可结合下面所述的故障注入技术进行同时检测。

  6.故障注入检测技术。该技术是依据故障的模型,人为的将故障注入到被测软件中的方式,用以加速该目标系统故障的发生。其中故障主要是系统在运行中会出现的不正常状态或者使系统瘫痪的事故,通过系统带着这些事故运行,检测系统的状态。

  四、计算机软件安全检测中需注意的问题计算机软件安全检测一般分为五个步骤,按顺序是软件分析、选择技术、制定检测方案、实际检测和信息反馈。每个步骤需要注意的问题如下:

  1.软件分析。该步骤需要对软件的需求设计、软件的系统构架、软件的代码、软件的运行情况等这些方面进行全面合理的分析。只有对软件本身有着透彻的了解才能选择有效的检测方法,避免走弯路。

  2.选择技术。由于软件的漏洞是无规律的、分散的,不可能通过一种检测技术就能完全解决系统安全问题,往往需要多种检测技术的配合,所以必须先选定好要用的技术才能制定更加完美的实施方案。

  3.制定方案。在全面分析的基础上,结合选定的检测技术,并从实际出发,考虑方案所需的人力物力资源情况,合理调配这些信息,设计出一套切实可行的检测方案。

  4.实际检测。在实际检测过程中,每个环节都是需要人员去操作机器并实时记录反馈检测情况的,所以在实际检测前要对每个测试人员的能力有一定的了解,才能安排到合适的岗位,在实际检测中根据检测情况以及报出的问题,要及时合理的调度测试人员,发挥人员的最大作用,只有这样各部门有效的配合才能达到一个满意的检测结果。

  5.信息反馈。最后将检测结果制成文档,反馈给开发人员,帮助开发人员理解并解决错误问题,使软件安全真正得到保障。综上所述,在当前的互联网环境下,愈多网民的计算机受到攻击,黑客及其他不法分子肆虐互联网,只有从根源上解决软件的安全问题,做好对软件出厂前的安全检测工作,才能使用户的权益得到保障,营造一个高质量的网络环境。

  参考文献:

  [1]蒋廷耀,王训宇,马凯,关国翔.基于EAI和AOP的软件安全测试及应用研究[J].计算机科学,2009(04).

  [2]杨洪路,宫云战,高文龄,白哥乐.软件安全静态检测技术与工具[J].信息化纵横,2009,9.

  [3]晁永胜,郑秋梅.软件安全建模与检测[J].计算机仿真,2007(10).

1、“议论文格式”范文由查字典范文网网友提供,版权所有,转载请注明出处。
2、议论文格式例文地址:http://www.tkpao.com/jisuanji/172328.html,复制分享写作指导范文给你身边的朋友!
3、文章来源互联网,如有侵权,请及时联系我们,我们将在24小时内处理!