计算机软件的漏洞检测技术发展与应用摘要:随着科学技术的发展,信息系统已经应用到各个领域当中,在此前提下计算机软件的安全漏洞成为了信息系统安全的重要内容,安全漏洞的检测技术无疑成为了控制安全漏洞的必要手段。
本文针对目前安全检测中主要使用的动态检测技术和静态检测技术做了详细叙述,并且针对其技术的优缺点进行了详细的分析。
关键词:计算机软件;漏洞检测;技术
高度信息化时代的到来,让互联网承载下的计算机成为了很多人工作、生活、学习不可或缺的伙伴。
而随之而来的各种信息安全也成为了焦点问题。
软件和硬件组成了计算机,而软件则是计算机系统的重中之重,无论是网络通信还是操作系统,再或者是一些应用程序都是软件形式存在的,这些软件或多或少都会存在一些漏洞,这就给计算机的安全使用带来了巨大的威胁。
软件漏洞检测系统能够对计算机内的软件进行系统的扫描,准确的找出安全漏洞,并且进行有效的修复。
软件漏洞检测系统作为一种重要的漏洞检测技术为人们的信息安全提供了有效的保障。
1 计算机软件中的安全漏洞的定义和特点
1.1安全漏洞的定义
所谓的计算机软件中的安全漏洞就是软件在运行过程中所存在的弱点和缺陷,这些弱点和缺陷容易成为某一威胁的主要攻击对象,或者是对某危险事件具备较强的敏感性,或者是具备进行攻击威胁的可能性。
软件中的安全漏洞产生有可能是设计者在开发该软件时,因为失误或者是系统本身潜在的不安全性导致的。
1.2安全漏洞的分类
1.2.1功能性逻辑漏洞
功能性逻辑漏洞影响软件正常功能的使用,例如在运行软件时,提示执行结果错误,或者是执行流程错误。
1.2.2安全性逻辑漏洞
安全性逻辑漏洞是之在运行当中,软件功能可以正常的使用,但是漏洞如果被攻击或者利用过以后,会生成一些恶意代码,导致软件运行错误,并且误执行
一些恶意代码,对计算机和个人信息造成一定的威胁。
1.3漏洞的特点
首先漏洞出现的原因如果在编程的部分,那么大多数都是由于疏忽造成的。
其次在数据处理过程中,数据处理比数值计算出现逻辑错误的几率要高出很多。
再者漏洞跟系统环境之间的关系密切,不同的设备,不同的硬件环境、不同系统之间都会有不同的安全漏洞问题。
2计算机软件安全漏洞威胁性
2.1非法复制
计算机软件的研发需要投入大量的人力、物力、财力才能够做到。
其付出的成本往往是硬件的十几倍甚至是几百倍。
安全漏洞隐患常常成为了非法复制计算机软件的一个重要手段,通过非法复制对产品产权造成了极大的影响。
2.2软件质量问题
软件的开发都不可能避免这样那样的缺陷,这些缺陷就是我们所说的漏洞,这些漏洞对计算机的安全系统有着很大威胁,并且因为软件漏洞引发的计算机安全事件也在逐年增多,一些黑客利用漏洞来供给用户计算机,给计算机用户信息安全上带了严重的威胁。
2.3软件跟踪
软件跟踪分为动态跟踪和静态跟踪两种,通过软件动态破译以后,利用改革中程序调试工具对于软件尽心跟踪,对于用户的隐私及信息安全都构成了威胁。
3计算机软件安全漏洞检测技术
鉴于计算机软件安全漏洞给用户带来的巨大威胁,对于安全漏洞的检测和修复就显得尤为重要了。
目前对于计算机软件安全漏洞的检测,主要分为动态检测技术和静态检测技术两种。
3.1动态检测技术
动态检测技术是通过不断的修改目标程度的源代码,或者是二进制代码来保证软件运行的保密性。
以此来达到软件安全运行的目的,动态检测技术又可以分为非执行堆与数据技术、非执行栈技术、内存映射技术、安全共享库技术、沙箱技术和程序解释技术。
3.1.1非执行堆与数据技术
非执行堆与数据技术是采用禁止执行和阻止内存中的恶意代码来祈祷检测作用的,该检测技术的缺点是其兼容性相对较低,并且对于修改函数指针、函数参数没有办法检测和预防。
3.1.2内存映射技术
内存映射技术是通过映射代码页技术,将代码页映射到随机的地址,给入侵者带来的巨大困难,内存映射技术在使用时需要对系统内核进行修改,不然就无法检测新代码的攻击。
3.1.3安全共享库技术
安全共享库技术可以对安全函数进行检测和拦截,虽然不会造成兼容的问题,但是对于本地变量、代码段数据和数据段溢出这一类的攻击,都无法实施有效的保护。
3.1.4沙箱技术
沙箱技术是通过限制进程访问来对攻击行为进行预防的。
其资源访问的设定不涉及操作系统内核,主要是调用系统中应用,不存在兼容问题。
3.2静态检测技术
静态检测技术是通过分析程序,通过应用程序中的二进制代码进行分析的一种检测技术。
虽然不能够找到全部的漏洞,有时也存在误报的情况,但是其不需要运行软件的优点,让静态检测技术的方便度大大提高。
计算机软件漏洞的静态检测方式主要包含元编译技术、变异语技术、词法检测技术、程序评注检测技术、约束解算器技术。
3.2.1元编译技术
元编译技术主要是通过编译器来进行检测,误报率较低,不会更新语言特性。
其工作原理是将程序的安全属性稻作轻量级编译器进行扩展,然后根据所建立的模型执行。
3.2.2变异语技术
变异鱼技术是通过对指针算术运算、不安全的类型转换等方式来对软件源代码和二进制代码进行检测的一种技术手段,这种检测手段的错误产生的越多,就意味着编写的程序越可靠。
3.2.3词法检测技术
词法检测技术是对源代码中C库函数和系统进行调用,缺点是容易产生误报的情况。
3.2.4程序评注技术
程序评注技术不存在兼容问题,并且以注释的情况出现,代码不会增加新的语言。
通过评注的信息来分析漏洞的根源。
3.2.5约束解算器技术
约束解算器对源程序没有评价,其误报产生较多,工作原理是利用约束对目标程序中特定的一些属性直接通过建立模型的方式来进行分析。
3.3其他检测技术
计算机软件漏洞检测也同样存在一些其他的检测技术,比如开放源代码,通过源代码的广泛发布,让人们对软件进行观察阅读,从中找出安全漏洞。
测试库检测技术可以通过对内存操作函数的审查,来发现和检测软件中动态性内存错误,通过对内存块做标记,来检测内存操作系统是否正确。
栈保护的编译器扩展技术,这种技术是对编译器进行扩展,从保护栈中找到地址,在运行中需要对原始程序进行编译,所涉及到的范围较广,所要付出的代价也较大。
4计算机软件安全漏洞检测注意事项
计算机软件安全漏洞检测实际上是对计算机上的软件进行一个动态的检测过程,在进行计算机软件安全漏洞检测的过程中应该注意以下几个问题。
4.1制定合理的检测方案
对于计算机进行软件安全漏洞检测之前,要充分的掌握计算机软件的特性和特点,根据计算机软件的的具体情况来选择合理的安全检测方法,并且依据该方法制定出合理的检测方案,目的是确保在安全检测进行后能够切实的达到既定的目标。
对于参与漏洞检测的人员也有一定的要求,要求检测人员应该熟悉并且掌握该软件的特点,进行漏洞安全监测时,有相关技术任何的配合和适当的检测方法运用,才能够确保计算机软件的检测能够达到最佳效果。
4.2对所要检测内容进行全面分析
计算机的内部程序比较繁琐,并且富含内容较多,因此在进行计算机安全检测的过程中要注意对于检测环境进行详细的分析,针对要检测的内容进行有效全面的分析,可以使接下来的检测工作有的放矢。
并且有助于即使的调整检测方案,
寻找出最适宜的检测方法。
软件的不同级别也要加强对分析技术的合理选择,对于结果的准确性和公正性大有裨益。
5结语
计算机遭到破坏的一个根本原因就是本身存在安全漏洞隐患,通过有效的漏洞检测手段来提高计算机本身的安全系数,从而达到电子信息安全系数的提高,具有重要意义。
计算机软件漏洞已经是计算机用户们面临的一个重要难题,也是计算机系统遭到破坏的源头,通过使用静态检测方法和动态检测方法来检测软件当中的漏洞,可以有效的防止入侵者,从而保证用户计算机和个人信息的安全。
参考文献:
[1]郑德贤. 浅谈计算机软件技术的发展与应用领域[J]. 电子世界,2014,08:100.
[2]高妍. 计算机软件安全漏洞检测技术与应用[J]. 计算机光盘软件与应用,2014,04:172-173.
[3]唐融. 论计算机软件安全检测存在的问题及方法[J]. 电子技术与软件工程,2014,05:79.
[4]孙海松. 关于计算机软件安全检测存在问题及措施的研究[J]. 网友世界,2014,04:1-2.
[5]李克锋. 计算机软件中安全漏洞检测技术及其应用[J]. 电子技术与软件工程,2014,27:230.。