【强叔侃墙第二季】07 海量网址难寻踪,分类管控泾渭明---URL过滤特性原理

digest [复制链接]
发表于 : 2015-8-28 15:19:02 最新回复:2019-08-16 09:33:02
9804 8
强叔侃墙
强叔侃墙 官方号

Internet上提供了丰富的资源,它就像水和空气一样,已经成为生存的必需品。我们通过Internet搜索信息、浏览新闻、观看视频,这些资源在Internet上都有一个唯一的网址。网址的学名叫做统一资源定位符(Uniform Resource Locator),简称URL。URL是通向Internet上资源的最直接的通道,有了URL就可以快速访问相应的资源。

URL这条通道带来便利的同时,也带来了前所未有的威胁。特别是对一个企业来说,员工在工作时间随意地访问与工作无关的网站,严重影响工作效率;员工无意间访问非法或恶意网站,泄露企业机密信息,甚至会带来病毒、木马等威胁攻击。

解决上述问题最有效的方法就是阻断那些有害的URL。为此,NGFW提供了URL过滤功能,限制用户可访问的网站或网页资源,达到规范上网行为的目的。
要想对URL进行过滤,先要知道URL中都包含什么内容,了解对手才能见招拆招,下面我们来看一看URL的格式。

URL格式

从本质上说,URL是一串或长或短的字符串,由几部分字段组成,下面给出了一个典型的URL:

【强叔侃墙第二季】07 海量网址难寻踪,分类管控泾渭明---URL过滤特性原理-1272595-1

 

其中各个字段的含义如下:

  • Protocol字段表示协议,通常为HTTP或HTTPS,NGFW支持对这两种协议进行URL过滤。这里我们先以HTTP协议为例,HTTPS协议的情况有些特殊,需要额外的SSL解密配置,我们在后文中介绍。
  • Host字段表示Web服务器的域名或IP地址。如果Web服务器使用非标准端口(非80端口,如8080),则Host字段还应包含端口号,如www.example.com:8080。
  • Path字段表示Web服务器上的目录或文件名,以斜杠“/”隔开。
  • Parameter字段表示传递给网页的参数,通常用于从数据库中动态查询数据。

上述这四个字段组成了一个完整的URL,NGFW在对URL进行过滤时,就是对这一串字符串进行检查和匹配。通常情况下,Parameter字段的取值情况比较复杂,针对该字段进行过滤的管理成本很高,所以一般就是针对Host和Path字段来进行过滤。

关于URL大小写的问题,这里顺带说明一下。URL格式规范中提到,Protocol字段和Host字段不区分大小写,Path字段和Parameter字段是否区分大小写取决于Web服务器上的设置。而对于NGFW来说,对URL进行过滤时,这些字段都是不区分大小写的,这一点在配置的时候需要注意。

Internet上存在海量的网址,如何精确定义这些网址并按需过滤呢?NGFW采用了分门别类的思想,依托于华为安全服务中心提供的网址分类服务,将海量的网址归属到不同的类型中,实现基于分类的URL过滤。

基于分类的URL过滤

预定义分类

目前,华为网址分类服务已经收录了45个大类、137个小类的URL,总条目超过8500万条URL,且仍在不断扩充中。下面的表格给出了当前所有大类的明细,并以大类中的“下载”为例,给出了其下包含的小类。

下载

电子书下载

人文

体育/运动

社会焦点

军事

社交网络

软件下载

图片下载

音乐/电影下载

其他下载

博彩

休闲

宗教/超自然

性题材

房产/家居

求职招聘

搜索/门户

***/***

教育/科学

新闻/媒体

旅游

时尚

交通工具

法律

流媒体

生活

IT相关

论坛

购物

商业/经济/金融

饮食/烟酒

团体组织

低俗/惊悚

赌博

***

恶意网站

***网站

犯罪

空置网站

武器

欺诈

流产

自杀

存储服务器

仇恨言论

邪教

一般性站点

P2P

其他

 

 

上述这些URL已经预先划分好归类,所以也叫做URL预定义分类。NGFW收到用户访问网站的请求时,在预定义分类中查询用户所访问的URL,找到后就能够确定该条URL属于哪一个分类。

预定义分类中包含的URL条目数量巨大,不便于管理和维护,逐条查找时也会影响效率。为此,NGFW在使用预定义分类时采用了“两步走”的方式。第一步,把常用的URL条目提取出来,先在这些URL条目中进行查询;如果没有查询到,再进行第二步,通过华为安全服务中心提供的网址分类服务来进行查询。“两步走”方式的查询过程如下图所示。

【强叔侃墙第二季】07 海量网址难寻踪,分类管控泾渭明---URL过滤特性原理-1272595-2

 

1、NGFW出厂时默认带有一个URL预定义分类库文件,里面包含了常见的一些URL条目。NGFW启动时会自动加载该文件,在缓存中形成URL热点库。
2、企业用户在浏览器中输入URL,访问Internet上的网站。
3、NGFW从企业用户的访问请求中提取出URL,并在URL热点库中查询,这个过程是“两步走”中的第一步,也叫做本地缓存查询。如果查询到URL所属分类,则按照该分类的处理动作响应;如果未查询到,则进入下一环节处理。
4、NGFW向华为安全服务中心(sec.huawei.com)发起远程查询,这个过程是“两步走”中的第二步。华为安全服务中心提供的预定义分类的URL条目更多,查询到该URL所属的分类信息后,NGFW根据查询结果执行相应的处理动作。这里的sec.huawei.com表面上是一个网站,NGFW与该网站“接头”然后进行远程查询,具体过程我们在下面详细介绍。
5、NGFW将远程查询结果添加到URL热点库中,即URL热点库中可查询到该条URL所属的分类。URL热点库就这样经过不断的“学习”后,成为体现国家/区域特色以及企业业务特征的URL热点库,后续就可以减少远程查询次数,加快URL过滤的处理速度。
6、为了保证NGFW异常断电或者重启后学习的结果不丢失,NGFW定期将缓存中的URL热点库保存到URL热点库文件中。每次NGFW启动后都会自动加载该文件,保证了NGFW能够使用最新的URL热点库。

对于远程查询,下面我们再展开介绍一下。远程查询时,其实华为安全服务中心只是充当“接口人”的角色,这一过程还需要其他几个服务器角色参与,包括URL调度服务器(UCDB)和URL查询服务器(UCSS)。所以远程查询的过程是NGFW、华为安全服务中心、URL调度服务器和URL查询服务器配合的结果,如下图所示。

【强叔侃墙第二季】07 海量网址难寻踪,分类管控泾渭明---URL过滤特性原理-1272595-3

 

远程查询的具体步骤这里就不详细介绍了,有一点需要注意,由于华为安全服务中心会根据NGFW所在的国家/地区,为NGFW分配URL调度服务器的IP地址和端口号,所以NGFW上要事先设置所在的国家/地区。

另外,NGFW进行远程查询时,要与华为安全服务中心、URL调度服务器和URL查询服务器正常通信,安全策略的配置必不可少,下表给出了NGFW上应开启的安全策略。

源设备

IP地址

源端口

目的设备

目的IP地址

目的端口

协议

NGFW

Any

Any

华为安全服务中心

Any

80

TCP

NGFW

Any

Any

URL调度服务器

Any

12612

TCP

NGFW

Any

Any

URL查询服务器

Any

12600

UDP

 

华为安全服务中心(sec.huawei.com)的IP地址是变动的,URL调度服务器、URL查询服务器的IP地址是动态分配的,因此在安全策略中,这三者的目的IP地址需要设置为Any。

远程查询在URL分类识别的准确性和实效性方面,比本地缓存查询更强大,而且在查询过程中能够生成体现国家/区域特色以及企业业务特征的URL热点库。但是远程查询需要购买License才能使用,需要额外的开销。在实际使用中,如果有条件的话,建议部署远程查询功能,以便获得更好的URL过滤效果。

无论是本地缓存查询,还是远程服务器查询,最终的目的都是要获取到URL所属的分类,因为NGFW对URL进行过滤时,是根据其所属分类来定义动作的。目前NGFW支持的动作包括:

  • 允许:允许用户访问请求的URL。对于允许动作,还可以配置“重标记报文优先级”,便于其他网络设备根据修改后的DSCP优先级对不同分类的URL流量采取差异化处理。
  • 告警:允许用户访问请求的URL,同时记录日志。
  • 阻断:禁止用户访问请求的URL,同时记录日志。NGFW会阻断拥护访问请求,并向用户推送一个网页说明无法访问的原因。推送的网页内容可自由定制。

这里还要考虑一种异常情况,本地缓存查询或者远程查询时,查询的结果可能是一条URL属于多个不同的分类,如果这些分类的动作不一样,应该以哪个分类的动作为准呢?NGFW提供了两种动作模式,可以解决这个异常情况:

  • 严格模式:最终动作取所属分类中最严格的动作。例如URL属于两个分类,动作分别为“告警”和“阻断”,此时执行“阻断”。
  • 松散模式:最终动作取所属分类中最宽松的动作。例如URL属于两个分类,动作分别为“告警”和“阻断”,此时执行“告警”。

Internet上每天都有大量的新网址产生,华为网址分类服务收录这些新网址的速度可能满足不了个别企业的需求;另外,有些企业对URL过滤的需求比较简单,仅仅需要针对特定的URL来过滤,不想购买远程查询服务。为了满足上述需求,NGFW提供了自定义分类的功能。

自定义分类

自定义分类指的是管理员在NGFW上手动录入URL条目,并根据实际需要将URL划分到不同的分类中,以满足不同场景下的需求。

自定义分类在NGFW上有两种体现形式:

  • 以单独的分类形式体现
    管理员可以在NGFW上创建新的分类,并在分类中添加相关的URL条目。NGFW进行URL过滤时,对URL条目执行该新建分类的动作。
  • 以预定义分类中的自定义URL条目形式体现
    管理员可以在预定义分类中添加新的URL条目,这些URL条目就归属于此预定义分类。NGFW进行URL过滤时,对URL条目执行该预定义分类的动作。

添加自定义分类的URL条目时,NGFW提供了两种添加方式,按整体URL(URL规则)添加和按域名部分(Host规则)添加。回忆一下我们在前面介绍过的URL格式,URL规则的匹配范围主要是Host+Path+Parameter字段,而Host规则只匹配Host字段。可见,URL规则的匹配范围大于Host规则,如果Path或Parameter字段中也含有Host字段的值,那么在匹配的时候就可能出现误命中,影响最终的处理动作。所以在配置时应根据实际情况选择添加方式,以便获得预期的处理结果。

自定义分类中URL条目的配置方式非常灵活,可以将字符串和通配符(*)组合使用,演变出多种匹配方式。需要注意的是,通配符(*)只能放在字符串的前面或者后面,不能放在字符串中间。另外,添加URL条目时不需要输入http://或者https://。下表给出了按整体URL(URL规则)添加时的匹配方式。

如果想…

请配置...

例如

说明

匹配所有以指定字符串开头的URL

字符串+通配符

www.example*

前缀匹配,可匹配如下URL:

  • www.example.com
  • www.example.com/hello.html

匹配所有以指定字符串结尾的URL

通配符+字符串

*aspx

后缀匹配,可匹配如下URL:

  • www.example.com/hello.aspx
  • www.example.com/news/news.aspx
  • 192.168.0.1/sports/abc.aspx

匹配所有包含指定字符串的URL

通配符+字符串+通配符

*sport*

关键字匹配,可匹配如下URL:

  • sports.example.com
  • www.example.com/abcsportsabc/
  • 192.168.0.1/sports/

匹配指定字符串的URL

字符串

www.example.com

精确匹配,依次去除URL中的目录,直到用域名匹配指定的字符串。

可匹配如下URL:

  • www.example.com
  • www.example.com/news
  • www.example.com/news/en/

不能匹配如下URL:

  • www.example.com.cn/news
  • www.example.org/news/www.example.com

 

NGFW对自定义分类中的URL条目进行匹配时,不同的匹配方式存在优先级顺序,由高至低为:精确匹配 > 后缀匹配 > 前缀匹配 > 关键字匹配。这个优先级顺序决定URL过滤的动作是否符合预期,影响URL过滤效果。

例如,“www.example.com/news”这条URL同时符合以下几个自定义分类:

  • 精确匹配:www.example.com/news
  • 前缀匹配:www.example.com/*
  • 关键字匹配:*example*

则最终的查询结果以精确匹配规则“www.example.com/news”对应的分类为准。
另外,在同一种匹配方式下,匹配的规则长度越长优先级越高。例如,以下两个自定义分类都是前缀匹配方式:

  • 前缀匹配:www.example.com/news/*
  • 前缀匹配:www.example.com/*

则“www.example.com/news/index.html”这条URL会被认定属于“www.example.com/news/*”对应的分类。如果匹配的规则长度也相同,则最终以动作模式(严格模式或松散模式)的处理结果为准,动作模式我们在预定义分类中介绍过,这里就不赘述了。

基于分类的URL过滤最重要的就是获得URL所属的分类,无论是预定义分类的本地缓存查询和远程查询,还是自定义分类的各种匹配方式,确定URL所属分类的过程都比较繁琐。如果仅仅想简单粗暴地对某条URL执行允许或阻断动作,而不关心其所属的分类,该如何实现呢?在这种情况下,基于黑白名单的URL过滤应运而生。

基于黑白名单的URL过滤

基于黑白名单的URL过滤,简称URL黑白名单,是基于分类的URL过滤的一个补充。NGFW对URL黑白名单的处理更加简单直接:命中URL黑名单的请求被阻断,命中URL白名单的请求被放行。
URL黑白名单中URL条目的配置方式与自定义分类相同,也是将字符串和通配符(*)组合使用,同样可以针对整个URL进行过滤,或者仅针对Host字段进行过滤。

整体处理流程

通过前面对基于分类的URL过滤、基于黑白名单的URL过滤的介绍,我们对URL过滤功能已是管中窥豹可见一斑。这里我们再把URL过滤的所有环节都串起来,看一看URL过滤的整体处理流程,如下图所示。

【强叔侃墙第二季】07 海量网址难寻踪,分类管控泾渭明---URL过滤特性原理-1272595-4

 

各个环节的简要介绍如下:
1、企业用户发起HTTP连接请求。数据流匹配了动作为允许并且含有URL过滤功能的安全策略后,进入URL过滤处理流程。
2、NGFW从HTTP连接请求中提取URL。
3、NGFW在白名单中查询URL,如果匹配白名单,放行该请求;如果未匹配白名单,则进行下一环节处理。
4、NGFW在黑名单中查询URL,如果匹配黑名单,阻断该请求;如果未匹配黑名单,则进行下一环节处理。
5、NGFW在自定义分类中查询URL,如果匹配自定义分类,按照自定义分类的动作处理该请求(如果是在预定义分类中新增的URL,按照该URL所属的预定义分类的动作处理该请求);如果未匹配自定义分类,则进行下一环节处理。
6、NGFW在本地缓存的URL热点库中查询URL所属分类,如果在URL热点库中查询到对应的分类,按照该分类的动作处理该请求;如果在URL热点库中没有查询到对应的分类,则进行下一环节处理。
7、NGFW检查远程查询功能是否可用,如果远程查询功能不可用,按照管理员配置的缺省动作处理该请求;如果远程查询功能可用,则进行下一环节处理。
8、NGFW向华为安全服务中心发起远程查询,如果华为安全服务中心返回了对应的分类,则按照该分类的动作处理该请求(当华为安全服务器中心无法确定该URL属于哪一个分类时,会将该URL归类到“其他”类中,NGFW根据“其他”类的动作处理该请求);如果连接华为安全服务中心失败或者查询超时,则按照管理员配置的远程查询超时动作处理该请求。
了解URL过滤整体的处理流程非常重要,有助于我们针对不同的URL过滤需求,精确配置自定义分类、黑白名单以及相应的动作,保证URL过滤的准确性。
下表给出了URL过滤的几个例子以及简单的配置思路,这里我们只用了文字来描述,相关的配置将在下一篇中详细介绍。

需求

配置思路

只允许访问指定的几个网站

白名单+所有分类全部阻断动作+缺省阻断动作

只禁止访问指定的几个网站

黑名单+所有分类全部允许动作+缺省允许动作

对于某个网站,只允许访问某几个页面

白名单(允许访问的页面)+黑名单(整个网站)

 

我们在URL格式一节中介绍过,NGFW支持对HTTP和HTTPS协议进行URL过滤。HTTP协议中的数据是不加密的,NGFW可以直接提取其中的URL信息;而HTTPS协议中的数据是加密的,NGFW必须先解密数据后才能获得其中的URL信息。下面我们就来介绍针对HTTPS协议的URL过滤。

针对HTTPS协议的URL过滤

对于HTTP协议,NGFW可以很轻松地从用户的访问请求中提取出URL信息,然后进行URL过滤处理。但是,对于HTTPS协议来说,URL的提取就没有这么简单了。当用户访问使用HTTPS的网站时,用户先和网站建立SSL连接,然后才进行应用层数据的传输。而且,应用层数据都是经过加密的,如下图所示。

【强叔侃墙第二季】07 海量网址难寻踪,分类管控泾渭明---URL过滤特性原理-1272595-5

 

对于加密后的信息,NGFW无法提取URL信息,也就无法进行URL过滤处理。那么针对HTTPS协议,如何也能实现URL过滤功能呢?答案是解密,NGFW将HTTPS协议解密之后就可以提取其中的URL。

我们在第一季技术贴中介绍过SSL连接建立的过程以及证书认证的原理,这里就用到了这两方面的知识。简言之,NGFW通过替换证书来建立客户端与NGFW、NGFW与HTTPS服务器端的两个SSL连接,如下图所示。NGFW以“代理人”的身份坐镇其中,对客户端访问HTTPS服务器的报文进行解密。解密之后就可以提取URL信息,进行URL过滤处理,允许通过的报文会加密后发送至HTTPS服务器。

【强叔侃墙第二季】07 海量网址难寻踪,分类管控泾渭明---URL过滤特性原理-1272595-6

 

NGFW通过SSL解密策略来实现对HTTPS协议的加密和解密,关于SSL解密策略的配置方法请参考产品手册。需要注意的是,加密和解密过程比较消耗性能,而且对于需要双向认证的HTTPS协议,如网上银行,NGFW是不支持进行SSL解密的。

至此,URL过滤特性的原理部分介绍完毕,下一篇我们将介绍URL过滤特性的配置,同时会给出典型的配置实例。

 

 

返回至汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
员Lemon
员Lemon  专家 发表于 2015-8-28 16:06:21 已赞(0) 赞(0)

好资料,多谢分享。

  • x
  • 常规:

点评 回复

kmyd
kmyd  大师 发表于 2015-8-29 13:21:03 已赞(0) 赞(0)

好东西,感谢强叔!!

  • x
  • 常规:

点评 回复

xutong-2014
xutong-2014  新锐 发表于 2015-11-20 14:11:28 已赞(0) 赞(0)

好资料!感谢
  • x
  • 常规:

点评 回复

xiaofan1
xiaofan1   发表于 2016-4-6 16:58:27 已赞(0) 赞(0)

好文章,谢谢

  • x
  • 常规:

点评 回复

黄诗海
黄诗海   发表于 2016-4-11 16:58:20 已赞(0) 赞(0)

篇篇收下!

  • x
  • 常规:

点评 回复

li yue
li yue   发表于 2016-4-11 17:10:30 已赞(0) 赞(0)

学习了,谢谢

  • x
  • 常规:

点评 回复

爱在离别时
爱在离别时  精英 发表于 2015-12-30 22:38:34 已赞(0) 赞(0)

感谢分享。

  • x
  • 常规:

点评 回复

GhostBoy
GhostBoy   发表于 2019-8-16 09:33:02 已赞(0) 赞(0)

学习
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

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

登录参与交流分享

登录