欢迎来到学术参考网

计算机软件安全检测方法的创新策略

发布时间:2015-07-18 09:49

  对计算机软件进行安全测试主要是为了确保软件的安全性能与最初的设计一致,提升软件的自我防御能力。它并不能证明应用程序中没有错误,而是为了在危险来临之前,找出并更正软件中存在的问题。
  1 计算机软件存在的漏洞和风险
  1.1 软件加密不可靠
  加密主要存有以下弱点:(1)加密算法不够严密,容易被破解;(2)加密锁受处理能力的限制,无法为软件提供强有力的保护;(3)数据签名工作做得不好,数据常常被攻击者更改。因此,在对软件进行安全测试时,要重点测试软件的加密弱点。[1]
  1.2 错误处理
  一般来说,错误处理会返回部分信息给软件使用者。在这个过程中,如果调用了一些不该有的功能,那么这些信息就有可能被其他人利用,一些黑客甚至会通过分析这类错误信息来制定攻击策略。
  1.3 权限设置问题
  一般来说,在对软件进行设计时,要分权限。在软件中分配操作员的权限,可以规划操作员的操作权限,可以使操作人员在工作中只能操作他权力范围内的工作内容,出现问题可以找到负责人。但是如果赋予的权限过大,那么操作人员就很可能越过权限去做一些危害安全的操作。权限过大是设计空间过大造成的。因此,测试人员在测试应用程序的权限时,应注意检查设计空间的大小。
  2 常用的安全检测方法
  2.1 渗透测试
  渗透测试其本质是以测试工具为辅,凭借测试人员的攻防能力和经验,模拟黑客攻击的过程,提前发现软件存在的问题,并及时地予以更正。它的优点在于:它能站在攻击方的角度,深度挖掘软件中存在的安全漏洞,一般发现的问题都是真实存在且极为严重的。但也正因为这样,测试人员在选取测试工具时,要格外小心,尽量选择可控制、不具备攻击性的工具。因为如果选择不当,将会导致病毒和木马的入侵和扩散,给整个系统的运行带来不利影响。此外,渗透测试还存在一些缺点:它的成果大多取决于测试人员的攻防能力和经验。它所模拟的测试数据存有局限性,覆盖率不高。
  2.2 静态测试
  与其他测试方法相比,静态测试并不是通过运行被检测软来完成的,而是通过分析源程序的语法、结构等来检测软件的编程是否合符标准。此类测试方法既可以靠测试人员完成,也可以通过某些特定的软件工具自动完成,比较常见的静态测试工具有:Log scope、PRQA两种。与动态测试相比,它具有快速找到安全漏洞,返工成本低、覆盖率和查错率高等优点。但是,它测试所需要的时间也很长。[2]
  2.3 黑盒测试
  所谓黑盒测试就是把软件看作一个黑箱子,测试人员不需要知道这个黑箱子里面装的是什么、黑箱是怎么操作的,即不需要花心思去了解软件的内部构造。测试人员需要做的就是严格把关黑箱的进出口,即仅仅需要了解软件的输入和输出结果。这样一来,为测试人员减少了很多测试工序和测试时间,测试人员的工作与编程人员的工作完全是分开的。但是,如果完全像软件使用者一样去使用和操作软件,也会产生一些问题。首先测试人员只能对一小部分输入进行测试,不能对所有输入进行测试。其次,测试人员在测试软件时,采用的测试用例很可能是开发人员已经使用过的,测试效率不高。再者,它并不能对软件的某个程序段进行单独测试,而这类程序段或许存在错误。因此,本文认为测试人员在使用黑盒测试方法时,应该按照以下四个步骤来判断程序的正确性:(1)认真审视软件的行为是否处于正常范围;(2)仔细检查输出结果的正确性;(3)输入各种信息,结合(1)和(2)来观测软件的反应程度;(4)时常对软件的关键部位进行诊断。
  2.4 白盒测试
  如果黑盒测试是中医,那么白盒测试就是西医了。与黑盒测试相比,白盒测试方法是把被软件产品视为一个打开的盒子,需要测试人员去理解软件的内部结构以及运行方式。测试人员需要利用某些测试工具,跟踪并检查某个输入信息进入软件之后对软件的影响、软件是如何处理这些影响以及处理方式是否符合标准。比如对于一个与SQL Server数据库连接的软件系统来说,可以简单地把程序的作用看作是:把用户输入的数据通过SQL命令请求后台数据库,数据库把请求的数据返回给程序的界面层展示给用户。可以把SQL Server自带的工具事件探查器当成是一个检查SQL数据传输的精密仪器,它可以记录软件客户端与服务器数据库之间交互的所有举动,测试人员能清楚地知道软件究竟发挥了什么作用。
  白盒测试的优点在于它能帮助测试人员熟悉代码的每条路径,检查出藏于代码中的错误。但是它也有缺点,那就是测试成本高,无法检测代码中遗漏的路径和数据敏感性错误。
  2.5 灰盒测试方法
  灰盒测试综合了白盒测试和黑盒测试的特点。主要表现为:它既要检测输出、输入是否正确,又要关注程序内部运行状态。如有时输出是正确的,但内部早已出现了错误,如果采用白盒测试方法来测试,效率会非常低,在此种情况下,就需要采取灰盒测试方法。[3]
  与黑、白盒测试方法相比,灰盒测试有以下几个特点:(1)利用灰盒测试方法,测试人员能更为全面地了解软件产品;(2)与白盒测试相比,灰盒测试因为程序代码的改变而导致用例无效的几率更低;(3)与白盒测试相比,灰盒测试方法需要测试人员去了解程序的代码逻辑。
  利用灰盒测试方法进行测试需要注意以下几点问题:(1)灰盒测试是从软件的整体出发的。因此,测试人员在进行测试设计时,要从软件的整体出发;(2)将灰盒测试用于单元测试,而非集成测试;(3)灰盒测试方法需要测试人员深入了解产品的代码逻辑。因此,在测试时,业务逻辑图是非常重要的,测试人员需要按照业务逻辑图来划分功能点,并扩展用例。
  3 各种测试方法之间的联系
  无论是黑盒测试,还是白盒测试。他们都不是绝对的静态或者动态测试方法。如测试人员在利用黑盒测试方法,运行程序,看输入输出时,黑盒测试就有可能是动态测试;测试人员在利用黑盒测试方法,不运行程序,只看界面时,黑盒测试也有可能是静态测试。测试人员在利用白盒测试方法,运行程序并且分析代码结构时,白盒测试有可能是动态测试;测试人员在利用白盒测试方法,不运行程序,只静态察看代码时,白盒测试也有可能是静态测试。
  4 结束语
  总之,计算机软件的安全直接影响到人民 的隐私、财产安全。安全测试对于提高计算机的使用效率,维护用户的利益非常重要。社会各界在关注计算机软件性能的同时,更应该注意提高软件的安全性能。
  参考文献:
  [1]高晓.论软件的破解与保护策略[J].长春工程学院学报(自然科学版),2013(03).
  [2]郭向英,刘景炜.汇编语言自动单元测试工具设计方法研究[J].质量与可靠性,2006(03).
  [3]张卫祥,刘文红.灰盒测试方法的实践与研究[J].飞行器测控学报,2010(06).
  作者简介:吐逊江·麦麦提(1969-),男,维吾尔族,新疆阿克苏市人,中国农业大学本科生,讲师(新疆阿克苏职业技术学院),主要从事计算机类课程教育教学工作。

上一篇:基于3G无线网络的用电检查装置的设计开发

下一篇:基于元胞遗传算法的无线传感器网络生存的应用