应用程序控制与Web过滤配置最佳实践

更新时间:
复制 MD 格式

本文介绍应用程序控制与Web过滤的典型配置示例,旨在阐明如何通过应用层管控策略,实现对网络流量的精细化访问控制。

操作前提

  • 使用应用程序控制Web过滤功能前需先完成开通。该功能目前处于邀测阶段,如需开通,请联系您的商务经理,并提供测试地域与IP地址。

  • 应用程序控制对HTTPS流量的深层识别,以及Web过滤对HTTPS URL路径的匹配,均依赖TLS检查功能。若需检查加密流量,请确保目标资产已配置并开启TLS检查。

功能介绍

应用程序控制基于深度报文检测(DPI)与启发式行为分析技术,通过识别流量特征,解析加密或非常规端口下的真实应用身份。其内置特征库涵盖办公协作、即时通讯、人工智能、网络穿透及开发与设计等22大类应用,支持按应用类型对出向流量执行放行、观察或拒绝操作。

Web过滤基于域名与路径的URL模式匹配,对出向HTTP/HTTPS请求执行放行、观察或拒绝操作,并支持通过通配符实现路径级的精细化管控。

上述两项功能均作用于互联网边界的出向流量。配置时需创建相应的安全模板,并在出向访问控制策略的高级配置中引用方可生效。高级配置按模板配额独立计算,上限为10个。

模板处于关闭状态时仍可被访问控制策略引用。此时,引擎将在流日志中识别相关高级安全字段,但不执行实际管控动作,亦不生成事件日志。

匹配逻辑

Web过滤的匹配逻辑

Web过滤的目标URL由主机名(域名)和路径两部分组成。当同一域名下配置了多条URL规则时,系统按最长匹配原则处理——路径匹配长度更长的规则优先生效。

说明
  • URL路径末尾须包含/。正确示例:example.com/,错误示例:example.com

  • 目标URL仅支持主机名和路径,不支持协议头(如 https://)、查询参数(Query)及片段标识(Fragment)。

  • 通配符(*)仅允许置于路径末尾,且每条规则仅支持一个通配符。

  • 同一模板内不允许配置重复的URL规则。

  • 对于未匹配到任何规则的URL,引擎默认放行。

应用程序控制的匹配逻辑

系统对出向流量进行深度报文检测(DPI)分析后,可能同时识别出多个应用程序标签。动作判定遵循以下优先级(由高到低)执行:

  1. 自定义规则:优先级最高。用户可针对特定应用设定处置动作,优先级数值越小越优先。同一优先级的自定义规则最多可关联100个应用程序。

  2. 内置应用程序分类:当请求命中多个应用标签时,系统按权重选择权重最高的应用对应的动作。

  3. 未识别应用动作:对特征库无法识别的应用执行兜底动作。

说明
  • 优先推荐使用内置应用程序分类。自定义规则主要用于临时止血、运维处置,或对分类中的特定应用实施更高优先级的差异化管控。

  • 对于HTTP协议(含配置TLS检查后的HTTPS)长连接场景,识别结果随请求动态更新。

  • 对于非HTTP协议,仅在连接建立时进行一次识别,后续不再更新。

ACL与高级配置的协同判定逻辑

ACL策略中的访问源、目的(IP地址或域名)、协议类型、端口及应用等基础匹配条件之间为“同时满足”关系。流量首先匹配ACL基础条件,随后根据是否配置高级安全功能决定后续处理逻辑。

协同判定规则

  • 未配置高级安全配置:保持原有ACL匹配逻辑,流量命中后以ACL基础动作为准。

  • 已配置高级安全配置:流量命中ACL基础条件后,进入高级安全匹配阶段。若命中高级安全规则,以高级安全配置的动作为准。在相同动作下,Web过滤的匹配优先级高于应用程序控制。

说明
  • Web过滤未命中具体规则时,未识别URL动作默认为放行,随后按应用程序控制的匹配结果继续处理。

  • 当策略引用的模板处于关闭状态时,不改变ACL的基础匹配与动作。此时流日志仍可记录识别结果,但模板不执行管控,亦不产生事件日志。

  • 多条ACL策略可引用同一个应用程序控制或Web过滤模板。

Web过滤配置示例

允许域名全局访问并拒绝特定路径

示例:企业允许员工访问 github.com 浏览代码仓库及下载 Release 文件,但禁止通过 GitHub 网页界面向指定仓库上传文件。

操作步骤

  1. 登录云防火墙控制台

  2. 在左侧导航栏,选择防护配置 > Web过滤

  3. 单击新增模板,并完成以下配置。

    配置项

    说明

    模板名称模板描述

    设置便于识别的模板名称与描述,例如GitHub路径管控

    模板开关

    开启开关,仅开启状态下配置方可生效。

    自定义规则

    配置如下两条URL规则。

    规则1

    • 目标URLgithub.com/example-org/example-repo/upload/*

    • 动作:拒绝

    • 说明:拒绝通过网页向指定仓库上传文件。请将example-org/example-repo替换为实际的组织名和仓库名。

    规则2

    • 目标URLgithub.com/*

    • 动作:放行

    • 说明:放行GitHub的其他访问,包括仓库浏览和Release文件下载。

  4. 模板创建完成后,在左侧导航栏,选择防护配置 > 访问控制 > 策略配置 > 互联网边界

  5. 出向页签,单击创建策略,在创建出向策略面板配置访问控制策略,并在高级配置中引用上述模板。关键配置项如下:

    配置项

    说明

    示例值

    访问源

    网络流量的发起方。

    0.0.0.0/0

    目的

    网络流量的接收方。

    0.0.0.0/0

    网络传输协议

    传输层协议类型。

    TCP

    端口

    目的端口范围。

    0/0

    动作

    设置策略的放行情况。

    放行

    高级配置-Web过滤

    选择已创建的Web过滤模板。

    GitHub路径管控

  6. 结果验证:配置完成后,确认可正常浏览github.com的仓库页面并下载Release文件;通过网页向配置的目标仓库上传文件时,请求被拦截。

应用程序控制配置示例

治理影子AI:仅放行已审批的AI工具

示例:企业已审批通义千问、阿里云百炼作为内部 AI 工具,需要禁止员工使用未经审批的 AI 应用(如 ChatGPT、Claude、Gemini),同时保留对未知应用的观察能力。

操作步骤

  1. 在左侧导航栏,选择防护配置 > 访问控制 > 应用程序控制

  2. 自定义模版页签,单击新增模板,并完成以下配置。

    配置项

    说明

    基本信息

    设置便于识别的模板名称与描述,例如AI工具管控

    内置应用程序分类

    在分类列表中定位至人工智能,通过一键操作将动作设置为拒绝。表示拦截命中的请求,并记录事件日志。

    自定义规则

    规则1:放行已审批 AI 工具,并记录事件日志用于统计使用情况。自定义规则优先级高于内置应用程序分类,因此不受人工智能分类"拒绝"动作影响。如不需要日志,可将动作改为放行。

    • 动作:观察

    • 规则优先级:10

    • 选择应用:百炼、千问

    未识别应用动作

    定义云防火墙对未知应用的默认处置动作,设置为观察。表示放行未知流量避免误伤业务,同时通过日志发现特征库尚未覆盖的新 AI 应用。

    模板开关

    控制模板的启用状态,设置为开启状态。

  3. 模板创建完成后,在左侧导航栏,选择防护配置 > 访问控制 > 策略配置 > 互联网边界

  4. 出向页签,单击创建策略,在创建出向策略面板配置访问控制策略,并在高级配置中引用上述模板。关键配置项如下:

    配置项

    说明

    示例值

    访问源

    网络流量的发起方。

    0.0.0.0/0

    目的

    网络流量的接收方。

    0.0.0.0/0

    网络传输协议

    传输层协议类型。

    TCP

    端口

    目的端口范围。

    0/0

    动作

    设置策略的放行情况。

    放行

    高级配置-应用程序控制

    选择已创建的应用程序控制模板。

    AI工具管控

    说明
    • 策略基础动作设置为放行;命中高级安全规则时,以应用程序控制模板中的动作为准。

    • 多条策略可以引用同一个应用程序控制模板,不需要为每条ACL策略分别创建模板。

  5. 结果验证:配置完成后,建议持续观察 1 至 2 周。请前往日志审计 > 事件日志查看“人工智能”类应用的命中记录,以评估企业内 AI 应用的实际使用分布。评估完成后,可按需调整内置分类的管控动作;仅在特殊运维或差异化管控场景下,添加自定义规则。

管控开发者工具并防止代码外泄

示例:企业需要保障研发团队正常使用GitHub、蚂蚁工程师门户等开发工具,但需要禁止通过GitHub上传文件,防止源代码泄露至公网仓库。

操作步骤

  1. 在左侧导航栏,选择防护配置 > 访问控制 > 应用程序控制

  2. 自定义模版页签,单击新增模板,并完成以下配置。

    配置项

    说明

    基本信息

    设置便于识别的模板名称与描述,例如开发工具管控

    内置应用程序分类

    在分类列表中单击展开更多,定位至开发与设计,通过一键操作将动作设置为放行。然后进入开发与设计分类,搜索“GitHub上传”,将该应用的动作设置为拒绝

    说明

    "开发与设计"类覆盖GitHub、蚂蚁工程师门户等应用。设置为放行可保障研发效率。

    自定义规则(可选)

    如遇临时止血、运维处置,或需要确保“GitHub 上传”优先于分类中的其他识别结果,可选用自定义规则,示例如下。

    规则1:临时或更高优先级地禁止通过GitHub上传代码文件。

    • 动作:拒绝

    • 规则优先级:10

    • 选择应用:GitHub 上传

    未识别应用动作

    定义云防火墙对未知应用的默认处置动作,设置为观察。

    模板开关

    控制模板的启用状态,设置为开启状态。

  3. 模板创建完成后,在左侧导航栏,选择防护配置 > 访问控制 > 策略配置 > 互联网边界。继续配置访问控制策略,具体方式可参考治理影子AI:仅放行已审批的AI工具

  4. 结果验证:配置完成后,确认研发人员可以正常浏览GitHub仓库页面,但通过GitHub上传文件的操作被拦截。

应用程序控制与Web过滤组合配置示例

AI工具分级管控

示例:企业需要对AI工具实施分级管控:允许使用经过审批的AI工具(如千问、百炼),禁止使用未经审批的AI应用,同时通过URL匹配阻止向AI模型托管平台上传模型文件。

操作步骤

  1. 创建Web过滤模板。

    1. 在左侧导航栏,选择防护配置 > Web过滤

    2. 单击新增模板,并完成以下配置。

      配置项

      说明

      模板名称模板描述

      设置便于识别的模板名称与描述,例如AI平台URL管控

      模板开关

      开启开关,仅开启状态下配置方可生效。

      自定义规则

      配置如下三条URL规则。

      规则1

      • 目标URLchat.openai.com/*

      • 动作:拒绝

      • 说明:通过URL匹配兜底,阻止访问ChatGPT。

      规则2

      • 目标URLhuggingface.co/example-org/example-model/upload/*

      • 动作:拒绝

      • 说明:阻止向指定Hugging Face模型仓库上传文件;请替换为实际组织名和仓库名。

      规则3

      • 目标URLhuggingface.co/*

      • 动作:观察

      • 说明:允许浏览Hugging Face,并记录日志。

      说明

      如需管控多个模型仓库,请按仓库分别添加上传路径规则,确保每条规则最多存在一个通配符,且通配符位于路径末尾。同一模板内不得添加重复URL规则。

  2. 创建应用程序控制模板。参考治理影子AI:仅放行已审批的AI工具,创建名为AI工具管控的应用程序控制模板;如需对已审批和未审批AI应用实施差异化动作,请添加不同优先级的自定义规则。

  3. 创建出向访问控制策略,同时引用两个模板。

    1. 在左侧导航栏,选择防护配置 > 访问控制 > 策略配置 > 互联网边界

    2. 出向页签,单击创建策略,在创建出向策略面板配置访问控制策略,并在高级配置中引用上述模板。关键配置项如下:

      配置项

      说明

      示例值

      访问源

      网络流量的发起方。

      0.0.0.0/0

      目的

      网络流量的接收方。

      0.0.0.0/0

      网络传输协议

      传输层协议类型。

      TCP

      端口

      目的端口范围。

      0/0

      动作

      设置策略的放行情况。

      放行

      高级配置-Web过滤

      选择已创建的Web过滤模板。

      AI平台URL管控

      高级配置-应用程序控制

      选择已创建的应用程序控制模板。

      AI工具管控

      说明

      应用程序控制与Web过滤同时绑定至同一条ACL策略时,Web过滤的匹配优先级高于应用程序控制。请求先按Web过滤规则处理;未命中具体URL规则时,再按应用程序控制的识别结果处理。

  4. 结果验证:配置完成后,请确认以下管控效果:

    • 允许访问千问、百炼。

    • 拦截未授权的 AI 应用(如 ChatGPT、Claude 等),该动作由应用程序控制识别规则触发。

    • 拦截对 chat.openai.com 的访问,该动作由 Web 过滤规则兜底触发。

    • 允许访问 huggingface.co 并记录日志,但拦截其上传路径的请求。

开发者环境全链路管控

示例:企业需要保证研发团队正常使用开发工具,同时从应用识别和URL匹配两个维度防止代码和敏感数据外泄。

操作步骤

  1. 创建Web过滤模板。

    1. 在左侧导航栏,选择防护配置 > Web过滤

    2. 单击新增模板,并完成以下配置。

      配置项

      说明

      模板名称模板描述

      设置便于识别的模板名称与描述,例如开发平台URL管控

      模板开关

      开启开关,仅开启状态下配置方可生效。

      自定义规则

      配置如下URL规则。

      规则1

      • 目标URLnpmjs.com/*

      • 动作:放行

      • 说明:允许正常使用npm包管理器。

      规则2

      • 目标URLpypi.org/*

      • 动作:放行

      • 说明:允许正常使用Python包管理器。

      规则3

      • 目标URLpastebin.com/*

      • 动作:拒绝

      • 说明:阻止代码片段外传到Pastebin。

      规则4

      • 目标URLtransfer.sh/*

      • 动作:拒绝

      • 说明:阻止通过transfer.sh外传文件。

      规则5

      • 目标URLgithub.com/example-org/example-repo/upload/*

      • 动作:拒绝

      • 说明:阻止通过网页向指定GitHub仓库上传文件;请替换为实际组织名和仓库名。

      规则6

      • 目标URLgithub.com/*

      • 动作:放行

      • 说明:放行GitHub域名的整体访问。

      说明

      Web过滤遵循最长匹配原则,指定仓库的上传路径规则比github.com/*匹配得更具体,因此网页上传操作会被拒绝,而仓库浏览和Release文件下载会被放行。如需管控多个仓库,请按仓库分别添加上传路径规则。

  2. 创建应用程序控制模板。参考管控开发者工具并防止代码外泄,创建名为开发工具管控的应用程序控制模板。

  3. 参考AI工具分级管控,创建出向访问控制策略,同时引用开发工具管控开发平台URL管控模板。

  4. 结果验证:配置完成后,请确认以下管控效果:

    • 研发人员可正常浏览GitHub仓库页面,并能使用npm、pip等包管理器。

    • GitHub文件上传请求被应用程序控制规则拦截;通过浏览器向目标仓库上传文件时,同时命中Web过滤拒绝规则。

    • 访问pastebin.com等非授权内容平台的请求被拦截。

配置建议

建议项

说明

先观察再收紧

新建模板时,建议初始动作设为“观察”。运行12周后,根据日志审计中的事件日志分析实际流量分布,再逐步调整为“拒绝”。避免上线即拦截导致误伤正常业务流量。

优先使用内置分类

设定基线动作时,应优先使用应用程序控制内置分类。自定义规则仅用于临时处置、运维干预,或对特定应用实施高优先级的差异化管控。

应用程序控制与Web过滤组合使用

应用程序控制基于应用身份进行管控,Web过滤基于URL路径进行补充管控。两者同时配置时,Web过滤的匹配优先级高于应用程序控制;若命中高级安全规则,则以高级安全配置的动作优先。

TLS检查前置

配置应用程序控制和Web过滤前,必须先完成TLS检查部署。未启用TLS检查时,应用程序控制仅能基于SNI进行有限识别,Web过滤仅能匹配域名,无法匹配具体路径。

未识别应用设为观察

建议将应用程序控制的未识别应用动作设为“观察”。此举可避免阻断未知流量影响业务,同时便于通过日志发现特征库尚未覆盖的新应用。

复用模板

引用高级安全模板不影响ACL策略规格计算。多条ACL策略可复用同一模板,高级安全配置仅受自身10个模板的配额限制。

定期复盘日志

应定期在日志审计 > 事件日志中复盘规则命中情况及流量分布,以便及时发现异常流量模式或未授权应用,持续优化策略配置。