计算机软件安全漏洞检测【1】
摘 要:对于计算机病毒可以使用杀毒软件以及防火墙等技术进行预防和控制,而如果计算机软件存在漏洞,是不可能通过杀毒软件等工具来解决的,因此必须加强对计算机软件漏洞的检测,本文分析了计算机软件中常见的漏洞形式,并简单地介绍了一些计算机软件漏洞的检测方法。
关键词:计算机软件;漏洞;检测方法;安全
计算机软件是整个计算机的基础,计算机软件技术的发展使其已经应用于生活的各行各业,计算机软件关系着我们生活的方方面面,使其结构以及源代码等也越来越复杂,难免会存在一定的漏洞。
由于计算机软件漏洞的特殊性,传统的杀毒软件以及防火墙等都无法起到任何作用,因此只有自身加强对计算机软件漏洞的检测才能真正解决这一威胁。
1 计算机软件中常见的漏洞
人们不断地加强对计算机的应用,导致计算机中储存着来自各个方面的商业机密以及个人隐私,黑客通过各种形式来获得他人计算机的授权,从而将计算机中的信息偷盗出来,给计算机用户带来麻烦。
以往在受到黑客的攻击时只要装上杀毒软件和防火墙即可有效地防止黑客的入侵,但是黑客技术随着计算机技术的升级也在不断地进行技术更新甚至黑客技术有时候已经超越了现有的计算机安全防护技术,防火墙等设置已经如法阻挡大部分黑客的入侵脚步了。
计算机软件漏洞是如今黑客入侵计算机常用的切入点,因此必须加强计算机软件漏洞的检测,减少计算机中的软件漏洞数量,增强计算机的安全性能。
常见的计算机软件漏洞可以分为以下几类:Geronim2.0漏洞,这一漏洞的存在会给黑客在系统进行身份验证的环节留下后门,黑客通过计算机的远程控制即可在见算计系统中插入自己的软件程序等,从而非法访问他人计算机;JBOSS应用服务器的漏洞,这一漏洞主要指的是系统目录遍历的漏洞;LIBTIFF开源软件库中的漏洞,这是一种可以读写标签以及图像文件格式的软件中的软件漏洞;Net-SNMP漏洞,Net与SNMP的协议中常常存在一定的软件漏洞;ZLIB漏洞,软件库在进行数据压缩时,对于长度大于1的代码常常使用一些不完整的代码来进行解释,这时就会导致ZLIB漏洞的出现。
2 软件漏洞的动态检测技术
动态检测技术指的是不对目标程序进行任何的修改,只针对程序的运行过程进行检测的软件漏洞检测技术。
常见的动态检测技术有以下几种。
2.1 内存映射技术。
使用内存映射技术进行软件漏洞的检测只适用于使用固定IP地址的应用程序,这一技术是通过对操作系统的内核进行修改,将代码页进行映射,使其映射到大量的随机地址中,让黑客无法利用NULL字符串进入内存区,大大地增加了黑客入侵的工作量。
虽然这一技术可以有效地防止利用内存地址的攻击,但是无法对新代码的攻击进行有效的检测。
2.2执行栈技术。
黑客的攻击中常常在栈中添加一段代码,使得栈的编写与执行能力遭到破坏,从而改变栈中的变量,并使自身恶意代码在栈中运行。
面对这种攻击方式,可以禁止栈对恶意代码的执行能力,执行栈技术大多应用于对黑客攻击的预防方面。
2.3 沙箱技术。
沙箱技术是对一些访问资源的连接进行限制,从而达到对黑客攻击的预防。
这种技术需要在应用程序中置入一个针对资源访问的代码,并且操作系统以及原程序不需要因为这段代码而进行任何的改变。
2.4 非执行堆与数据技术。
计算机软件的运行过程常常会因为某一数据段或非执行堆而遭到破坏,而非执行堆与数据继续正是针对这一情况提出的,这一技术可以有效地禁止这类数据段的运行,从而达到终止恶意代码的效果。
这种技术只能检测内存中存在的恶意代码,但是不能对恶意代码进行任何的操作,并且对于被修改的函数等信息也不能进行有效的检测,同时不能兼容多个应用程序。
2.5 程序解释技术。
程序解释技术是应用程序监视器等对整个程序的运行情况进行监视,从而达到安全检查的效果。
这种技术主要检测的是非原始代码。
这种程序虽然不会对计算机系统的内核以及原程序的代码进行修改,但是对于程序的运行以及兼容等还是会造成一定的威胁。
3 软件漏洞的静态检测技术
静态检测技术是对目标程序的源代码等信息进行分析的软件漏洞检测技术,常见的静态检测技术有以下几种。
3.1 元编译技术。
元编译技术是针对程序安全属性的检测,通过对程序代码安全性的推断,建立相应的编译扩展,并进行相应的建模执行,从而达到检测作用。
这一技术是对编译器的简易应用,准确度非常高,而且不会因为语言特征而产生新的扩展,非常实用。
3.2 变异语技术。
变异语技术是通过对源代码中算数的运算、goto语句的跳转、不安全的转换、longjump以及setjump的限制来达到安全检测的目的。
这种技术大多使用的是C语言的安全变成来实现的。
3.3 程序评注技术。
这一技术不会对目标程序的源代码进行任何的添加,这一技术是通过注释的方式进行的,因此不会对程序的兼容造成影响。
这种技术通过评注的信息来对目标程序的源代码进行深度的分析,从而找出程序的漏洞。
3.4 约束解算器技术。
约束解算器技术是将目标程序的某些特定属性进行约束,然后通过静态分析来进行这些特殊属性的解算。
这一技术对目标程序代码的影响最小,但其报误率较高,加大了程序员的工作量。
3.5 类型推断技术。
这一技术是对某些用户的输入或者指针等数据进行修饰,从而增加其安全约束的静态监测方法,这种技术适用于一些较大的应用程序,但是这种技术目前仍具有较大的兼容性问题。
4 MBSA微软基线安全分析器
MBSA可以对计算机的不安全配置进行扫描,同时还可以对计算机操作系统和SQL Server更新进行检查,检查完毕后会用“X”将检测出的漏洞进行标记,然后为用户提供相应的修补方案,引导用户进行漏洞的修补。
在MBSA进行扫描之前首先要对其进行正确的参数设置。
4.1 扫描对象的设置。
扫描对象的设置有两种,一是在计算机名称文本框中输入本计算机的名称,其格式为“工作组名/计算机名”。
二是在IP地址文本框中输入目标计算机的IP地址。
4.2 安全报告名称格式的设置。
MBSA的安全扫描结束后会将扫描的结果保存成安全报告,安全报告的格式可以根据用户的需要来进行用户自定义的设置。
用户将所选格式输入在安全报告名称的文本框中即可。
4.3 检测项目的设置。
MBSA对于微软公司的大多产品都能进行漏洞检测,在这一程序的默认情况下,无论用户的计算机是否装有这些软件,MBSA都会执行检测操作,这样就会造成很多的资源浪费。
因此,用户需要根据自身计算机的实际情况来进行MBSA检测项目的设置,从而节约计算机资源。
4.4 查看扫描报告。
MBSA扫描结果的安全报告都是自动保存的,用户可以单击“View existing security scan reports”来进行查看。
报告内容是安全检查的依据,通过对比安全防护前后的安全报告来明确计算机系统的安全性能。
5 总结
随着计算机技术的广泛应用,人们对计算机信息安全的重视程度也越来越高,信息安全问题关系到每一个人的财产安全以及个人隐私。
而目前大多数的安全问题都是因为计算机软件漏洞造成的,因此必须加强对计算机软件的检测,增强计算机的安全性能。
计算机软件漏洞检测技术也要不断地进行更新换代,从而适应计算机软件市场的发展。
参考文献:
[1]闫云峰.计算机软件安全漏洞检测技术探究[J].民营科技,2012,21(11):21-22.
[2]黄海滨,王艳芳.计算机软件安全漏洞检测技术的应用研究[J].电脑与电信,2013,15(4):11-12.
[3]陈楷.计算机软件中安全漏洞检测技术的应用[J].数字技术应用,2010,28(7):33-34.
计算机软件安全漏洞检测技术【2】
摘 要 计算机软件技术是计算机中常用技术,在系统开发中经常涉及到软件技术。
科学技术不断发展,现在对软件的要求越来越高,软件在使用之前必须经过软件检测,现在软件漏洞也很多,需要不同软件检测技术在检测,减少软件漏洞出现。
本论文主要从计算机软件安全漏洞目前的状况、计算机软件安全漏洞检测技术解读进行阐述计算机软件安全漏洞检测技术,希望为研究软件安全漏洞检测技术的专家与学者提供理论参考依据。
【关键词】软件 安全漏洞 检测技术
信息技术快速发展,尤其Internet的广泛应用,在如今大数据时代,软件是计算机技术一种,在其软件开发过程中,计算机软件存在一定漏洞,要保障计算机软件的安全性,必须提高计算机软件的检测技术,提升计算机软件性能,是提高计算机网络安全的有效途径。
1 计算机软件安全漏洞目前的状况
计算机软件在开发的时候有的就存在一定漏洞,当时可能没有技术解决软件漏洞问题,但在软件使用的过程中,会出现一系列问题,必须加强软件安全漏洞的检测技术,检测软件是否合格,不合格的软件必须加强软件补丁,促使软件达到合格标准,经过测试后,才能投入市场使用。
还有的软件开发时候没有任何漏洞,但随着时间的推移,软件会出现一定漏洞,软件必须是在使用的过程中,逐步进行软件完善,提升软件性能,让其达标,减少软件的漏洞,出现漏洞以后要及时修复,提高软件的生命周期,在一个友好的界面下,充分发挥软件的功能,让其在使用过程中,起到一定的作用,提升性能,减少漏洞。
软件在使用的过程中,根据技术的发展与变化,计算机软件的漏洞必须技术检测,延长软件的生命周期,提高软件性能,满足其需要。
2 计算机软件安全漏洞检测技术解读
2.1 静态程序解析
静态程序解析是软件安全常用的检测技术,这种检测技术是通过程序代码,通过利用机器语言、汇编语言等进行编译,利用反代码形式,对检测出来的软件漏洞,及时进行修复,提高软件性能,在实际应用过程中,涉及到程序设计中的语言、函数、数组、过程、集合、文件等。
利用软件技术解决软件漏洞问题,静态程序解析对程序设计起到保护作用,检测软件漏洞,提升计算机软件性能,这是一种常用的计算机软件安全漏洞检测技术,通过该技术对软件漏洞进行合理检测,提高软件性能,延长软件的生命周期。
2.2 利用逻辑公式对程序性质进行表达
根据程序的性质,对计算机软件漏洞进行检测,判断其中的应用能力,逻辑公式能对计算机软件的性能进行检测,检测其的合法性,是否存在软件漏洞,有的软件漏洞是需要升级与更新软件就可以解决的,有的是出现软件错误,必须合理采用措施,解决软件漏洞问题。
其中的公理化方法的逻辑是完整的体系,其中的每个公式都是由单个程序语句和其前后置断言共同构成,具体理论当中只有一条赋值公理,形式演算系统以一阶谓词逻辑为基础,各自为顺序、分支以及循环指令增加了相应的演算法则。
公理化方法已经被证明具有较强的可靠性和完整性,但匹配的形式演算系统存在半可判定的情况。
程序的正确性涉及程序设计人员利用逻辑公式对程序对应的功能规约展开描述,另外一个问题就是要为循环体确定循环不变式。
逻辑公式的应用提高了逻辑判断能力,在利用语句进行科学判断,检测计算机软件是否存在漏洞,根据逻辑公式的判断能力,检测软件是否存在漏洞,如果存在漏洞,对其合理的进行修补,解决软件漏洞问题,提升软件性能,完善软件功能。
2.3 测试库技术
测试库技术是计算机软件检测中常用技术,对解决计算机软件漏洞起到帮助作用。
测试库技术是检测计算机软件中的核心部件,判断计算机软件是否存在漏洞。
第二篇:计算机软件安全检测技术
计算机软件安全检测技术【1】
摘要:随着科学与技术的发展,计算机应用更加普及。
目前,计算机已经成为人们生活和生产的必要工具。
人们在使用计算机的同时对计算机性能和计算机的辅助功能的要求也逐渐提高。
计算机和网络赖以生存的基础就是软件。
计算机软件的安全性成为了计算机软件性能的组成部分,同时计算机软件安全检测技术又可以实现有效确保计算机软件的安全性。
由此表明,计算机安全检测技术已俨然成为保护计算机软件的关键性因素,即安全检测技术可根据不同的安全指标对计算机软件进行安全测试,并有效识别出软件中存在的安全隐患。
本文就计算机软件安全检测技术及其应注意的问题进行分析,以确保计算机软件的安全性。
关键词:计算机软件;软件安全;检测方法
一、引言
计算机软件安全检测是以有效发现软件开发中所存在的故障及风险,并对其进行修改、更正为目的的,因此计算机软件的安全检测技术在软件开发的整个过程中发挥着不可或缺的作用。
从根本上讲,计算机软件安全检测即是花费较少的测试时间和精力获取最大限度的软件检测覆盖面,从而确保安全检测的有效性。
二、计算机软件安全检测简介
计算机软件的安全检测是计算机软件开发过程中的一个关键性环节,是计算机软件开发中的一个重要组成部分。
通过计算机软件安全检测,我们可以发现软件在应用过程中的缺点和故障所在,可以实现对计算机软件在应用过程中产生风险的有效更正。
然而,计算机软件的安全检测并不能作为避免软件程序中产生错误的主要手段,计算机安全软件安全检测只是负责找出程序在应用过程中容易产生错误的位置。
通常情况下,计算机软件安全检测主要分为静态检测和动态检测两种类别。
计算机软件安全检测通常是用来对软件的安全漏洞和安全功能进行检测的一种手段,是保证软件开发后功能与预期目标设计保持一致的有力保障。
就目前情况讲,计算机软件安全检测的具体范畴主要包含三个方面,即功能测试、渗透测试和验证过程。
计算机安全软件检测与其他检测软件不同,对于计算机软件安全缺陷的检测,计算机软件安全检测更注重于有效避免软件工作范畴以外的事物,而普通的检测软件则强调软件该做的事物。
另外计算机软件安全功能是否能够满足用户的需求是通过安全功能检测来实现的,衡量其满足用户需求与否的主要包含授权、机密性、安全管理及访问控制等因素。
而对于计算机安全漏洞的检测,其主要目的是发现软件中可能存在的缺陷,亦或是识别出某些缺陷对计算机软件存在的潜在风险。
三、计算机软件安全检测应该注意的事项
从某种角度上分析,计算机软件安全检测,其实质即是对计算机软件进行安全检测的一个动态过程。
通常在进行计算机软件安全检测时应注意以下两点事项:
第一,选择有效且合理的软件安全检测方案。
对于计算机软件的安全检测应在充分了解、掌握该计算机软件要求及特性的基础上,根据测试的具体情况选用合理的安全检测手段,并编制出与之相应的安全检测方案,以确保安全检测方案实施的有效性。
此外,对软件的检测人员还应该有一定的要求。
计算机进行软件安全检测时,应确保在有相关知识及经验的软件安全分析人员参与的同时,还应配备熟悉并掌握该软件特点及使用的设计人员。
唯有通过计算机软件及安全检测等多领域的相关技术人员的有效配合,才能达到有效确保计算机软件性能安全性的理想效果。
第二,计算机进行软件安全检测的过程中,应做到全面分析。
一般计算机软件程序较为繁琐、规模较大,这就需要相关人员在进行计算机软件安全检测的过程中,应做到对代码级、系统级和需求级的细致分析。
与上述选择软件检测方案一样,在进行软件中不同级别时也应加强对分析技术的合理选择,才能保证分析结果的准确性。
如此看来,计算机软件的安全检测是一项较为复杂的系统型过程,因此选择合理的检测技术和检测方案,是计算机软件安全检测过程中不可忽视的两个注意事项。
四、计算机软件的安全检测方法
(一)计算机软件安全检测流程
通常情况下,对于计算机软件的安全检测程序而言,规模较大的计算机软件系统包含了多个子系统,而不同的子系统中又包含了多个不同的模块。
一般计算机软件安全检测的流程为:模块测试→组装系统→系统结构的安全检测→软件功能和性能的有效测试→系统测试。
其中模块测试是指子系统中最小单位的模块测试,其目的是为了使测试的覆盖范围更加全面化、细节化,从而及时发现小模块中所隐藏的潜在风险;在进行各个模块测试完成后,应根据软件程序的设计要求对所有模块进行组装,将其组装成完整的系统,同时对组装后的系统结构进行相应的安全检测;之后在保证前述检验合格的基础上对系统软件进行功能和性能的有效测试,有效测试的主要目的是为了确保系统软件功能和性能与用户需求的一致性;最后在所有相关测试完成后,实施对整个软件的系统性测试。
如此层层把关的软件安全检测流程可为用户软件的安全性提供有力的保障。
(二)计算机软件安全检测的方式、方法
1.形式化的安全检测
此种安全检测方法是鉴于计算机软件数学模型的基础之上的,并且要求在形式规格语言的支持前提下,所提供的形式化规格说明。
目前较为常用的形式规格语言有三种,其中包括行为语言、模型语言和有效状态语言。
有定理证明和基于模型检查正式的安全检测方法[3]。
2.基于模型的安全静态检测方式
模型安全检测方式,即通过软件行为与结构建模的方法,形成一个测试模型,此模型同时满足机器对其的可读性。
模型安全检测方式与上述形式化安全检测相比而言,基于模型的测试并不致力于让待测软件系统与规格说明在所有情况下都保持一致,而是系统化的从模型生成一组测试用例,使用这组测试用例测试待测软件系统,得到充分的证据说明待测系统的行为与模型期望的是一致的。
常用的安全功能检测方法是有限状态机和马尔可夫链的方法的。
3.语法检测
这种检测方法是基于语法对生成功能接口软件进行检测。
语法检测,通常情况下以研究反映为目的,即计算机软件在不同的输入条件下而产生的不同类型的反映。
采用语法检测的方法,一般即指对计算机软件接口处语言的识别、语言语法的定义等,并在以语法为基础生产检测用例同时执行安全检测。
4.基于故障注入的安全检测。
此种方法经实践证实,具有明显提高安全检测自动化程度的独特优势,是计算机软件安全检测技术中的重要组成部分。
这里讲的故障注入式安全检测,即指在选定故障模型的基础上,构建故障树,并通过人为的反复测试及对软件所反馈的故障信息,来实现检测故障容错性和安全性等有用信息.
5.模糊式检测方法
模糊式的检测方法有效的融合了传统检测技术与动态检测的具体应用,即是建立于白盒模糊检测的基础之上的,是传统检测方法的升华。
模糊检测法虽然是一项简单的技术,单他却揭示出程序中重要的bug。
它能够验证出现实世界中的错误模式并在软件发货前对潜在的应该被阻塞的攻击渠道进行提示[3]。
6.安全属性式的检测方法
安全属性式的检测方法相比于其他软件安全检测方法来说,能够实现有效确保安全漏洞扩展性和交互性的全面分析。
实现采用安全属性式的检测方法进行测试的途径,首先应有效确定计算机软件的安全编程规则,并将其作为软件安全检测的安全属性;其次利用得到的安全属性对系统程序的相关代码进行检测,以验证系统代码与相应规则的符合性。
除上述所讲,随着社会各领域的快速发展,基于Web服务的分布式软件得到广泛应用,因此与之相应的软件安全检测技术也应不断分析总结,并实现安全检测的技术创新。
总而言之,计算机软件的安全检测俨然已经成为有效确保计算机信息安全性的关键性因素。
鉴于软件安全对计算机软件开发及使用的重要作用,我们应在实践中不断学习并积累经验,以实现计算机软件安全检测技术的不断创新。
参考文献:
[1]王清.软件漏洞分析技术.北京:电子工业出版社,2011,6
[2]艾伦.软件安全工程.北京:机械工业出版社,2009.4
[3]李龙.软件测试实用技术与常用模板.北京:机械工业出版社,2010,10
计算机软件安全检测技术【2】
摘要:步入21世纪以来,科学和技术不断发展,已经达到一个全新的高度,计算机开始广泛运用到了各个领域,成为人们生活、办公不可缺少的工具。
人们对计算机的要求也变得越来越高。
计算机办公离不开硬件和软件,硬件是计算机运行的最基础要求。
软件作为计算机工作的大脑,对其进行安全检测是保障计算机软件能够安全运行的重要内容之一。
本文就计算机软件安全检测技术及其应注意的问题进行分析,以确保计算机软件的安全性。
关键词:计算机;软件安全;检测方法
一、引言
软件安全检测,顾名思义,指的是用科学的手段和技术来发觉软件开发中出现的各种故障,以及开发风险,对风险和故障进行诊断、更正和修改。
计算机软件安全检测工作是软件开发和使用中必不可少的工作。
工作者要用其确保计算机软件的安全性和有效性、已达到预期的效果。
二、计算机软件安全检测简介
计算机软件的安全检测是计算机软件开发中的一个极为重要的部分,缺少了它,计算机软件开发是不完整的。
通过对计算机软件的检测,我们熟知其安全性,可以发现软件中存在的缺陷和漏洞,并加以弥补,从而使软件得到优化和完善。
但计算机软件安全检测手段却不能作为防止软件错误发生的主要办法,因为计算机安全检测的职责只是找出程序中容易发生错误。
在现有技术中,软件安全检测分为两种,分别为静态检测与动态检测。
计算机软件安全检测实质就是:通过技术对软件的漏洞和缺陷进行一遍系统化的检测,以保证软件开发后功能和预期的功能相差无二。
现阶段而言,计算机软件的安全检测技术主要包括三点:分别为功能测试、渗透测试和检验过程。
和其他软件相比,计算机安全软件有自己独特的一处,安全软件的检测以避免软件工作范畴以外的事物为主,普通的软件和它相比,则以软件该做的事情为主。
用户对软件的依赖程度,需要软件的安全程度来测试,安全检测功能扮演的角色可谓是举足轻重,它发现了软件中存在的风险及隐患,有时候更能识别出某些软件的缺陷对计算机所产生的安全风险。
三、计算机软件安全检测应该注意的事项
从另一种角度上讲,计算机软件安全检测,实际上就是对计算机进行安全检测的一个非静态过程。
通常在进行计算机软件安全检测时应注意以下两个方面:
1.用科学合理的方案进行软件检测工作。
进行检测工作的人员应当具备以下几种基本素质:
(1)充分了解软件安全检测工作。
(2)熟练掌握计算机软件的特性。
只有具备这两种基本素质,才能够保证检测方案实施起来。
再者,应该对软件检测工作者提出相应的要求,应当确保在具备相关专业素质的人才进行工作时,周围配备相关软件特点及使用的技术性专员。
只有通过与计算机软件专业各种技术人员密切有效的配合,才能够保证计算机软件检测工作顺利完成,才能够使得计算机软件性能和安全性达到事先预期的效果。
2.在进行计算机软件安全检测工作中,工作人员应当利用自身素质和高科技设备进行全面,深入的分析。