计算机软件运行中安全检测技术的运用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机软件运行中安全检测技术的运用摘要在科技发展日新月异的今天,计算机已经成为人们工作和生活中必要的工具,各种计算机软件被越来越广泛地应用。软件是网络和计算机生存的基础,人们对计算机的应用说到底是对软件的应用,计算机软件的安全性能已经成为了判断软件性能好坏的重要标准。安全检测技术的运用,可以确保软件的安全性。本文从安全检测技术应用中所应注意的问题以及其方法,进行了详细的分析。
关键词计算机;计算机软件;安全检测技术
中图分类号tp31 文献标识码a 文章编号
1674-6708(2012)78-0199-02
在当今网络和计算机技术大量普及的形式之下,计算机软件安全与否已经开始得到应用者的重视,用安全监测技术来对软件进行检测,是保证计算机软件使用安全的主要手段。
1 软件安全检测的概述
安全检测是计算机软件开发和运用过程中的重要环节,作为软件开发的关键性环节,安全监测其目的是为了发现软件在运行中的故障和缺点,从而对计算机软件中潜在的风险进行有效的修改和更正,使软件得到优化和发展。然而计算机软件的安全检测技术并不能当做杜绝软件错误漏洞的手段,也无法证明软件是绝对安全和正确的,它的职责只是通过较少的测试实现最大范围的检测覆盖,来找出计算机软件中相对比较容易发现的漏洞和错误。
与其它类型的软件缺陷相比,软件在安全上的缺陷有如下的特点:首先,软件的安全缺陷通常都不是由专业的软件测试人员发现的,而是由试图获得非法利益的黑客或者商业机构的安全人员来发现的。其次,普通的软件缺陷被发现后,一般不会立刻进行修复,而是在该软件的下一个版本才得到修复,而软件安全缺陷一旦被发现就需马上采取相应的措施,否则就会给软件的使用者带来严重的损失。最后,在危害程度上,普通的软件缺陷一般不会造成严重的危害,而软件的安全缺陷一旦被发现利用,则可能给使用者带来巨大的风险。
计算机软件的安全检测包括功能测试、渗透测试、验证过程三个部分。和软件其他种类的检测不同的是,计算机软件安全检测所强调的,不是软件能够、应该做什么,而是软件不应该做什么。通常,计算机安全检测分为安全漏洞检测、安全功能检测两个方面的检测。软件在安全功能方面的需求涉及广泛的内容,如授权、机密性、安全管理、访问控制等等,安全功能检测就是来测试计算机软件的安全功能是否满足其对安全的需求。而安全漏洞的检测所针对的,是软件运行中存在的缺陷,识别出某些缺陷可能对计算机造成的风险。
2 应注意的问题
在对计算机软件进行安全检测的时候,应该注意的问题和事项有:
1)选择合理有效的方案
应该在对需要检测的软件了解充分、对其要求和特性完全掌握的基础上,来进行一个软件的安全检测,根据测试的情况,选用合理的安全检测方法来对安全检测方案进行编制,以保证此安全检测方案的有效实施。另外还要对实施软件检测方案的人员有一定的要求,在对计算机软件进行安全检测的时候,不仅要有熟悉软件安全检测领域知识且有此方面经验的人员的参与,更要有熟悉掌握该软件的使用特点的世纪人员的参与。唯有两方面的人员有效配合起来,才能确保计算机软件安全检测的效果。
2)应做到全面分析
由于计算机软件一般都有程序繁琐,规模比较大的特点,因此相关检测人员在进行计算机软件的安全检测过程中,就要做到在代码级、需求级和系统级三个方面进行细致的分析。如果软件的规模特别大,则还应该做结构设计方面的检查分析。应该从工作的实际需要入手,结合具体的分析过程来选择需要的、合理的分析技术。
计算机安全检测是一个系统化的过程,要想解决一个系统之内所有的安全检测方面的问题,简单的方法是做不到的,因此在具体的软件安全检测的过程中,如何选择科学合理的方案,是软件安全检测的工作者们必须深思熟虑的问题。
3 软件进行安全检测的方法
3.1 流程
规模较大的计算机软件系统,一般会包括了若干个相互联系的子系统,而每一个子系统又包含了多个功能模块。
计算机软件安全测试的流程,包括了模块测试、组装系统、系统结构的安全检测、性能测试、系统测试。模块测试又叫做单元测试,所针对的是软件设计中最小的功能单位。进行模块测试的目的,是发现系统各个功能设计上可能存在的安全缺陷,使测试更加细节化、全面化。在各个模块的测试都结束之后,应该根据此软件设计时的理念进行系统的组装,在此过程中对涉及到的体系结构进行安全测试。然后模块测试和系统结构测试合格的基础之上,对软件进行功能的有效性测试,其目的在于检测软件的功能是否与用户的需求相一致。在上述测试步骤都完成之后,再把整个软件与计算机硬件、数据、其他相关软件等因素联合起来进行系统的测试。
3.2 主要方法
软件安全检测的方法主要分为动态检测和静态分析两大类,动态检测技术是主要通过分析和修改环境变量、内存等软件运行环境来实现的,动态检测技术可以提高程序的保密性,以此来实现软件安全的目的。静态分析技术的原理是使用程序分析技术,来分析程序的源代码,以找出导致错误和安全漏洞的异常。在静态分析技术中,误报率和错误率是两个重要指标,其中的某一个指标降低,往往会使另一个增高。静态分析技术的缺陷在于其分析之后的结果往往是对真实情况的近似值,所以对软件的重要属性无法测试和确
定。静态分析技术的优点是检测时计算机软件不需要运行起来,检测过程比较方便。
相对而言,由于其检测过程方便、自动化程度较高、分析速度比较快的特点,静态检测技术比动态检测技术更受软件安全检测工作者们的欢迎。而这两大类检测方法又可以细分为多种技术。
3.2.1 形式化方式
形式化的安全检测方式,是建立在待测软件的数学模型之上的。它通过确立软件的数学模型,在形式规格语言的支持下,提供形式化的规格说明。目前来说较为常用的形式规格语言有行为语言、有效状态语言和模型语言。检测方法有模型检测和定理证明这两种形式化的安全检测方式。
3.2.2 以模型为基础的方式
基于模型的安全检测方式,是指通过结构建模和软件行为的方法来建构测试模型,来进行软件安全检测的方式。基于模型的测试并不注重于软件说明在所有情况下的一致性,而是生成一组测试用例来检测软件系统,得到待测软件系统行为与模式期望相同的结果,以此来进行软件的安全检测。常用的基于模型的检测方式有马尔可夫链和有限状态机等。
3.2.3 语法测试技术
语法检测技术是静态检测技术中最早出现的一种,所检测的仅仅是软件的程序源代码中,可能发生危险的c语言库函数以及系统