计算机软件安全检测主要是进行计算机软件漏洞的检测,计算机软件漏洞的检测主要针对软件可能存在的缺陷且该缺陷有可能导致软件在应用中存在一定的风险。由于软件安全检测对于软件开发工作是极为重要的过程,对软件安全检测工作也是需要相应地高度重视。
1 计算机软件安全检测
计算机软件安全检测是利用运行程序的方式来发现软件编写过程中存在的一些漏洞并对漏洞进行修改的过程,从而对计算机软件本身可能存在的风险进行有效地避免和改正,软件安全检测是软件开发中及其重要的一环。软件安全检测所需要达到的目标是用更少的测试过程来实现更大的软件安全覆盖面,达到高效快速地发现软件漏洞。目前网络中存在很多种对计算机软件安全检查的方法,但从本质上看,进行计算机软件安全测试的方法主要两大类。大部分检测方案都是基于静态检测和动态监测两大类检测方法。
2 进行软件安全检测的意义
计算机软件的安全检测过程是整个软件开发中极为重要的一个步骤,越早发现软件中可能存在的一些故障问题,就意味着越早解决问题,就能将软件出现问题的概率降到最低,有效地预防软件崩溃。而计算机软件的安全检测则主要是对软件中可能留存的一些漏洞进行测试,以免该漏洞在今后的日常使用中致使软件出现故障,因此,对计算机软件的安全进行检测是很有必要性的。
3 软件安全检测存在的问题
3.1软件安全检测人员涉及广泛
由于计算机软件的相关特性,软件安全检测工作涉及的方面广泛,所需要的检测人员及技术的要求也就对应地提高,需要各方面的技术人才。对于检测人员的多元化问题就极为重要,不仅人员要齐,各方面的合作也要密切。只有多部门的密切合作以及与软件开发相关部门的密切沟通,才能高效的解决软件检测中出现的各种疑难问题。如果没有密切的合作,在软件安全检测中,各自为战,没有有效的沟通,不能从实际出发,软件安全检测将无法顺利进行下去,即使发现问题也没有有效的办法解决问题。
3.2软件安全检测工作量巨大
计算机检测是一个系统的复杂的过程,有时候检测工作量巨大。在进行对于系统级软件或者代码级工程的分析工作时,进行软件安全相关检测必须需要进行大量的工作的。不仅如此,在所需检测的软件的规模较大的时候,还要对软件的结构设计方面进行必要的分析。而且在对所需检测的软件的各个方面进行分析的过程中一般采用仿真环境和相应的分析工具来进行相关的检测工作,因为这两种分析比较切合实际工作,较为合理,所以这些分析工作都是必须进行的,这些必须进行的工作会大大增加软件安全检测过程的工作量。
4 软件检测问题解决方法
4.1在对软件进行综合分析的基础上进行检测
检测人员在进行软件安全检测的工作时,必须考虑到每个软件都有其独一性,每个软件都有不同的侧重点,只有在对软件进行系统化的综合分析的基础上,才能高效的制定符合该软件的有效检测方案,只有合适的才是最好的,在进行综合分析时还应考虑到符合用户需求,这样实行的检测程序才是最为可靠的。
4.2大力推广检测人员多元化
由于软件安全检测工作涉及范围大,需要的检测人员的技术方面也不尽相同。所以需要推广人员多元化需要在进行软件安全检测时注意安排相近但不完全相同的人员在一起。大力推广检测人员的多元化,对于软件可能存在的安全问题能够更可能的发现,并且由于检测人员的多元化,对于出现的问题得以解决的可能性也会增加。在推广多元化的同时,也需要注意各部门之间的合作问题,集中优势技术人才,加以密切的合作,将专业技术人才的潜力发挥到极致。多元化的人员和密切化的合作能够到达检测工作的事半功倍,提高软件安全检测效率。
4.3选择合理的安全检测方法
对于大量种类不同;用户需求也不同的软件,检测人员需要选择合理的检测方法。对于有些系统级软件和代码级工程,如果采用了不符合要求的检测方法,有可能造成工作白费,耗费大量人工精力和大量资源及时间,最后所得的结果有可能不符人意。没有一个能够符合所有软件检测工作要求的安全检测方法,只有选择合适的检测方法,才能达到预定的目标。软件的安全检测是系统化的一个过程,要解决整个系统内全部的安全问题,普通的方法是十分困难的,故进行具体的安全检测时,如何选择有效的、具有可行性的方案,是软件检测员必须认真思考的问题。
总体来说,合理地利用安全检测方法,在最短时间内有效的找出漏洞,及时进行修改。以下对于几种方案进行简要地介绍:
1)安全检测方式实行形式化。安全检测方式的形式化,是指通过在需检测软件之上建立科学模型来检测的。其在确立相应模型后,在规范的形式语言支持下做出形式性规格说明。当前主要运用的形式规则语言主要有行为语言和模型语言以及有效状态语言等。手段也主要分为模型检测及定理证明等方式。
2)实行以模型为基础的检测方式。使用结构建模方式及软件行为构建测试模型,以达到预期的理想检测效果。以模型为基础的检测过程并不苛求软件在各种具体情况下的一致性,其主要通过一些生成的试用例来测评的,并通过测查被测软件系统与理想模型结果是否相同来进行安全检测的。
3)模糊检测
当今采用的模糊检测是在传统检测技术上进行改进的检测技术,其主要是在白盒技术上发展改进的检测技术,有效地继承了模糊测试和动态测试的优点,具有准确高效的特点。
4)基于故障注入的安全性测试
故障树的建立工作是该安全检测方法的基本。此方法将系统发生故障几率最小的时间作为顶事件,在此基础上在进行中间事件、底事件的寻找工作,利用逻辑门符号再将顶事件、中间事件与底事件进行连接,完成形成故障树的工作。在保证精度的条件下,此方法可以实现故障检测的自动化,实现检测的高效性。
5)基于属性的测试
基于属性的检测工作首先要完成确定软件的安全编程规则工作,再进行检测待测程序的代码是否都遵守其确定的规则编码,采用这种方法能够有效地分析安全漏洞。另外,近年大量分布式软件快速发展就是基于web服务的快速发展,如何利用好web服务的优势,将很大程度上取决于如何合理完成这些软件的安全检测工作。而基于web服务的软件的安全检测也将是适用于基于属性的测试方法中的一项重要部分,高效的完成确定软件的安全编程规则工作,也就将检测工作完成了一大步。
7)运用语言测试技术。在静态检测技术中最早出现的检测方法就是语言检测技术,它所检测的对象是软件程序的源代码及可能产生威胁的C语言函数库调用,语言检测常用的方式是进行对反应的研究,其过程通常是进行软件接口的语言识别,再进行语法的定义,直至生成试用例来实际进行安全检测。
8)以故障注入技术为基础。如果想要检测的比较全面,则可以用基于故障自如的安全测试。这种方式运用故障分析树以产生用于检测的试用实例来进行检测。故障分析树指的是把系统中出现可能最低的事件作为顶事件,再通过仔细检测来找出事故发生过程中的中间事件及底事件。以逻辑门符号,将项事件和中间事件以及底事件连成完整的一棵故障树的方式。
5 结束语
软件安全检测是重要的一环软件开发工作,合理利用安全检测,做到软件潜在漏洞的早发现、早修正、早解决,有效地避免软件出现故障的恶性后果。随着计算机技术的发展,对于软件安全的重要性也在增加,进行软件安全检测的必要性也在增加。对于研究软件安全检测的方法具有重要意义和广阔前景。
作者:傅文姝 来源:商品与质量·建筑与发展 2014年9期