华为云Web应用防火墙waf开启全量日志_云淘科技

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

LTS对于采集的日志数据,通过海量日志数据的分析与处理,可以为您提供一个实时、高效、安全的日志处理能力。LTS默认存储日志的时间为7天,存储时间可以在1~30天之间进行设置,超出存储时间的日志数据将会被自动删除,对于需要长期存储的日志数据(日志持久化),LTS提供转储功能,可以将日志转储至对象存储服务(OBS)或者数据接入服务(DIS)中长期保存。

在WAF管理控制台,您可以查看最近30天的防护日志、下载5天内的所有防护域名的防护日志数据。
LTS按流量单独计费。有关LTS的计费详情,请参见LTS价格详情。
如果您已开通企业项目,您需要在“企业项目”下拉列表中选择您所在的企业项目并确保已开通操作权限,才能开启该企业项目的全量日志。

前提条件

已购买WAF。
已添加防护网站。

系统影响

开启全量日志功能是将WAF日志记录到LTS,不影响WAF性能。

将防护日志配置到LTS

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

图1 配置全量日志

表1 全量日志配置参数

参数

参数说明

取值样例

选择日志组

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

lts-group-waf

记录攻击日志

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

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

lts-topic-waf-attack

记录访问日志

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

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

lts-topic-waf-access

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

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

在LTS上查看WAF防护日志

当您将WAF防护日志配置记录到LTS上后,请参考以下操作步骤,在LTS管理控制台查看、分析记录的WAF日志数据。

登录管理控制台。
单击管理控制台左上角的,选择区域或项目。
单击页面左上方的,选择“管理与部署 > 云日志服务 LTS”,进入“日志管理”页面。
在日志组列表中,单击展开waf日志组(例如,“lts-group-waf”)。
查看WAF防护日志。

查看攻击日志

在日志流列表,单击配置的攻击日志流名称。

图2 单击攻击日志流名称

查看攻击日志,日志示例如图3所示。

图3 查看攻击日志

查看访问日志

在日志流列表,单击配置的访问日志流名称。

图4 单击访问日志流名称

查看访问日志,日志示例如图5所示。

图5 查看访问日志

WAF访问日志access_log字段说明

字段

类型

字段说明

描述

access_log.requestid

string

随机ID标识

与攻击日志的“req_id” 字段末尾8个字符一致。

access_log.time

string

访问请求的时间

日志内容记录的GMT时间。

access_log.connection_requests

string

标识该长链接第几个请求

access_log.eng_ip

string

WAF引擎IP

access_log.pid

string

标识处理该请求的引擎

引擎(worker PID)。

access_log.hostid

string

访问请求的域名标识

防护域名ID(upstream_id)。

access_log.tenantid

string

防护域名的租户ID

一个华为账号对应一个租户ID。

access_log.projectid

string

防护域名的项目ID

用户在对应区域下的项目ID。

access_log.remote_ip

string

标识请求的四层远端 IP

请求的客户端IP。

须知:

如果在WAF前部署了7层代理,本字段表示最靠近WAF的代理节点的IP地址。此时,真实访问者IP参考“x-forwarded-for”,“x_real_ip”字段。

access_log.remote_port

string

标识请求的四层远端端口号

请求的客户端端口号。

access_log.sip

string

标识请求的客户端 IP

如,XFF等。

access_log.scheme

string

请求协议类型

请求所使用的协议有:

http
https

access_log.response_code

string

请求响应码

源站返回给WAF的响应状态码。

access_log.method

string

请求方法

请求行中的请求类型。通常为“GET”或“POST”。

access_log.http_host

string

请求的服务器域名

浏览器的地址栏中输入的地址,域名或IP地址。

access_log.url

string

请求URL

URL链接中的路径(不包含域名)。

access_log.request_length

string

请求的长度

包括请求地址、HTTP请求头和请求体的字节数。

access_log.bytes_send

string

发送给客户端的总字节数

WAF返回给客户端的总字节数。

access_log.body_bytes_sent

string

发送给客户端的响应体字节数

WAF返回给客户端的响应体字节数。

access_log.upstream_addr

string

选择的后端服务器地址

请求所对应的源站IP。例如,WAF回源到ECS,则返回源站ECS的IP。

access_log.request_time

string

标识请求处理时间

从读取客户端的第一个字节开始计时(单位:s)。

access_log.upstream_response_time

string

标识后端服务器响应时间

后端服务器响应WAF请求的时间(单位:s)。

access_log.upstream_status

string

标识后端服务器的响应码

后端服务器返回给WAF的响应状态码。

access_log.upstream_connect_time

string

后端服务器连接用时

源站与后端服务建立连接的时间。如果后端服务使用了加密协议,该参数包括握手的时间(单位:s)。

access_log.upstream_header_time

string

后端服务器接收到第一个响应头字节的用时

access_log.bind_ip

string

WAF引擎回源IP

WAF引擎所使用的回源IP。

access_log.group_id

string

对接LTS服务的日志组ID

WAF对接云日志服务日志组ID。

access_log.access_stream_id

string

日志流ID

与“group_id”相关,是日志组下用户的access_stream的ID。

access_log.engine_id

string

WAF引擎标识

WAF引擎的唯一标识。

access_log.time_iso8601

string

日志的ISO 8601格式时间

access_log.sni

string

通过SNI请求的域名

access_log.tls_version

string

建立SSL连接的协议版本

请求所使用的TLS协议版本。

access_log.ssl_curves

string

客户端支持的曲线列表

access_log.ssl_session_reused

string

SSL会话是否被重用。

表示SSL会话是否被重用。

r:是

.:否

access_log.process_time

string

引擎的检测用时(单位:ms)

access_log.args

string

标识URL中的参数数据

access_log.x_forwarded_for

string

当WAF前部署代理时,代理节点IP链

代理节点IP链,为1个或多个IP组成的字符串。

最左边为最原始客户端的IP地址,代理服务器每成功收到一个请求,就将请求来源IP地址添加到右边。

access_log.cdn_src_ip

string

当WAF前部署CDN时CDN识别到的客户端IP

当WAF前部署CDN时,此字段记录的为CDN节点识别到的真实客户端IP。

须知:

部分CDN厂商可能使用其他字段,WAF仅记录最常见的字段。

access_log.x_real_ip

string

当WAF前部署代理时,真实的客户端IP

代理节点识别到的真实客户端IP。

access_log.intel_crawler

string

用于情报反爬虫分析

access_log.ssl_ciphers_md5

string

标识ssl_ciphers的md5值

access_log.ssl_cipher

string

标识使用的ssl_cipher

access_log.web_tag

string

标识网站名称

access_log.user_agent

string

标识请求header中的user-agent

access_log.upstream_response_length

string

标识后端响应的大小

access_log.region_id

string

标识请求所属Region

access_log.enterprise_project_id

string

标识请求域名所属企业项目ID

access_log.referer

string

标识请求头中的Referer内容

最大长度为128字符,大于128字符会被截断。

access_log.rule

string

标识请求命中的规则

命中多条规则此处也只会显示一条。

WAF攻击日志attack_log字段说明

字段

类型

字段说明

描述

attack_log.category

string

日志分类

值为“attack”。

attack_log.time

string

日志时间

attack_log.time_iso8601

string

日志的ISO 8601格式时间

attack_log.policy_id

string

防护策略ID

attack_log.level

string

防护策略层级

表示Web基础防护策略级别。

1:宽松
2:中等
3:严格

attack_log.attack

string

发生攻击的类型

发生攻击的类型,仅在攻击日志中出现。

default:默认
sqli:SQL注入攻击
xss:跨站脚本攻击
webshell:WebShell攻击
robot:恶意爬虫
cmdi:命令注入攻击
rfi:远程文件包含
lfi: 本地文件包含
illegal:非法请求
vuln:漏洞攻击
cc:命中CC防护规则
custom_custom:命中精准防护规则
custom_whiteblackip:命中IP黑白名单规则
custom_geoip:命中地理位置控制规则
antitamper: 命中网页防篡改规则
anticrawler:命中JS挑战反爬虫规则
leakage:命中敏感信息泄露规则
antiscan_high_freq_scan:防扫描-高频扫描攻击。
followed_action:攻击惩罚,详见配置攻击惩罚标准自动封禁访问者指定时长。

attack_log.action

string

防护动作

WAF防护攻击动作。

block:拦截
log:仅记录
captcha:人机验证

attack_log.sub_type

string

爬虫的子类型

当attack为robot时,该字段不为空。

script_tool:脚本工具
search_engine:搜索引擎
scaner:扫描工具
uncategorized:其他爬虫

attack_log.rule

string

触发的规则ID或者自定义的策略类型描述

attack_log.rule_name

string

标识自定义的策略类型描述。

命中基础防护规则时该字段为空。

attack_log.location

string

触发恶意负载的位置

attack_log.req_body

sting

标识请求体

attack_log.resp_headers

string

响应头

attack_log.hit_data

string

触发恶意负载的字符串

attack_log.resp_body

string

响应体

attack_log.backend.protocol

string

标识当前后端协议

attack_log.backend.alive

string

标识当前后端状态

attack_log.backend.port

string

标识当前后端端口

attack_log.backend.host

string

标识当前后端Host值

attack_log.backend.type

string

标识当前后端Host 类型

IP 或域名

attack_log.backend.weight

number

标识当前后端权重

attack_log.status

string

请求的响应状态码

attack_log.upstream_status

string

标识请求的源站响应状态码

attack_log.reqid

string

随机ID标识

由引擎IP尾缀、请求时间戳、NGINX分配的请求ID组成。

attack_log.requestid

string

标识请求唯一ID

NGINX分配的请求ID。

attack_log.id

string

攻击ID

攻击的ID标识。

attack_log.method

string

请求方法

attack_log.sip

string

客户端请求IP

attack_log.sport

string

客户端请求端口

attack_log.host

string

请求的服务器域名

attack_log.http_host

string

请求的服务器域名

attack_log.hport

string

请求的服务器端口

attack_log.uri

string

请求URL

不包括域名。

attack_log.header

json string,decode后为json table

请求header信息

attack_log.mutipart

json string,decode后为json table

请求multipart header

用于文件上传。

attack_log.cookie

json string,decode后为json table

请求Cookie信息

attack_log.params

json string,decode后为json table

请求URI后的参数信息

attack_log.body_bytes_sent

string

发送给客户端的响应体字节数

WAF发送给客户端的响应体字节数。

attack_log.upstream_response_time

string

后端服务器响应时间

attack_log.engine_id

string

引擎的唯一标识

attack_log.region_id

string

标识引擎所在region的ID

attack_log.engine_ip

string

标识引擎IP

attack_log.process_time

string

引擎的检测用时

attack_log.remote_ip

string

标识请求的四层客户端IP

attack_log.x_forwarded_for

string

标识请求头中“X-Forwarded-For”的内容

attack_log.cdn_src_ip

string

标识请求头中“Cdn-Src-Ip”的内容

attack_log.x_real_ip

string

标识请求头中“X-Real-IP”的内容

attack_log.group_id

string

日志组ID

对接LTS服务的日志组ID。

attack_log.attack_stream_id

string

日志流ID

与“group_id”相关,是日志组下用户的 access_stream的ID。

attack_log.hostid

string

防护域名ID(upstream_id)

attack_log.tenantid

string

防护域名的租户ID

attack_log.projectid

string

防护域名的项目ID

attack_log.enterprise_project_id

string

标识请求域名所属企业项目ID

attack_log.web_tag

string

标识网站名称

attack_log.req_body

string

识请求体(超过 1K 记录时会被截断)

父主题: 管理防护事件

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家