このトピックでは、Web Application Firewall (WAF) ログに含まれるフィールドについて説明します。
フィールド取得のためのテーブル
次の表に、WAFでサポートされているログフィールドを示します。 ログフィールドの名前を使用して、ログフィールドを取得できます。
初期 | フィールド |
a |
|
b |
|
c |
|
d | データ漏洩防止に関連するフィールド: dlp_action | dlp_rule_id | dlp_test |
f | リクエストに対してWAFによって実行されるアクションに関連するフィールド: final_action | final_plugin | final_rule_id | final_rule_type |
h |
|
m |
|
q | クエリ文字列の記録に使用するフィールド: querystring |
r |
|
秒 |
|
t | リクエストが開始された時刻を記録するために使用されるフィールド: time |
u |
|
w |
|
必須フィールド
必須フィールドは、WAFログに含める必要があるフィールドを参照します。
フィールド | 説明 | 例 |
bypass_matched_ids | リクエストを許可する一致したルールのID。 ルールは、ホワイトリストルールまたはカスタム保護ルールにすることができます。 リクエストを許可するために複数のルールが同時に一致する場合、フィールドにはルールのすべてのIDが記録されます。 複数のIDはコンマ (,) で区切ります。 | 283531 |
content_type | 要求されたコンテンツのタイプ。 | application/x-www-form-urlencoded |
final_action | リクエストに対してWAFによって実行されるアクション。 有効な値:
リクエストに対してWAFによって実行されるアクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 要求が保護モジュールをトリガしない場合、フィールドは記録されない。 たとえば、リクエストがリクエストを許可するルールに一致する場合、またはクライアントがスライダーCAPTCHA検証またはJavaScript検証に合格した場合、フィールドは記録されません。 要求が複数の保護モジュールを同時にトリガーする場合、フィールドが記録されます。 フィールドには、実行されるアクションのみが含まれます。 次のアクションは、優先度の高い順にリストされます。ブロック (block) 、厳密なスライダーCAPTCHA検証 (captcha_strict) 、一般的なスライダーCAPTCHA検証 (captcha) 、およびJavaScript検証 (js) 。 | block |
final_plugin | リクエストに対してアクションが実行される基になる保護モジュール。 final_actionフィールドは、実行されたアクションを記録する。 有効な値:
要求が保護モジュールをトリガしない場合、フィールドは記録されない。 たとえば、リクエストがリクエストを許可するルールに一致する場合、またはクライアントがスライダーCAPTCHA検証またはJavaScript検証に合格した場合、フィールドは記録されません。 要求が複数の保護モジュールを同時にトリガーする場合、フィールドには、最終アクションが実行される基になった保護モジュールのみが記録されます。 final_actionフィールドは、実行されたアクションを記録します。 | waf |
final_rule_id | 最終的なアクションが実行されるルールのID。 final_actionフィールドは、実行されたアクションを記録します。 | 115341 |
final_rule_type | 最終的なアクションの実行に基づくルールのサブタイプ。 final_rule_idフィールドは、ルールを記録する。 たとえば、 | xss/webShell |
ホスト | 要求されたドメイン名またはIPアドレスを含むリクエストヘッダーのHostフィールド。 このフィールドの値は、サービス設定によって異なります。 | api.example.com |
http_cookie | リクエストに関連付けられているCookieに関する情報を含むリクエストヘッダーのCookieフィールド。 | k1=v1;k2=v2 |
http_referer | リクエストのソースURLに関する情報を含むリクエストヘッダーのRefererフィールド。 ソースURL情報が含まれていない場合、フィールドの値はハイフン ( | http://example.com |
http_user_agent | ブラウザとオペレーティングシステムに関する情報を含むリクエストヘッダーのUser-Agentフィールド。 | Dalvik/2.1.0 (Linux; U; アンドロイド10; x86ビルド /QSR1.200715.002のために造られるアンドロイドSDK) |
http_x_forward_for | リクエストヘッダーのX-Forwarded-For (XFF) フィールド。 このフィールドは、HTTPプロキシまたは負荷分散デバイスを使用してwebサーバーに接続されているクライアントの送信元IPアドレスを識別するために使用されます。 | 47.100.XX.XX |
https | リクエストが HTTPS リクエストであるかどうかを示します。
| on |
一致した_host | 要求された保護オブジェクト。 保護対象オブジェクトは、インスタンスまたはドメイン名にすることができます。 説明 ドメイン名は、完全一致ドメイン名またはワイルドカードドメイン名にすることができます。 たとえば、ドメイン名 * .aliyundoc.comがWAFに追加されてd www.aliyundoc.comが要求された場合、ドメイン名 * .aliyundoc.comが要求された保護オブジェクトです。 | *.aliyundoc.com |
querystring | リクエスト内の照会文字列。 クエリ文字列は、リクエストURLの末尾に追加されるデータの文字列です。 クエリ文字列は、疑問符 (?) によってリクエストURLから分離されています。 | title=tm_content%3Darticle&pid=123 |
real_client_ip | リクエストを送信するクライアントの送信元IPアドレス。 WAFは、リクエスト分析に基づいてIPアドレスを識別します。 プロキシサーバーが使用されている場合やリクエストヘッダーのIPフィールドが無効な場合など、WAFがクライアントの送信元IPアドレスを識別できない場合、フィールドの値はハイフン ( | 192.0.XX.XX |
region | WAFインスタンスがデプロイされているリージョンのID。 有効な値:
| cn |
remote_addr | WAFへの接続に使用されるIPアドレス。 WAFの前にレイヤ7プロキシがデプロイされていない場合、このフィールドにはクライアントのIPアドレスが記録されます。 Alibaba Cloud CDNなどのレイヤ7プロキシがWAFの前にデプロイされている場合、このフィールドにはレイヤ7プロキシのIPアドレスが記録されます。 | 198.51.XX.XX |
remote_port | WAFへの接続に使用されるポート。 WAFの前にレイヤ7プロキシがデプロイされていない場合、このフィールドにはクライアントのポートが記録されます。 Alibaba Cloud CDNなどのレイヤ7プロキシがWAFの前にデプロイされている場合、このフィールドにはレイヤ7プロキシのポートが記録されます。 | 80 |
request_length | リクエスト行、リクエストヘッダー、リクエスト本文のバイトを含む、リクエストのバイト数。 単位:バイト | 111111 |
request_method | リクエスト方式。 | GET |
request_path | 要求された相対パス。 相対パスは、リクエストURLのドメイン名と疑問符 (?) の間の部分を参照します。 相対パスにはクエリ文字列は含まれません。 | /news/search.php |
request_time_msec | WAFがリクエストを処理するのにかかる時間。 単位:ミリ秒。 | 44 |
request_traceid | クライアント要求に対してWAFによって生成される一意の識別子。 | 7837b11715410386943437009ea1f0 |
server_protocol | WAFによって転送された要求に応答するためにオリジンサーバーによって使用されるプロトコルとバージョン。 重要 このフィールドは、Function Computeのwebアプリケーションにバインドされたカスタムドメイン名ではサポートされていません。 | HTTP/1.1 |
ssl_cipher | クライアントによって使用される暗号スイート。 | ECDHE-RSA-AES128-GCM-SHA256 |
ssl_protocol | リクエストで使用されるSSLまたはTLSプロトコルとバージョン。 | TLSv1.2 |
status | WAFからクライアントへの応答に含まれるHTTPステータスコード。 例: HTTPステータスコード200は、リクエストが受信され、受け入れられたことを示します。 | 200 |
時間 | リクエストが開始された時点。 時刻は | 2018-05-02T16:03:59+08:00 |
upstream_addr | オリジンサーバーのIPアドレスとポート番号。 形式は 重要 このフィールドは、Function Computeのwebアプリケーションにバインドされたカスタムドメイン名ではサポートされていません。 | 198.51.XX.XX:443 |
upstream_response_time | WAFによって転送されたリクエストに配信元サーバーが応答するのに必要な時間。 単位は秒です。 | 0.044 |
upstream_status | WAFによって転送されたリクエストに応答してオリジンサーバーによって送信されるHTTPステータスコード。 例: HTTPステータスコード200は、リクエストが受信され、受け入れられたことを示します。 | 200 |
ユーザー_id | WAFインスタンスが属するAlibaba CloudアカウントのID。 | 17045741 ******** |
オプションフィールド
ビジネス要件に基づいて、WAFログのオプションフィールドを有効にできます。 WAFログには、有効にしたオプションフィールドのみが記録されます。
オプションのフィールドを有効にすると、WAFログはより多くのストレージ容量を占有します。 十分なログストレージ容量がある場合は、追加のオプションフィールドを有効にして、より包括的な方法でログを分析することをお勧めします。 オプションフィールドの設定方法の詳細については、「ログ設定の設定」をご参照ください。
フィールド | 説明 | 例 |
acl_アクション | IPアドレスブラックリストルールまたはカスタムアクセス制御ルールに基づいてリクエストに対して実行されるアクション。 有効な値:
WAF保護アクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 | block |
acl_rule_id | 一致するIPアドレスブラックリストルールまたはカスタムアクセス制御ルールのID。 | 151235 |
acl_rule_type | 一致するIPアドレスブラックリストルールまたはカスタムアクセス制御ルールのタイプ。 有効な値:
| custom |
acl_test | IPアドレスブラックリストルールまたはカスタムアクセス制御ルールに基づいて、リクエストに使用される保護モード。 有効な値:
| false |
antiscan_アクション | スキャン保護ルールに基づいてリクエストに対して実行されるアクション。 フィールドの値はblockに固定され、リクエストがブロックされていることを示します。 WAF保護アクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 | block |
antiscan_rule_id | 一致するスキャン保護ルールのID。 | 151235 |
antiscan_rule_type | 一致するスキャン保護ルールのタイプ。 有効な値:
| highfreq |
antiscan_test | スキャン保護ルールに基づいてリクエストに使用される保護モード。 有効な値:
| false |
body_bytes_sent | サーバーがクライアントに返すレスポンス本文のバイト数。 レスポンスヘッダのバイト数はカウントされません。 単位:バイト 重要 このフィールドは、Function Computeのwebアプリケーションにバインドされたカスタムドメイン名ではサポートされていません。 | 1111 |
cc_アクション | リクエストに対して実行されるアクションは、カスタムスロットルルールに基づいています。 有効な値:
WAF保護アクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 | block |
cc_rule_id | 一致するカスタムスロットリングルールのID。 | 151234 |
cc_rule_type | 一致するルールの種類。The type of the rule that is matched. フィールドの値はcustomに固定されています。これは、カスタムスロットリングルールが一致することを示します。 | custom |
cc_test | リクエストに対して使用される保護モードは、カスタムスロットルルールに基づいています。 有効な値:
| false |
request_body | リクエスト本文。 値のサイズは最大8 KBです。 | test123curl -ki https:// automated-acltest02。***.top/ -automated-acltest02を解決します。***.top:443:39.107.XX.XX |
request_header | カスタム要求ヘッダー。 このフィールドを有効にする場合は、リクエストヘッダーを指定する必要があります。 最大5つのカスタムリクエストヘッダーを追加できます。 複数のリクエストヘッダーはコンマ (,) で区切ります。 重要 このフィールドは、Function ComputeのwebアプリケーションにバインドされたALBインスタンス、MSEインスタンス、およびカスタムドメイン名ではサポートされていません。 | {"ttt":"abcd"} |
server_port | 要求された宛先ポート。 重要 このフィールドは、Function Computeのwebアプリケーションにバインドされたカスタムドメイン名ではサポートされていません。 | 443 |
waf_action | 基本的な保護ルールに基づいてリクエストに対して実行されるアクション。 フィールドの値はblockに固定され、リクエストがブロックされていることを示します。 WAF保護アクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 | block |
waf_rule_id | 一致する基本保護ルールのID。 説明 ルールIDは、[セキュリティレポート] ページの [基本保護ルール] タブに表示されます。 詳細については、「セキュリティレポート」トピックの「基本的な保護ルールモジュール」をご参照ください。 | 113406 |
waf_rule_type | 一致する基本保護ルールのタイプ。 有効な値:
| xss |
waf_test | 基本的な保護ルールに基づいてリクエストに使用される保護モード。 有効な値:
| false |
major_protection_アクション | メジャーイベント保護テンプレートに基づいてリクエストに対して実行されるアクション。 WAF保護アクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 | block |
major_protection_rule_id | 一致するメジャーイベント保護ルールのID。 | 2221 |
major_protection_rule_型 | 一致するメジャーイベント保護ルールのタイプ。 有効な値:
| waf_blocks |
major_protection_test | メジャーイベント保護ルールに基づいて使用される保護モード。 有効な値:
| true |
response_set_cookie | サーバーからクライアントに送信されるcookie。 重要 このフィールドは、Function ComputeのwebアプリケーションにバインドされたALBインスタンス、MSEインスタンス、およびカスタムドメイン名ではサポートされていません。 | acw_tc=781bad3616674790875002820e2cebbc55b6e0dfd9579302762b1dece40e0a;path=\/;HttpOnly;Max-Age=1800 |
response_header | すべてのレスポンスヘッダー。 重要 このフィールドは、Function ComputeのwebアプリケーションにバインドされたALBインスタンス、MSEインスタンス、およびカスタムドメイン名ではサポートされていません。 | {"transfer-encoding":"chunked" 、"set-cookie":"acw_tc=***;path=\/;HttpOnly;Max-Age=1800" 、"content-type":"text\/html;charset=utf-8" 、"x-powered-by":"PHP\/7.2.24" 、"server":"nginx\/1.18.0" "connection":"close"} |
response_info | レスポンス本文。 値のサイズは最大16 KBです。 content-encodingヘッダーがgzipの場合、レスポンスボディはBase64でエンコードされます。 重要 このフィールドは、Function ComputeのwebアプリケーションにバインドされたALBインスタンス、MSEインスタンス、およびカスタムドメイン名ではサポートされていません。 | $_POST Received:<br/>Array ( [***] => ) <hr/> $GLOBALS['HTTP_RAW_POST_DATA] Received:<br/> <hr/> php:// input Received: *** |
dlp_アクション | データ漏洩防止ルールに基づいてリクエストに対して実行されるアクション。 有効な値:
WAF保護アクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 | block |
dlp_rule_id | 一致するデータ漏洩防止ルールのID。 | 20031483 |
dlp_test | データ漏洩防止ルールに基づいてリクエストに使用される保護モード。 有効な値:
| true |
scene_action | ボット管理ルールに基づいてリクエストに対して実行されるアクション。 有効な値:
WAF保護アクションの詳細については、「 *_actionフィールドの説明」をご参照ください。 | js |
scene_id | 一致するボット管理ルールのシナリオID。 | a82d992b_bc8c_47f0_87ce_****** |
scene_rule_id | 一致するボット管理ルールのID。 | js-a82d992b_bc8c_47f0_87ce_****** |
scene_rule_type | 一致するボット管理ルールのタイプ。 有効な値:
| bot_aialgo |
scene_test | ボット管理ルールに基づいてリクエストに使用される保護モード。 有効な値:
| true |
waf_hit | 基本的な保護ルールに一致するコンテンツ。 | {"postarg_values":{"hit":["${jndi:ldap://"],"raw":"postarg.log4j =${ jndi:ldap://"}} |
コンプライアンス_ヒット | プロトコルコンプライアンス違反攻撃に一致するコンテンツ。 | ********** 7df271da040a |
セマ_ヒット | セマンティック分析攻撃に一致するコンテンツ。 | {"queryarg_values":{"hit":["\" fro m mysql.us er "]," raw ":" queryarg.y=\"fro m mysql.us er"}} |
*_actionフィールドの説明
*_actionは、さまざまな保護ルールの保護アクションを示します。 たとえば、final_actionはWAFによって実行される保護アクションを示し、waf_actionは基本保護ルールの保護アクションを示します。 保護アクションは、保護ルールに基づいて異なります。 保護アクションの詳細については、パラメーターの説明をご参照ください。
次の表に、WAFでサポートされている保護アクションを示します。
保護アクション | 説明 |
block | リクエストがブロックされました。 WAFはクライアント要求をブロックし、HTTPエラーコード405をクライアントに返します。 |
captcha_strict | 厳密なスライダーCAPTCHA検証が実行されます。 WAFは、スライダーCAPTCHA検証に使用されるページをクライアントに返します。 クライアントが厳密なスライダーCAPTCHA検証に合格した場合、WAFはクライアントからの要求を許可します。 それ以外の場合、WAFはリクエストをブロックします。 クライアントがリクエストを送信するたびに、クライアントは厳密なスライダーCAPTCHA検証に合格する必要があります。 |
captcha | 共通スライダーCAPTCHA検証が実行されます。 WAFは、スライダーCAPTCHA検証に使用されるページをクライアントに返します。 クライアントが共通スライダーCAPTCHA検証に合格した場合、WAFは特定の時間範囲内にクライアントから送信されたリクエストを許可します。 デフォルトでは、時間範囲は30分に設定されています。 それ以外の場合、WAFはクライアントからの要求をブロックします。 |
js | JavaScriptの検証が実行されます。 WAFはJavaScriptコードをクライアントに返します。 JavaScriptコードは、クライアントが使用するブラウザによって自動的に実行されます。 クライアントがJavaScript検証に合格した場合、WAFは特定の時間範囲内にクライアントから送信されたリクエストを許可します。 デフォルトでは、時間範囲は30分に設定されています。 それ以外の場合、WAFはクライアントからの要求をブロックします。 |
パスとバイパス | リクエストは許可されています。 WAFは、クライアントから送信されたリクエストを許可し、リクエストを配信元サーバーに転送します。 |
js_pass | クライアントはJavaScriptの検証に合格し、WAFはクライアントからの要求を許可します。 |
sigchl | 動的トークン認証が実行され、webリクエストが署名されます。 クライアントがリクエストを送信すると、WAFによって発行されたWeb SDKがリクエストの署名を生成します。 署名は、リクエストと共にオリジンサーバーに転送されます。 署名が生成されて検証された場合、リクエストはオリジンサーバーに転送されます。 署名の生成または検証に失敗した場合、動的トークンを取得するために使用できるコードブロックがクライアントに返され、要求に再署名する必要があります。 |
モニター | リクエストが監視されます。 WAFは、ルールに一致するリクエストをログに記録しますが、リクエストはブロックしません。 |