# 使用LTS分析Spring core RCE漏洞的拦截情况
#### 应用场景
开启WAF全量日志功能后，您可以将攻击日志（attack）记录到[云日志服务](https://support.huaweicloud.com/productdesc-lts/lts-03201.html)（Log Tank Service，简称LTS）中，通过LTS记录的WAF攻击日志数据，快速高效地进行实时决策分析、设备运维管理以及业务趋势分析。
本实践通过将WAF的攻击日志开启LTS快速分析，再通过Spirng规则ID快速查询并分析被拦截的Spring core RCE漏洞的日志。
#### 资源与成本规划
表1资源和成本规划 
| 资源        | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 每月费用                                                                              |
|:---|:---|:---|
| 云日志服务     | - 计费模式：按需计费  - 每天新增日志量：10GB/天  - 日志存储时长：7天                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-lts/lts-03216.html)。    |
| Web应用防火墙 | 云模式-标准版： - 计费模式：包年/包月  - 域名数量：10个防护域名  - QPS配额：2,000QPS业务请求  - 支持带宽峰值： - 源站服务器部署在华为云内：100Mbps  - 源站服务器部署在华为云外：30Mbps     | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-waf/waf_03_0001.html)。 |
   
#### 步骤一：购买云模式标准版
以购买WAF云模式标准版为例进行介绍。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在页面右上角，单击"购买WAF实例"，进入购买页面，"WAF模式"选择"云模式"。 
   - "区域"：根据防护业务的所在区域就近选择购买的WAF区域。
   
   - "版本规格"：选择"标准版"。
   
   - "扩展包"及"购买时长"：根据具体情况进行选择。
   
   
   
   
3. 确认参数配置无误后，在页面右下角单击"立即购买"。
4. 确认订单详情无误后，阅读并勾选《Web应用防火墙免责声明》，单击"去支付"，完成购买操作。
5. 进入"付款"页面，选择付款方式进行付款。 
   订单支付成功后，单击"进入Web应用防火墙控制台"，进入WAF"总览"页面。将鼠标悬停在"版本管理"区域，查看已购实例版本及其详细规格。
   
   
 
#### 步骤二：将网站信息添加到WAF
此处以云模式-CNAME接入为例进行介绍。
- 云模式-ELB接入方式请参见[将网站接入WAF防护（云模式-ELB接入）](https://support.huaweicloud.com/usermanual-waf/waf_01_0287.html)。
- 独享模式接入方式请参见[将网站接入WAF防护（独享模式）](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)。
1. 在左侧导航栏，单击"接入管理"。 
   在开始添加防护网站前，可单击页面右上角的"流程引导"，了解接入流程。
   
   
2. 在"接入管理"页面，选择"云模式-CNAME"页签后，单击"添加防护网站"。 
   若仅开通一种接入模式，则直接单击"添加防护网站"。
   
   
3. 根据界面提示，配置网站信息，如[表2]所示。
   
   图1基础信息配置   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002046949960.png "点击放大")
    表2重点参数说明 
   | 参数      | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 取值样例                                                                                                                                                                                                                                                                                                                                                                    |
   |:---|:---|:---|
   | 防护域名 | 需要添加到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 |
   | IP标记               | 网站接入WAF后，"已使用七层代理"默认为"是"。该场景下，WAF无法直接获取客户端真实IP，导致基于IP的防护规则失效。选择IP标记后，可指定客户端IP的判定方式，帮助WAF获取客户端真实IP。 - **$remote_sockaddr**：当WAF前无其他代理时，如果报文存在TOA（TCP Option Address），且不希望WAF以TCP Option Address作为客户端IP时，选择该选项。配置后，WAF会以报文的3层源IP作为客户端真实IP。  - **$remote_addr**：当WAF前存在四层代理时，如果希望WAF以TCP连接IP作为客户端真实IP，选择该选项。  - **x-forwarded-for**：当WAF前存在七层代理时，选择该选项后，WAF会以X-Forwarded-For（XFF）中的首个IP地址作为客户端真实IP。  - **自定义** ：当WAF前存在七层代理时，选择该项并配置字段名后，WAF优先从配置的字段中获取客户端真实IP。配置多个字段时，WAF从左到右依次读取客户端真实IP。 如果WAF从自定义字段中未获取到客户端真实IP，将依次从CDN-Src-Ip、X-Real-Ip、X-Forwarded-For、$remote_addr字段获取客户端真实IP。                                                                                                        | x-forwarded-for                                                                                                                                                                                                                                                                                                                                                                    |
      
   
   
4. 单击"下一步"，完成防护网站基本信息填写。根据"添加防护网站"面板提示，完成如下操作： 
   图2添加域名完成   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001920672218.png "点击放大")
   1. [放行回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#section4)
   
   2. [本地验证](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#section6)
   
   
   完成上述步骤后，您可以在域名列表，查看已添加的域名"接入状态"。此时，域名"接入状态"为"未接入"，原因为"修改DNS解析"。
   
   
 
#### 步骤三：将防护日志配置到LTS
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"安全运营 \> 防护事件"。
5. 如果WAF还未对接云日志服务（LTS），需要在"全量日志"页签，单击"对接LTS配置"，完成对接操作。 
   表3对接LTS配置参数说明 
   | 参数      | 说明                                                                                                                                                                                                                                                                                 | 取值样例               |
   |:---|:---|:---|
   | 日志类型    | 选择要转存到LTS的日志类型，支持转存"WAF访问日志"、"WAF攻击日志"。 攻击日志、访问日志的格式不同，如果同时选择两种日志类型，需要配置两个不同的日志流，用于分别记录日志信息。                                                                                                                                  | "WAF访问日志"和"WAF攻击日志"  |
   | 日志组     | 选择要转存的日志组。您也可以单击"创建日志组"，新建一个日志组。 日志组（LogGroup）是云日志服务进行日志管理的基本单位，用于对日志流进行分类，一个日志组下面可以创建多个日志流。日志组本身不存储任何日志数据，仅方便您管理日志流，每个账号下可以创建100个日志组。更多信息，请参见[管理日志组](https://support.huaweicloud.com/zh-cn/usermanual-lts/lts_04_0003.html)。 | lts-group-waf       |
   | WAF访问日志流  | "日志类型"选择"WAF访问日志"时，需要选择WAF访问日志流。您也可以单击"创建日志流"，新建一个WAF访问日志流，用于记录每一个HTTP访问的关键信息，包括访问时间、访问客户端IP、访问资源URL等信息。                                                                                                                                                                            | lts-topic-waf-access |
   | WAF攻击日志流 | "日志类型"选择"WAF攻击日志"时，需要选择WAF攻击日志流。您也可以单击"创建日志流"，新建一个WAF攻击日志流，用于记录每一个攻击告警信息，包括攻击事件类型、防护动作、攻击源IP等信息。                                                                                                                                                                                   | lts-topic-waf-attack |
      
   配置完成后，不会立即生效，存在10分钟左右的时延。配置生效后，云日志服务LTS会按流量单独计费。有关LTS的计费详情，请参见[LTS价格详情](https://www.huaweicloud.com/pricing.html#/lts)。
   
   
6. 查看或分析日志。 
   成功对接LTS后，"全量日志"页签会自动显示记录日志的日志组（[图3]①）、日志流（[图3]②）（包含的访问日志流、攻击日志流）。您可以单击WAF访问日志流或WAF攻击日志流，查看、搜索或分析WAF日志。更多信息，请参见[搜索与分析日志](https://support.huaweicloud.com/usermanual-lts/lts_07_0076.html)。
   图3全量日志   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002469604869.png "点击放大")
   
   
7. 选择日志流后，在"日志搜索"页签（[图3]③），选择"![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002436043062.png "点击放大") \> 下载日志"（[图3]④），下载日志流中的上报日志。
   
   - **前端直接下载**：直接将前端查询的结果保存到本地，下载记录不会出现在日志下载历史中。单次下载支持最大5,000条日志。支持下载".csv"或".txt"格式的日志。
   
   - **后台离线下载**：通过后台任务将日志文件下载到临时OBS桶中，您的浏览器需要有公网访问权限才能在日志下载历史中下载结果文件。单次下载支持最大2,000万条日志。支持下载".csv"、".txt"或".json"格式的日志。
   
   
   您也可以通过OBS转储任务下载日志文件，详细请参考[日志转储至OBS](https://support.huaweicloud.com/usermanual-lts/lts_04_0041.html)。
   
   
 
#### 步骤四：通过LTS分析Spring core RCE漏洞的拦截情况
1. 登录[云日志服务控制台](https://console.huaweicloud.com/lts/)。
2. 在日志组列表中，展开waf日志组，选择日志流"attack"。
3. 在日志流详情页面，单击右上角![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001811225769.png)，在弹出页面中，选择"云端结构化解析"页签，进入日志结构化配置页面。
4. 选择"JSON"日志结构化方式，单击"从已有日志中选择"，在右侧弹框中任意选择一条日志。
5. 单击"智能提取"，筛选出需要"快速分析"的字段，打开这些字段在"快速分析"列的开关，打开后，可以对周期类日志进行统计分析。 
   图4日志提取字段   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001238764182.png "点击放大")
   
   
6. 找到"category"字段，单击该字段"别名"列的![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001238834194.png)，修改该字段名称并单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001282874141.png)保存设置。
   
   ![](https://support.huaweicloud.com/bestpractice-waf/public_sys-resources/note_3.0-zh-cn.png)
   该字段名称与系统内置字段category重复，需要修改后才能保存成功。
   
   
7. 在列表右下方，单击"保存"，LTS将对周期内的日志进行快速分析、统计。
8. 在左侧导航树中，选择"可视化"，输入以下命令，并单击"执行查询"，可查看到被拦截的Spring core RCE漏洞的日志。 
   select rule, hit_data where rule IN('XX','XX','XX','XX',)
   有关SQL查询语法的详细介绍，请参见[SQL查询语法](https://support.huaweicloud.com/usermanual-lts/lts_04_0051.html)。
   - XX代表Spring core RCE漏洞的规则ID，请提前获取。
   
   - 可视化查询功能当前只针对"北京4"白名单用户可用。
    
   图5可视化查询   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001283122541.png "点击放大")
   
   
 
