- 相关推荐
计算机安全漏洞的动态检测
计算机安全漏洞的动态检测【1】
摘 要:随着国家经济的发展以及科学技术的提高,计算技术也开始不断得到普及。
计算机技术和网络技术在给人们提供了便利的同时,其自身的安全隐患也让人们的生活受到了困扰。
由此可见,需要建立相应有效的安全体系对计算机软件的安全漏洞进行检测和防护,防止不安全因素对计算机软件的损害。
本文就计算机安全漏洞动态检测技术进行了以下分析和探讨。
关键词:计算机;安全漏洞;动态检测
在计算机的组成中,软件是结构体系中十分重要的一个内容,软件的安全性在很大程度上也影响了软件的性能,从而影响了计算机的使用。
所谓计算机安全漏洞,就是计算机系统软件以及协议在实现过程中或者计算机系统安全策略存在的一些问题和缺陷。
在计算机软件中,安全漏洞的出现,会导致计算机系统受到入侵,对计算机的安全性造成严重影响。
如何对安全漏洞进行检测,并对漏洞进行修复,也是目前计算机信息安全领域中的一个难题。
1 计算机安全漏洞动态检测的概述
在计算机系统中,安全漏洞是计算机系统自身的一些缺陷和问题,这些缺陷和问题的出现,计算机系统也会因此受到侵袭和攻击。
这些安全漏洞大多与计算机软件的开发工作中,开发人员人为失误有关。
对于计算机安全漏洞,主要存在以下几个特点:
(1)软件的编程过程中,逻辑错误是常见的一个问题,大多是因为开发人员失误所致。
(2)在软件的数据处理过程中,比数值的计算中逻辑错误较为常见,相比中等程度模块,过大模块以及过小模块的错误率更高。
(3)计算机安全漏洞与系统环境存在十分密切的联系,不同的系统以及不同的软件设备和版本在安全漏洞的种类上也会不一样。
(4)计算机安全漏洞与时间的联系也十分密切,在时间的影响下,旧漏洞会逐渐得到修复,然而新的漏洞也会不断出现。
由此可见,计算机系统的安全漏洞情况将会长时间的存在,因此需要采取合理的措施对其进行控制和检测。
2 计算机安全漏洞动态检测技术
计算机安全漏洞动态检测技术主要是在源代码保持不变的情况下,对计算机程序缺陷进行检测,其对运行环境进程有所要求,因此需要对计算机运行环境进程进行修改。
在计算机安全漏洞动态检测技术上,主要存在以下几种技术:
2.1 非执行栈检测技术
在目前,攻击事件中,以栈为基础的攻击发生率日益增加。
这主要是因为计算机操作系统中,大多数的栈具有可执行性,另外栈存储着内部变量,这也使得攻击率大大增加,攻击方可以通过将恶意代码注入栈中,即可攻击对方计算机系统。
另外,攻击栈的技术目前较为完整,这也让栈成为了主要的攻击对象。
在对此类攻击的防范中,主要目标是让栈中的恶意代码得不到执行,从而防止栈受到攻击。
然而,这种防范方法要求对计算机的操作系统进行修改,加上栈出现不可执行的情况,计算机的自身性能也会受到影响。
对于一些存在栈以及堆溢出漏洞的程序,可以通过栈溢出从而是程序向攻击代码跳转,代码置于堆上,执行栈没有实际代码,而是堆中的执行代码。
非执行栈检测技术要求对计算机操作系统的内核进行修改,将栈页标设置为不可执行。
非执行栈检测技术仅可以检测栈攻击并对其进行组织,在检测的全面性上还不够完整。
攻击方如果将恶意代码的数据段注入栈中,非执行栈检测技术则会失效。
另外,这项技术在兼容性方面还存在一系列的问题。
2.2 非执行堆和数据检测
在堆中,因为程序运行动态分配过程中所存的区域,数据段已将其初始化,加上堆以及数据段在非执行时对计算机软件的运行存在影响,因此非执行堆和数据检测技术的发展也不断受到阻碍。
堆和数据段在不执行代码的情况下,攻击方的恶意代码也将不会被执行,同时将这种技术与非执行栈技术相互配合,能够实现对计算机安全漏洞的有效检测和保护。
然而,非执行堆以及数据检测技术在实施上要求对计算机内核进行大量修改。
然而,这项技术的可行性也得到了很多人的肯定,其能够检测和抵御所有在进程内存中注入的恶意代码攻击。
然而,这项技术在堆以及数据段代码的动态生成模式进行了改变,因此也让程序出现了不兼容的情况。
2.3 内存映射检测技术
一些攻击方可以利用NULL结尾字符串覆盖内存,从而对系统进行攻击。
对于这种情况,可以随机将代码页进行内存地址的映射,从而使这种依靠地址猜测的方法无效。
比如,在缓冲区的溢出漏洞中,攻击方一般要寻找内存的目标进程地址,并利用自身创造的数据覆盖该地址。
然而这种地址主要是系统自身计算所得出的,因此通过内存映射检测技术,将代码页进行随机地址映射,则会增加攻击方的难度。
然而对于内存映射检测技术,也需要修改系统内核,将系统的代码页在低内存的空间内映射。
对于内存映射检测技术,其能够检测和阻止内存地址跳转的攻击。
然而对于新代码注入和执行的攻击则无法进行检测。
另外,因低端内存大小受限,因此在代码页映射上,也无法实现所有代码页的低端内存映射。
2.4 安全共享库检测技术
对于计算机软件的安全漏洞,大多是因为不安全共享库使用所致,这是因为共享库内部存在大量不安全的函数,这种函数会对计算机系统造成严重影响。
安全共享库检测技术主要利用动态链接技术,并对程序运行过程中的不安全函数的使用进行拦截。
另外,安全共享库检测技术还能够评估内存的上限,从而防止数据在评估边界上写入。
此技术在开发和配置上较为简单,因此无需对程序进行修改。
从理论上看,安全共享库检测技术能够对标准库函数为基础的攻击进行检测和保护。
然而,由于其无法保证本地变量的安全,因此也使得数据段以及代码段数据溢出攻击得不到化解。
另外,安全共享库检测技术对于非标准库函数也没有能力。
唯一的优点是,其能够保证系统不会出现兼容性问题。
2.5 沙箱检测技术
沙箱检测技术主要是对进程访问的资源进行控制,从而对安全漏洞进行检测和防范。
在系统调用函数上,如果存在多种软件调用了系统,则可能是系统受到攻击所致。
在攻击之前,可以采用沙箱检测技术对该资源访问进行控制,从而使攻击得到化解。
沙箱检测技术对系统的内核以及应用程序无需进行修改,然而需要对安全检测对象程序的资源访问策略进行定义,定义工作较为复杂和麻烦。
此技术在检测上较为全面,能够有效对程序进行保护,然而对于重要本地变量改写方面,此技术无法发挥效用。
沙箱检测技术在兼容性上并不存在问题。
2.6 程序解释检测技术
程序解释检测技术是针对程序运行过程中的检查和监视的一项技术。
对于此技术而言,在性能消耗上要求较大,程序监视器在使用的过程中,虽然能够进行额外安全检测,但是其性能的消耗也十分巨大。
程序解释检测技术的内核以及程序代码无需进行改变,仅仅要求在程序中对新启动代码进行重新链接,在安全策略上较为全面,能够对各种危险函数参数变化以及程序控制流程修改等攻击进行检测和阻止。
3 结束语
计算机安全问题一直十分严峻,这也使得安全漏洞检测技术得以发展。
在对安全漏洞进行检测的过程中,需要对安全漏洞加以分析,运用安全漏洞检测技术,从而使计算机的安全性得到加强。
参考文献:
[1]彭炜.计算机安全漏洞动态检测研究[J].光盘技术,2009,2(4):16-17.
[2]冉崇善,周莹.软件设计中的安全漏洞动态检测技术分析[J].微计算机信息,2010,3(6):78-79.
[3]梁彬,侯看看,石文昌.一种基于安全状态跟踪检查的漏洞静态检测方法[J].计算机学报,2009,3(05):103-104.
[4]万绪江,班显秀,刘小东.网络安全的防御方法和可行性研究[J].电脑编程技巧与维护,2010,1(08):111-112.
[5]张迎,宁玉文,高东怀.高校网站信息安全威胁与对策探析[J].中国教育信息化,2010,1(09):142-143.
计算机安全漏洞的动态检测【2】
【摘 要】动态检测方法就是在不改变源代码甚至是二进制代码的情况下,对程序的弱点进行检测的方法,这类检测主要通过修改进程运行环境来实现。
动态检测方法主要有:非执行栈、非执行堆与数据、内存映射、安全共享库、沙箱和程序解释等。
【关键词】计算机;安全漏洞;动态检测
1.计算机安全动态检测技术探讨
1.1非执行栈技术
基于栈进行软件攻击的事件最近几年经常发生,原因就是很多操作系统的栈是可以写与执行的,而且内部变量尤其是数组变量都保存在栈中,攻击者向栈中注入恶意代码,然后想方设法来执行这段代码。
栈攻击技术的文档也比较全面,这从某种程度上加速了基于栈的攻击。
一个最直接的防范栈攻击的方法就是使得栈不能执行代码。
这样即使攻击者在栈中写入了恶意代码,这个恶意代码也不会被执行,在一定程度上防住了一些攻击者。
只是这个方法需要在操作系统层进行修改,同时,不可执行栈的技术涉及到的一个大问题就是性能问题。
此外,在既有栈溢出漏洞又有堆溢出漏洞的程序中,易出问题。
可以利用栈溢出使程序跳转至攻击代码,该代码是被放置在堆上。
没有实际执行栈中的代码,而是执行了堆中的代码。
该技术所付出的代价就是对操作系统内核引入一个微小的改变:把栈页标记为不可执行。
1.2非执行堆与数据技术
由于堆是程序运行时动态分配内存的区域,而数据段则是程序编译时就初始化好了的。
很长时期以来,由于担心非执行的堆与数据段会破坏软件的正常运行,所以该方法进展缓慢,最近几年才有些进展和文章。
如果堆和数据段都不能执行代码,攻击者注入其中的恶意代码将不能被执行。
这项技术和前面的非执行栈技术结合能起到更全面的作用,使得恶意代码彻底失去执行机会。
使用该技术所付出的代价要比非执行栈技术大一些,因为它对内核的修改要多一些。
现在已经有了大量的实例可以使用,这个技术还是可以接受的。
从全面性上来看,该技术对于几乎所有的利用把恶意代码注入进程内存中的攻击都可以检测并阻止。
但是,对于恶意修改函数指针和函数参数的攻击没有办法检测和防范。
该技术改变了传统程序在堆或数据段中动态生成代码的方式,会造成很多应用程序的不兼容性。
1.3内存映射技术
内存映射技术可以检测并阻止基于内存中地址跳转的攻击。
但它对于注入新代码并执行新代码的攻击不能检测和预防。
除此之外,因为低端内存是有大小限制的,想把所有的代码页都映射到低端内存在有些应用中是不可行的。
内存映射技术仅仅对那些依靠固定地址或使用高端地址的应用程序有影响。
而这样的应用程序并不多。
内存映射技术对性能的消耗也可以忽略,它仅仅是在程序装载的过程中工作,运行起来之后对程序没有任何影响。
1.4安全共享库技术
从理论上讲,安全共享库技术可以检测并防止所有的基于标准库函数的攻击。
但是它不能保护本地变量的安全,而且它也不能防止数据段和代码段数据的溢出攻击。
安全共享库技术对于非标准的库函数无能为力。
安全共享库技术不会造成任何兼容性问题,在标准库下运行正常的程序在安全共享库技术下面也同样运行良好。
安全共享库技术对于那些和安全没有关系的标准库中函数不做任何处理。
性能瓶颈主要在这些有安全弱点的函数上。
1.5沙箱技术
沙箱技术检测的全面性主要看定义的策略的全面性。
一个严格定义的策略可以更好的保护程序不受攻击。
但该技术对于通过改写关键的本地变量(例如用户的身份ID等)而修改程序逻辑流程的攻击束手无策。
沙箱技术依赖于安全策略。
它不会带来兼容性方面的问题。
但是一个过于严格的策略可能会限制应用程序的合法行为,最终导致程序不能使用。
而且对系统调用函数的审查可能会带来竞争条件问题的出现。
1.6程序解释技术
程序解释技术不需要对操作系统内核和应用程序代码作任何改变,应用程序只要重新链接产生一个新的起动代码就可以了,然后有这个起动代码来调用动态优化的程序解释框架。
有了严谨的安全策略,几乎所有已知的改变程序控制流程或修改危险函数的参数的攻击都可以被检测到并防范住。
2.计算机网络安全漏洞检测防护方案
2.1发送含特征码的检测数据包与接收数据包
首先需要在漏洞特征库中查找漏洞的特征码,构造数据包进行发送。
在发送检测数据包之前,先判断目标主机是否在线,然后检测操作系统版本等基本信息,并扫描它的端口开放以及所提供的服务情况,以此避免不必要的空扫描和决定检测数据包发往的目的端口。
在漏洞检测时,若目标主机不在线或所提供服务的相应端口没有开放,就无须进一步发送数据进行检测,可以提高检测效率。
在Windows系统中,NDIS(Network Driver Interface Specification)是操作系统网络功能驱动的关键部分,位于网络驱动协议和网卡之间,它既为上层的协议驱动提供服务,又屏蔽了各种网卡的差别。
它提供了一个完备的NDIS库,可以利用库函数直接对网卡进行各种读写操作。
但所提供的函数都是工作在核心模式下,用户不便直接操作。
本方案采用由澳大利亚的Canberra大学信息科学与工程系开发研制的网络开发包Packet32来设置网卡的工作模式,调用库中函数直接在网卡上读写数据,为用户提供了一个面向底层的网络编程接口。
2.2建立漏洞特征库与验证库
漏洞特征库是计算机网络漏洞安全检测防护方案中最为重要的部分,包含每个漏洞的特征码。
在实际检测中,最终操作是对网络数据包的操作,所以特征码应该能够保证检测数据包的有效性和接收回应数据包后的判断的准确性。
由于漏洞的种类千差万别,提取漏洞的特征码是关键工作,实现漏洞扫描是一个分析漏洞、建立知识库、维护知识库的过程。
2.3漏洞扫描控制与调度
漏洞扫描控制是系统管理控制台与扫描调度的接口,接受系统管理控制台的各种命令,可对要扫描的网络、主机和服务端口、敏感信息等等加以配置,按一定的扫描控制策略调用扫描调度;可以控制扫描调度模块的工作,使整个检测系统暂停、停止、继续、结束等。
漏洞扫描调度根据扫描控制模块发送的扫描控制要求,采用消息机制协调各工作模块。
采用多线程调度策略,对本地或远程主机进行扫描;调用漏洞特征库接口模块,在漏洞特征库表文件中查询漏洞对应的检测表文件名称,调用检测验证模块进行检测验证等。
3.漏洞防护建议
在系统作完安全漏洞检测、扫描之后,形成针对整个系统多种形式的安全报表,如系统内工作站或服务器在某一时间段内的安全状况、提供服务的变化情况以及软件版本更新的情况等,并在此基础上提交用户检测报告,主要包括漏洞风险分析及安全建议。
漏洞的风险分析包括漏洞的流行程度、利用漏洞攻击的容易程度、攻击造成系统的损害程度和采用此漏洞进行攻击被抓获的冒险程度。
损害度、容易度、流行度、冒险度都由数字1到9来表示不同的级别。
其中冒险程度越大,攻击者被抓住可能性就越大,风险级别就相应的减小。
因此,冒险度的具体数值与实际的冒险程度恰好相反。
安全建议是根据漏洞风险分析的结果提醒用户需要在哪些方面如何加强系统的安全性。
安全建议具体包括需要填补的所有系统漏洞,如何填补这些漏洞(修改系统配置、下载相应补丁、删除不必要的服务等),在填补所有漏洞不可实现的情况下,应当优先填补那些对系统安全威胁较大或填补工作较为容易的漏洞。
【参考文献】
[1]单谷云,黄成军,江秀臣.电缆排管机器人的图像监控传输系统设计[J].微计算机信息.2008,(29).
[2]蒋诚.信息安全漏洞等级定义标准及应用[J].信息安全与通信保密,2007,(6).
【计算机安全漏洞的动态检测】相关文章:
计算机安全漏洞检测技术的运用论文10-09
铁路动态检测工作总结范文10-12
计算机网络安全漏洞及防范的论文10-11
计算机网络安全漏洞及防范论文10-08
学校核酸检测工作动态简报(精选10篇)10-20
计算机网络常见安全漏洞及基本防护论文10-08
计算机漏洞检测思考论文10-08
计算机仿真动态负载平衡新算法应用论文10-09
检测评估计算机安全论文10-11
新型计算机病毒检测分析论文10-10