14
McAfee IPS technical Brief 谢谢 谢谢 谢谢 谢谢谢谢谢谢谢谢谢谢谢 ,,,,,,,一, McAfee 谢NSP谢谢谢谢谢谢 谢谢谢谢谢谢谢 NSP 谢谢谢谢谢谢谢谢谢谢 一。 1 McAfee IPS McAfee IPS 谢 谢谢谢谢谢谢谢 一, 谢谢 IPS谢 谢 谢 谢 谢 谢 谢 谢 谢 谢 谢 ,,,,,,,,,,. [Type text] Page 1

Intrushield NSP Technical White Paper v8_Li Ming

  • Upload
    sam-lu

  • View
    46

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Intrushield NSP Technical White Paper v8_Li Ming

McAfee IPS technical Brief

谢君 孙超 李明

随着互联网产业的快速发展,不仅从网络带宽上已经有了很大的提升,而且越来越多的网络应用出现,丰富和方便了人们的生活,在带来方便的同时,在这复杂和多变的网络环境中也夹杂着很多网络威胁,如何应对这些网络威胁,这是当今信息社会都非常关注的一个严峻问题,入侵防御系统应运而生成为检测和阻止网络威胁的主要技术,McAfee 的 NSP

是业界领先的侵防御系统,本文将着重介绍 NSP 的主要功能和一些重要特性。

1 McAfee IPS 体系架构

McAfee IPS 是一款网关级的入侵防御系统,它的系统架构图如下

Page 1

Page 2: Intrushield NSP Technical White Paper v8_Li Ming

网络流量过来后,通过 IPS 的网卡抓取数据包后,先进行状态处理,然后进行协议识别,协议解析,规则集匹配,最后判断是否为恶意的攻击,或者用户控制的流量,通过用户配置的策略进行阻断,告警,日志记录,或者通知防火墙进行处理等等.

2 McAfee IPS 检测机制

2.1 深度智能协议解码的模式匹配

对于网络中传输的流量,要识别其是通过某种协议进行通信和传播的,进行协议识别是很关键的,我们通过对流行的 TCP/IP 协议族(包括 IP/TCP/UDP/SMTP/FTP/HTTP 等等)协议基于 RFC 标准进行深度解码,深度解析这些协议在 RFC 中定义的各个字段,来检测网络传输流量中对应协议的合规性。而在现实网络应用中大多数数据负载在 layer 7, 所以对 layer7 的解码至关重要。

由于很多应用层的通信协议是由各个软件产商自已定义的,有的协议是公开的(例如edonkey2000,BitTorrent 等),有的是未公开的例如一批 IM/P2P 软件,对此我们将对它们进行应用层协议识别和协议解码,精确解析出它们各个通信包的各个字段,然后进行匹配。P2P 网络本来就是一个网络共享平台,所以很有可能用户无意中把一些敏感文件,信息共享到这个平台上去,别人可以从中下载到,窥探到一些机密信息,使受害者受到巨大损失,比如日本的 Winny 软件泄密事件。由于 p2p 网络的特性,下载速度特别快,所以可能导致内网带宽耗尽,影响网络正常应用。所以 P2P 网络存在敏感信息的泄露,带宽的滥用等缺陷。 下面我们将以两款 P2P 软件识别作为举例。

QQLive 和 PPStream 是在中国比较流行的 P2P 网络流媒体软件,因为通过 P2P 的方式进行流媒体传输,高速下载流媒体数据,从而可以很流畅的在线观看流媒体影像,但会占据大量的网络带宽,我们通过举例来解析 McAfee IPS 是如何对它进行比较精确的解码和识别的。

QQLive 其中一种数据传输方式是通过 UDP 来实现的,举例如下:

Page 2

Page 3: Intrushield NSP Technical White Paper v8_Li Ming

QQLive UDP 包的格式如下

0x0 包头标志

0x01-0x02 包体长度

0x03-结尾 包体内容

McAfee IPS 对这个的识别过程是这样的,包的第一个字节 0xfe 是一个固定的包头标识,第二个字节开始”3d 00”转换成一个短整型数据 0x003d,它包含了包长信息,用它加上头部 3 个字节刚好就是这个包长,所以我们的检测过程就是这样的了,匹配包头第一个字节 0xfe,然后从第二个字节开始转换成短整型数据(big endian),加上 3,如果等于包长,那么我们确认它是一个 QQLive 的数据包。

另一个例子,对 PPStream UDP 包的识别,以下是截取的 PPStream 传输过程中的一个UDP 包进行分析。

包结构如下

0x0-0x01 包长

0x02-0x03 包头标志’43 00’

0x03-结尾 包体内容

00001404 3d 00 43 00 00 11 00 0a c3 e5 01 4b ed 05 81 96 =.C..... ...K....

Page 3

Page 4: Intrushield NSP Technical White Paper v8_Li Ming

00001414 75 49 96 83 b3 cf 1d 6d 40 c1 f2 3e 28 f3 41 08 uI.....m @..>(.A.

00001424 00 00 00 73 65 6c 65 63 74 6f 72 32 2e 73 77 66 ...selec tor2.swf

00001434 00 00 2c 00 00 00 04 00 00 01 00 00 00

偏移 0x0-0x01转换成短型数 0x003d,等于这个 udp 包的包长

偏移 0x02-0x03 为固定头部特征”43 00”,因此可以识别出 PPStream 的 UDP 通讯包,通过长度判断和模式匹配.

以上可得知在对 layer7 层解码是非常灵活的,可以通过设计一些算法来检测判断某种特定的数据包,而相对于传统的正则匹配检测功能就比较有限了,它只能通过简单的源目的IP,源目的端口,和 layer7 的模式匹配或者正则匹配来检测,所以就智能性而言,它是非常缺失的。

由于流量有会话和方向的概念,有时候为了更精确的去识别某一会话属于某种流量,而光靠发送端的数据,或者接受端数据来识别某种流量是不够的,所以在某一时刻作某种包处理操作,这里就涉及到了一个非常重要的功能,那就是状态机机制。

2.2 状态机的应用

基于状态机的检测机制无疑在 McAfee体系中扮演了很重要的一个角色,McAfee IPS 通过状态机的使用,可以实现强大的关联检测能力。状态机对于 McAfee IPS 的主要作用包括:

2.2.1上下文关联分析协议的状态机可以帮助不同的协议解释字段创建上下文关联信息,来判断当前协议处于哪一处理过程之中,根本不同的状态来进行不同事的操作。这里以 MS06-012 漏洞举例说明,在 Excel 文件结构中通过精心构造一个恶意的记录将会被远程成功运行任意代码,下面这个图展示出了协议状态机创建适当的上下文来帮助解析 excel结构中的各个字段,也就是它暗示在某个时刻去做某件事,而传统的正则模式匹配(例如以 snort为基础的入侵检测系统)没有上下文的概念,所以它没有状态机更智能的分析在某一时刻该做什么,它的存在更好的减少了误报的可能。

Page 4

Page 5: Intrushield NSP Technical White Paper v8_Li Ming

以下的示例说明了 McAfee IPS 如何识别通过 http 方式传输的 Excel 文件的

Page 5

Page 6: Intrushield NSP Technical White Paper v8_Li Ming

下图是抓取 http 的数据包,这里只截取了 http请求和回应的头部。

通过对 http 的回应包进行协议解析得到 Content-Type 字段是”application/vnd.ms-

excel”,通过这个字段可以知道 http 的数据负载部分应该是传输一个 excel 文件类型的数据,接下来把多个 http 包汇聚成一个完整的 excel 文件,然后对这个 excel 文件数据进行文件解析,截取的 excel 文件数据的头部如下图:

Page 6

Page 7: Intrushield NSP Technical White Paper v8_Li Ming

McAfee IPS首先会对这个文件的头部进行判断验证是否真是一个 excel 文件,然后再进行 excel 深底解析,首先判断头部八个字节是否是” d0 cf 11 e0 a1 b1 1a e1”,如果是,我们标记这段数据为 excel 文件数据,然后再后偏移 508 个字节作worksheet结构解析,通过判断记录类型来确定是否是 Name record,然后检查Name record 的长度,如果大于 80 字节时,当微软的受此漏洞影响的 excel 软件解析该字段时将触发溢出,此时McAfee 的协议解析器将执行判断,来检测它是否超长,如果确实超长,McAfeeIPS引擎将会作丢包处理来保护客户端不受此漏洞的攻击,同时告警日志产生。

Page 7

Page 8: Intrushield NSP Technical White Paper v8_Li Ming

2.2.2识别复杂的多会话协议像Oracle 这种复杂的 TNS 协议它需要一个控制通道会话为数据通道提供交换信息,只有当信息交换完成,数据通道才开始进行相应的处理,类似于当数据通道收到相关控制指令,它才作相应的动作,这对传统的模式匹配来说是不可能完成的,因为它没法处理好多条会话之间的关系,所以基于状态机的检测机制使得McAfee IPS 可以在这样复杂的协议情况下减少误报。

2.2.3更精确的检测通过漏洞MS08-067(Conficker蠕虫就是利用的这个漏洞)举例,Conficker蠕虫有上千种变种,但是 McAfee只需通过一条规则就可以阻断所以利用这个漏洞的变幻攻击。

McAfee IPS 的状态机技术可提供更扩展更深入更准确的协议解析。但是在某些特殊情形下,利用状态机机制会大量消耗性能,所以 McAfee IPS 也加入其他的检测机制来避免性能的损耗,例如基于行为的检测机制,复杂的网络环境中的单一的数据可能没有太大的意义,但是把它的会话的多个客户端和服务端的交互过程关联起来对于识别特定的流量又非

Page 8

Page 9: Intrushield NSP Technical White Paper v8_Li Ming

常特别有帮助,McAfee 于是引入了多包关联的协议识别机制,这些都是基于单会话的流量检测,在现实网络环境中有些通信需要通过多会话通信协助才能完成一次网络应用功能,而针对检测这些流量,需要多会话进行关联识别,这是 IPS里面的另一个重要的检测机制,此外对于海量恶意流量检测和恶意网站检测,McAfee引入了云计算功能。

2.3 基于多包关联的协议检测机制

有一些网络通信流量采用了一些混淆协议通信机制来逃避网络流量管理设置的检测,所以单凭单个数据包检测是不能够精确识别出来的,我们采用多个通信数据包关联的方式来进行精确识别,从而可以降低检测的误报率,我们通过多个数据包多个检测向量来评估一个TCP 或者 UDP 会话是属于某一特定流量,然后对这一特定会话打上某种协议的标记,这一检测机制对于某些混淆流量或者加密通信非常有效。

2.4 基于多会话关联的协议检测机制

某些网络通信流量传输是通过一系列通信会话来完成的,比如首先有一个 http请求服务器获取一系列的 UDP 通信的服务器 IP地址,然后通过 UDP 协议与这些 IP地址进行通信,如果通过单一的单会话检测有可能无法识别,但是通过关联前面的 HTTP 的会话,这样可以方便地识别定位这些会话,通过此种检测机制可以非常精确地检测检测某些 P2P 协议。

2.5 基于行为检测机制

由于 IPS 要保证网络传输的实时性,由于 IPS 在处理网络流量的时候,尽可能的减小对流量检测所带的传输延迟,所以 McAfee IPS加入了基于行为检测机制,此种检测机制可以不用通过非常复杂的深度包分析,通过我们自已独特的优化算法,来保证在基于行为检测方面减小对性能的损耗,从而保证网络传输的实时性,此种检测机制主要针对 DDOS

攻击,Botnet僵尸网络,蠕虫攻击,我们通过设置一些阈值来检测 DDOS 攻击,通过一些流行的 Botnet僵尸网络的行为特征,来检测一类的 DDOS 攻击和 Botnet僵尸网络攻击。

Page 9

Page 10: Intrushield NSP Technical White Paper v8_Li Ming

2.6 云安全功能

在 McAfee IPS 中引入了一些非常重要的云安全功能,Artemis 和TrustedSource,Artemis 是 McAfee云端的一个大型的恶意特征库,而 TrustedSource 是McAfee云端的一个大型的恶意网址库,当通过 IPS 的网络中存在恶意文件传输时,IPS

可将该文件的特征值发送给 artemis 检测是否为恶意,云端把结果反馈给 IPS,而当通过IPS 的流量在访问某一个网址时,IPS 可将访问的网址发送给 TrustedSource 去检测,确认是否为恶意网址,进而把结果反馈给 IPS,来完成这样一个检测过程,这样确保通过IPS 的传输流量是干净的,安全的。

2.7 与基于正则匹配的解决方案比较的优势

基于正则匹配的解决方案是目前大多数 IPS厂商使用的检测机制,支持这种机制的代表是开源的 SNORT,我们以 snort 检测为例:

alert tcp any any -> 192.168.1.0/24 80 (content:"cgi-bin/phf";offset:3;depth:22;msg:"CGI-PHF access";)

以上这条 snort 规则的意义是检测 http请求中包含有”cgi-bin/phf”的 TCP 会话,它最重要的一个特点就是只能模式匹配,不能进行复杂算法操作和解码操作,功能很单一,如果在真实的网络流量中,没有固定特征的会话的检测,是很难识别出来的,而 McAfee IPS

的检测机制能够处理复杂的算法和解码,正如我们在上面的 P2P 的两个例子介绍的,不单单是简单的模式匹配。

基于状态机制的协议解析框架具有很灵活的扩展机制,对于增加支持新的协议和检测算法或者更新协议解析功能,可以不用更新整个软件基础设施,只需把更新的协议和算法打包成新的规则集发行包,动态更新规则和协议解析,而传统的 Snort 如果要增加一个协议检测模块的话,需要更新整个软件体系的源代码,既麻烦又容易产生新的问题。

Page 10

Page 11: Intrushield NSP Technical White Paper v8_Li Ming

3 McAfee IPS 的安全防护能力

网络入侵防护系统(Network Intrusion Prevention System)作为一种在线部署的产品,提供主动的、实时的防护,其设计目标旨在准确监测网络异常流量,自动对各类攻击性的流量,尤其是应用层的威胁进行实时阻断,而不是简单地发出告警. 一个好的网络入侵防护系统 NIPS 应该成为安全管理人员的最佳拍档,提供强大的安全防护能力。

3.1 及时提供针对新攻击的检测和防御功能:

McAfee IPS 主要依靠McAfee Lab 的优秀研究人员和内置在产品中的 GTI(Global

Threat Intelligence)技术实现前瞻性防护。

McAfee Lab:

McAfee Lab 具有超过 350名研究人员 ,足迹覆盖全球(30 个国家),能够提供实时的,相关的和可操作的威胁的报告分析。McAfee Lab拥有 100 多个专利或专利申请中的技术,通过全球安全中心与业界领先的的 McAfee IPS 结合,研究员能够确保及时提供各类攻击的检测与防御方案。

GTI( Global Threat Intelligence):

McAfee 的全球威胁情报(GTI) 提供了市场上最全面的威胁情报。能够观察到所有的威胁, - 包括文件,web,message 和网络 以及最新的漏洞,通过 McAfee 的安全产品,关联来自全球各地数百万的传感器收集到的真实世界的威胁 ,能够展现整个行业的安全威胁视图并提供实时保护。简单来说,比如在美国爆发了一种新的病毒,这时就会通过上传到GTI,此时在中国的 sensor 中如果发现了未知的威胁,就会与GTI 中的数据库相比较,通过这种方式 ,GTI 可以向全球提供及时的威胁防护。

Page 11

Page 12: Intrushield NSP Technical White Paper v8_Li Ming

3.1.1对于协议识别的统计

McAfee IPS 可准确识别各种网络流量,降低漏报和误报率,避免影响正常的业务通讯,下图知名的 NSS 实验室对 McAfee IPS 检测的数据:目前McAfee 的 NIPS 网络入侵防护系统可以提供从 100M 到 10G 的吞吐量,其对常见的各种类型攻击的检测覆盖率可以达到 99.4%①,支持各种规避技术(具体请见附录 1)。目前国内唯一通过 NSS 测试的厂商可以提供最大到 1G①吞吐量,对常见的各种类型攻击的检测覆盖率达到 77.7%①。由此可以清晰的得知 McAfee IPS 在性能和攻击检测率覆盖方面都要优于国内的 IPS厂商。

3.2 满足高性能的要求

在提供强大的分析和处理能力的同时,McAfee IPS 可保证正常网络通信的质量不会受到影响。如上文所述, McAfee 的 NIPS 网络入侵防护系统可以提供从 100M 到 10G

的吞吐量。完全可以满足从企业到数据中心的性能要求。这是因为 McAfee 提供的NIPS 网络入侵防护系统是基于多核架构,而业界常见的 IPS 多是基于 x86 架构,其性能无法满足中高端用户的需求,在对各类攻击的检测覆盖率上也不能满足较高的要求。下

Page 12

Page 13: Intrushield NSP Technical White Paper v8_Li Ming

图是 NSS 对 McAfee 标称为 10G 的 IPS 产品的性能测试结果,充分证明了 McAfee

IPS 的卓越性能。

Page 13

Page 14: Intrushield NSP Technical White Paper v8_Li Ming

4 附录

McAfee IPS 对于 IPS 逃避攻击可以 100%的检测,下表给出了 NSS 针对 McAfee

IPS 的躲避攻击测试结果。

5.3 Evasion

PASS 5.3.1 Evasion 100%

5.4 Packet Fragmentation

PASS 5.4.1 Ordered 8 byte fragments 100%

PASS 5.4.2 Ordered 24 byte fragments 100%

PASS 5.4.3 Out of order 8 byte fragments 100%

PASS 5.4.4 Ordered 8 byte fragments, duplicate last packet 100%

PASS 5.4.5 Out of order 8 byte fragments, duplicate last packet 100%

PASS 5.4.6 Ordered 8 byte fragments, reorder fragments in reverse 100%

PASS 5.4.7 Ordered 16 byte frags, fragment overlap (favor new) 100%

PASS 5.4.8 Ordered 16 byte frags, fragment overlap (favor old) 100%

PASS 5.4.9 Out of order 8 byte fragments, interleaved duplicate packets

scheduled for later delivery

100%

5.5 Stream Segmentation

PASS 5.5.1 Ordered 1 byte segments, interleaved duplicate segments with

invalid TCP checksums

100%

PASS 5.5.2 Ordered 1 byte segments, interleaved duplicate segments with

null TCP control flags

100%

PASS 5.5.3 Ordered 1 byte segs, interleaved duplicate segments with

requests to resync sequence numbers mid-stream

100%

PASS 5.5.4 Ordered 1 byte segments, duplicate last packet 100%

PASS 5.5.5 Ordered 2 byte segments, segment overlap (favor new) 100%

PASS 5.5.6 Ordered 1 byte segments, interleaved duplicate segments with

out-of-window sequence numbers

100%

PASS 5.5.7 Out of order 1 byte segments 100%

Page 14

Page 15: Intrushield NSP Technical White Paper v8_Li Ming

PASS 5.5.8 Out of order 1 byte segments, interleaved duplicate segments

with faked retransmits

100%

PASS 5.5.9 Ordered 1 byte segments, segment overlap (favor new) 100%

PASS 5.5.10 Out of order 1 byte segs, PAWS elimination (interleaved dup

segs with older TCP timestamp options)

100%

PASS 5.5.11 Ordered 16 byte segs, seg overlap (favor new (Unix)) 100%

5.6 RPC Fragmentation

PASS 5.6.1 One-byte fragmentation (ONC) 100%

PASS 5.6.2 Two-byte fragmentation (ONC) 100%

PASS 5.6.3 All fragments, including Last Fragment (LF) will be sent in one

TCP segment (ONC)

100%

PASS 5.6.4 All frags except Last Fragment (LF) will be sent in one TCP

segment. LF will be sent in separate TCP seg (ONC)

100%

PASS 5.6.5 One RPC fragment will be sent per TCP segment (ONC) 100%

PASS 5.6.6 One LF split over more than one TCP segment. In this case no

RPC fragmentation is performed (ONC)

100%

PASS 5.6.7 Canvas Reference Implementation Level 1 (MS) 100%

PASS 5.6.8 Canvas Reference Implementation Level 2 (MS) 100%

PASS 5.6.9 Canvas Reference Implementation Level 3 (MS) 100%

PASS 5.6.10 Canvas Reference Implementation Level 4 (MS) 100%

PASS 5.6.11 Canvas Reference Implementation Level 5 (MS) 100%

PASS 5.6.12 Canvas Reference Implementation Level 6 (MS) 100%

PASS 5.6.13 Canvas Reference Implementation Level 7 (MS) 100%

PASS 5.6.14 Canvas Reference Implementation Level 8 (MS) 100%

PASS 5.6.15 Canvas Reference Implementation Level 9 (MS) 100%

PASS 5.6.16 Canvas Reference Implementation Level 10 (MS) 100%

5.7 URL Obfuscation

PASS 5.7.1 URL encoding - Level 1 (minimal) 100%

PASS 5.7.2 URL encoding - Level 2 100%

PASS 5.7.3 URL encoding - Level 3 100%

PASS 5.7.4 URL encoding - Level 4 100%

PASS 5.7.5 URL encoding - Level 5 100%

PASS 5.7.6 URL encoding - Level 6 100%

Page 15

Page 16: Intrushield NSP Technical White Paper v8_Li Ming

PASS 5.7.7 URL encoding - Level 7 100%

PASS 5.7.8 URL encoding - Level 8 (extreme) 100%

PASS 5.7.9 Premature URL ending 100%

PASS 5.7.10 Long URL 100%

PASS 5.7.11 Fake parameter 100%

PASS 5.7.12 TAB separation 100%

PASS 5.7.13 Case sensitivity 100%

PASS 5.7.14 Windows \ delimiter 100%

PASS 5.7.15 Session splicing 100%

5.8 FTP Evasion

PASS 5.8.1 Inserting spaces in FTP command lines 100%

PASS 5.8.2 Inserting non-text Telnet opcodes - Level 1 (minimal) 100%

PASS 5.8.3 Inserting non-text Telnet opcodes - Level 2 100%

PASS 5.8.4 Inserting non-text Telnet opcodes - Level 3 100%

PASS 5.8.5 Inserting non-text Telnet opcodes - Level 4 100%

PASS 5.8.6 Inserting non-text Telnet opcodes - Level 5 100%

PASS 5.8.7 Inserting non-text Telnet opcodes - Level 6 100%

PASS 5.8.8 Inserting non-text Telnet opcodes - Level 7 100%

PASS 5.8.9 Inserting non-text Telnet opcodes - Level 8 (extreme) 100%

Page 16