文档首页> Web应用防火墙 WAF> 最佳实践> 通过LTS分析WAF日志> 通过LTS配置WAF规则的拦截告警
更新时间:2024-07-05 GMT+08:00
分享

通过LTS配置WAF规则的拦截告警

应用场景

开启WAF全量日志功能后,您可以将攻击日志、访问日志记录到云日志服务(Log Tank Service,简称LTS)中,通过LTS记录的WAF攻击日志数据,快速高效地进行实时决策分析、设备运维管理以及业务趋势分析。

本实践通过将WAF的攻击日志开启LTS快速分析,再配置告警规则,实现WAF规则拦截日志的分析及告警,实时洞察您的业务在WAF中的防护情况并作出决策分析。

资源与成本规划

表1 资源和成本规划

资源

资源说明

每月费用

云日志服务

  • 计费模式:按需计费
  • 每天新增日志量:10GB/天
  • 日志存储时长:7天

具体的计费方式及标准请参考计费说明

消息通知服务

消息通知服务费用构成:外网下行流量+消息通知费用

不同场景下的费用构成如下:

  • 发送短信通知费用构成:短信通知条数
  • 发送电子邮件费用构成:电子邮件+外网下行流量
  • 发送HTTP(S)费用构成:HTTP(S)+外网下行流量

具体的计费方式及标准请参考计费说明

Web应用防火墙

云模式-标准版:

  • 计费模式:包年/包月
  • 域名数量:10个防护域名(最多支持1个一级域名)
  • QPS配额:2,000QPS业务请求
  • 支持带宽峰值:云内100Mbps/云外30Mbps
独享模式:
  • 计费模式:按需计费
  • 域名数量:2,000个(支持2,000个一级域名)
  • WAF实例规格选择WI-500,参考性能:
    • HTTP业务:建议QPS 5,000;极限QPS 10,000
    • HTTPS业务:建议QPS 4,000;极限QPS 8,000
    • Websocket业务:支持最大并发连接5,000
    • 最大回源长连接:60,000
  • WAF实例规格选择WI-100,参考性能:
    • HTTP业务:建议QPS 1,000;极限QPS 2,000
    • HTTPS业务:建议QPS 800;极限QPS 1,600
    • Websocket业务:支持最大并发连接1,000
    • 最大回源长连接:60,000

具体的计费方式及标准请参考计费说明

步骤一:购买WAF

您可以购买WAF云模式或者独享模式。

以购买WAF云模式标准版为例进行介绍。

  1. 登录华为云管理控制台
  2. 在控制台页面中选择安全与合规 > Web应用防火墙 WAF,进入Web应用防火墙控制台。
  3. 在页面右上角,单击“购买WAF实例”,进入购买页面,“WAF模式”选择“云模式”

    • “区域”:根据防护业务的所在区域就近选择购买的WAF区域。
    • “版本规格”:选择“标准版”
    • “扩展包”“购买时长”:根据具体情况进行选择。

  4. 确认参数配置无误后,在页面右下角单击“立即购买”
  5. 确认订单详情无误后,阅读并勾选《Web应用防火墙免责声明》,单击“去支付”,完成购买操作。
  6. 进入“付款”页面,选择付款方式进行付款。

建议至少购买2个WAF实例。

  1. 登录华为云管理控制台
  2. 在控制台页面中选择安全与合规 > Web应用防火墙 WAF,进入Web应用防火墙控制台。
  3. 在页面右上角,单击“购买WAF实例”,进入购买页面,“WAF模式”选择“独享模式”

    表2 WAF独享引擎实例参数说明

    参数名称

    说明

    取值样例

    基础配置

    计费模式

    仅支持“按需计费”模式。

    按需计费

    区域

    支持购买WAF独享模式的区域说明,请参见Web应用防火墙支持防护哪些区域?

    原则上,在任何一个区域购买的WAF支持防护所有区域的Web业务。但是为了提高WAF的转发效率,减少网络时延,提高网络速度,建议您在购买WAF时,根据防护业务的所在区域就近选择购买的WAF区域。

    -

    通用可用区

    选择区域中的可用区。

    说明:

    可用区选定后不支持更换。

    -

    版本规格

    版本选择

    选择实例的规格,支持“WI-500”“WI-100”

    • WAF实例规格选择WI-500,参考性能:
      • HTTP业务:建议QPS 5,000;极限QPS 10,000
      • HTTPS业务:建议QPS 4,000;极限QPS 8,000
      • Websocket业务:支持最大并发连接5,000
      • 最大回源长连接:60,000
    • WAF实例规格选择WI-100,参考性能:
      • HTTP业务:建议QPS 1,000;极限QPS 2,000
      • HTTPS业务:建议QPS 800;极限QPS 1,600
      • Websocket业务:支持最大并发连接1,000
      • 最大回源长连接:60,000

    WI-500

    WAF实例创建类别

    选择实例的资源类型,仅支持“资源租户类”

    WAF实例通过弹性网卡接入用户网络。仅支持与独享型ELB配套使用,接入方式请参见网站接入流程(独享模式)

    说明:

    如果需要选择“普通租户类”(WAF实例将直接创建在租户ECS中,租户可以在ECS服务页面看到WAF实例所在的弹性云服务器),需要提交工单申请,且仅部分Region支持,具体信息请以申请回复情况为准。

    资源租户类

    网络配置

    虚拟私有云

    选择源站所在的VPC。

    -

    子网

    选择VPC中已配置的子网。

    -

    安全组

    选择区域中已有的安全组,或者单击“管理安全组”,跳转到VPC管理控制台创建新的安全组。选择安全组后,该实例将受到该安全组访问规则的保护。

    须知:
    • 安全组建议配置以下访问规则:
      • 入方向规则

        根据业务需求添加指定端口入方向规则,放通指定端口入方向网络流量。例如,需要放通“80”端口时,您可以添加“策略”“允许”“TCP”“80”协议端口规则。

      • 出方向规则

        默认。放通全部出方向网络流量。

      有关添加安全组规则的详细操作,请参见添加安全组规则

    • 如果WAF独享引擎实例与源站不在同一个VPC中,需要在安全组中设置实例与源站的子网互通。

    -

    用量配置

    购买数量

    设置购买的WAF实例个数。

    建议至少购买2个WAF实例,并将业务分别部署到WAF实例上。当业务部署多个WAF实例时,如果某个WAF实例发生故障时,WAF会自动将流量切换到其它正在运行的WAF实例上,确保业务正常运行。

    2

    高级配置(可选)

    WAF实例名称前缀

    设置WAF实例名称前缀,购买多个实例时,实例前缀名称相同。

    WAF

    企业项目

    企业项目针对企业用户使用,只有开通了企业项目的客户,或者权限为企业主账号的客户才可见。如需使用该功能,请开通企业管理功能。企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。

    说明:
    • “default”为默认企业项目,账号下原有资源和未选择企业项目的资源均在默认企业项目内。
    • 只有注册的华为账号购买WAF时,“企业项目”下拉列表中才可以选择到“default”

    default

    标签

    如果您需要使用同一标签标识多种云资源,即所有服务均可在标签输入框下选择同一标签,建议在TMS中创建预定义标签。

    如您的组织已经设定Web应用防火墙(Web Application Firewall,WAF)服务的相关标签策略,则需按照标签策略规则为独享引擎实例添加标签。标签如果不符合标签策略的规则,则可能会导致独享引擎实例创建失败,请联系组织管理员了解标签策略详情。

    -

    服务授权

    首次购买WAF时,可配置此参数。勾选后,WAF将代您在IAM中创建委托,开通相关权限。

    -

    反亲和

    • 开启后,最多只能创建5个独享引擎实例。
    • 开启后,独享引擎在创建时,将尽量分散地创建在不同的物理主机上,以提高业务的可靠性。

    -

  4. 确认参数配置无误后,在页面右下角单击“立即购买”
  5. 确认订单详情无误后,阅读并勾选《Web应用防火墙免责声明》,单击“去支付”,完成购买操作。
  6. 进入“付款”页面,选择付款方式进行付款。

步骤二:将网站信息添加到WAF

此处以云模式-CNAME接入为例进行介绍。

  1. 在左侧导航树中,选择“网站设置”,进入网站设置列表。
  2. 在网站列表的左上角,单击“添加防护网站”
  3. 选择“云模式-CNAME接入”并单击“开始配置”
  4. 根据界面提示,配置网站信息,如表3所示。

    图1 基础信息配置
    表3 重点参数说明

    参数

    参数说明

    取值样例

    防护域名

    需要添加到WAF中防护的域名。

    • 域名已完成备案
    • 支持单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。

    www.example.com

    防护端口

    需要防护的域名对应的业务端口。

    标准端口

    服务器配置

    网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。

    • 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”“HTTPS”两种协议类型。
    • 源站协议:Web应用防火墙转发客户端请求的协议类型。包括“HTTP”“HTTPS”两种协议类型。
    • 源站地址:客户端访问的网站服务器的公网IP地址(一般对应该域名在DNS服务商处配置的A记录)或者域名(一般对应该域名在DNS服务商处配置的CNAME)。
    • 源站端口:WAF转发客户端请求到服务器的业务端口。
    • 权重:负载均衡算法将按权重将请求分配给源站。

    对外协议:HTTP

    源站协议:HTTP

    源站地址:IPv4 XXX .XXX.1.1

    源站端口:80

    代理情况

    在WAF前使用了其他代理产品。

    七层代理

  5. 单击“下一步”,根据界面提示,完成WAF回源IP加白本地验证修改域名DNS解析设置的操作。

    图2 添加域名完成

步骤三:将防护日志配置到LTS

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域或项目。
  3. 单击页面左上方的,选择安全与合规 > Web应用防火墙 WAF
  4. 在左侧导航树中,选择“防护事件”,进入“防护事件”页面。
  5. 选择“全量日志”页签,开启全量日志,并选择日志组和日志流,相关参数说明如表4所示。

    图3 配置全量日志
    表4 全量日志配置参数

    参数

    参数说明

    取值样例

    选择日志组

    选择已创建的日志组,或者单击“查看日志组”,跳转到LTS管理控制台创建新的日志组。

    lts-group-waf

    记录攻击日志

    选择已创建的日志流,或者单击“查看日志流”,跳转到LTS管理控制台创建新的日志流。

    攻击日志记录每一个攻击告警信息,包括攻击事件类型、防护动作、攻击源IP等信息。

    lts-topic-waf-attack

    记录访问日志

    选择已创建的日志流,或者单击“查看日志流”,跳转到LTS管理控制台创建新的日志流。

    访问日志记录每一个HTTP访问的关键信息,包括访问时间、访问客户端IP、访问资源URL等信息。

    lts-topic-waf-access

  6. 单击“确定”,全量日志配置成功。

    您可以在LTS管理控制台查看WAF的防护日志。

步骤四:快速分析规则拦截日志

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域或项目。
  3. 单击页面左上方的,选择管理与监督 > 云日志服务,进入“日志管理”页面。

    图4 单击攻击日志流名称

  4. 在日志组列表中,展开waf日志组,选择日志流“attack”
  5. 在日志流详情页面,单击右上角,在弹出页面中,选择“云端结构化解析”页签,进入日志结构化配置页面。
  6. 选择“JSON”日志结构化方式,单击“从已有日志中选择”,在右侧弹框中任意选择一条日志。
  7. 单击“智能提取”,筛选出需要“快速分析”的字段,打开这些字段在“快速分析”列的开关,打开后,可以对周期类日志进行统计分析。

    图5 日志提取字段

  8. 找到“category”字段,单击该字段“别名”列的,修改该字段名称并单击保存设置。

    该字段名称与系统内置字段 category 重复了,需要修改后才能保存成功。

  9. 在列表右下方,单击“保存”,LTS将对周期内的日志进行快速分析、统计。
  10. 在左侧导航树中,选择“可视化”,在页面右侧选择日志查询时间段,在搜索框中输入SQL语句后单击“执行查询”

    您可以根据 rule 和 uri 进行分组,在搜索框中输入如下SQL语句,查询指定规则的日志:

    select rule, uri, count(*) as cnt where action = 'block' group by rule, uri order by cnt desc

    有关SQL查询语法的详细介绍,请参见SQL查询语法

    可视化查询功能当前只针对“北京4”白名单用户可用。

步骤五:配置告警规则

  1. 单击页面左上方的,选择管理与监督 > 云日志服务,进入“日志管理”页面。
  2. 在左侧导航树中,选择“告警”,并选择“告警规则”页签。
  3. 单击“创建”,在右侧弹框中配置相关参数,如图6所示,参数说明如表5所示。

    图6 配置告警规则
    表5 关键参数说明

    参数名称

    参数说明

    样例

    规则名称

    自定义该规则的名称。

    WAF告警

    统计类型

    选择“SQL统计”

    SQL统计

    相关图表

    单击“直接添加”

    • 选择需要配置拦截告警的“日志组名称”“日志流名称”
    • “查询时间”:日志统计时间周期。
    • “查询语句”10中配置好的SQL语句,如select rule,uri,count(*) as cnt where action='block' group by rule,uri order by cnt desc

    -

    统计周期

    告警触发的周期。一般选择“固定间隔”,5分钟。

    固定间隔

    5

    分钟

    条件表达式

    配置告警阈值

    cnt>5

    触发告警级别

    根据该拦截规则的紧急程选择告警级别,可选择“紧急”“重要”“次要”“提示。”

    重要

    发送通知

    选择“发送”

    发送

    告警主题

    单击下拉列表选择已创建的主题或者单击“查看主题”创建新的主题,用于配置接收告警通知的终端。

    单击“查看主题”创建新主题的操作步骤如下:
    1. 参见创建主题创建一个主题。
    2. 配置接收告警通知的手机号码、邮件地址、函数、平台应用的终端、DMS或HTTP(S)终端,即为创建的主题添加一个或多个订阅,具体操作请参见添加订阅
    3. 确认订阅。添加订阅后,完成订阅确认。

    更多关于主题和订阅的信息,请参见《消息通知服务用户指南》

    -

    时区/语言

    可单击“修改”配置消息接收的语言和时区。

    -

    消息模板

    在下拉框中选择已有的模板或者单击“创建消息模板”创建新的模板。

    sql模板

  4. 参数配置好后,单击“确定”,告警规则配置完成。当触发该告警规则时,您会收到告警邮件或者短信。
分享:

    相关文档

    相关产品