【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置

digest [复制链接]
发表于 : 2016-1-29 09:55:49 最新回复:2019-07-25 20:51:59
7956 5
强叔侃墙
强叔侃墙 官方号

上一篇我们介绍了NGFW上针对HTTP协议和FTP协议的应用控制功能,HTTP协议和FTP协议是比较常见的协议,具有一定的代表意义。当然,单从这两种协议的角度来介绍不免有些狭义,这也只是NGFW应用识别功能的冰山一角。除此之外,NGFW还具备高深莫测的应用识别能力,本篇我们就来介绍NGFW上更为广义的应用识别和控制功能。

现状和问题

经过十多年的发展,互联网已经渗透到生活的方方面面,互联网上承载的应用也在发生着深刻的变化。从最初的网页浏览、EmailFTP下载,到目前的P2P、游戏、视频以及移动互联,丰富多彩的应用成为互联网的主流。

面对层出不穷的新兴应用,如何对其进行管控是管理员面临的最大问题,而管控的前提是必须先识别出各类应用的流量。传统的协议识别技术对此无能为力,这是因为传统的协议识别技术仅检查报文的五元组信息,根据TCP/UDP报文的端口号来识别应用。端口识别技术虽然检测效率很高,但适用的范围却越来越小。

一方面,当前端口使用技术日益复杂。最常见的是应用使用非知名端口,例如使用8080端口而不是默认的80端口进行HTTP通信;应用还会使用动态端口,例如多数P2PVoIP应用会使用随机端口通信;多种应用会使用同一个端口,例如使用80端口来提供在线视频、IMP2P等多种应用。因此,仅通过端口识别技术已经不能真正判断流量中的应用类型了。

另外,协议和应用之间的关系也有点纠缠不清。一个协议可以用于多个应用软件,一个应用软件也可能使用多个协议,增大了应用识别的难度。例如,P2P属于标准协议,存在于多种下载软件中,如比特精灵、迅雷、电驴、FlashGet等。这就要求协议识别的结果不能直接用于应用控制,否则极有可能误伤良民。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-1

例如,迅雷应用软件使用HTTPP2PED2KFTP、迅雷协议等多个协议进行文件传输。这就要求应用识别一定要包括所有关联协议的流量,否则难免有漏网之鱼。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-2

基于应用识别的现状和面临的问题,华为NGFW提供了业务感知(Service Awareness)技术,能够解决当今复杂的应用识别问题,精确识别各类应用。下面我们就来了解业务感知技术的实现原理。

业务感知技术

面对网络中扑朔迷离的流量,业务感知技术为什么可以火眼金睛地识别出各类应用呢?其实说起来也简单,既然传统的协议识别技术只检测报文五元组信息不能识别应用,那业务感知技术就费点力,继续检测报文的应用层数据。

不同的应用软件采用的协议自有其特征,这些特征可能是特定的命令字或者特定的Bit序列。这些特征就构成了一个应用软件的“指纹”,只要我们提取到了各种应用软件的指纹,建立一个指纹库,就可以用来跟流量进行比对。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-3

这就是业务感知的第一板斧,特征识别技术,通过识别数据报文中的特征信息来确定业务所承载的应用。例如,HTTP协议中规定了GETPOST等请求方法,HTTP报文中也需要明确HTTP协议的版本,报文中的这些字段,就可以作为应用特征的一部分来利用。下图显示了HTTP报文中的POST命令和HTTP版本号。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-4

有些应用协议通过多条通道来进行通信,如FTPSIPH.323等,称为多通道协议。多通道协议通过控制通道来协商通信参数,通过动态协商的数据通道来传输具体的数据。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-5

使用特征识别技术,我们可以识别出控制通道,但是对数据通道就无能为力了,因为数据通道是动态协商出来的,而且没有任何的可资利用的特征。但是,既然数据通道是协商出来的,那么控制通道中自然记录了这个协商的过程,也必然包含数据通道的详细信息。那么,通过解析控制通道中的协商报文,提取出数据通道的IP地址和端口号,就可以预知通信双方将要在哪个数据通道上传输数据了。这就是业务感知的第二板斧,关联识别技术

下面以最常见的FTP协议来详细说明关联识别技术,其他应用比FTP复杂,但思路和方法是一样的。FTP客户端和FTP服务端首先通过三次握手建立控制通道,这个控制通道是可以通过特征识别技术检测出来的(如USERPASS命令字)。在传输文件的时候,两端协商建立一个临时的数据通道,数据通道就没有特征可以识别了。

1FTP客户端使用被动模式下载文件,首先要使用PASV命令字通知服务端。目的端口(21)和PASV命令字可以用作特征识别。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-6

2、服务端进入被动模式,并告诉客户端连接的数据通道端口号。如下图中,服务端响应报文的参数中,(10,177,31,123,211,195)即表示服务端的IP地址和端口号,其中,前4位是IP地址,后两位经计算得出端口号54211211*256+195=54211)。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-7

3、客户端通过控制通道向服务端请求一个文件,服务端开放端口。接下来,客户端和服务端经过三次握手,建立一个新的TCP连接。如下图,红框内是控制通道内的请求和响应,蓝框内是新建数据通道的三次握手。这之后的499号报文就是FTP数据传输了,服务端使用的正是前面开放的54211端口。通过五元组,就识别出了FTP控制通道。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-8

互联网上还有一些复杂的应用,很难选择特征关键字来作为识别的特征;更有很多加密应用,因为数据加密使得特征模糊化而无法识别。没有特征,特征识别和关联识别都失效了,怎么办?别急,业务感知还有第三板斧,行为识别技术

行为识别技术比前两种更复杂,针对不同的应用,可利用的行为特征也不尽相同。要准确地识别一个应用,必须抓取海量的流量样本,分析提取出独特的行为特征,这才是行为识别最困难的地方。通常,上下行流量比例、报文发送频率、报文长度变化规律等等,都是可资利用的行为特征指标。行为识别技术通过综合考察和选择多种行为特征指标来实现精准的应用识别。

下面我们把应用识别技术与刑侦破案来做一下类比,如果说特征识别技术对应于犯罪嫌疑人的血型、指纹、DNA等生理特征的话,关联识别技术就对应于审讯和调查,而行为识别对应犯罪嫌疑人的作案手法,通常具有习惯性的行为特征,包括侵害对象、犯罪工具、作案地点、作案时间等等,如下表所示。

识别技术

犯罪嫌疑人

应用

特征识别

指纹、血型、DNA

命令字、特殊字符串

关联识别

落网者---(审讯和调查)--->在逃者

控制通道---(协商报文)--->数据通道

行为识别

侵害对象、犯罪工具、作案地点、作案时间……

上下行流量比例、报文发送频率、报文长度变化规律……

 

上面简单介绍了业务感知的三种应用识别技术,这三类识别技术分别适用于不同类型的协议,综合运用多种技术才能达到较好的识别效果。

实际上,前几篇我们介绍过的反病毒、入侵防御、文件过滤和内容过滤等特性,其基础都是应用识别功能,只有先识别出来了具体的协议,NGFW才能根据识别结果进行下一步的处理。但是在前面我们没有详细介绍应用识别,这是因为NGFW上已经内置了应用识别特征库(预定义应用),识别过程由NGFW直接搞定。下面我们就来了解预定义应用的内容。

预定义应用

华为安全能力中心从海量的互联网应用中,分析并提取了6000+应用的特征,形成了应用识别特征库,并预定义应用的形式加载到NGFW上。这里要重点强调的是,互联网上新的应用层出不穷,已有应用的特征也会发生变化,所以必须定期更新应用识别特征库,才能够保证更好的识别效果。

NGFW上的预定义应用按照属性划分为5个大类和45个子类,如下图所示。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-9

下面给出了预定义应用Skype_VoIP的示例:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-10

NGFW使用下表所示的属性来描述一个预定义应用。

字段

含义

名称

该预定义应用的名称。

描述

该预定义应用的简要介绍。

类别

该预定义应用所属的大类。

子类别

该预定义应用所属的子类。

数据传输方式

该预定义应用的传输方式,包括:

  • 服务器-客户端
  • 浏览器
  • 网络
  • 端到端
  • 未指定的
  • 风险级别

风险级别数值越大,表示使用该应用带来的风险越高。

 

介绍完预定义应用,我们再来看一下端口映射。在传统防火墙上,端口映射主要用于识别非知名端口上提供的知名服务。打个比方,相当于是端口映射告诉防火墙,我这个端口上跑的是某某协议,它只不过是换了一个马甲,请防火墙明察。

NGFW上,端口映射主要还是聚焦于非知名端口,但是作用范围却扩大了。以前端口映射只支持FTPSMTPHTTPRTSPH.323SQLNETMMSPPTPSIPMGCP等几个协议,现在端口映射和业务感知两者一联手,端口映射可以支持所有的应用了。端口映射能够帮助业务感知快速识别应用,而不必等待数据包交互后才识别出应用来,还能节省NGFW的性能。

NGFW的应用识别特征库中包含了丰富的应用类型,能够涵盖互联网的绝大部分应用,但是没有任何一件事可以做到那么尽善尽美,肯定会有一些特殊的应用无法识别。为此,NGFW还提供了自定义应用,弥补预定义应用无法覆盖特殊应用的问题。

自定义应用

自定义应用需要管理员手工定义应用的特征,这就要求管理员要对应用的特征非常了解。而了解应用特征的主要方法是抓包,通过抓包分析,提取出应用的关键特征。一旦自定义应用的特征定义得过于宽泛,很可能会命中其他应用的类似流量;反之,如果特征定义得过于严格,可能有些流量就匹配不上了,就会产生误报与漏报。

应用识别的误报和漏报将会直接影响NGFW对该流量的处理,可能会得到与管理员预期不一致的结果。因此,一般情况下不建议配置自定义应用。实际网络环境中如果真的需要使用自定义应用,还需在充分了解应用特征的前提下,谨慎配置反复调测,以免影响正常业务。

自定义应用的配置过程比较复杂,需要配置的内容很多,包含的配置项如下图所示。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-11

自定义应用中可以配置多条规则,各规则之间是“或(OR)”的关系,只要报文命中其中一条规则便属于该应用。下表给出了自定义应用中几个关键配置项的介绍。

配置项

说明

目的地址

对去往特定目的地址的流量进行应用识别。

协议

对特定协议的流量进行应用识别,包括:

  • TCP协议
  • UDP协议
  • 任意协议

目的端口

对特定目的端口的流量进行协议识别。

检测方向

对特定方向的流量进行应用识别,包括:

  • 请求数据:检测去往服务器的数据
  • 响应数据:检测服务器响应的数据
  • 任意:既检测请求数据又检测响应数据
  • 范围

对特定范围的流量进行应用识别,包括:

  • 流:当关键字跨包出现时,请选择按流的范围进行检测
  • 包:当关键字出现在单个数据包内时,请选择按包的范围进行检测

匹配模式

当标识应用特征的关键字属于固定字段时,可以选择“文本”;当关键字不固定时,请选择“正则表达式”。

文本/正则表达式

输入文本或正则表达式,关于正则表达式的详细介绍请参考NGFW的产品文档,这里不再赘述。

 

无论使用预定义应用还是自定义应用,应用识别不是目的。识别出应用,针对不同的应用去设置不同的控制策略,以实现差异化的管控需求,这才是最终目的。目前,NGFW支持三种应用控制手段,如下表所示。

应用控制手段

典型应用场景

配置方法

基于应用的访问控制

放行办公类应用,阻断影响办公效率的视频类应用

以应用作为安全策略的匹配条件

基于应用的带宽管理

限制视频类应用的带宽为100M,保证办公应用的带宽为200M

以应用作为带宽策略的匹配条件

基于应用的策略路由

指定用户通过ISP1访问视频类应用,通过ISP2访问办公类应用

以应用作为策略路由的匹配条件

 

NGFW的业务感知技术特性原理部分就介绍到这里,下面我们来看两个具体的配置实例。

配置实例

NGFW上,应用是作为安全策略、带宽策略和策略路由的匹配条件来使用的。使用预定义应用时,有一点需要特别注意:某些应用可以细分为多个子应用,若想阻断该应用,则需要阻断所有的子应用。

例如,Skype应用分为Skype_IMSkype_VoIP,如果要阻断Skype应用,则需要同时阻断Skype_IMSkype_VoIP。我们可以在应用的Web界面输入框中输入应用名称,点击“搜索”,即可查询到相关的应用,通过查看应用的描述信息可以得知该应用的关联应用。

举例1:通过预定义应用+端口映射识别应用

如下图所示,NGFW部署在PCFTP服务器之间,FTP使用非知名端口2121提供服务。管理员要求在NGFW上配置安全策略,阻断PC访问FTP服务器的报文。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-12

首先,我们使用预定义应用来满足此需求。配置如下安全策略,阻断PC访问FTP服务器的报文:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-13

配置完成后,PC访问FTP服务器,输入用户名后连接被阻断。同时我们分别在PC上和FTP服务器上抓包,在PC上获取的报文信息如下:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-14

FTP服务器上获取的报文信息如下:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-15

分析上述报文信息可知,由于PC访问的是非知名端口2121,一开始NGFW没有识别出来这就是FTP协议,所以PCFTP服务器之间进行了TCP三次握手,建立了FTP控制通道。当PC使用USER命令向FTP服务器发送用户名时,NGFW上的业务感知功能通过特征识别技术检测到了USER命令字,识别出该流量就是FTP协议。

NGFW识别出FTP协议后,依照安全策略的配置,要进行阻断。此时FTP控制通道已经建立,如果直接生硬地阻断后续报文而不通知PCFTP服务器,有辱TCP可靠连接的威名。在这里,NGFW采用了我们在“HTTPFTP行为控制”一篇中介绍过的方式,分别向PCFTP服务器发送RESET报文。即NGFW伪装身份,告诉通信双方之前建立的TCP连接可以终止了,以此实现阻断的目的。

然后,我们为FTP配置端口映射,再通过抓包分析一下报文交互过程。先在Web界面上为FTP配置端口映射,端口为2121,目的地址为192.168.1.2

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-16

配置完成后,我们先将安全策略policy1上的命中次数统计信息清空,然后在PC上访问FTP服务器,同时我们分别在PC上和FTP服务器上抓包,在PC上获取的报文信息如下:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-17

而在FTP服务器没有获取到任何报文信息。

由于我们为FTP配置了端口映射,NGFW直接将访问2121端口的流量识别为FTP应用,所以NGFW立即阻断了PC发送的建立TCP三次握手的SYN报文。PC尝试发送了三次SYN报文试图建立FTP控制通道,都被NGFW阻断了。在Web页面上的安全策略中也能够看到相应的统计信息,如下图所示:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-18

这也进一步证明,配置端口映射能够帮助业务感知快速识别出FTP应用,而不必等待FTP数据包(USER命令字)交互后才识别出应用来。

上述配置的命令行脚本如下:

#

 port-mapping FTP port 2121 acl 2001

#

security-policy 

 rule name policy1

  source-zone trust

  destination-zone untrust

  source-address 192.168.0.2 mask 255.255.255.255

  application app FTP

  action deny

#

举例2:通过自定义应用识别应用

如下图所示,NGFW作为网关部署在企业网络边界处,对内部网络访问Internet的流量进行安全管控。

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-19

企业管理员对网络进行安全检查时发现,内部服务器192.168.0.2会周期性向外发送可疑报文。进一步抓包分析发现,192.168.0.2会向Internet上的某个公网地址发送UDP报文,报文中携带了未知的数据,如下图所示:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-20

管理员怀疑企业的重要信息被外发到Internet上,在检查192.168.0.2系统安全的同时,管理员还希望在NGFW上识别并阻断这类报文。如果后续网络中再出现类似的流量,NGFW要直接阻断报文,避免重要信息外发。为此,管理员使用自定义应用来实现应用识别的需求。

首先,配置自定义应用的基本属性,如下图所示:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-21

接下来,配置自定义应用的规则。我们分析抓包信息可以看到,内部服务器192.168.0.2向外发送的UDP报文中,数据段部分都以固定的内容“%%%%”开头和结尾,因此这一字符串可作为报文的特征。配置自定义应用的规则时,我们使用正则表达式来描述该字符串就是.*\x25\x25\x25\x25.*\x25\x25\x25\x25,其中.*表示匹配任意字符,\x25%的十六进制表示方式,如下图所示:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-22

自定义应用创建或修改后,必须在Web界面上执行“提交”操作才能生效。提交过程所需时间较长,请耐心等待,建议完成所有自定义应用的配置后再统一进行提交。

最后,配置安全策略,引用自定义应用:

【强叔侃墙第二季】14 不畏浮云遮流量,练就火眼辩应用---应用识别特性原理和配置-1045363-23

完成上述配置后,如果NGFW再次收到带有上述特征的报文,会直接识别为UD_Deny_UDP_packet应用,同时阻断该报文。

上述配置的命令行脚本如下:

#

sa

 user-defined-application name UD_Deny_UDP_packet

  category General sub-category General_UDP

  risk exploitable malware-vehicle data-leak bandwidth-consuming

  rule name rule1

   protocol udp

   signature context packet direction both regular-expression .*\x25\x25\x25\x25.*\x25\x25\x25\x25

#

security-policy 

 rule name policy1

  source-zone trust

  destination-zone untrust

  source-address 192.168.0.0 mask 255.255.255.0

  application app UD_Deny_UDP_packet

  action deny

#

这里给出的自定义应用的特征文本内容比较简单,仅仅是为了说明自定义应用的配置思路,并没有太多的实用价值。在实际网络环境中使用自定义应用时,还需仔细分析报文特征,精确配置自定义应用规则的特征,反复调测,以免影响正常业务。

 

 

 

返回至汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
说啥呢
说啥呢   发表于 2016-2-22 10:26:15 已赞(0) 赞(0)

多谢分享,谢谢

  • x
  • 常规:

点评 回复

员Lemon
员Lemon  专家 发表于 2016-1-29 11:56:19 已赞(0) 赞(0)

多谢分享。
  • x
  • 常规:

点评 回复

jianghao001
jianghao001  新锐 发表于 2017-7-11 10:00:47 已赞(0) 赞(0)

感谢分享
  • x
  • 常规:

点评 回复

木木丶丶
木木丶丶   发表于 2018-8-22 09:09:05 已赞(0) 赞(0)

能不能详细介绍下https这样加密包的识别原理?
  • x
  • 常规:

点评 回复

ycq1105_nb
ycq1105_nb  导师VIP 发表于 2019-7-25 20:51:59 已赞(0) 赞(0)

谢谢分享!
  • x
  • 常规:

点评 回复

宁波科论太阳能有限公司  叶长乾
发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录