摘 要:随着互联网的应用日益普及,同时随着我国网络市场的逐渐强大,越来越多的个人或企业将商务活动投入电子商务平台,所以计算机软件中安全检测技术的研究,对于防范软件应用潜在的安全漏洞风险有着十分重要的意义。本文也将就此系统地探讨有关计算机软件安全的主要检测技术。
关键词:计算机软件,安全检测技术;安全漏洞
1.简述计算机软件中安全的检测技术
在当今互联网普及的形势下,计算机软件的安全应用日益备受重视。而有效保证软件安全使用的主要手段之一则是通过软件安全的测试。同时不少事实表明,软件缺陷软件的开发者与广大用户造成了时间、人力等资源的严重浪费及巨大的经济损失。软件安全性测试计算机软件安全检测是软件开发的重要环节,指根据不同的安全指标采取相应的测试策略,进行有关验证软件的安全等级和识别潜在安全性缺陷的过程,以查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,从而有效的对计算机软件潜在的风险进行更正,但计算机软件安全检测仅仅是查找程序错误的手段,并不能证明程序中没有错误,也并不是最终证明应用程序是安全的。其检测目的是通过较少的测试用例来实现最大的软件检测覆盖,以更好地找出软件存在的问题。其中,软件安全缺陷与普通的软件缺陷相比,有如下特点:1)测试机构不同。安全缺陷的发现通常是试图从软件的安全缺陷获取不当利益的黑客或商业安全机构的专业人员;相当部分的软件安全缺陷是由非软件测试人员发现的:2)修复方式不同。安全缺陷若一旦发现就须马上采取相应的安全措施,且开发和发行补丁进行修复,而普通软件缺陷的修复一般可在下一个发行版本进行;3)危害性程度不同。软件安全缺陷只要被发现和利用,严重的系统安全风险可能迅速引发,而普通软件缺陷一般不存在严重的安全问题。
2. 计算机软件安全检测技术分析
2.1 安全检测的程序
一般情况下,由一定数量的子系统组成的软件规模较大,其中不同的子系统由若干个模块组成。总的来说,计算机软件安全检测是确定软件预期的设计要求与软件所具有的安全实现是否一致的一个包括功能测试、渗透测试与验证的检测过程。软件安全检测的程序是将通过有效性检测的软件,与计算机硬件、数据、某些支持软件等其他系统元素结合的测试过程。一般来说,其具体步骤为:先进行模块测试,即单元测试,主要是检测软件设计中最小单位的安全性,以寻找系统所属的各个模块可能存在的各种缺陷;接着,按照程序设计的要求对所有模块组装成系统,并进行检测涉及相关的体系结构的安全性;然后,进行有效性测试,这一步的目标是检测软件的功能与性能,以检测是否与用户的需求相符合;最后一步,则是系统测试。如静态分析技术的过程示意图如图1所示:为其输入源代码,以构建一个表示所分析程序的模型,同时结合安全知识对模型进行分析,最终向用户输出其分析结果。
2.2 主要的安全检测技术
当前,计算机软件安全的检测方法主要有两大类,即静态分析与动态检测两大类[1]。静态分析技术是通过程序分析技术来分析应用程序的源代码或二进制代码,找出可能导致错误的异常。漏报率和误报率是衡量静态分析技术的两个重要指标,降低其中之一的同时往往会造成另外一个指标的增高。静态分析的缺陷是由于其结果是对真实情况的近似,它无法完美地确定程序的任何重要属性。其优点是计算机软件不需运行,检测比较方便。动态检测技术主要是通过分析修改内存、环境变量等运行环境来实现的,它可将程序的保密性提高,实现安全的目的。静态检测方法较动态检测方便分析速度快、自动化程度高,比动态检测技术更受欢迎。以上两大类检测方法又分为多种安全检测技术,在此只简要分析几种主要的安全检测技术。
(1)词法检测技术。这是最早出现的静态检测技术,又称为语法测试,它仅仅检测程序源代码中有危险的C语言中的库函数和系统调用。该测试方法是以被检测软件的功能接口的语法生成软件的测试输入,以检测软件对不同种类输入的反映情况。这类测试技术的程序,一般是先识别软件接口的语言,其次是定义语言的语法,最后生产测试用例,并执行安全检测。
(2)形式化安全测试技术。此法是确立软件的数学模型,利用形式规格(较常用的类型有模型的语言、行为的语言及有限状态的语言等),以说明语言的支持,从而提供形式化的规格说明。此类技术的安全检测两种形式化方法包括模型检测和定理证明。
(3)基于故障注入的安全性测试技术,其优点是检测的自动化程度明显提高,是一种比较充分的方法。该方法是应用故障数的最小割集与故障分析树来生产检测用例。故障树分析法用系统通过利用最不该发生的时间作为顶事件,以此去检测可能导致事故发生的中间事件与底事件,再将顶事件、中间事件及底事件通过合理的逻辑门符号进行连接,进而形成故障树。该方法可以显著提高检测的自动化程度,是比较充分的安全检测方法。
(4)模型的安全功能测试技术。该方法通过建模的方式,对计算机软件的行为与结构生成测试模型,据此生成检测用例,从而驱动软件进行安全检测。此类模型安全功能测试技术主要包括马尔可夫链和有限状态机等。
(5)基于属性的测试技术,其优点在于能够有效分析安全漏洞的交互性及扩展性等。其检测程序大致为:先确定软件的安全编程规则,以此作为安全属性,从而验证系统程序的代码是否遵守其规则。
(6)其他的测试技术。如基于白盒的模糊测试,该法有效地结合传统的模糊测试和动态测试用例。此外,近年来对Web服务开展的分布式软件安全性测试技术也得到发展。总的来说,软件安全检测方法主要作用就是通过检测、分析软件设计或软件中可能存在的安全问题,以及时采取改善安全性能的有效措施,以更有针对性地保证计算机软件的安全性应用。
2.3 软件安全检测的注意事项
计算机软件安全检测是一个动态的检测过程,在此有必要分析软件安全检测过程中需注意的事项:(1)针对所检测的计算机软件所特有特点与相关要求,进行综合分析主要因素及附属因素,同时由于计算机安全检测是一个系统化的过程,通过简单的方法难以解决一个系统中所有的安全检测问题,所以建议在实际安全检测过程中,应具体问题具体分析,综合考虑主要因素,以选择合理的安全检测方法,并从实际出发的角度制定合理的安全检测方案;其次,实行软件安全检测的过程中,也应重视检测人员的多元化,即不仅要配备软件安全分析员,也应配备对该软件系统熟悉和该系统的总体设计人员参加,这样通过多领域的配合方式,达到更佳的软件安全检测;最后再强调一点,在进行软件安全检测过程中,有必要进行分析需求级、系统级及代码级。对规模较大的软件,还要分析其软件结构设计。总之,在具体的分析过程中,应从实际工作的需要及要求为基点,有针对性的选择合理的分析技术,必要时可通过仿真环境与分析工具协助检测工作。
3.结语
综上所述,随着市场经济的建立及快速发展,互联网尤其是电子商务领域文献的应用日益广泛,同时由于科学技术的迅猛发展,这就要求我们要不断的探索更有效、更自动化、更快速的计算机安全软件的检测技术,以不断提高自身的安全检测和防预技术,从而才能有效阻止黑客的非法入侵,保障软件的安全应用,保护软件开发者及广大用户的利益,从而维护软件应用市场的健康运作。
参考文献:
[1]蒋廷耀,王训宇,马凯,关国翔.基于EAI和AOP的软件安全测试及应用研究[J].计算机科学,2009(4).
[2]晁永胜,郑秋梅.软件安全建模与检测[J].计算机仿真, 2007(10).
[3] 李洁. 软件测试用例设计[J]. 电脑编程技巧与维护, 2010,(04) .
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回通信学论文列表