根据业内知名市场咨询机构IDC的最新报告显示,国内网络入侵防护市场已形成了群雄割据的局面,仅进入IDC市场报告统计名录的企业就有14家之多。众说纷纭的入侵防护产品技术让人难辨良莠,孰优孰劣,市场需要一把可以适度评价的标尺。
“安全、高速、易于部署”,这是国际著名安全产品测评机构——NSSLabs在评价一款IPS产品时,认为其应该具备的三种能力。也就是说,NSSLabs的专家们在建议企业客户选择IPS时,虽然要充分考虑产品的性能、部署能力及TCO(TotalCost of Ownership,总体拥有成本)等各项指标,但仍将安全有效性指标排在首位。
本文主要从“安全有效性”角度,以攻击规避流量检测为例,描述IPS产品所面临的挑战,以及相应的解决思路。
一、从攻击规避检测技术看IPS的安全有效性
众所周知,为了提高产品的攻击检测效率,IPS一般采用特征检测、异常检测和关联分析等多种技术手段,以降低产品的误报率和漏报率。特征检测技术主要用于识别和定位各类已知威胁,异常检测方法则通常集成针对协议、应用和统计数据的异常检测技术,能够保护企业信息系统免受未知攻击的侵害,包括新的蠕虫、蓄意的隐性攻击、新环境下的攻击变种,以及分布式D.DoS攻击流量。
攻击规避技术是众多蓄意隐性攻击中应用范围最广,最有效的一类技术。当攻击者发现被攻击目标正受到IPS等产品保护时,攻击者往往会根据攻击目标的协议特性或漏洞,对攻击方式或攻击内容进行精心调整,进而逃避IPS等产品的检测。
应用了规避技术的网络攻击,会给企业带来不容忽视的安全威胁,如果不能对其进行正常、有效的处理,这类攻击会使得IPS产品形同虚设,将用户的网络资源暴露于攻击者面前,从而降低用户网络环境的安全性,增加用户资产遭受损失的风险。
二、常见的攻击规避技术分析
攻击规避一般也叫做攻击逃逸,攻击者通过对攻击数据包的精心定制和伪造,企图绕开IPS此类产品的检测。目前比较流行的攻击规避技术包括:数据包分片、数据流分隔、RPC分片、URL混淆,以及攻击负载的多态和混淆等。下面将针对几种主流的协议和应用逃避技术,分别进行较为详细的介绍和分析。
(一)TCP/IP协议规避技术
TCP/IP协议的抗规避处理难点主要集中在TCP协议上。TCP协议是端到端的复杂流式可靠传输协议,它的序列号、窗口,以及重传等保障可靠传输的机制,会给IPS的检测带来很大困难,IPS只能被动地跟踪通信双方的数据及状态变化,通过实时的数据流重组以进行检测。
IPS必须内置TCP状态跟踪及流汇聚机制,以确保对TCP会话的持续跟踪和分析。然而在数据传输过程中,一旦出现数据包顺序错乱,报文丢失或重传等问题,很多IPS的检测机制就会失效,一些规避攻击恰恰利用这个缺陷,得以绕开IPS的检测。
归结起来,针对TCP/IP协议的规避技术,主要包括如下几种实现方式:
n通过重传机制发送干扰数据包(TTL、校验和、窗口大小、序列号、标志位、时间戳等异常的数据包)和正常数据包,在正常数据包中嵌入攻击负载,终端的TCP/IP协议栈会丢弃干扰数据包,并将载有攻击的正常数据汇聚起来提交给应用程序。
n通过利用TCP协议的序列号或IP协议的片偏移机制,对数据包进行细小划分,并打乱发送顺序(逆序,乱序)。
n利用攻击目标的协议栈特性,将数据以前重叠或后重叠的方式发送,例如下图所示,Windows会倾向于先到的数据流分段,而Solaris倾向于后到的数据流分段。
在VISTA中如上所示的数据会被汇聚为“HELLO,WORLD!”,而在Solaris系统中会被汇聚为“HELP!,VIRUS!”,这就要求IPS产品不仅能够实现一个完整的TCP/IP协议栈,还要能够根据保护目标的类型进行重组策略的调整。
TCP/IP协议的规避技术,早在1998年发表的论文《Insertion,Evasion,andDenial of Service : Eluding Network Intrusion Detection》中就已经被详细的描述。然而,目前大多数的IPS产品仍未具备完善的数据重组能力,这给入侵成功创造了很大空间。
(二)RPC协议规避技术
MS-RPC和Sun/ONCRPC都允许应用程序以分片的方式发送请求,这些分片在RPC服务器内会被重新组装成完整请求形式。攻击者通过将不同程度的RPC碎片和不同的TCP传输机制进行组合后,可以构造出多种的规避方式。例如:在单TCP数据包中发送所有分片,在不同TCP数据包内发送不同范围的分片(如每个TCP数据包只携带一个RPC分片)等。
以MS08-059为例,HostIntegrationServer的RPC接口所暴露的一些方式,允许未经认证的攻击者在服务器上执行任意程序。RPCopcodes1和6都允许攻击者调用CreateProcess()函数并向其传送命令行,这可能导致完全入侵服务器。利用这个漏洞,攻击者可以发送如下所示的请求,来提升权限:
CMD/cnetuseradmin admin /ADD
为逃避检测IPS对这种异常权限提升行为的检测,攻击者可以对RPC请求进行分片处理,下图是在单TCP数据段内进行分片后的效果:
由于特征信息被“打散”,传统的基于包特征匹配的方式很难处理这种规避,要检测该攻击需要依据DCERPC协议对RPC分片进行重组。可见,IPS不仅需要能够对底层协议进行精确解析,还需要有非常细粒度的应用层协议处理能力。
(三)URL混淆
URL混淆通常被攻击者用以逃避IPS产品的URL过滤机制,这类规避方式主要包括如下几种:
n采用转义符“%”将字符用16进制表示
n采用转义符“%u”将字符用UNICODE方式表示
n随机插入“//”,“/./”和“\”字符
n随机变换大小写
n用tab符(0x09或0x0b)或回车符(0x0d)做分隔符
n加入干扰字符串
以CVE-1999-0070为例,该漏洞产生原因是NCSAHTTPd和早期的ApacheWebServer自带了一个名为“test-cgi”的Shell CGI脚本,通常位于“/cgi-bin”目录,用于测试Web服务的配置是否已经可以正常地使用CGI脚本。test-cgi脚本的实现上存在输入验证漏洞,远程攻击者可能利用此漏洞遍历主机的目录,查看目录下的内容,因此检测该攻击的特征码一般包含“cgi-bin/test-cgi”这个字符串,该攻击概念验证(PoC)如下:
GET/cgi_bin/test-cgi?/*HTTP/1.1
对该PoC的URL进行混淆后可以得到如下所示的URL格式:
不幸的是这些混淆后的形式都是WEB服务器可接受的,显然要避免这种攻击的漏报,IPS就不能在原始URL中进行特征匹配操作,而应先对URL进行恢复和整理后再进行规则检测等操作。
(四)FTP规避攻击
为逃避IPS产品对FTP攻击的识别与拦截,攻击者通常在FTP命令中随机添加一定数量的干扰字符(空格符、Telnet非文本控制符等),这些干扰字符在FTP服务器的处理过程中往往会被过滤掉。
假设参数中包含“test2”的CWD请求会触发FTP服务器的某一漏洞,IPS需要先于FTP服务器正确识别CWD请求命令,并过滤请求参数中是否存在“test2”这个特征,如果IPS不能在正确解析FTP协议的同时,准确的滤除干扰字符,它最终看到的将是“t\xff\xf3est2”进而导致漏报发生。
三、攻击规避技术的应对思路和策略
攻击规避技术往往利用系统的协议处理缺陷,绕开正常的检测机制,使得真正的攻击流量能够渗入企业内网,其危害之大,防范之难,正被用户越来越关注。用户在选择一款优秀的IPS产品时,已经把攻击规避的检测能力,作为一种必备的产品技术要求进行评估。然而,攻击规避技术应用广泛,种类繁多,而且变种、更新速度较快,要想有效地防范这类攻击,将面临三大挑战:
首先,IPS产品需要对相关的网络协议有清晰的理解,具备细粒度协议解析机制和异常处理能力。各种规避技术都遵从相应的协议规范,导致规避攻击成功的原因主要是IPS的协议解码引擎过于简单甚至存在疏漏。
其次,安全厂商需要及时跟进各类攻击规避技术的发展动向。当出现新型的攻击规避技术时,能够及时透析其原理并制定有效的应对方案。
最后,IPS产品应该具备良好的扩展能力。一般而言,产品协议解析层面的结构变化会对整个系统带来较大的影响,牵一发而动全身。具备良好扩展能力的引擎架构,可以降低抗攻击规避模块的维护成本,缩短应急响应时间。
攻击规避技术对于IPS的应用带来了巨大的挑战,为了有效应对此类威胁,IPS产品在设计和开发攻击检测引擎的时候,必须考虑以下几方面的因素:
n具备细粒度协议解析机制和完备的协议异常控制结构,第一时间对非法协议数据及时处理,杜绝安全隐患的蔓延;
n配置高效的IP数据包重组策略,能过同时处理多种模式的分片数据包;
n过滤协议异常数据的同时,积极修正、恢复正确的协议数据,最大限度的保障解码过程的完整性;
n兼顾性能最优化,降低规避处理过程对引擎性能带来的影响;
n尽量控制可能引入的风险,确保系统的稳定性不受影响。
为了验证IPS产品对于攻击规避手段的抵御能力,NSSLabs的安全专家们在“安全有效性”专项测试中,采用了五个测试项目,对IPS的攻击规避检测能力,进行了全面(覆盖IP,TCP,HTTP,DCERPC,SUNRPC等多种协议)且严格的测试。
基于强大且完善的协议解析引擎,以及多年以来在入侵检测/防护领域的深厚技术积淀,绿盟网络入侵防护系统(NSFOCUSNIPS)在NSSLabs的“规避测试”项目中获得100%的通过率,并最终得到NSSLabs在全球范围内的鼎力推荐。在此之前,仅有两家国际顶尖安全厂商的IPS产品获此殊荣。
四、结束语
应用了规避技术的蓄意隐性攻击,只是IPS面临的众多挑战之一,作为一款优秀的IPS产品,必须具备各类已知和未知风险的识别和控制能力,以确保产品的安全有效性,这也是IPS发展、演变历程中必须遵循的一项基本原则,唯有精确识别各类攻击,并及时做出响应,才有可能最大限度发挥IPS的功效,保障企业信息系统的安全。