IPS入侵逃逸技术分析与防御.docx

上传人:b****8 文档编号:11287644 上传时间:2023-02-26 格式:DOCX 页数:9 大小:22.79KB
下载 相关 举报
IPS入侵逃逸技术分析与防御.docx_第1页
第1页 / 共9页
IPS入侵逃逸技术分析与防御.docx_第2页
第2页 / 共9页
IPS入侵逃逸技术分析与防御.docx_第3页
第3页 / 共9页
IPS入侵逃逸技术分析与防御.docx_第4页
第4页 / 共9页
IPS入侵逃逸技术分析与防御.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

IPS入侵逃逸技术分析与防御.docx

《IPS入侵逃逸技术分析与防御.docx》由会员分享,可在线阅读,更多相关《IPS入侵逃逸技术分析与防御.docx(9页珍藏版)》请在冰豆网上搜索。

IPS入侵逃逸技术分析与防御.docx

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如下:

http:

//xxx.xxxx.xxx/user.php?

username=doudou&&pwd=testtest

构造如下的URL:

http:

//xxx.xxxx.xxx/user.php?

username=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有效的防御了。

如果数据包不是顺序到达,那引擎就会根据序列号重新为TCP段排序,一般情况下第一个被阻挡的数据包永远是检测到的攻击分片中最后一块分片。

例如:

在针对RPCDCOM漏洞的攻击中,通常两个“REQUEST”会无次序到达,因此REQUEST第二部分会先于第一部分到达。

这种无次序的数据可以通过数据重组技术进行匹配检测,当引擎匹配到一条攻击规则后,系统就会丢弃此链接中的所有数据包进行阻断防御。

同要IPS的IP碎片重组功能将解决数据在IP层被切割分片发送的入侵逃逸问题。

这也说明通过数据重组功能就可以解决数据我分段、切割分片逃逸的问题。

3.2针对拒绝服务逃逸的IPS防御技术分析

根据对网络流量进行分析和建模,在系统中形成不同的流量检测和学习模板。

在统计分析阶段,根据流量检测模板进行流量学习和分析;在行为分析阶段,则通过自动生成的动态过江规则对异常流量进行过滤处理。

动态或者静态过滤规则部分根据不同的业务进行分别的处理,如针对HTTP进行HTTPredirection;针对DNS进行DNSredirection;针对IP则进行TTL认证等动作。

上述过程是一个闭环的循环动态的一个调整过程,系统中通过不断的学习、调整和判断以适应网络的情况并做出适当的动作。

7.对DDOS的逃逸检测的防御分析:

针对DDOS的逃逸检测应行从引擎让构建一种策略,也就是通过学习模板进行不同业务的和正常情况进行学习,从而得到攻击流量类型的流量统计数据并加入到所构建的策略中;

经过不断的调整测试,使策略可以准确的对攻击流量进行检测,当然调整测试是一个不断反复的过程;最后通过策略检测对网络中的异常流量进行判断检测和验证,如对源IP的合法性进行检测,如果异常就进行丢弃等。

以SYNFlood攻击为例。

就需要把IPS做为一个代理服务器(Proxy),生成SYN/ACK数据包并将它作为应答传给请求者,并等候请求者返回的ACK数据包。

当IPS从请求者处接收到ACK数据包后,IPS系统就会将这三次的握手过程“回放”给接收端。

完整的攻击与响应过程如下:

1)攻击者发送SNY数据包给目标服务器,IPS设备拦截到SYN数据后,开始判断目标是否受到保护。

2)如果目标服务器是在保护之中,则IPS设备就代表目标服务器产生SNY-ACK响应数据包。

3)一但IPS收到“三次握手”过程中最后的ACK,IPS就会利用最先进的算法验证这个ACK数据包是不是对IPS产生的SYN-ACK数据包的确认应答。

若是,则入侵防御系统会与目标服务器建立这个TCP连接。

4)一旦建立连接,IPS就会进入数据监视和连接,确保流量安全。

如果是一个攻击发起的请求则不会完成TCP的“三次握手”,就不会有数据包传向目标服务器,IPS也就不必对连接状态进行维护。

3.3针对SQL注入逃逸的IPS防御技术分析

通过上面对SQL注入逃逸的分析了解到,SQL注入就是通过网站对后台数据库进行注入的行为,而HTTPURL是基于网页攻击的主要协议实体之一,但是它不适用通过协议异常检测的方法来防御。

攻击者可以在不违反任何协议规范的情况下通过向CGI程序发送一个恶意请求来对网页服务器进行攻击。

针对SQL注入攻击,IPS入侵防御应从分析网站通信的每一个HTTP请求,根据常见的HTTP请求进行攻击特征匹配,可以将攻击报文实时阻断。

常见的SQL注入方式又分为:

数字型注入(如:

HTTP:

//xxx.xxx.xxx/abc.asp?

p=YYand1=2,abc.asp)、字符型注入-(如单引号:

HTTP:

//xxx.xxx.xxx/abc.asp?

p=YY’)、搜索型注入(如like:

SELECT*fromsqltestwherenameslike'%{0}%'",TextBox1.Text)、句语连接型注入。

通过对SQL注入的大概分析,防范SQL注入实际上是从HTTP请求的输入参数检查开始的。

所以,防御SQL注入攻击,需要从以下两个方面入手:

对SQL关键字的过滤和限定URL的传递参数据类型、数量、范围;而IPS防御SQL注入逃逸攻击第一是对URL的解码,比如可以对各种编码的字符进行解码(%61=a,随机变化大小写,或随机加入“//”等等)。

第二就是通过对URL中各种SQL注入攻击关键字的匹配与过滤。

在字符逃逸攻击中,还有一种攻击不是SQL注入;如访问攻击中的逃逸攻击(非文本字符逃逸,r\xffoot=root;roo\xf3t=root;\xFF代表IAC是作为命令来解释的,\xF1代表无操作(noop)。

在Netbios、SMB和MSRPC等协议中可以很轻易地设计类似的逃避技术);IPS防御此类逃逸攻击则需要对的协议进行解析,然后通过协议解析对非字符进行过滤处理再匹配攻击的关键字进行判断。

4.总结

经过上述对逃逸攻击的分析和IPS防御逃逸的分析,我认为IPS通过对引擎的功能完善,(如:

协议重组、数据重组和解码功能等)再辅以规则的完整性和特征定位的准确性就可以解决好入侵逃逸的防御。

然而新的入侵逃逸技术也会根据入侵攻击技术的发展不断的出现,对已知的各种逃逸攻击的过滤和防御也是IPS必须要解决的一个方面,而对未知的一些逃逸技术的研究也是IPS解决入侵逃逸所必修之课。

只有对已知和未知两个方面的分析与研究,才能保证IPS的安全有效性,只有通过准确的识别出各种攻击,才能发挥出IPS作为网络入侵防御设备所赋于的功效。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1