浅谈关于计算机软件安全漏洞检测技术

来源 :电脑迷 | 被引量 : 0次 | 上传用户:lostcity_online
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要 随着现代化科学技术的不断发展,电子商务当前己经成为企业市场的主要支撑点。计算机软件的发展日趋强大,软件中的安全缺陷与漏洞也在不断增多,随着使用范围的扩大,软件的安全性问题也越来越多,软件的安全则试保证了计算机和软件的安全性,降低了计算机的风险,并且对计算机软件中的风险进行有效的避免与更正。本文就计算机软件安全漏洞检测方面进行了分析。
  关键词 计算机软件 安全漏洞 检测
  中图分类号:TP311.5 文献标识码:A
  1 计算机软件所面临的威胁
  1.1 非法复制
  计算机软件是一项知识密集的产品,需要投入大量的人力物力进行开发,所付出的开发成本通常是硬件价值的好几倍,甚至好几百倍。然而,计算机软件却是及其容易复制的产品,给产品产权造成了严重的威胁。近年来,全球每年非法盗用软件版权损失超过140亿美元,且损失量逐年提升,尤其是在我国这样经济发展迅速但是软件管理落后的巨型市场中,非法复制所带来的税收、法律等诸多问题造成了严重的社会影响。
  1.2 软件质量问题
  由于一些原因,软件开发中都有不可避免的问题和缺陷,通常将软件质量的缺陷称为漏洞,这些漏洞对计算机软件的安全系统有着严重的威胁。近年来,由软件漏洞引起的安全事件逐步增加,一些致力于找各种软件漏洞的高手通常都能发现软件的安全漏洞问题,从而利用这些漏洞对计算机用户进行攻击,给用户造成了不便。
  1.3 软件跟踪
  计算机软件一旦开发出来,总有人对软件进行动态破译,利用各种程序调试工具对软件程序进行跟踪、窃取软件源码,以及取消加密功能等。当前软件跟踪技术通过利用系统所提供的单步中断和断电中断的功能实现,可将其分为动态跟踪和静态跟踪两种。
  2 计算机软件的安全漏洞
  计算机安全漏洞是系统的特性,攻击者或攻击程序利用这种脆弱的特性,通过己授权的方式来获取未授权的访问,从而对系统造成一定损害,即使现在大多人在计算机中安装了反病毒软件或防火墙,但是对于防止计算机软件安全漏洞的破坏没有多大的用处,甚至有更多的问题出现。
  在目前看来,有五大安全漏洞容易被人们忽略,即Geronimo、JBOSS应用服务器、LIBTIFF开源软件库、NET-SNMP和ZLIB 。Geronimo2.0这个安全漏洞是让远程非法侵入者绕过身份识别,通过插入恶意软件代码来获取访问权限;JBOSS服务器3.2.4至4.0.5的版本中,有个目录遍历的安全漏洞;LIBTIFF开源软件库是读写标签图像文件格式的文件;NET-SNMP的安全漏洞存在于NET或SNMP中的协议文件里;ZLIB是数据压缩软件库,由于库中存在的代码解释一个长度大于1,从而导致安全漏洞。
  3 计算机软件安全漏洞检测技术
  对于计算机软件安全漏洞必须采取一定的检测技术来加以预防,主要有静态检测技术和动态监检测技术两种方法。
  3.1 计算机软件安全漏洞静态检测技术
  静态检测技术主要是通过对程序的分析,通过应用程序的二进制代码进行分析的技术方法。当然,完全检测的方法基本上是不存在的,即时可以检测到大量漏洞,也不会完全找到,也许从中存在许多误报。静态检测技术最大的优点就是软件不需要运行,检测十分方便,不过需要专业人员核对、整理,并进行分析和处理。计算机软件安全漏洞的静态检测方式主要有元编译技术、变异语技术、词法检测技术、程序评注技术、约束解算器技术和类型推断技术。
  3.1.1 元编译技术
  元编译技术是一种利用编译器的简单技术,其误报率低,而且对于语言特性的扩展不会更新。元编译技术是将程序的安全属性当做轻量级编译器扩展,根据其建立模型执行。利用这类技术可以自动对所有检验的代码安全性进行推测和判断,从而对相应扩展进行编写。
  3.1.2 变异语技术
  变异语技术是通过对指针算术运算、不安全的类型转换、goto的无规律跳转、setjmp与longjmp等不安全的操作进行限制,一般采用C或C++的安全程序变异技术。衡量静态检测的标准包括漏报率及误报率,静态检测对软件的源代码及二进制代码进行检测,所以利用静态检测的错误越多,编写的程序就越可靠。
  3.1.3 词法检测技术
  词法检测技术较为简单,只是对源代码中不安全C库函数和系统进行调用,容易产生大量误报,其主要是对函数名进行辨别,没有兼容性困难。
  3.1.4 程序评注技术
  程序评注技术在兼容性上没有任何问题,它是以注释的形式表现,不会给代码增加新的语言。利用评注信息来做静态分析,并从中找出漏洞隐患。
  3.1.5 约束解算器技术
  约束解算器技术对源程序无需做任何评价,但是会产生大量误报,从而需要工作人员进行核算分析。该技术是利用约束对目标程序特定属性直接建立模型,之后采用静态分析进行解算约束。
  3.2 動态检测技术
  动态检测技术主要是通过对修改运行环境进行分析来提高程序的保密性,是在不修改目标程序的源代码或二进制代码的前提下,对执行程序进行漏洞检测,从而达到软件安全的目的。动态检测技术可以分为:非执行堆与数据技术、非执行栈技术、内存映射技术、安全共享库技术、沙箱技术和程序解释技术。
  3.2.1 非执行堆与数据技术
  该技术是在软件运行不正常的情况下采取禁止执行行为,从而检测阻止内存中的恶意代码,但是,对于检测预防和修改函数指针及函数参数没有办法做到,其兼容性相对较低。
  3.2.2 内存映射技术
  该技术通过对映射代码页的使用,让入侵者难以通过NULL结尾字符串到达低端内存区域,同时,由于将代码页映射到随机的地址,给入侵者带来了很大困难。此项技术需要对操作系统内核进行修改,无法检测和阻止新代码的攻击。
  3.2.3 安全共享库技术
  该技术是以动态链接技术为依据,通过对不安全函数的检测和拦截,来达到阻止其调用的目的。安全共享库技术不会造成兼容问题,但是对于本地变量、代码段数据和数据段溢出的攻击无法实施防护。
  3.2.4 沙箱技术
  沙箱技术是通过对进程访问资源的限制来达到对某种攻击行为的预防目的,将资源访问策略设定在应用程序中,策略的安全不需要对操作系统内核及应用程序作任何改变。沙箱技术主要在系统调用中应用,具有全而性,而且没有兼容问题。
  4 计算机软件安全漏洞的防治方法
  4.1 防止竞争条件漏洞
  对于竞争条件漏洞的防治方式要将产生竞争的代码实行原子化操作。代码是执行的最小单位,在执行程序操作的时候,不会有任何干扰来阻止其执行。原子化的体现就是采用锁定的方式,通过防范TOCTOU问题,做到避免直接对使用的文件名系统进行调用,从而需要将使用文件句柄或者文件进行描述。
  4.2 防止缓冲区溢出漏洞
  通过对程序中危险函数的严格检查来防止缓冲区溢出,使用安全版本来替换不安全版本,比如使用strncat来对strcat进行替换等等。
  4.3 防止随机数漏洞
  对随机数漏洞的防范必须要使用较好的随机数发生器,好的随机数发生器自身就带有密码算法,从而为随机数流提供了安全,即使受到攻击,对全部算法的细节有所了解,也无法得到生成的数据流。
  4.4 格式化字符串的漏洞防范
  通过严密的防范,在代码中直接使用格式常量,不给攻击者留下任何构造格式串的机会。通常不定参数个数函数会产生格式化字符串漏洞函数,必须在使用这些函数之前,确保其参数及个数是均衡对应的。此外,通过在Windows下使用窗口输入输出数据也可以降低该漏洞所造成的安全威胁。
  5 结束语
  综上所述,计算机安全漏洞是计算机信息系统遭到破坏的根本源头,通过采取计算机软件动态检测技术和静态检测技术来检测并防止攻击者入侵,从而有效保障电子信息的安全。
其他文献
随着我国经济的快速发展和社会的不断变化,推进了科学技术不断发展,同时也促进了无缝钢管生产线的使用.无缝钢管生产线在很多方面都具有较大的优势,在实际使用过程中适应能力
目的 观察脉络膜黑色素瘤敷贴放射治疗(PRT)后黄斑区形态变化.方法 对临床确诊的48例脉络膜黑色素瘤患者的48只眼行125I PRT.患者肿瘤均未累及黄斑区.视力0.02~1.0,平均视力0.4±0.2.治疗前均行光相干断层扫描(OCT)检查,采用放射状6线扫描模式获取黄斑区形态图像.黄斑区形态表现为视网膜脱离者18只眼,占37.5%;视网膜色素上皮(RPE)改变12只眼,占25.0%;水肿、前
摘 要 本文从计算机的发展历程着手结合现代科学技术的发展现状从计算机计算机科学技术的专业性和智能性以及计算机科学技术的实用性两个大方面对现代计算机的发展做了总结,并以此为基础对未来计算机的发展做了总结性的展望。  关键词 计算机 发展历程 专业性 实用性  中图分类号:TP3 文献标识码:A  0 引言  在21世纪的今天计算机技术凭借其在信息社会中独特的基础地位吸引着整个社会的方方面面来为其进行
摘 要 随着计算机应用技术不断深入社会的各个角落,极大的改变了人类的生活生产方式。计算机和网络技术的发展,促进了信息化时代的到来。计算机应用为教育提供了一个开放式的平台,对于实现教育资源的共享和教育公平起了很大推动作用。本文从计算机应用的发展和现状分析计算机应用给教育带来的变化。  关键词 计算机应用 教育 现状 趋势  中图分类号:TP3 文献标识码:A  0 引言  计算机应用技术不断深入社会
摘 要 从计算机开始使用到现在的普遍应用,计算机技术无疑是当代发展最为迅速的科学技术。纵观整个计算机技术的发展历程,计算机技术和人类生活工作可谓是息息相关,贯穿了人类生活的每个方面。然而,随着计算机技术的迅速发展,人们对软件测试的要求也同步提高。软件测试主要是对软件的功能,设计和实现过程的一个评定,是发现软件故障,保证软件质量,提高软件可靠性的主要手段。因此,软件测试在软件开发中起着不可替代的作用
摘 要 随着计算机技术和网络技术的不断普及,人类社会已经开始步入计算机网络时代,随着信息技术的迅猛发展,计算机网络的应用已经深入到人们日常生活的每一个角落,涉及到社会的各个方面,其影响之广、普及之快是前所未有的。但是在计算机网络的日常使用中,我们经常会遇到网络中的某一节点由于线路老化、人为损坏等问题造成断路,而排查工作量又很大,于是应用于电脑硬件物理层的排查工具:电子寻线仪顺势而生,本文对其工作原
全球变暖对主要农作物产量影响的讨论由来已久.一方面,一些科学家认为,全球变暧及其造成的极端天气和水资源短缺会使农作物减产;另一方面,有研究表明全球变暖的罪魁祸首二氧
在信息化时代的今天,无数的信息充斥着我们的生活,在方便了我们生活的同时也增加了我们的信息负担。手机的更新也在很大程度上决定着手机软件的更新,在提倡以人为本的今天,更多的