软件安全测试技术的运用分析

时间:2022-09-01 07:30:45

软件安全测试技术的运用分析

本文作者:张新昌 单位:南京铁道职业技术学院

在对计算机软件进行安全检测的时候 ,应该注意的问题和事项有 :1)选择合理有效的方案应该在对需要检测的软件了解充分、对其要求和特性完全掌握的基础上,来进行一个软件的安全检测,根据测试的情况,选用合理的安全检测方法来对安全检测方案进行编制 ,以保证此安全检测方案的有效实施。另外还要对实施软件检测方案的人员有一定的要求 ,在对计算机软件进行安全检测的时候 ,不仅要有熟悉软件安全检测领域知识且有此方面经验的人员的参与 ,更要有熟悉掌握该软件的使用特点的世纪人员的参与。唯有两方面的人员有效配合起来 ,才能确保计算机软件安全检测的效果。2)应做到全面分析由于计算机软件一般都有程序繁琐 ,规模比较大的特点 ,因此相关检测人员在进行计算机软件的安全检测过程中 ,就要做到在代码级、需求级和系统级三个方面进行细致的分析。如果软件的规模特别大 ,则还应该做结构设计方面的检查分析。应该从工作的实际需要入手 ,结合具体的分析过程来选择需要的、合理的分析技术。计算机安全检测是一个系统化的过程 ,要想解决一个系统之内所有的安全检测方面的问题 ,简单的方法是做不到的 ,因此在具体的软件安全检测的过程中,如何选择科学合理的方案,是软件安全检测的工作者们必须深思熟虑的问题。

软件进行安全检测的方法

1 流程规模较大的计算机软件系统 ,一般会包括了若干个相互联系的子系统 ,而每一个子系统又包含了多个功能模块。计算机软件安全测试的流程 ,包括了模块测试、组装系统、系统结构的安全检测、性能测试、系统测试。模块测试又叫做单元测试 ,所针对的是软件设计中最小的功能单位。进行模块测试的目的,是发现系统各个功能设计上可能存在的安全缺陷,使测试更加细节化、全面化。在各个模块的测试都结束之后 ,应该根据此软件设计时的理念进行系统的组装 ,在此过程中对涉及到的体系结构进行安全测试。然后模块测试和系统结构测试合格的基础之上 ,对软件进行功能的有效性测试 ,其目的在于检测软件的功能是否与用户的需求相一致。在上述测试步骤都完成之后 ,再把整个软件与计算机硬件、数据、其他相关软件等因素联合起来进行系统的测试。

2 主要方法软件安全检测的方法主要分为动态检测和静态分析两大类 ,动态检测技术是主要通过分析和修改环境变量、内存等软件运行环境来实现的 ,动态检测技术可以提高程序的保密性 ,以此来实现软件安全的目的。静态分析技术的原理是使用程序分析技术 ,来分析程序的源代码 ,以找出导致错误和安全漏洞的异常。在静态分析技术中,误报率和错误率是两个重要指标,其中的某一个指标降低 ,往往会使另一个增高。静态分析技术的缺陷在于其分析之后的结果往往是对真实情况的近似值 ,所以对软件的重要属性无法测试和确定。静态分析技术的优点是检测时计算机软件不需要运行起来 ,检测过程比较方便。相对而言 ,由于其检测过程方便、自动化程度较高、分析速度比较快的特点 ,静态检测技术比动态检测技术更受软件安全检测工作者们的欢迎。而这两大类检测方法又可以细分为多种技术。2.1 形式化方式形式化的安全检测方式 ,是建立在待测软件的数学模型之上的。它通过确立软件的数学模型,在形式规格语言的支持下,提供形式化的规格说明。目前来说较为常用的形式规格语言有行为语言、有效状态语言和模型语言。检测方法有模型检测和定理证明这两种形式化的安全检测方式。2.2 以模型为基础的方式基于模型的安全检测方式 ,是指通过结构建模和软件行为的方法来建构测试模型 ,来进行软件安全检测的方式。基于模型的测试并不注重于软件说明在所有情况下的一致性 ,而是生成一组测试用例来检测软件系统 ,得到待测软件系统行为与模式期望相同的结果 ,以此来进行软件的安全检测。常用的基于模型的检测方式有马尔可夫链和有限状态机等。2.3 语法测试技术语法检测技术是静态检测技术中最早出现的一种 ,所检测的仅仅是软件的程序源代码中 ,可能发生危险的 C 语言库函数以及系统调用。这种检测方法通常是对反映进行研究 ,用被检测软件功能接口所使用的语法来生成软件的测试输入 ,以检测在不同种类的输入情况下 ,被检测软件的反映情况。其过程一般是对软件接口的语言进行识别 ,然后定义语法 ,在最后生成测试用例来执行软件的安全检测。2.4 基于故障注入的技术基于故障注入的安全测试 ,是一种检测比较充分的方法。该方法应用了故障分析树来生产出检测用例进行检测 ,故障分析树是指将系统中最不可能发生的事情作为顶事件 ,然后通过检测来寻找出事故发生的中间事件和底事。通过逻辑门符号 ,把底事件、中间事件和顶事件连接成一整颗故障树的方法。经过实践应用证实 ,该方法是比较充分和有效的安全检测方法 ,其优点是可以将检测的自动化的程度显著提高。2.5 模糊测试法模糊式的测试法是建立于白盒检测的基础之上的检测方法 ,它把动态检测技术和传统检测家属有效的融合在了一起 ,是传统检测技术的发展和升华。它通过向目标软件系统提供大量无效的、非预期的随机输入 ,来检测软件的异常结果 ,发现软件安全漏洞。其优点在于成本较低 ,方法比较简单 ,自动化程度较高等。2.6 基于属性的检测方法这种检测方法首先要对软件的编程规则进行确定 ,将编程规则作为安全属性,来检测软件的程序代码是否遵守这些规则,以此来验证代码的安全性。相对于其他的安全检测方法来说 ,该方法能够实现对软件安全漏洞的交互性和扩展性的全面综合分析。2.7 其他的测试技术近年来 ,对 Web 安全服务所开展的一些测试技术 ,如分布式软件安全性测试技术等 ,也得到了快速发展。总体而言 ,软件安全检测的主要作用 ,就是通过分析、检测软件设计和软件中可能存在的安全问题 ,来改善计算机软件的安全性能 ,保证计算机软件系统的安全应用。

结论

如今 ,软件安全检测将逐渐成为软件应用体系的重要的一部分。我们应该在实践中积累经验 ,不断研究出更有效的计算机软件安全检测技术。只有提高自身的软件安全保障意识和防测技术 ,实现安全检测技术的不断创新 ,才能保障软件的安全应用 ,保护广大软件用户的利益 ,维护市场和社会的健康运转。

上一篇:符号学在动漫设计中的适用性 下一篇:外国动漫电影的跨文化对策综述