信息安全毕业论文

计算软件的安全检测方法

时间:2022-10-05 22:13:03 信息安全毕业论文 我要投稿

计算软件的安全检测方法

  计算软件的安全检测方法【1】

  摘要:随着科学技术水平的不断提高,计算机软件在生产生活中的应用也越来越广泛,已经深入到国民经济的各个领域,但随之而来的软件安全问题也正在得到大家的注意。

  众所周知,一旦软件出现重大安全问题,将直接导致计算机文件的丢失,有的甚至造成系统瘫痪等更为严重的后果。

  本文主要以计算机软件的安全检测为研究对象,对计算机软件安全的检测方法进行了相关论述。

  关键词:计算机检测方法;软件安全;计算机安全

  计算机软件安全检测主要是为了避免由于软件应用问题所产生的潜在的安全风险。

  近年来针对计算机的软件安全检测,越来越受到社会各界的重视,关于计算机软件安全的检测方法,也在不断的讨论与研究中被大家认识。

  本文主要针对计算机软件的安全检测方法进行了相关论述,以期更好的预防计算机软件安全问题。

  一、计算机软件安全测试的重要性分析

  计算机软件的安全检测是在计算机软件开发过程中的十分重要的环节,计算机软件检测的主要目标是为了发现软件中可能存在的一些故障问题,从而可以有效的预防计算机存在的潜在风险。

  计算机的安全测试是保障计算机程序安全的有效手段。

  从目前计算机安全测试的方法来看,一般是分为静态测试和动态测试。

  就计算机软件安全测试来讲,计算机软件安全检测是为了检测计算机是否能够安全运行计算机软件预定所预设的程序。

  软件测试的过程一般包括功能测试和渗透测试以及验证过程这三个主要程序。

  计算机软件安全测试的安全性和一般意义上所说的软件缺陷存在着很大区别,软件安全检测所侧重的是软件应该做什么,而不是可以做什么。

  在进行计算机软件安全检测时,一般分为计算机安全检测和计算机安全漏洞检测。

  计算机安全功能的测试是检测计算机的软件安全功能和安全功能之间的步调是否一致。

  软件的安全功能测试所涉及的内容非常的广泛,具体包括了机密性和授权,同时还包括访问控制及安全管理等等。

  相比之下计算机软件的安全漏洞就非常不同,主要是针对软件中可能存在的一些缺陷进行测试,如果不进行相关测试。

  则该缺陷很有可能会导致软件日常的应用中出现故障,所以,进行计算机安全测试是十分有必要的。

  二、计算机软件安全检测的注意事项

  计算机的软件安全测试是一个动态的测试过程,在实际操作过程中需要注意以下事项。

  首先要针对所检测的计算机软件进行深入的了解,了解计算性软件的相关特性。

  经过综合分析后,进行选择想对应的检测技术手段,本着从实际出发的角度制定出安全合理的检测方案,方案必须经济合理且保证检测的效果。

  在人员配置方面,要注意检测人员专业的多源化。

  在进行计算机的软件安全检测的时候,不仅仅是要配备相应的软件安全分析人员,同时还需要与软件设计相关的总体设计人员,只有多方面全力配合,才能分析解决软件测试中的多种疑难问题。

  其次在进行计算软件安全的相关检测时,对系统级以及需求级和代码级的分析是必须进行的。

  当软件规模较大的时候,还要对软件的结构设计方面进行必要的分析。

  在进行分析的过程中要选择实际工作中较为合理的分析方法,一般采用仿真环境和相应的分析工具来进行相关的检测工作。

  计算机检测是一个系统的过程,单一的方法有时候往往难以独立完成,需要多方面技术人才的通力配合才能准确无误的完成检测。

  三、计算机软件安全检测方法论述

  (一)计算机软件测试的步骤

  对于计算机软件的程序来讲,规模较大的软件系统一般是由是由一些子系统共同组成的,而不同的一些子系统又由若干个小的模块构成。

  计算机软件测试一般的步骤是,先进行一定的单元测试,就是通常所说的模块测试,模块测试一般是依据软件设计中的最小单位所进行的测试。

  模块测试的目标是为了发现系统模块可能存在的一些缺陷。

  在模块测试之后,将所有的模块按照一定的程序进行设计并组装成系统。

  并且需要对相关的体系进行一定的安全测试。

  在此基础之上,进一步进行有效性的测试,有效性测试是十分必要的步骤。

  有效性测试的主要目的是对软件的性能和功能进行检查,检测是否与用户的需求相吻合。

  最后的步骤是进行系统测试,就是通过有效性的软件将计算机支持软件、数据已经硬件等结合起来进行测试。

  (二)计算机软件安全检测的方法论述

  1.形式化与模型的安全测试。

  对于安全检测方法来讲,首先是要确立软件的数学模型,运用形式规格说明语言的支持来进行形式化的规格说明。

  一般经常用到的形式规格和语言包括了基于模型语言、以及基于有限状态的语言和基于行为的语言。

  基于模型的安全的功能测试方法该方法,是对计算机的软件行为和结构,通过建模的方式生成测试的模型。

  然后以测试模型作为基础进而生成检测,从而驱动软件的计算机安全检测。

  一般较为常用的模型安全功能测试的方法主要有马尔可夫链。

  2.语法测试与故障注入的安全测试。

  语法测试是对被检测的软件的功能接口的语法生成的软件测试输入的方法。

  这种方法可以测试软件对于不同类型输入的反应情况。

  语法测试进行测试的程序是对软件接口的语言的识别以及定义语言的语法。

  故障注入的安全性测试是利用故障分析树和故障树的最小割集来进行检测。

  故障分析树分析法使用系统最不应该出现的时间作为顶事件,以此来寻找故障可能发生的中间事件和底事件,故障注入法可以提高检测的自动化程度,是比较充分的计算机安全检测方法。

  3.模糊测试与基于属性的测试。

  模糊测试,目前使用较多的是基于白盒的模糊测试方法,这种方法是对传统意义上的模糊测试方法的一种进步。

  这种检测方法比较有效的结合了传统的模糊测试与动态的测试方法。

  而基于属性的测试的测试方法是先确定软件的安全编程规则,然后将确定的规则编码做为安全属性来验证系统是不是遵守这些程序。

  这种检测方法的主要优势在于能够比较有效的分析安全漏洞的扩展性和交互性等。

  四、结束语

  计算机软件的安全测试对于计算机的正常使用有着非常重要的意义,本文主要介绍了计算机软件测试的几种比较常见的方法,通过分析计算机软件测试的重要意义,引起对计算机软件安全的重视,探究出更科学合理的计算机软件测试方法,以保证计算机软件的安全。

  参考文献:

  [1]王维静,王树明,陈震,申春,彭秀增. 软件安全的多指标综合评测[J].计算机工程与应用,2006,(11)

  [2]William B Bierce,Michael Harold. New Us patent gwildelines offer hope to software developers in era of diminishing copyright protection .Tolley‘s computer law And Practise,1995,Vol.11,Vol.11 (No.4)

  [3]Shahid Alikhan,Raghunath Mashelkar.Intellectual Property and Competitive Strategies in the 21st Century .Kluwer Law International,2004

  [4]Bernard A. Galler. Software and Intellectual Property Protection: Copyright and Patent Issues for Computer and Legal Professionals .Quorum Books,1995

  计算机软件安全检测方法【2】

  摘要:随着现代科学技术的不断发展,越来越多的领域需要利用计算机软件,为了发现计算机软件中的故障,才有了软件安全检测,并且对计算机软件中的风险进行有效的避免与更正。

  在如今病毒与黑客横行的时代,维护计算机的安全更是成为一项重要的任务。

  软件的应用越来越广泛,规模和复杂度不断提高,软件中的安全缺陷与漏洞也在不断增多,随着使用范围的扩大,软件的安全性问题也越来越多。

  软件的安全测试保证了计算机和软件的安全性,降低了计算机的风险。

  关键词:检测;安全;软件

  随着计算机技术的迅速发展,计算机软件的安全隐患问题也渐渐增多,所以软件的安全检测也越来越重要,而软件的安全检测研究技术也需要进一步加强。

  本文重点阐述了关于计算机软件检测的一些方法和工具。

  1 什么叫计算机的安全检测

  这里所说的安全检测,是指用科学和技术的手段来发现软件中出现的各种故障、问题和风险,并且进行修正、诊断,以确保计算机和软件的安全。

  具体的检测过程中,要选择正确而安全的检测方法。

  2 软件的检测应注意以下几点

  (1)从软件的特点和要求出发,选择软件适合软件的检测方法,并且尽量使检测人员多样化,并从多个角度制定合理安全的检测方法,只有多个领域同时配合,才能对软件进行更好的检测。

  (2)选择合理的安全检测方法,计算机软件的安全检测仅仅是查找程序错误的手段,所以如果此类软件比较大,就应该对这种软件的内部进行分析和研究,而且要根据实际选择不同的分析方法,这样才合理。

  3 安全检测软件的意义是什么

  计算机软件安全检测的目的是为了发现软件所存在的故障,并且对故障进行修正和诊断,以此来避免和降低计算机的危险性。

  2003年发生了蠕虫病时间以及后来的熊猫烧香病毒,都给用户带来了风险性。

  只有做好软件安全工作,防治漏洞被利用,才能保证用户信息的安全性,为用户的计算机安全保驾护航,才是软件检测的最终目的。

  4 检测计算机软件的几种方法

  4.1 静态检测

  静态检测是指是不实际的运行被测试的计算机软件,而是静态的检测和分析计算机的程序和代码,检测计算机软件中潜在的安全问题,从而对软件的风险性进行修正和诊断。

  静态检测包含了代码质量和代码检查等几项,它可以用软件进行检测,也可以由人工进行检测。

  很多时候静态检测仅仅只是作为特性分析的方法,所以,静态检测又被称之为“分析”,总而言之,静态检测就是对被检测的软件或程序进行分析的一种方法的总称。

  静态检测的任务包括了以下几项:(1)检查模块接口的正确性;(2)检查输入参数是否有合法性检查;(3)检查算法的逻辑正确性;(4)检查是否设置了适当的错误处理;(5)检查程序的风格的一致性和规范性;(6)检查代码是否可以优化;(7)检查代码注释是否是完整的。

  4.2 动态检测

  动态检测又分为三种,这三种分别是灰盒测试、白盒测试、以及黑盒测试。

  白盒测试又被称为透明盒测试,它基于代码,有一定的逻辑性。

  白盒测试的目的是通过分析软件内部的逻辑和原理,并且对内部的结构进行覆盖性的检测,检查点随程序的不同而不同,检查程序是为了确定内部的结构与逻辑是不是与预测的一样。

  它的检测过程共有几项,(1)检查设计阶段;(2)检测计划阶段;(3)检测执行阶段;(4)检测的结尾,里面主要有错误推测和因果图,还有分析边界的值,等等。

  黑盒测试,黑盒测试又被称为是数据驱动测试和功能测试,它根据规格说明书设计测试用例,黑盒测试不程序内部构造,并且是一种从用户功能出发的测试。

  黑盒测试包括几个过程,(1)测试计划阶段;(2)测试设计阶段;(3)测试执行阶段;(4)测试的结果。

  黑盒测试的几种主要方法包括等价类划分,边界值分析,错误推测和因果图。

  黑盒测试和白盒测试的对比,虽然黑盒测试的效率比白盒测试要高,黑盒测试由于不涉及程序内部,所以只能观察到软件的表面现象,而白盒测试则相反,白盒测试能发现程序内部的问题和风险,比如误差累计等方面。

  两种测试相比较,黑盒测试的性能与白盒测试相比有较大差异。

  4.3 形式化的软件检测法

  形式化检测的基本思想是建立软件的数学模型,所以这种测试方法必须要求测试者了解数学的模型,所以大体上将它分为两类,一类是模型测试,另一类是定理证明。

  模型检测用状态迁移系统S描述软件的行为,通过自动搜索S中的不满足公式F的状态来发现计算机软件中所带的危险性。

  4.4 语法软件测试

  语法测试是要求被测软件接口要与语法生成对接,检测被测软件对各类输入的响应,目的在于发现一些很可能会导致电脑崩溃的一些软件缺陷,如不能存储、或者数组发生变化等缺陷,语法测试不但能发现这些缺陷,还提高系统的可靠性和稳定性。

  4.5 模糊测试

  这种模糊测试的功能是发现系统中的一些高危漏洞,模糊测试在安全检测中显得尤为重要,就目前来看,一般应用的模糊测试都是基于白盒的安全测试。

  目前来看,虽然采用模糊测试中的功能可以发现其它的软件测试法很难发现的一些安全缺陷,但模糊测试很没有稳定性,而且不可靠。

  4.6 故障测试

  该测试方法最主要的特点是高度灵活性,一方面,它可以对软件的可靠性和安全性进行测试,另一方面,它也能实现软件方法的故障注入测试技术,虽然该软件具有灵活性和突破性,但是也存在故障的有效注入、故障的精确模拟、通用性等等问题,所以仍有待改善和提高。

  综上所述,计算机的安全检测在计算机安全体系中属于不能缺少重要部分,计算机软件安全检测方法技术还有待提高,因为它是计算机软件的安全保障,能够为计算机的运行和工作保驾护航。

  安全性测试一般要重点考虑SQL注入和XSS,这是最容易攻击的漏洞。

  安全测试的工具可采取各类方法,一个好的检测方法应该要满足明确性、广泛性、易用性、客观性等要求。

  5 安全检测的最终目的

  安全检测是保障软件和计算机安全的重要工作之一。

  计算机软件安全检测是通过对软件测试、计算、考核与验证来最终分析和确定软件是否不会为使用者带来威胁。

  广大的技术人员和测试人员,以及软件开发员要充分认识到软件安全检测的重要性,只有不断提高安全检测的技术,才能更好的为广大的用户服务。

  6 总结

  综上所述,当今计算机技术飞速发展,黑客和病毒也泛滥成灾,为了防止计算机的安全被威胁,而软件安全检测方法主要就是对软件进行一系列的分析、计算,检测,从而得出结论,判断出软件设计中是否存在一定的危险性,并且排除威胁,对软件进行隔离或者改善。

  网络时代飞速发展的今天,软件的可行与否直接关系到整个网络的安全,也成为大多数网民和用户所关注的问题。

  技术人员只有不断开拓和研发新技术,才能使计算机和软件的风险大大降低,软件的安全性已经不容小视,并且越来越受到人们的重视,安全测试软件的技术也在不断的发展与进步。

  参考文献:

  [1]高婷.计算机软件安全检测技术研究[J].计算机光盘软件与应用,2012(17):73-74.

  [2]王兵兵.计算机软件安全检测存在问题及方法探讨[J].计算机光盘软件与应用,2011(20):116-116.

  [3]周晓成.关于计算机软件安全检测技术的研究[J].计算机光盘软件与应用,2011(23):87-87.

  [4]肖俊.计算机软件安全检测方法分析[J].科技资讯,2012(3):32-32.

  [5]朱岩.浅析计算机软件安全检测存在问题及方法[J].科技创新与应用,2012(11):51-51.

  [6]王俊民.关于计算软件的安全检测方法探究[J].计算机光盘软件与应用,2012(4):51-51,47.

  计算机软件安全检测方法【3】

  摘 要:计算机技术的迅猛发展使得计算机软件的应用领域不断扩大,在看到计算机软件为我们生活带来便利的同时,我们更应该注意到计算机软件中存在的漏洞和风险。

  对此,我们要加强对软件安全性能的测试。

  本文通过分析计算机软件中存在的主要漏洞和风险,介绍了几种比较实用的安全检测方法,为提高软件的安全性能提供了一些建议。

  关键词:计算机;软件;安全

  对计算机软件进行安全测试主要是为了确保软件的安全性能与最初的设计一致,提升软件的自我防御能力。

  它并不能证明应用程序中没有错误,而是为了在危险来临之前,找出并更正软件中存在的问题。

  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).

【计算软件的安全检测方法】相关文章:

计算机软件安全检测方法10-05

计算机软件安全检测存在问题及方法的研究10-09

计算机软件安全检测技术10-05

计算机软件安全漏洞检测10-05

计算机软件安全检测技术分析论文10-08

漏洞检测在计算机软件安全中的应用09-30

测试软件安全的方法10-05

计算机软件安全检测技术分析论文范文10-08

分析计算机实用检测维修方法10-01