计算机软件安全漏洞检测技术探究

更新时间:2022-11-04 作者:用户投稿原创标记本站原创 点赞:8333 浏览:32286

摘 要:随着现代化信息网络的不断发展,电子商务已经成为企业市场的主要支撑点.计算机软件的发展日趋强大,软件的安全是计算机网络通信安全的关键之一,因此,计算机软件安全漏洞技术也就显得十分重要.必须加强软件自身安全检测及预防,从而有效阻止非法侵入和攻击.本文将对计算机软件安全漏洞检测技术进行探究.

关 键 词:计算机软件;安全漏洞;检测

中图分类号:TP393.08文献标识码:A文章编号:1007-9599(2012)12-0000-02

一、引言

计算机的广泛应用加速了信息全球化的进程,当今商务活动已经融入到计算机中,企业以电子商务支撑为主,因此,信息安全就显得越来越重要,必须对信息安全严格把关.计算机软件受到的大部分不法侵入和攻击都是从其漏洞来进入,这些弱点和缺陷给信息安全带来了巨大的威胁,利用技术也不能从本质上解决软件漏洞所导致的安全隐患,反而会带来大量的问题.因此,必须加强研究计算机安全漏洞的检测方法,针对所检测的漏洞来提高软件的安全性,从而将损失降至最低.

二、计算机软件所面临的威胁

(一)非法复制

计算机软件是一项知识密集的产品,需要投入大量的人力物力进行开发,所付出的开发成本通常是硬件价值的好几倍,甚至好几百倍.然而,计算机软件却是及其容易复制的产品,给产品产权造成了严重的威胁.近年来,全球每年非法盗用软件版权损失超过130亿美元,且损失量逐年提升,尤其是在我国这样经济发展迅速但是软件管理落后的巨型市场中,非法复制所带来的税收、法律等诸多问题造成了严重的社会影响.

(二)软件质量问题

由于一些原因,软件开发中都有不可避免的问题和缺陷,通常将软件质量的缺陷称为漏洞,这些漏洞对计算机软件的安全系统有着严重的威胁.近年来,由软件漏洞引起的安全事件逐步增加,一些致力于找各种软件漏洞的高手通常都能发现软件的安全漏洞问题,从而利用这些漏洞对计算机用户进行攻击,给用户造成了不便.


(三)软件跟踪

计算机软件一旦开发出来,总有人对软件进行动态破译,利用各种程序调试工具对软件程序进行跟踪、窃取软件源码,以及取消加密功能等.当前软件跟踪技术通过利用系统所提供的单步中断和断电中断的功能实现,可将其分为动态跟踪和静态跟踪两种.

三、计算机软件的安全漏洞

计算机安全漏洞是系统的特性,攻击者或攻击程序利用这种脆弱的特性,通过已授权的方式来获取未授权的访问,从而对系统造成一定损害,即使现在大多人在计算机中安装了反病毒软件或防火墙,但是对于防止计算机软件安全漏洞的破坏没有多大的用处,甚至有更多的问题出现.

在目前看来,有五大安全漏洞容易被人们忽略,即JBOSS应用怎么写作器、LIBTIFF开源软件库、NET-SNMP和ZLIB.Geronimo2.0这个安全漏洞是让远程非法侵入者绕过身份识别,通过插入恶意软件代码来获取访问权限;JBOSS怎么写作器3.2.4至4.0.5的版本中,有个目录遍历的安全漏洞;LIBTIFF开源软件库是读写标签图像文件格式的文件;NET-SNMP的安全漏洞存在于NET或SNMP中的协议文件里;ZLIB是数据压缩软件库,由于库中存在的代码解释一个长度大于1,从而导致安全漏洞.

四、计算机软件安全漏洞检测技术

对于计算机软件安全漏洞必须采取一定的检测技术来加以预防,主要有静态检测技术和动态监检测技术两种方法.

计算机软件安全漏洞静态检测技术

静态检测技术主要是通过对程序的分析,通过应用程序的二进制代码进行分析的技术方法.当然,完全检测的方法基本上是不存在的,即时可以检测到大量漏洞,也不会完全找到,也许从中存在许多误报.静态检测技术最大的优点就是软件不需要运行,检测十分方便,不过需要专业人员核对、整理,并进行分析和处理.计算机软件安全漏洞的静态检测方式主要有元编译技术、变异语技术、词法检测技术、程序评注技术、约束解算器技术和类型推断技术.

1.元编译技术

元编译技术是一种利用编译器的简单技术,其误报率低,而且对于语言特性的扩展不会更新.元编译技术是将程序的安全属性当做轻量级编译器扩展,根据其建立模型执行.利用这类技术可以自动对所有检验的代码安全性进行推测和判断,从而对相应扩展进行编写.

2.变异语技术

变异语技术是通过对指针算术运算、不安全的类型转换、goto的无规律跳转、setjmp与longjmp等不安全的操作进行限制,一般采用C或C++的安全程序变异技术.衡量静态检测的标准包括漏报率及误报率,静态检测对软件的源代码及二进制代码进行检测,所以利用静态检测的错误越多,编写的程序就越可靠.

3.词法检测技术

词法检测技术较为简单,只是对源代码中不安全C库函数和系统进行调用,容易产生大量误报,其主要是对函数名进行辨别,没有兼容性困难.

4.程序评注技术

程序评注技术在兼容性上没有任何问题,它是以注释的形式表现,不会给代码增加新的语言.利用评注信息来做静态分析,并从中找出漏洞隐患.

5.约束解算器技术

约束解算器技术对源程序无需做任何评价,但是会产生大量误报,从而需要工作人员进行核算分析.该技术是利用约束对目标程序特定属性直接建立模型,之后采用静态分析进行解算约束.

6.类型推断技术

类型推断技术很适合对应用较大的程序进行检测,技术相对高效,不过也存在兼容性问题.通过对一种新型修饰的利用,将几种特别指针或用户输入等数据来增加安全约束,以达到漏洞检测预防的目的.

动态检测技术

动态检测技术主要是通过对修改运行环境进行分析来提高程序的保密性,是在不修改目标程序的源代码或二进制代码的前提下,对执行程序进行漏洞检测,从而达到软件安全的目的.动态检测技术可以分为:非执行堆与数据技术、非执行栈技术、内存映射技术、安全共享库技术、沙箱技术和程序解释技术.