博雅IT精英教育

  • 400-161-8961
  • 微信号
  • 百万高薪学员
  • 博雅教育就业保障
  • 博雅教育实训保障
首页 > 博雅知识库

防火墙之URL过滤特性原理--王强

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

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

     解决上述问题最有效的方法就是阻断那些有害的URL。为此,NGFW提供了URL过滤功能,限制用户可访问的网站或网页资源,达到规范上网行为的目的。

     要想对URL进行过滤,先要知道URL中都包含什么内容,了解对手才能见招拆招,下面我们来看一看URL的格式。

一、URL格式

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

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

     1、Protocol字段表示协议,通常为HTTP或HTTPS,NGFW支持对这两种协议进行URL过滤。这里我们先以HTTP协议为例,HTTPS协议的情况有些特殊,需要额外的SSL解密配置,我们在后文中介绍。

     2、Host字段表示Web服务器的域名或IP地址。如果Web服务器使用非标准端口(非80端口,如8080),则Host字段还应包含端口号,如www.example.com:8080。

     3、Path字段表示Web服务器上的目录或文件名,以斜杠“/”隔开。

     4、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,且仍在不断扩充中。下面的表格给出了当前所有大类的明细,并以大类中的“下载”为例,给出了其下包含的小类。

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

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

     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查询服务器配合的结果,如下图所示。

三、整体处理流程

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

     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过滤特性的原理部分介绍完毕,下一篇我们将介绍URL过滤特性的配置,同时会给出典型的配置实例。