Web アプリケーションファイアウォールのプロファイル設定
次に、アプライアンス上で設定する必要があるプロファイル設定を示します。
コマンドプロンプトで入力します:
add appfw profile <name> [-invalidPercentHandling <invalidPercentHandling>] [-checkRequestHeaders ( ON | OFF )] [-URLDecodeRequestCookies ( ON | OFF )] [-optimizePartialReqs ( ON | OFF )] [-errorURL <expression>] [-logEveryPolicyHit ( ON | OFF )] [-stripHtmlComments <stripHtmlComments>] [-stripXmlComments ( none | all )] [-postBodyLimitSignature <positive_integer>][-fileUploadMaxNum <positive_integer>][-canonicalizeHTMLResponse ( ON | OFF )][-percentDecodeRecursively ( ON | OFF )] [-multipleHeaderAction <multipleHeaderAction> ...][-inspectContentTypes <inspectContentTypes> ...][-semicolonFieldSeparator ( ON | OFF )] [-fieldScan ( ON | OFF )] [-fieldScanLimit <positive_integer>] [-JSONFieldScan ( ON | OFF )] [-JSONFieldScanLimit <positive_integer>] [-messageScan ( ON | OFF )] [-messageScanLimit <positive_integer>] [-JSONMessageScan ( ON | OFF )] [-JSONMessageScanLimit
<positive_integer>] [-messageScanLimitContentTypes <messageScanLimitContentTypes> ]
<!--NeedCopy-->
InvalidPercentHandling -パーセントエンコードされた名前と値を処理する方法を設定します。
asp_mode-解析のために無効なパーセントを取り除き、解析します。
例፦ curl –v “http://<vip>/forms/login.html?field=sel%zzect -> Invalid percent encoded char(%zz)
が削除され、残りのコンテンツが検査され、SQLInjection チェックのアクションが実行されます。
secure_mode-無効なパーセントコード値を検出して無視します。
例:- curl –v “http://<vip>/forms/login.html?field=sel%zzect -> Invalid percent encoded char(%zz)
が検出され、カウンタが増加し、コンテンツはそのままサーバに渡されます。
apache_mode-このモードはセキュアモードと同様に動作します。
注:
リリース 13.1 ビルド 45.x 以降、
apache_mode
この関数は廃止されました。
指定できる値:アパッチモード、ASPモード、セキュアモード
デフォルト値:セキュアモード
例:
add appfw profile profile1 [-invalidPercentHandling secure_mode] [-checkRequestHeaders ON] [-URLDecodeRequestCookies OFF] [-optimizePartialReqs OFF]
OptimizePartialReqs -オフ/オン(セーフオブジェクトなし)の場合、NetScalerアプライアンスは部分的な要求をバックエンドサーバーに送信します。この部分的な応答はクライアントに送り返されます。OptimizePartialReqs は、セーフオブジェクトが構成されている場合に意味があります。アプライアンスは、オフのときはサーバーから完全な応答の要求を送信し、オンの場合は部分的な応答のみを要求します。
ON -クライアントによる部分的な要求は、バックエンドサーバーへの部分的な要求になります。 OFF-クライアントからの部分的な要求は、バックエンドサーバーへの完全な要求に変更されます。
設定可能な値:ON、OFF デフォルト値:ON
URLDecodeRequestCookie。checkRequestHeaders
を有効にすると、Cookieのセキュリティチェック (SQL、クロスサイト、cmd インジェクション) が検査されます。URLDecodeRequestCookies
が有効な場合、CookieはURLデコードされてから検査されます。
設定可能な値:ON、OFF デフォルト値:OFF
署名投稿本文制限 (バイト)。場所が ‘HTTP_POST_BODY’ として指定された署名について検査されるリクエストペイロード (バイト単位) を制限します。
デフォルト値:8096 最小値:0 最大値:4294967295
ポストボディ制限 (バイト)。Web アプリケーションファイアウォールによって検査される要求ペイロード (バイト単位) を制限します。
デフォルト値:20000000 最小値:0 最大値:10ギガバイト
セキュリティ設定とそのGUI手順の詳細については、「 Web App Firewall プロファイルの構成 」トピックを参照してください。
ポストボディ制限アクションPostBodyLimit は、許可される HTTP 本文の最大サイズを指定した場合、エラー設定を使用します。 エラー設定を適用するには、1 つ以上の Post Body Limit アクションを設定する必要があります。この設定は、転送エンコーディングヘッダーがチャンクされている要求にも適用されます。
set appfw profile <profile_name> -PostBodyLimitAction block log stats
Where, Block-このアクションは、セキュリティチェックに違反する接続をブロックします。これは、設定された HTTP 本文の最大サイズ(本文後制限)に基づいています。このオプションは常に有効にする必要があります。
Log - このセキュリティチェックの違反を記録します。
Stats-このセキュリティー検査の統計を生成します。
注:
ポストボディ制限アクションのログ形式は、 標準の監査ログ形式に従うように変更されました。次に例を示します。
ns.log.4.gz:Jun 25 1.1.1.1. <local0.info> 10.101.10.100 06/25/2020:10:10:28 GMT 0-PPE-0 : default APPFW APPFW_POSTBODYLIMIT 1506 0 : <Netscaler IP> 4234-PPE0 - testprof ><URL> Request post body length(<Post Body Length>) exceeds post body limit.
inspectQueryContentTypes 次のコンテンツタイプの注入された SQL スクリプトとクロスサイトスクリプトのリクエストクエリと Web フォームを検査します。
set appfw profile p1 -inspectQueryContentTypes HTML XML JSON OTHER
可能な値:HTML、XML、JSON、その他
デフォルトでは、このパラメーターは「inspectQueryContentTypes: HTML JSON その他」として設定され、基本アプリケーションプロファイルと高度なアプリfw プロファイルの両方に対して設定されます。
XML としてクエリコンテンツタイプを検査する場合の例:
> set appfw profile p1 -type XML
Warning: HTML, JSON checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action” will not be applicable when profile type is not HTML or JSON respectively.
<!--NeedCopy-->
HTML としてインスペクションクエリコンテンツタイプの例:
> set appfw profile p1 -type HTML
Warning: XML, JSON checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action” will not be applicable when profile type is not XML or JSON respectively
Done
<!--NeedCopy-->
JSON としてクエリコンテンツタイプを検査する例:
> set appfw profile p1 -type JSON
Warning: HTML, XML checks except “InspectQueryContentTypes” & “Infer Content-Type XML Payload Action will not be applicable when profile type is not HTML or XML respectively
Done
<!--NeedCopy-->
ErrorURL 式です。NetScaler Web App Firewall がエラーURLとして使用するURL。最大長:2047
注:
要求された URL のブロック違反の場合、エラー URL がシグニチャ URL に似ている場合、アプライアンスは接続をリセットします。
logeVeryPolicyHit -セキュリティチェックの結果に関係なく、すべてのプロファイルの一致をログに記録します。 指定可能な値:オン、オフ。 デフォルト値:オフ。
stripXmlComments -ユーザーのリクエストに応答して、保護された Web サイトから送信されたウェブページを転送する前に、XML コメントを削除します。 可能な値:なし、すべて、exclude_script_tag。 デフォルト値:なし
postbodyLimitSignature-シグニチャ内のロケーション HTTP_POST_BODY のシグニチャインスペクションで許可される HTTP ポストボディの最大サイズ(バイト単位)。 値の変更は、CPU および遅延プロファイルに影響を与える可能性があります。 デフォルト値:2048。 最小値:0 最大値:4294967295
fileUploadMaxNum -フォーム送信リクエストごとに許可されるファイルアップロードの最大数。最大設定(65535)では、アップロードの数に制限はありません。 デフォルト値:65535 最小値:0 最大値:65535
FieldScan -HTML リクエストの各フィールド値に設定されている制限を調べます。
FieldScanLimit -Web App Firewall HTML リクエストの各フィールド値について検査するバイト数を入力します。
Default Value: 2 KB
Maximum Limit - 8 KB
JSONFieldsScan-JSON リクエストの各フィールド値に設定されている制限を調べます。
JsonFieldScanLimit -Web App Firewall JSON リクエストの各フィールド値について検査するバイト数を入力します。
Default Value: 2 KB
Maximum Limit - 8 KB
MessageScan -HTML リクエストの各ペイロードに設定されている制限を検査します。
MessageScanLimit -Web App Firewall HTML リクエストの各ペイロードについて検査するバイト数を入力します。
Default Value: 1 MB
Maximum Limit - 8 MB
JSONMessageScan-JSON リクエストの各ペイロードに設定されている制限を検査します。
JSONMessagesCanLimit -Web App Firewall JSON リクエストの各ペイロードについて検査するバイト数を入力します。
Default Value: 1 MB
Maximum Limit - 8 MB
messageScanLimitContentTypes。次のいずれかを選択してください:
- Form-Data – Select to inspect the payload for the HTML requests.
- Json - Select to inspect the payload for the JSON requests.
CanonicalizeHtmlResponse -保護されたウェブサイトから送信されたレスポンス内の特殊文字に対して HTML エンティティエンコーディングを実行します。 設定可能な値:ON、OFF デフォルト値:ON
PercentDecodeRecursively -アプリケーションファイアウォールがパーセンテージ再帰的デコードを使用するかどうかを構成します。 設定可能な値:ON、OFF デフォルト値:ON
MultipleHeaderAction -1 つ以上の複数のヘッダーアクション。使用可能な設定は次のように機能します。
- ブロック。複数のヘッダーを持つ接続をブロックします。
- ログ。複数のヘッダーを持つ接続をログに記録します。
- KeepLast。複数のヘッダーが存在する場合は、最後のヘッダーのみを保持します。
InspectContentTypes — 1 つ以上の InspectContentType リスト。
- アプリケーション/x-www-フォーム-URLエンコード
- multipart/form-data
- テキスト/x-gwt-rpc
可能な値:なし、アプリケーション/x-www-form-urlencoded、マルチパート/フォームデータ、テキスト/x-gwt-rpc
semicolonFieldSeparator -URL クエリおよび POST フォーム本文でフォームフィールドの区切り文字として ‘;’ を許可します。 設定可能な値:ON、OFF デフォルト値:OFF