您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > IPS入侵逃逸技术分析与防御
IPS入侵逃逸技术分析与防御-杨永清1.概述IPS也就是业界所说的入侵防御系统(IntrusionPreventionSystem);而它的作用就是能在线防御防火墙所不能防御的深层入侵威胁;而它的作用也决定了它将被布置在用户网络的入口位置,对输入和输出的数据流进行入侵检测与防御。在网络的入侵防御技术中,入侵逃逸是其中一个不可规避的问题,也是IPS必须要面对和解决的问题。首先简单了解一下入侵逃逸技术的分类。入侵逃逸是相对与入侵防御技术而言的,在实际中两者也是攻防关系。由于两者都是通过技术手段来实现的。所以两者的技术也是在入侵攻防中不断发展的;入侵逃逸按技术方式分类,可以分为分片报文、拒绝服务、SQL注入等。其中分片报文是早期比较常见的,拒绝服务和SQL注入攻击是最近几年最常见到的。这也是近几年网络大发展所引发的安全问题。下来我们通过两部分对几种入侵逃逸及IPS如何防御逃逸进行分析说明:2.几种逃逸攻击的简单分析2.1分片报文逃逸分片报文攻击一般是利用协议漏洞或一些网络基础软件的漏洞进行攻击。IP分片是在网络通讯中传输IP报文时采用的一种技术,可这种技术就存在一些安全隐患。最典型的就是通过IP分片技术进行拒绝服务攻击,当然还可用于躲避防火墙或者网络中IP分片重组能力欠缺设备。为了传送一个大的IP报文,IP协议栈根据链路接口的MTU对该IP报文进行分片,通过填充适当的IP头中的分片指示字段,接收计算机可以很容易地把这些IP分片报文重组起来。而目标计算机在处理这些分片报文的时候,会把先到的分片报文缓存起来,然后一直等待后续的分片报文(这个过程会消耗掉一部分内存,以及一些IP协议栈的数据结构)。如果攻击者给目标计算机中发送一片分片报文,而不发送所有的分片报文,这样目标计算机便会一直等待(直到一个内部计时器结束),如果攻击者发送了足够多的分片报文,就会消耗掉目标计算机的所有资源,而导致不能接收正常的IP报文。分片报文组合一般是用于进行缓冲区攻击的一种。很早的微软漏洞MS03-026缓冲区溢出攻击就是利用TCP携带的三个数据包来实施攻击的。正常的三次握手后,第一个由客户机发送的首个数据包,是“BIND”信息。第二个和第三个数据包携带的是“REQUEST”信息。第二个数据包携带“REQUEST”包头,它会指定OPNUM和大部分的参数数据。由于第二个包放不下所有的参数数据,因此第三个数据包会携带其余的参数数据。因此,当目标服务器接收完所有三个数据包后,攻击就成功了。而对于网络中那些对数据重组功能欠缺的设备将无从检测与防御。2.2拒绝服务逃逸DOS(DenialofService)攻击是一种基于网络的、想办法阻止用户正常访问网络服务的攻击。DOS攻击一般是通过发起足够的网络请求连接,使服务器或运行在服务器上的程序耗尽服务器资源,从而使服务器无法正常响应甚至崩溃死机。DOS攻击可以是对服务器的单一数据包攻击,也可以是通过多台主机联合对被攻击服务器发起洪水般的数据包请求攻击。在单一数据包攻击中,攻击者通过精心构造一个利用操作系统或应用程序漏洞的攻击包。而网络中的入侵防御设备都具有对单个包的分析检测能力,所以,越来越多的黑客更偏向于采用一种更复杂的DDOS的攻击方法。在DDOS攻击中,攻击者用多台机器来攻击一个目标。将洪水般的数据由多台机器通过网络传给目标服务器,达到目标服务器的网络阻塞,无法正常访问。还是就利用特别设计的数据包耗尽服务器资源(如SYNFlood),达到拒绝服务的目的。DDOS由DOS攻击演变而来,这种攻击是攻击者利用在已经入侵并已经控制的机器(所谓的“傀儡机”)上安装DOS服务程序,它们等待来自攻击者的控制命令。攻击者在攻击时启动全体受控主机的DOS服务进程,让它们对一个目标服务器发送尽可能多的网络访问请求,形成一股DOS洪流冲击目标系统,猛烈的DOS攻击同一网站。在没有防御策略下目标网站会很快失去反应而不能及进处理正常的的访问甚至系统瘫痪崩溃。因为这种攻击来源于安装在网络中的多台机器上,这种攻击方式很难被攻击对象察觉,直到攻击者发出攻击命令,这些机器才同时发起进攻。由于此类攻击是通过组织遍布于广大网络上的大量计算机所发联合发起的攻击,因此采用简单的辨别和隔离技术是不能阻挡它们的。大部分情况下,很难将合法流量和非法流量区别开来。DOS/DDOS攻击从实现手法来看,主要表现为两种,一种是利用漏洞实现DOS的攻击,如Teardrop,PingofDeath等,另外一种是通过模拟大量的实际应用流量达到消耗目标主机的资源,从而达到DOS/DDOS攻击的目的,通常DOS/DDOS攻击伴随着源IP地址欺骗。从DOS/DDOS攻击的对应的协议层次来看,主要有以下几种:a)二层相关的攻击,如ARPFlood;b)半连接相关的攻击,如TCPSYNFlood,UDPFlood,ICMPFlood;c)全连接相关的攻击,如TCPConnention攻击,和TCP空连接攻击;d)应用层相关的攻击,如HTTPGetFlood,DNSqueryFlood等,其利用客户端流量与服务器端流量不均衡的特点,采用小流量的请求包,消耗服务器的处理资源或者产生大流量的响应,从而达到DDOS/DOS攻击的目的。例如:SYNFlood可算是最常见的一种DOS/DDOS攻击方法。攻击者可以从单一或多个机器发动选购,结果会导致目标服务器无法被访问。此类攻击主要利用的是TCP建立连接的机制,每个TCP连接的建立都必需要完成“三次握手”(three-wayhandshake)后才能传送数据:1)连接请求(ConnectionRequest)第1个数据包是请求者向服务器发送的同步请求数据包(SYN),这也是TCP开始“三次握手”过程的第一步。2)请求确认(RequestAcknowledgement)第2个数据包是服务器传送给请求者的确认数据包(SYN+ACK)。也就是服务器的响应包。3)建立连接(Connectioncomplete)第3个数据包是请求者向服务器发磅的确认数据(ACK)完成“三次握手”。SYNFlood攻击由大量包含伪造源IP地址的无效SYN包组成的,伪造的源IP地址使得目标服务器向未知或不存在的源主机发送对SYN的回应包SYN-ACK。然后目标服务器就会长期等待来自伪源机器的确认ACK数据包以便完成联机动作。但伪源机器确认ACK数据包肯定是永远不会来到的,这此无法完成的无效的联机请求一直占据在插口连接表中,这样服务器的连接表会在很短时间内塞满无效的请求,并且因此耗尽所有的可用资源,使目标服务器无法为合法的请求服务,导致目标服务器拒绝服务。SYN攻击最大的特点是每个请求单独来看都是良性的,很难区分哪个是无效请求,哪个是合法请求。2.3SQL注入逃逸分析SQL注入攻击是指利用Web网页程序对用户的网页输入数据缺少必要的合法性判断的程序设计漏洞,攻击者通过提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据;我们常听说的网页篡改事件有一部分就是通过SQL注入攻击完成的。SQL注入攻击就是攻击者通过构造巧妙的SQL语句,同网页提交的内容结合起来进行注入攻击。比较常用的手段有使用注释符号(’)、恒等式(如1=1)、使用union语句进行联合查询(select)、使用insert或update语句插入或修改数据等,此外还可以利用一些内置函数辅助攻击。通过SQL注入漏洞攻击网站的步骤一般如下:第一步:探测网站是否存在SQL注入漏洞。第二步:探测后台数据库的类型。第三步:根据后台数据库的类型,探测系统表的信息。第四步:探测存在的表信息。第五步:探测表中存在的列信息。第六步:探测表中的数据信息。例如:某网站的PHP代码如下:$SQL=“SELECT*FROMuserWHEREusername=‘$username’ANDpwd=‘$password’;$result=MYSQL_QUERY($SQL);IE中正常的URL如下:=doudou&&pwd=testtest构造如下的URL:=doudou’/*实际插入的SQL语句变为:SELECT*FROMuserWHEREusername=‘isis’/*’ANDpwd=‘’一旦这样的SQL语句被执行,后台将会执行攻击者所希望的结果,最终暴露用户信息,使攻击得逞。2.4入侵逃逸技术分析小结通过几种攻击技术的分析可以看出,逃逸技术所利用的都是原有固定特征库检测方不足之处,而有针对性的出现的典型攻击类型。下面是几种不同逃逸的分析图表:攻击方式识别范围精确度规则复杂度特征静态攻击网络层高低协议+端口号SQL注入应用层高中数据特征分片报文网络层-应用层高高数据流特征(数据特征+状态)拒绝服务应用层低高流量分析针对以上不同的逃逸技术分析,我们将对IPS进行处理逃逸的模型规划。3.IPS系统解决入侵逃逸的分析入侵行为的实质就是利用了目标系统设计或编码中存在的问题而形成的漏洞。攻击者通过特定的攻击报文(攻击报文或在内容结构上、或在出现的时序上、或在流量的大小上进行精心构造),然后通过目标系统的漏洞,使目标系统或应用处于无法正确处理的状态,从而达到攻击目的。基于这种攻击原理,IPS系统可以提取出这种利用漏洞的各种攻击报文在内容结构上、出现时序上等等的特征,并对网络数据流进行检测匹配,从而阻断攻击报文。通过以上的逃逸分析可以认为,IPS的逃逸检测主要从以下三点来完成:1)检测引擎的实现机制(是否可以分析数据流的各种复杂的报文内结构、能否分析各种报文的时序关系、能否有一定机制的流量分析防范技术等等);2)编写出能够准确描述漏洞或攻击的特征的规则(只有将特征准确完备地在规则中描述出来,并利用检测引擎进行检测,才能确保入侵逃逸的检测率和检测的准确性);3)设备整体性能(IPS设备的性能高低直接影响到检测精度;当然设备性能不仅仅包括硬件,还包括检测引擎的设计机制);3.1针对分片报文逃逸的IPS防御技术分析分片报文逃逸有多种方式,相应的IPS防御方式也各不一样。针对网络协议漏洞的分片报文攻击,IPS防御最有效的方法就是通过协议代理的方式来实现,即不让攻击协议报文的请求到达目标主机上,而是先经过IPS防御系统的确认,这样可以通过报文检测和阀值的最大并发连接数据控制的方式进行防护。首先就是通过判断目的端口号来进行防御。如果通过恶意分片后使目的端口号位于第二个分片中,那么IPS的包过滤模块可以通过判断第一个分片中是否包含端口信息,如果未包含端口信息则可以直接丢弃。对于流报文,如TCP流,若IPS只是对一个个的单独报文作特征检测,就会产生漏报。如果攻击者对攻击流中的报文作分段处理,就完全可以绕过IPS设备进行有效的地逃逸攻击当IPS通过数据流重组及流状态的特征检测技术,就能够有效地防御此类攻击。例如:语音流报文、视频流报文等等,若不进行识别,直接使用攻击特检测,很可能导致误报。如果通过流状态的特征检测技术,就能够准确地识别出这类流报文,而不必攻击特征检测,同时也更有效地减少了误报的情况。数据分片中一般数据包都会按顺序逐个到达,也就是说,BIND会首先到达。IPS通过规则匹配,没有触发攻击,这样BIND会被继续发送,但引擎会从这数据名中提取的状态数据将存储在内存中。接着,“request”的第一部分会随后到达,这些数据会与刚才保存的数据合并起来再进行滤器匹配检查。还是没有匹配到一个完整的攻击特征。然后,存储的状态数据会更新,该数据包被发送。最后,“REQUEST”的第二部分到达了,当这此数据与保存的数据合并后,就会匹配到一个完整的攻击规则,引擎就会把这个数据包并丢弃,相应的TCP流也会在引擎中被标记为“blocked”。同时引擎就会自动丢弃该连接中任何一个方向接收到的数据包。这样,攻击者与目标计算机的连接被切断,对目标计算机的攻击也将无法完成,因此入侵也被IPS有效的防御了。如果数据包不是顺序到达
本文标题:IPS入侵逃逸技术分析与防御
链接地址:https://www.777doc.com/doc-2879272 .html