啟用WAF全量日志功能后,您可以將攻擊日志、訪問日志記錄到云日志服務(Log Tank Service,簡稱LTS)中,通過LTS記錄的WAF日志數據,快速高效地進行實時決策分析、設備運維管理以及業務趨勢分析。
LTS對于采集的日志數據,通過海量日志數據的分析與處理,可以為您提供一個實時、高效、安全的日志處理能力。LTS默認存儲日志的時間為7天,存儲時間可以在1~30天之間進行設置,超出存儲時間的日志數據將會被自動刪除,對于需要長期存儲的日志數據(日志持久化),LTS提供轉儲功能,可以將日志轉儲至對象存儲服務(OBS)或者數據接入服務(DIS)中長期保存。
前提條件
已申請WAF。
已添加防護網站。
系統影響
開啟全量日志功能是將WAF日志記錄到LTS,不影響WAF性能。
將防護日志配置到LTS
登錄管理控制臺。
單擊頁面頂部的區域選擇框,選擇區域。
單擊頁面左上角的“服務列表”,選擇“安全> Web應用防火墻(獨享版)”。
在左側導航欄,選擇“防護事件”,進入“防護事件”頁面。
選擇“全量日志”頁簽,開啟全量日志,并選擇日志組和日志流。
配置全量日志:
全量日志配置參數:
參數 參數說明 取值樣例 選擇日志組 選擇已創建的日志組。 lts-group-waf 記錄攻擊日志 選擇已創建的日志流。
攻擊日志記錄每一個攻擊告警信息,包括攻擊事件類型、防護動作、攻擊源IP等信息。
lts-topic-waf-attack 記錄訪問日志 選擇已創建的日志流。
訪問日志記錄每一個HTTP訪問的關鍵信息,包括訪問時間、訪問客戶端IP、訪問資源URL等信息。
lts-topic-waf-access 單擊“確定”,全量日志配置成功。您可以在LTS管理控制臺查看WAF的防護日志。
在LTS上查看WAF防護日志
當您將WAF防護日志配置記錄到LTS上后,請參考以下操作步驟,在LTS管理控制臺查看、分析記錄的WAF日志數據。
登錄管理控制臺。
單擊頁面頂部的區域選擇框,選擇區域。
單擊頁面左上角的“服務列表”,選擇“管理與部署> 云日志服務”,進入“日志管理”頁面。
在日志組列表中,單擊


展開圖標展開waf日志組(例如,“lts-group-waf”)。
查看WAF防護日志。
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 | 請求協議類型 | 請求所使用的協議有:
|
| 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 | 源站與后端服務建立連接的時間,單位為秒。 | 在使用SSL的情況下,握手過程所消耗的時間也會被記錄下來。多次請求建立的時間,使用逗號分隔。 |
| 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會話是否被重用。
|
| 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基礎防護策略級別。
|
| attack_log.attack | string | 發生攻擊的類型 | 發生攻擊的類型,僅在攻擊日志中出現。
|
| attack_log.action | string | 防護動作 | WAF防護攻擊動作。
|
| attack_log.sub_type | string | 爬蟲的子類型 | 當attack為robot時,該字段不為空。
|
| 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 記錄時會被截斷) | - |