URL过滤技术

URL过滤简介

URL过滤功能可以对用户访问的URL进行控制,允许或禁止用户访问某些网页资源,达到规范上网行为的目的。URL过滤还可以通过引用时间段或用户/组等配置项,实现针对不同时间段或不同用户/组的URL访问控制,达到更加精细化和准确化控制员工上网权限的需求。

URL过滤功能只支持过滤HTTP或HTTPS协议的URL请求。需要过滤HTTPS协议的URL请求时,还需要配置URL过滤的加密流量过滤功能。

URL过滤与DNS过滤的关系:

除了URL过滤,DNS过滤也可以达到规范上网行为的目的。DNS过滤是对DNS请求报文中的域名进行过滤,允许或禁止用户访问某些网站。

URL过滤与DNS过滤对比:

对比项 URL过滤 DNS过滤
控制访问阶段 在发起HTTP/HTTPS的URL请求阶段进行控制 在域名解析阶段进行控制
控制粒度 控制粒度细,可以控制到目录和文件级别 控制粒度粗,只能控制到域名级别
性能影响 性能影响大 性能影响小
控制范围 仅控制HTTP/HTTPS访问 该域名对应的所有服务都可以控制

URL过滤原理

URL分类:

  • 预定义URL分类

    系统内置的,系统预先对大量常见的URL进行了分类。预定义URL分类不能创建、删除和重命名。

  • 自定义URL分类

    手工配置的,自定义URL分类的配置分为两种:

    • 创建一个自定义URL分类,并添加URL到该自定义URL分类中。
    • 向预定义URL分类中添加URL,该URL属于自定义URL分类。

    自定义URL分类优先级高于预定义URL分类。

预定义URL分类查询:

预定义URL分类的查询分为两种方式:预定义URL分类缓存和远程查询服务器。

设备初次上电时,自动将URL分类预置库加载到预定义URL分类缓存里。当用户请求访问URL时,设备提取URL信息后,首先会在缓存中查询该URL对应的分类。如果查询到URL分类,则按照配置的响应动作进行处理。如果查询不到,则到远程查询服务器上继续查询,如果查询到URL对应的分类,则按照URL过滤配置文件中配置的响应动作进行处理,并将查询到的URL和其对应的分类信息保存到预定义URL分类缓存中,以便下次快速查询。

内嵌白名单功能:

一般大的网页都会内嵌其他的网页链接,如果只将主网页加入白名单,则该主网页下的内嵌网页部分将无法正常访问。因此新增了内嵌白名单功能。该功能将用户HTTP请求中的referer字段(标识用户从哪个网页跳转过来)去匹配白名单,如果匹配,用户就可以访问该网页。因此只要配置一个网页的白名单,用户就可以访问该网页下的内嵌网页,简化了配置。

内嵌白名单功能有两种实现方式,具体如下:

  • 使用用户手工配置的referer-host与HTTP请求中的referer字段进行匹配,如果匹配则允许该URL请求。如果HTTP请求中的referer字段没有匹配配置的referer-host,用户还可以选择是否将referer字段去匹配所有配置的白名单规则。开启referer字段匹配白名单功能后,如果referer字段匹配白名单规则,则允许该URL请求。
  • 开启referer字段匹配白名单功能后,直接使用配置的白名单与HTTP请求中的referer字段进行匹配,如果匹配命中,则允许该URL请求。

referer字段匹配白名单功能默认开启,用户也可以选择关闭该功能。

URL信誉和恶意URL:

  • URL信誉:

    URL信誉反映了用户访问的URL是否值得信赖。开启URL信誉检测功能后,可以对低信誉的URL进行阻断。URL信誉值的查询分为两种方式:URL信誉热点库和远程查询服务器。

  • 恶意URL:

    恶意URL是指包含恶意信息的URL。开启恶意URL检测功能后,URL过滤功能利用这些恶意URL信息即可对后续流量进行阻断。

URL匹配方式:

url匹配

URL过滤方式:

  • 黑白名单
  • URL自定义分类
  • URL预定义分类
  • 远程分类服务器

URL的控制动作:

URL过滤的控制动作包括允许、告警和阻断,其严格程度依次增高。

  • 允许:指允许用户访问请求的URL。
  • 告警:指允许用户访问请求的URL,同时记录日志。
  • 阻断:指阻断用户访问请求的URL,同时记录日志。

当URL属于多个分类时,响应动作将按照动作模式执行:

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

URL过滤处理流程:

在NGFW启用URL过滤功能的情况下,当用户通过NGFW使用HTTP或HTTPS访问某个网络资源时, NGFW将进行URL过滤。

过程

图:URL过滤处理流程

处理流程:

  1. 白名单
  2. 黑名单
  3. 自定义URL
  4. 预定义URL
  5. 远程预定义

详细URL过滤处理流程:

流程

图:详细URL过滤处理流程
  1. 用户发起URL访问请求,如果数据流匹配了安全策略,且安全策略的动作为允许,则进行URL过滤处理流程。

  2. FW检测HTTP报文是否异常。

    • 如果HTTP报文异常,则阻断该请求。
    • 如果HTTP报文正常,则进行下一步检测。
  3. FW将URL信息与白名单进行匹配。

    • 如果匹配白名单,则允许该请求通过。
    • 如果未匹配白名单,则进行下一步检测。
  4. FW将URL信息与黑名单进行匹配。

    • 如果匹配黑名单,则阻断该请求。
    • 如果未匹配黑名单,则进行下一步检测。
  5. FW将HTTP请求中的referer字段与白名单进行匹配。

    • 如果HTTP请求中的referer字段与配置的referer-host匹配,则允许该请求通过。
    • 如果HTTP请求中的referer字段与配置的referer-host不匹配,用户可以决定是否使用referer字段去匹配所有配置的白名单规则。
      • 当referer字段匹配白名单功能开启时,会使用referer字段与配置的所有白名单规则继续匹配。
        • 如果匹配,则允许该请求通过。
        • 如果未匹配,则进行下一步检测。
      • 当referer字段匹配白名单功能关闭时,不会使用referer字段与配置的所有白名单匹配,而是进行下一步检测。

    referer字段匹配白名单功能默认开启,如果要关闭该功能,可以配置undo referer-filter whitelist-all enable命令。

  6. FW将URL信息与自定义分类进行匹配。

    • 如果匹配自定义分类,则按照自定义URL分类的控制动作处理请求。
    • 如果未匹配自定义分类,则进行下一步检测。
  7. FW将URL信息与恶意URL、低信誉URL进行匹配。

    • 如果匹配恶意URL或低信誉URL,则阻断该请求。
    • 如果未匹配恶意URL或低信誉URL,则进行下一步检测。
  8. FW将URL信息与本地缓存中的预定义分类进行匹配。

    • 如果在本地缓存中查询到对应的分类,则按照该分类的控制动作处理请求。
    • 如果在本地缓存中没有查询到对应的分类,则进行远程查询。
      • 如果远程查询服务器可用,则继续进行远程查询。
      • 如果远程查询服务器不可用,则按照缺省动作处理请求。
  9. 启动远程查询。

    1. 如果远程查询服务器在设定的超时时间内没有返回结果,则按照管理员配置的“超时后动作”处理。
    2. 如果远程查询服务器上明确查询到该URL属于某个预定义分类,则按照该分类的控制动作处理。

URL远程查询过程:

一般来说,URL远程查询由安全中心、调度服务器和查询服务器共同完成。各设备的作用如下:

  • 安全中心:安全中心的域名为sec.huawei.com,作用是对FW进行设备认证。如果认证通过,安全中心将根据FW所在的国家/地区信息,向FW提供该区域内的调度服务器地址和端口。

    和安全中心进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为80。

  • 调度服务器:调度服务器的作用是向FW提供区域内的查询服务器地址和端口。由于调度服务器是分区域部署的,所以FW上必须配置正确的国家/地区信息,否则无法成功获取到调度服务器的地址和端口。

    和调度服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为12612。

  • 查询服务器:查询服务器的作用是处理查询请求,并将查询结果返回给FW。查询服务器也是分区域部署的,且和调度服务器存在配套关系,即调度服务器只能向FW提供同一区域内的查询服务器地址和端口。

    和查询服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为UDP,目的端口为12600。

  • 安全中心:安全中心的域名为sec.huawei.com,作用是对FW进行设备认证。如果认证通过,安全中心将根据FW所在的国家/地区信息,向FW提供该区域内的调度服务器地址和端口。

    和安全中心进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为80。

  • 调度服务器:调度服务器的作用是向FW提供区域内的查询服务器地址和端口。由于调度服务器是分区域部署的,所以FW上必须配置正确的国家/地区信息,否则无法成功获取到调度服务器的地址和端口。

    和调度服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为12612。

  • 查询服务器:查询服务器的作用是处理查询请求,并将查询结果返回给FW。查询服务器也是分区域部署的,且和调度服务器存在配套关系,即调度服务器只能向FW提供同一区域内的查询服务器地址和端口。

    和查询服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为UDP,目的端口为12600。

URL远程查询过程:

远程

图:URL远程查询过程
  1. FW向华为安全中心发起认证请求,并请求调度服务器的地址。
  2. 认证通过后,华为安全中心根据FW的国家/地区信息,向FW提供该区域内的调度服务器地址和端口。
  3. FW向调度服务器请求查询服务器的地址和端口。
  4. 调度服务器确认FW的设备信息无误后,向FW提供查询服务器的地址和端口。一般来说,FW将收到多个查询服务器的地址和端口。
  5. FW向所有查询服务器发起测速消息,并根据响应速度从中选出最优服务器,然后向该服务器请求URL分类信息。
  6. 查询服务器反馈URL分类信息,FW将根据此分类信息继续进行URL过滤。

URL过滤配置思路

配置思路:

  1. 配置URL自定义分类。
  2. 配置黑白名单
  3. 配置URL过滤Profile
  4. 配置安全策略
  5. 提交编译

URL排除思路:

  1. 策略下配置的规则存在优先级关系。
  2. 用户没有在安全策略中应用或应用错误。
  3. 流量匹配了优先级更高的安全策略规则。
  4. URL过滤配置文件没有在安全策略中应用。
  5. 修改后的URL过滤配置文件未提交编译。

参考文档:华为HedEx文档


坚持原创技术分享,您的支持将鼓励我继续创作!