贺向阳
(曲阜师范大学,山东 日照 276826)
计算机软件安全漏洞检测技术应用研究
贺向阳
(曲阜师范大学,山东 日照 276826)
随着社会经济的不断发展与进步,科学技术的不断改革与创新,计算机行业发展得到了质的飞跃。软件安全漏洞检测技术作为计算机安全运行过程的重中之重,是一个必不可缺的关键环节,直接关系到计算机用户信息数据的安全性。因此,为了保障信息系统的安全可靠性,就必须采取有效的信息安全防范措施。文章将进一步对计算机软件安全漏洞检测技术应用展开分析与探讨。
计算机软件;安全漏洞;检测技术;实践应用
当前是一个科技创新的时代,计算机行业发展要与时俱进。人们的日常工作生活与计算机存在着密不可分的联系,越来越多人开始高度关注和重视计算机的信息安全问题。由于受到网络环境复杂、系统漏洞以及外界黑客攻击等因素的影响,计算机信息系统无时无刻不面临着威胁。因此,计算机行业相关技术人员要积极展开对计算机软件安全漏洞检测技术的研究应用,要积极创新漏洞处理方法,确保广大计算机用户信息数据的安全性,维护用户切身的实际利益,促进整个行业和谐稳定的发展。
1.1计算机软件安全漏洞的主要表现形式及性质
计算机在安全运行过程中容易受到安全漏洞的威胁影响,造成信息系统的不安全性,计算机软件出现安全漏洞主要是由于软件开发人员错误操作。当前计算机软件漏洞的主要表现形式包括了两种:一种是常见的安全漏洞,该漏洞虽然不会对用户计算机软件或者系统造成巨大的威胁,然而一旦计算机遭到网络黑客的攻克,就会导致计算机系统内恶意执行代码,从而形成了系统内信息数据混乱的局面,另一种则是功能性漏洞,该漏洞会明显降低计算机系统的运行效率,用户无法体验到高效的系统运行服务水平[1]。
当前计算机软件安全漏洞的性质涵盖了4点:(1)计算机相关工作人员在实际编程过程中产生部分逻辑性的错误,致使计算机系统出现安全漏洞;(2)基于复杂多变的计算机网络环境影响,在多种多样的软硬件中,相同设备的不同版本倘若设置不同,就会造成安全漏洞的出现;(3)相关工作人员在计算机数据运算或者处理中由于不规范操作,导致逻辑性错误的发生;(4)在漫长时间的推移下,陈旧的计算机漏洞虽然会被安全软件不断修复,然而会源源不断产生更新的安全漏洞,威胁到计算机用户的信息安全。
1.2易被忽视的计算机安全软件漏洞
当前容易被工作人员忽视掉的计算机软件安全漏洞主要包括了以下几种:(1)JBOSS应用服务器,在各种版本中服务器会存在着不同的漏洞;(2)Geronimo 2.0,此种漏洞的内容包括了广大用户的计算机系统身份识别以及密码,网络黑客能够通过应用该漏洞实现对计算机系统插入恶意代码,完成对计算机的非法访问目的;(3)LIBTIFF开源软件库;(4)Net-SNMP协议文件中存在的安全漏洞;(5)ZLIB中存在的安全漏洞,其在计算机安全软件中的作用是为了帮助用户进行数据压缩,然而因为它容易发生不完整代码指代的现象,从而造成大量漏洞的产生。为了有效防范这些恶意黑客的供给,广大计算机用户通常会选择为计算机安装上杀毒软件和防火墙。例如人们常用的360安全软件、瑞星防火墙以及金山毒霸等,这些软件往往只能够应付一些简单的安全漏洞,对于整个通信网络安全却起不到重大作用[2]。
计算机行业要想不断提高软件安全漏洞的检测效率,工作人员就必须努力实现漏洞检测的自动化创新发展,计算机行业普遍应用的漏洞检测技术主要涵盖了两大类,一类是动态检测技术,另一类则是静态检测技术。技术人员利用动态检测工具相对来说较为简单方便,容易在短时间内发现部分安全漏洞,但是深度发掘能力有限,无法有效找出隐藏较深的软件安全漏洞。静态漏洞分析技术本质是通过对计算机系统代码进行程序分析,从而及时发现系统内的种种安全漏洞。比如,计算机的缓冲区溢出、竞争条件以及非法指针引用等。这两种安全漏洞检测技术相比较而言,静态分析技术更加适用于深度漏洞的检测工作。
2.1安全漏洞动态检测技术
技术人员通过利用动态检测工具,能够在不改变计算机源代码甚至是二进制代码的状况下实现对各种程序的安全检测工作。动态检测技术的应用主要是通过修改进程的运行环境来完成,应用动态检测技术在一定条件下会给计算机软件带来新的安全隐患,如果被检测过的计算机软件存在安全隐患,会严重影响到计算机用户的服务体验。此外,计算机软件安全漏洞动态检测技术在一定程度上自身是存在安全隐患的[3]。
2.1.1非执行栈
检测技术人员要想避免栈攻击事件的频繁发生,最为直接有力的方法就是让栈无法有效找到工作对象。在这种情况下就算是网络黑客在栈中插入了恶意代码,然而栈无法找到工作,就有效防范控制了一些黑客的攻击。非执行栈的主要弊端在于它需要工作人员在计算机操作层进行参数数据的设置修改,如果技术人员设置发生错误会严重影响到计算机系统的性能,大大降低系统的运作质量。与此同时,倘若计算机中一个程序不仅有栈溢出了漏洞,还存在堆溢出了漏洞,这将会导致严重威胁问题的出现。相关工作人员在应用该项技术时,所要付出的代价就是要在计算机操作系统内核中加入一个较大的改变,即将栈页成功标记为不可执行。
2.1.2非执行堆与数据
非执行堆作为计算机程序在运行时动态分配内存的区域,程序在编译时,数据段就已经初始化完毕了,倘若计算机的某段代码无法被数据段和堆执行,会导致网络黑客强行插入恶意代码,从而造成程序无法正常稳定地运行。工作人员通过将此种技术与非执行栈技术有效融合在一起,能够有效发挥更加全面的作用,确保计算机不会受到恶意黑客的攻击。然而,由于非执行堆与数据技术需要对计算机内核进行大量的修改工作,这样一来给技术人员带来了沉重的工作任务量,企业所要付出的代价将比非执行栈技术还要更多。不过当前行业中存在许多应用实例能够借鉴,反面说明了非执行堆与数据技术还是能够被用来对漏洞进行检测工作的。
2.1.3内存映射
存在一部分的网络黑客会采取使用NULL结尾的字符串去覆盖内存来完成自己的攻击目标。计算机软件技术人员通过有效应用内存映射技术,可以将代码页准确映射到任意的网络地址,这样能够最大限度地增大网络黑客攻击计算机的难度,黑客很可能在经过大量计算后,却无法找出他们所需要的地质。技术人员在实践应用内存映射技术过程中,也需要对计算机的操作系统内核进行修改工作,这样才能促使操作系统能够将代码页映射到较低的内存空间。因为在程序链接阶段二进制地址已经被确定好了,所以,内存映射技术的应用无需对代码进行修改,但是需要重新链接[4]。
2.1.4安全共享库
软件开发人员在设计C和C++开始就存在众多函数存在不安全性,因此会出现较多计算机程序在应用C和C++时会产生大量的软件安全漏洞。软件开发人员通过利用安全共享库技术能够依靠动态链接技术在计算机程序运行过程中避免调动不安全的函数,同时对全体函数的参数进行科学检测。安全共享库技术被广泛地应用在Windows操作系统和UNIX操作系统中。
2.1.5沙箱
沙箱检测技术的原理是通过限制访问去防范软件安全漏洞攻击。技术人员要想最大化发挥出沙箱检测技术的作用,就必须做好定义策略的全面性工作。如果技术人员采用科学严格的定义策略,能够确保计算机程序的安全性,不会受到外界黑客的供给。倘若网络黑客是通过去更改设置本地变量来实现攻击,那么沙箱检测技术就无法有效起到防范作用了。如果技术人员采用了过于严格的策略,在一定程度上会限制了程序的合法行为,从而造成程序无法正常使用。此外,系统调用函数的审查也会衍生一些其他的安全问题。
2.1.6程序解释
程序解释技术的应用原理是在计算机程序成功运行后对该程序进行检测工作。检测技术人员在运用该项技术过程中不需要对操作系统的内核和程序代码进行修改。第一步要合理设置一个崭新的启动代码,重新将其链接到所检测的应用程序,接着使新的启动代码去调用动态优化的程序解释框架。倘若工作人员设置了较为严格的安全检测策略,那么几乎全部的已知改变程序控制流程或者修改危险函数参数攻击均能够被检测到,同时采取有效的防范控制措施,避免造成严重的损失。
2.2静态检测技术
静态分析作为计算机软件安全漏洞静态检测最开始的方法,因为其检验方式过于注重浅层,所以,技术人员在这几年明显加强了对其的创新研究,从而使静态检测技术的内容得到了完善。变得更加多样化。就比如,程序检验的实质是指通过使用检验方法去检验出计算机软件系统的程序是否满足于计算机的需求,尤其是对于安全上的相关要求,然后是对程序中的安全漏洞存在与否进行科学的检验和判定。静态检测技术更多的关注是对于计算机软件系统程序的内部特点,静态检测的具体方法特点与检测漏洞的特点之间存在着密不可分的联系,为了方便将计算机软件安全漏洞进行科学划分,具体分为内存型漏洞与安全型漏洞两种。
静态检测技术实质是指通过采用程序分析技术去分析应用程序的源代码或者二进制代码的一种科学方法。计算机软件安全漏洞检测人员应用该项技术最大的优势在于,工作过程较为简单方便,无需启动运行计算机软件,有效避免软件出现其他的安全漏洞。
2.2.1词法分析
词法分析是作为静态分析技术最早的一种检测方法,它仅仅能够对多程序进行语法上的检查。技术人员在应用词法分析技术时,需要将程序科学分为一个个片段,通过将各个片段与“嫌疑数据库”中的数据进行合理地比较分析和判断。由于当前词法分析技术仅仅只可以检测一些已知存在的固定漏洞代码,其中漏报率偏高,因此不被计算机行业所推广应用。
2.2.2类型推导
类型推导技术的应用原理是在自动推导程序中变量和函数的类型去判断出变量与函数的实际访问是否满足标准规则。此种安全漏洞检测技术适用于控制流无关的分析。
2.2.3规则检测
安全规则描述的是计算机程序自身的安全性。由于计算机程序自身是存在一些编程规则的,也就是一些通用的安全规则,被叫作漏洞模式。例如程序在root权限下要防止exec的调用。计算机软件安全检测时通过把这些通过规则以特定的语法进行描述,然后由规则处理器接收后,并且将其成功转化为分析器所能接受的内部表示,最后技术人员再对程序行为进行科学的对比检测分析[5]。
2.2.4模型检测
早在20世纪80年代初,模型检测技术就被提出了,模型检测技术主要是通过显式状态搜索或者隐式不动点计算来验证有穷状态并发系统的模态/命题性质。软件安全漏洞检测技术人员在实践应用该项技术过程中,通过对有限状态的程序构造或者抽象模型进行建模,根据模型去对比分析验证出计算机软件的特性。技术人员通过对计算机软件的某些执行点或者某个片段进行有效建模来进行对比。这样能够避免计算机软件的复杂性,在模型建设对比下,工作人员能够把那些用途和功能相似的软件进行安全检测工作,从而保障计算机软件的安全性能提升一个档次。
2.2.5定理证明
定理证明检测技术比上述静态检测技术都更加严格,技术人员在采用该项检测技术时必须运用各种形式去验证被检测程序抽象公式是否为真。具体的判别方法完全决定于实际公式的形式。例如不等式的舍取:第一步由舍取式构造成一个图样,舍取式中的各个条件对应图中的各个节点,第二步使用给出的等式将所有对应的顶点进行合并操作,在对应顶点合并过程中工作人员要对舍取式中的不等式进行认真检查工作。倘若发现存在不成立,就证明了这个舍取式不能够满足条件。
对于计算机软件安全漏洞的静态检测技术来说,它仅仅只能够帮助工作人员检验出当前已经存在的漏洞类别,由于静态检测技术对于一般漏洞没有描述标准。因此,对于那些在计算机中未形成的安全漏洞,当前静态检测技术是无法有效进行检查判定的。另一方面,对于当前已经存在于计算机中的软件安全漏洞来说,不存在有效的检测方法对其进行全面地覆盖。静态检测技术最大的弊端在于它的性能不完善,由于静态检测的空间、时间以及精准度等不同条件之间是一种正比例的关系,因此要想有效提升检测技术人员对于安全漏洞的检测质量和效率,就需要企业不断加大对其运行成本的资金投入力度。
3.1防范控制竞争条件的安全漏洞
对于那些因为竞争条件而产生的安全漏洞,相关工作人员要合理采取有效的预防控制方法,通过将这些形成竞争的编码应用原子化进行规范操作。众所周知,计算机执行单位中最小的就是编码,在计算机程序正常运行时,不会发生任何状况对其产生影响。原子化操作实质是指通过采用锁定的方法,利用预防控制某种特定状态改变而形成的问题,做到间接调用使用文件名系统的目的,从而将使用的文件或者句柄进行有效描述。
3.2预防缓冲区的安全漏洞
软件技术人员通过利用软件程序中比较危险的函数检查去预防缓冲区的漏洞溢出,这样能够使当前安全软件版本成功替代掉不安全的版本。就比如,通过安装extern char*strncat去代替原本的extern char*strcat等[6]。
3.3防范控制计算机系统中随机产生的安全漏洞
相关工作人员在对计算机进行随机漏洞预防工作时,必须优先应用市场上性能优秀的随机发生设备。由于随机发生设备自身就携带了密码算法,这样能够确保随机数流的安全可靠性,就算是用户的计算机软件受到了网络黑客侵袭,计算机的算法细节被完全识破,也不会让他们有效获取到原有的数据流,从而有效避免造成计算机用户的经济损失。
3.4防范控制格式化字符串的安全漏洞
软件开发技术人员要善于利用严格的预防策略,通过在数码中直接采用格式常量,这样能够防止为黑客攻击者留下任何创建格式串的可能。通常情况下,不定参数的个数函数均会产生格式化字符串的安全漏洞,工作人员在使用此类函数时,必须确保任何一个参数的个数以及均衡性能。与此同时,工作人员通过使用Windows操作系统下属的窗口进行数据输出工作,也能够最大化降低安全漏洞的危害。
综上所述,在整个计算机行业的迅速发展下,人们对于信息安全越来越重视和关注,无论是在生活中,还是在学习工作中,人们无时无刻不在与计算机打交道,计算机信息数据安全性是至关重要的。计算机软件安全漏洞的问题主要来自于两个方面,一方面是软件开发设计人员在设计过程中造成软件自带的错误,另一方面是软件遭受到网络黑客攻击留下的安全漏洞。安全漏洞检测技术人员必须从根源上发现问题,不断提高软件的安全性,要加强对软件安全检测防范技术的研究应用,有效避免计算机信息系统遭到黑客的非法入侵,导致信息数据暴露,使计算机用户遭受损失。
[1]齐燕.浅谈计算机软件中安全漏洞检测技术的应用[J].信息与电脑(理论版),2010(10):35-38.
[2]李永华,窦春铁.谈计算机安全漏洞动态检测原理方法与实践[J].数字技术与应用,2013(3):112-113.
[3]马海涛.计算机软件安全漏洞原理及防范方法 [J]. 科协论坛(下半月),2013(6):12-16.
[4]薛磊磊.谈计算机安全漏洞动态检测的原理方法与实践[J].科技促进发展(应用版),2012(10):75-78.
[5]蒋廷耀,王训宇,关国翔,等.基于EAI和AOP的软件安全测试及应用研究[J].计算机科学,2013(4):42-45.
[6]JOHNSON R, WAGNER D.Finding user/kernel pointer bugs with type inference[C]. San Diego: 2012 USENIX Security Symposium,2012.
Research on application of computer software security vulnerability detection technology
He Xiangyang
(Qufu Normal University, Rizhao 276826, China)
With the continuous development and progress of social economy and the continuous reform and innovation of science and technology, the development of computer industry has got a qualitative leap. As the most important part of computer security, software security vulnerability detection technology is an indispensable key link, which directly relates to the security of computer user information data. Therefore, in order to ensure security and reliability of information systems, we must take effective measures to prevent information security. This paper analyze and explore further on the application of computer software security vulnerability detection technology.
computer software; security vulnerability; detection technology; practical application
贺向阳(1993— ),男,陕西西安,本科。