Web App Firewall ログ
Web App Firewall は、構成、ポリシー呼び出し、セキュリティチェック違反の詳細を追跡するためのログメッセージを生成します。
セキュリティチェックまたは署名のログアクションを有効にすると、Web App Firewall が Web サイトやアプリケーションを保護する際に監視した要求と応答に関する情報がログメッセージに表示されます。最も重要な情報は、署名またはセキュリティチェック違反が観察されたときに Web App Firewall によって実行されるアクションです。一部のセキュリティチェックでは、ユーザーの場所や違反をトリガーした検出パターンなど、ログメッセージに有用な情報が記録されることがあります。ログ内の違反メッセージの数が過度に増加すると、悪意のある要求が急増している可能性があります。このメッセージは、Web App Firewall 保護によって検出および阻止された特定の脆弱性を悪用するために、アプリケーションが攻撃を受けている可能性があることを警告します。
注:
NetScaler Web App Firewall ログをシステムログから分離する場合は、外部の SYSLOG サーバーを使用する必要があります。
NetScaler(ネイティブ)形式のログ
Web App Firewall は、デフォルトでNetScaler形式のログ(ネイティブ形式のログとも呼ばれます)を使用します。これらのログは、他のNetScaler機能で生成されるログと同じ形式です。各ログには、次のフィールドが含まれます。
- タイムスタンプ。接続が発生した日時。
- 重大度。ログの重大度レベル。
- モジュール。ログエントリを生成したNetScalerモジュール。
- イベントタイプ。署名違反やセキュリティチェック違反などのイベントのタイプ。
- イベント ID。イベントに割り当てられた ID。
- クライアント IP。接続がログに記録されたユーザーの IP アドレス。
- トランザクション ID。ログの原因となったトランザクションに割り当てられた ID。
- セッション ID。ログの原因となったユーザーセッションに割り当てられた ID。
- メッセージ。ログメッセージ。ログエントリをトリガーした署名またはセキュリティチェックを識別する情報が含まれます。
これらのフィールドのいずれか、または異なるフィールドの情報を組み合わせて検索できます。選択できるのは、ログの表示に使用するツールの機能によってのみ制限されます。NetScaler syslogビューアにアクセスしてGUIでWeb App Firewallログメッセージを確認したり、NetScalerアプライアンスに手動で接続してコマンドラインインターフェイスからログにアクセスしたり、シェルにドロップして/var/log/folder
から直接ログを追跡したりできます。
ネイティブ形式のログメッセージの例
Jun 22 19:14:37 <local0.info> 10.217.31.98 06/22/2015:19:14:37 GMT ns 0-PPE-1 :
default APPFW APPFW_cross-site scripting 60 0 : 10.217.253.62 616-PPE1 y/3upt2K8ySWWId3Kavbxyni7Rw0000
pr_ffc http://aaron.stratum8.net/FFC/login.php?login_name=abc&passwd=
12345&drinking_pref=on&text_area=%3Cscript%3E%0D%0A&loginButton=ClickToLogin&as_sfid=
AAAAAAWEXcNQLlSokNmqaYF6dvfqlChNzSMsdyO9JXOJomm2v
BwAMOqZIChv21EcgBc3rexIUcfm0vckKlsgoOeC_BArx1Ic4NLxxkWMtrJe4H7SOfkiv9NL7AG4juPIanTvVo
%3D&as_fid=feeec8758b41740eedeeb6b35b85dfd3d5def30c Cross-site script check failed for
field text_area="Bad tag: script" <blocked>
<!--NeedCopy-->
共通イベントフォーマット (CEF) ログ
Web App Firewall は CEF ログもサポートします。CEF は、さまざまなセキュリティ、ネットワークデバイス、アプリケーションからのセキュリティ関連情報の相互運用性を向上させるオープンログ管理標準です。CEF を使用すると、お客様は共通のイベントログ形式を使用できるため、エンタープライズ管理システムによる分析のためにデータを簡単に収集および集約できます。ログメッセージはさまざまなフィールドに分割されるため、メッセージを容易に解析し、重要な情報を識別するためのスクリプトを記述できます。
CEF ログメッセージの分析
Web App Firewall CEF ログメッセージには、日付、タイムスタンプ、クライアント IP、ログ形式、アプライアンス、会社、ビルドバージョン、モジュール、セキュリティチェック情報に加えて、次の詳細が含まれます。
- src — 送信元 IP アドレス
- spt — 送信元ポート番号
- リクエスト — リクエスト URL
- act — アクション (ブロックされた、変換されたなど)
- msg — message (監視されたセキュリティチェック違反に関するメッセージ)
- オフセット-ファイルの先頭からのバイト数を表します。
- cn1 — イベント ID
- cn2 — HTTP トランザクション ID
- cs1 — プロファイル名
- cs2 — PPE ID (PPE1 など)
- cs3-セッション ID
- cs4:重大度(情報、アラートなど)
- cs5 — イベント年
- cs6-署名違反カテゴリ
- method — メソッド (GET/POST など)
たとえば、開始 URL 違反がトリガーされたときに生成された次の CEF 形式のログメッセージを考えてみましょう。
Jun 12 23:37:17 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0
|APPFW|APPFW_STARTURL|6|src=10.217.253.62 spt=47606 method=GET
request=http://aaron.stratum8.net/FFC/login.html msg=Disallow Illegal URL. cn1=1340
cn2=653 cs1=pr_ffc cs2=PPE1 cs3=EsdGd3VD0OaaURLcZnj05Y6DOmE0002 cs4=ALERT cs5=2015
act=blocked
<!--NeedCopy-->
上記のメッセージは、異なるコンポーネントに分解することができます。CEP ログコンポーネントの表を参照してください 。
CEF ログ形式の要求チェック違反の例:要求がブロックされない
Jun 13 00:21:28 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_FIELDCONSISTENCY|6|src=10.217.253.62 spt=761 method=GET request=
http://aaron.stratum8.net/FFC/login.php?login_name=abc&passwd=
123456789234&drinking_pref=on&text_area=&loginButton=ClickToLogin&as_sfid
=AAAAAAWIahZuYoIFbjBhYMP05mJLTwEfIY0a7AKGMg3jIBaKmwtK4t7M7lNxOgj7Gmd3SZc8KUj6CR6a
7W5kIWDRHN8PtK1Zc-txHkHNx1WknuG9DzTuM7t1THhluevXu9I4kp8%3D&as_fid=feeec8758b4174
0eedeeb6b35b85dfd3d5def30c msg=Field consistency check failed for field passwd cn1=1401
cn2=707 cs1=pr_ffc cs2=PPE1 cs3=Ycby5IvjL6FoVa6Ah94QFTIUpC80001 cs4=ALERT cs5=2015 act=
not blocked
<!--NeedCopy-->
CEF 形式の応答チェック違反の例:応答が変換される
Jun 13 00:25:31 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_SAFECOMMERCE|6|src=10.217.253.62 spt=34041 method=GET request=
http://aaron.stratum8.net/FFC/CreditCardMind.html msg=Maximum number of potential credit
card numbers seen cn1=1470 cn2=708 cs1=pr_ffc cs2=PPE1
cs3=Ycby5IvjL6FoVa6Ah94QFTIUpC80001 cs4=ALERT cs5=2015 act=transformed
<!--NeedCopy-->
CEF 形式のリクエスト側署名違反の例:リクエストはブロックされています
Jun 13 01:11:09 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_SIGNATURE_MATCH|6|src=10.217.253.62 spt=61141 method=GET request=
http://aaron.stratum8.net/FFC/wwwboard/passwd.txt msg=Signature violation rule ID 807:
web-cgi /wwwboard/passwd.txt access cn1=140 cn2=841 cs1=pr_ffc cs2=PPE0
cs3=OyTgjbXBqcpBFeENKDlde3OkMQ00001 cs4=ALERT cs5=2015 cs6=web-cgi act=blocked
<!--NeedCopy-->
オフセットの CEF 形式のレスポンスチェック違反の例:
Jan 24 10:00:00 <local0.warn> 10.175.4.47 CEF:0|Citrix|NetScaler|NS13.0|APPFW|APPFW_XML_ERR_NOT_WELLFORMED|4|src=5.31.100.129 spt=20644 method=GET request=https://wifiuae.duwifi.ae/publishApplications/en/5dafe3e74fa8015599009bc1/images/fallback_photo.svg msg=XML Format check failed: Message is not a well-formed XML.Error string is 'unclosed token'. Offset:-517597 cn1=547290214 cn2=974226675 cs1=WIFI_UAE_AppFw cs2=PPE0 cs4=ERROR cs5=2023 act=blocked
<!--NeedCopy-->
この例では、次の理由により XML_ERR_NOT_WELLFORMED 違反が発生しています。unclosed token
この違反は、ファイルの先頭から 517597 の場所にあります。
Web App Firewall 違反メッセージにジオロケーションを記録する
ログの詳細は、リクエストの発信元を特定し、Web App Firewall を最適なセキュリティレベルに設定するのに役立ちます。クライアントの IP アドレスに依存するレート制限などのセキュリティ実装を回避するために、マルウェアまたは不正なコンピュータは、要求の送信元 IP アドレスを変更し続けることができます。リクエストが送信される特定のリージョンを特定すると、リクエストが有効なユーザーからのものか、サイバー攻撃を開始しようとしているデバイスからのものかを判断するのに役立ちます。たとえば、特定のエリアから過度に多数の要求を受信した場合、それらがユーザーによって送信されているのか、不正なマシンによって送信されているのかを簡単に判断できます。受信したトラフィックのジオロケーション分析は、DoS(DoS; サービス拒否)攻撃などの攻撃を回避するのに役立ちます。
Web App Firewall は、組み込みのNetScalerデータベースを使用して、悪意のある要求の発信元のIPアドレスに対応する場所を特定する利便性を提供します。その後、これらの場所からのリクエストに対して、より高いレベルのセキュリティを適用できます。NetScalerのデフォルト構文(PI)式を使用すると、ロケーションベースのポリシーを柔軟に設定できます。これを組み込みの位置データベースで使用してファイアウォールの保護をカスタマイズできるため、特定の地域の不正クライアントから仕掛けられた協調攻撃に対する防御が強化されます。
NetScaler組み込みデータベースを使用することも、他のデータベースを使用することもできます。データベースに特定のクライアント IP アドレスのロケーション情報がない場合、CEF ログにはジオロケーションが不明なジオロケーションとして表示されます。
注:
位置情報ロギングでは、共通イベント形式 (CEF) が使用されます。デフォルトでは、
CEF logging
およびGeoLocationLogging
はオフになっています。両方のパラメータを明示的に有効にする必要があります。
位置情報を示す CEF ログメッセージの例
June 8 00:21:09 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|
APPFW_STARTURL|6|src=10.217.253.62 geolocation=NorthAmerica.US.Arizona.Tucson.*.*
spt=18655 method=GET request=http://aaron.stratum8.net/FFC/login.html
msg=Disallow Illegal URL. cn1=77 cn2=1547 cs1=test_pr_adv cs2=PPE1
cs3=KDynjg1pbFtfhC/nt0rBU1o/Tyg0001 cs4=ALERT cs5=2015 act=not blocked
<!--NeedCopy-->
ジオロケーション = 不明を示すログメッセージの例
June 9 23:50:53 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|
APPFW|APPFW_STARTURL|6|src=10.217.30.251 geolocation=Unknown spt=5086
method=GET request=http://aaron.stratum8.net/FFC/login.html msg=Disallow Illegal URL.
cn1=74 cn2=1576 cs1=test_pr_adv cs2=PPE2 cs3=PyR0eOEM4gf6GJiTyauiHByL88E0002
cs4=ALERT cs5=2015 act=not blocked
<!--NeedCopy-->
コマンドインターフェイスを使用してログアクションとその他のログパラメータを設定する
コマンドラインを使用してプロファイルのセキュリティー検査のログアクションを構成するには
コマンドプロンプトで、次のコマンドのいずれかを入力します:
set appfw profile <name> SecurityCheckAction ([log] | [none])
unset appfw profile <name> SecurityCheckAction
例
set appfw profile pr_ffc StartURLAction log
unset appfw profile pr_ffc StartURLAction
コマンドラインを使用して CEF ロギングを設定するには
CEF ロギングは、デフォルトでは無効になっています。コマンドプロンプトで、次のいずれかのコマンドを入力して、現在の設定を変更または表示します。
set appfw settings CEFLogging on
unset appfw settings CEFLogging
sh appfw settings | grep CEFLogging
コマンドラインを使用してクレジットカード番号のロギングを構成するには
コマンドプロンプトで、次のコマンドのいずれかを入力します:
set appfw profile <name> -doSecureCreditCardLogging ([ON] | [OFF])
unset appfw profile <name> -doSecureCreditCardLogging
コマンドラインを使用して位置情報ログを構成するには
-
set コマンドを使用して GeoLocationLogging を有効にします。CEF ロギングは同時に有効にできます。位置情報ロギングを無効にするには、unset コマンドを使用します。show コマンドは、すべての Web App Firewall パラメータの現在の設定を表示します。ただし、grep コマンドを指定して特定のパラメータの設定を表示する場合を除きます。
set appfw settings GeoLocationLogging ON [CEFLogging ON]
unset appfw settings GeoLocationLogging
sh appfw settings | grep GeoLocationLogging
-
データベースを指定する
add locationfile /var/netscaler/inbuilt_db/Citrix_netscaler_InBuilt_GeoIP_DB.csv
または
add locationfile <path to database file>
Web App Firewall ログをカスタマイズする
デフォルトフォーマット (PI) 式を使用すると、ログに含まれる情報を柔軟にカスタマイズできます。Web App Firewall で生成されたログメッセージに、キャプチャする特定のデータを含めるオプションがあります。たとえば、Web App Firewall セキュリティチェックとともに AAA-TM 認証を使用していて、セキュリティチェック違反をトリガーしたアクセスされた URL、URL を要求したユーザーの名前、送信元 IP アドレス、およびユーザーが要求を送信した送信元ポートを知りたい場合、次のようになります。では、次のコマンドを使用して、すべてのデータを含むカスタマイズされたログメッセージを指定できます。
> sh version
NetScaler NS12.1: Build 50.0013.nc, Date: Aug 28 2018, 10:51:08 (64-bit)
Done
<!--NeedCopy-->
> add audit messageaction custom1 ALERT 'HTTP.REQ.URL + " " + HTTP.REQ.USER.NAME + " " + CLIENT.IP.SRC + ":" + CLIENT.TCP.SRCPORT'
Warning: HTTP.REQ.USER has been deprecated. Use AAA.USER instead.
Done
<!--NeedCopy-->
> add appfw profile test_profile
Done
<!--NeedCopy-->
> add appfw policy appfw_pol true test_profile -logAction custom1
Done
<!--NeedCopy-->
Web App Firewall ログを分離するように Syslog ポリシーを構成する
Web App Firewall には、Web App Firewall セキュリティログメッセージを分離して別のログファイルにリダイレクトするオプションがあります。これは、Web App Firewallが多数のログを生成し、他のNetScalerログメッセージを表示しにくい場合に適しています。このオプションは、Web App Firewall ログメッセージのみを表示し、他のログメッセージを表示したくない場合にも使用できます。
Web App Firewall ログを別のログファイルにリダイレクトするには、Web App Firewall ログを別のログファシリティに送信するように syslog アクションを構成します。このアクションは、syslog ポリシーを構成するときに使用し、Web App Firewall で使用するためにグローバルにバインドできます。
メモ:
Web App Firewall ポリシーをグローバルにバインドするには、「bind audit syslogGlobal」および「bind audit nsLogGlobal」コマンドでグローバルバインディングパラメータ「APPFW_GLOBAL」を構成できます。グローバルバインドされた監査ログポリシーは、Web App Firewall のログコンテキストでログメッセージを評価できます。
Webアプリケーションファイアウォールのログを、NetScalerで実行されているローカルの監査サーバーまたはSYSLOGサーバーから分離することはできません。local2 ログファシリティを使用すると、Web アプリケーションファイアウォールと IP レピュテーションログの両方を同じログファイルで受信することになります。
例:
-
シェルに切り替え、vi などのエディタを使用して /etc/syslog.conf ファイルを編集します。次の例に示すように、local2.* を使用してログを別のファイルに送信する新しいエントリを追加します。
local2.\* /var/log/ns.log.appfw
-
syslog プロセスを再起動します。次の例に示すように、grep コマンドを使用して syslog プロセス ID(PID)を識別できます。
root@ns\# **ps -A | grep syslog**
1063 ?? Ss 0:03.00 /usr/sbin/syslogd -b 127.0.0.1 -n -v -v -8 -C
root@ns# **kill -HUP** 1063
-
コマンドラインインターフェイスから、アクションを含む詳細またはクラシック SYSLOG ポリシーを構成し、グローバル Web App Firewall ポリシーとしてバインドします。高度なSYSLOGポリシーを構成することをお勧めします。
SYSLOG ポリシーの詳細設定
add audit syslogAction sysact1 1.1.1.1 -logLevel ALL -logFacility LOCAL2
add audit syslogPolicy syspol1 true sysact1
bind audit syslogGlobal -policyName syspol1 -priority 100 -globalBindType APPFW_GLOBAL
クラシック SYSLOG ポリシー設定
add audit syslogAction sysact1 1.1.1.1 -logLevel ALL -logFacility LOCAL2
add audit syslogPolicy syspol1 ns_true sysact1
bind appfw global syspol1 100
-
Web App Firewall のセキュリティチェック違反はすべて、
/var/log/ns.log.appfw
ファイルにリダイレクトされます。このファイルを末尾に付けて、進行中のトラフィックの処理中にトリガーされる Web App Firewall 違反を表示できます。root@ns# tail -f ns.log.appfw
メモ:
ローカルNetScalerアプライアンス上の別のログファイルにログを送信する場合は、そのローカルNetScalerアプライアンス上にSyslogサーバーを作成できます。独自のIPに
syslogaction
を追加し、外部サーバーの設定と同様にADCを構成します。ADCはログを保存するサーバーとして機能します。同じ IP とポートで 2 つのアクションを追加することはできません。syslogaction
では 、デフォルトでは、IP の値は127.0.0.1
に設定され、portの値は514
に設定されます。ログを別のログファシリティにリダイレクトするように syslog ポリシーを構成した場合、Web App Firewall のログメッセージは
/var/log/ns.log
ファイルに表示されなくなります。
アプリケーションファイアウォールメッセージを別の SYSLOG サーバに送信する
アプリケーションファイアウォールメッセージを別の SYSLOG サーバに送信するには、次の手順を実行する必要があります。
-
WinSCP などのセキュアなファイル転送ユーティリティ
-
PuTTY などのアプライアンスに対して SSH コンソールを開くユーティリティ
アプリケーションファイアウォールメッセージを別の SYSLOG サーバに送信するには、次の手順が必要です。
-
WinSCP経由でNetScalerアプライアンスにログオンします。
-
/etc/syslog.conf ファイルを更新し、このファイルに次の行を追加します。
local5.* /var/log/appfw.log
-
コマンドラインインターフェイスから次のコマンドを実行して、syslog PID を再起動します。
kill –HUP <PID>
-
コマンドラインインターフェイスから次のコマンドを実行して、sysact1 などの syslog アクションを追加します。
add audit syslogAction sysact1 127.0.0.1 -logLevel ALL -logFacility LOCAL5
-
sysact1 サーバを使用する syspol1 ポリシーを追加するには、次のコマンドを実行します。
add audit syslogPolicy syspol1 ns_true sysact1
または、高度な syslog ポリシーを追加します。add audit syslogPolicy syspol1 true sysact1
-
次のコマンドを実行してアプリケーションファイアウォールポリシーをバインドし、ns.conf ファイルに保存されていることを確認します。
bind appfw global syspol1 100
または、以下のコマンドを実行して Advanced Syslog ポリシーをバインドします。
bind audit syslogGlobal -policyName syspol1 -priority 100 -globalBindType APPFW_GLOBAL
アプリケーションファイアウォールのセキュリティチェック違反はすべて/var/log/appfw.log
にリダイレクトされ、ns.log
には表示されなくなります。tail コマンドを実行して、/var/log/appfw.log
で最新のエントリを表示できるようになりました。
Web App Firewall ログを表示する
syslogビューアを使用するか、NetScalerアプライアンスにログオンしてUNIXシェルを開き、任意のUNIXテキストエディタを使用してログを表示できます。
コマンドラインを使用してログメッセージにアクセスするには
シェルに切り替えて、 /var/log/ フォルダーの ns.logs を末尾に付けて、 Web App Firewall のセキュリティチェック違反に関するログメッセージにアクセスします 。
Shell
tail -f /var/log/ns.log
vi エディタ、または任意の Unix テキストエディタまたはテキスト検索ツールを使用して、特定のエントリのログを表示およびフィルタリングできます。たとえば、 grep
コマンドを使用して、クレジットカード違反に関するログメッセージにアクセスできます。
tail -f /var/log/ns.log | grep SAFECOMMERCE
GUI を使用してログメッセージにアクセスするには
GUI には、ログメッセージを分析するための便利なツール (Syslog Viewer) が含まれています。Syslog ビューアにアクセスするには、複数のオプションがあります:
- プロファイルの特定のセキュリティチェックのログメッセージを表示するには、[ Web App Firewall ] > [ プロファイル] に移動し、ターゲットプロファイルを選択し、[セキュリティチェック] をクリックします。ターゲットセキュリティチェックの行を強調表示し、[ログ] をクリックします。プロファイルの選択したセキュリティチェックから直接ログにアクセスすると、ログメッセージが除外され、選択したセキュリティチェックの違反に関連するログのみが表示されます。Syslog Viewer では、Web App Firewall ログをネイティブ形式および CEF 形式で表示できます。ただし、Syslog Viewer がターゲットプロファイル固有のログメッセージを除外するには、プロファイルからアクセスしたときに、ログが CEF ログ形式である必要があります。
- 「 NetScaler 」>「 システム 」>「 監査 」の順に選択して、Syslogビューアにアクセスすることもできます。[監査メッセージ] セクションで、[Syslog メッセージ] リンクをクリックして Syslog Viewer を表示します。Syslog Viewer には、すべてのプロファイルのすべての Web App Firewall セキュリティチェック違反ログを含む、すべてのログメッセージが表示されます。このログメッセージは、要求処理中に複数のセキュリティー検査違反がトリガされる可能性がある場合のデバッグに役立ちます。
- [ Web App Firewall ] > [ ポリシー ] > [ 監査] に移動します。[Audit Messages] セクションで、[Syslog messages] リンクをクリックして Syslog Viewer を表示します。このビューアには、すべてのプロファイルのすべてのセキュリティチェック違反ログを含む、すべてのログメッセージが表示されます。
HTML ベースの Syslog Viewer には、関心のあるログメッセージのみを選択するための次のフィルタオプションが用意されています。
-
ファイル:現在の
/var/log/ns.log
ファイルがデフォルトで選択され、対応するメッセージが Syslog Viewer に表示されます。/var/log ディレクトリにある他のログファイルの一覧が、圧縮された.gz 形式で表示されます。アーカイブされたログファイルをダウンロードして解凍するには、ドロップダウンリストのオプションからログファイルを選択します。選択したファイルに関連するログメッセージが syslog ビューアに表示されます。表示を更新するには、[Refresh] アイコン (2 つの矢印の円) をクリックします。 -
[モジュール(Module)] リストボックス:ログを表示するNetScalerモジュールを選択できます。Web App Firewall ログの APPFW に設定できます。
-
[Event Type] リストボックス:このボックスには、関心のあるイベントのタイプを選択するための一連のチェックボックスがあります。たとえば、署名違反に関するログメッセージを表示するには、[ APPFW_SIGNATURE_MATCH ] チェックボックスをオンにします。同様に、チェックボックスをオンにして、関心のある特定のセキュリティチェックを有効にすることができます。複数のオプションを選択できます。
-
[Severity]:特定の重大度レベルを選択して、その重大度のログだけを表示できます。すべてのログを表示する場合は、チェックボックスをすべて空白のままにします。
特定のセキュリティ検査の Web App Firewall セキュリティ検査違反ログメッセージにアクセスするには、[モジュール] のドロップダウンリストオプションで [ APPFW ] を選択してフィルタリングします。[イベントタイプ] には、選択をさらに絞り込むための豊富なオプションセットが表示されます。たとえば、 APPFW_FIELDFORMAT チェックボックスをオンにして[適用]ボタンをクリックすると、フィールド形式のセキュリティチェック違反に関連するログメッセージのみがSyslogビューアに表示されます。**同様に、[ **APPFW_SQL ] と [ APPFW_STARTURL ] チェックボックスをオンにして [ 適用 ] ボタンをクリックすると、これら 2 つのセキュリティー検査違反に関するログメッセージのみが syslog ビューアに表示されます。
特定のログメッセージの行にカーソルを置くと、[ Module]、[ EventType]、[ **EventID]、[ **メッセージ ] などの複数のオプションがログメッセージの下に表示されます。これらのオプションのいずれかを選択して、ログ内の対応する情報を強調表示できます。
ハイライト
- CEF ログ形式のサポート:CEF ログ形式オプションは、Web App Firewall ログメッセージを監視、解析、分析して攻撃を特定し、構成された設定を微調整して誤検出を減らし、統計情報を収集するための便利なオプションを提供します。
- ログメッセージをカスタマイズするオプション-高度な PI 式を使用してログメッセージをカスタマイズし、ログに表示するデータを含めることができます。
- Web App Firewall 固有のログを分離する-アプリケーションファイアウォール固有のログをフィルタリングし、別のログファイルにリダイレクトするオプションがあります。
- リモートロギング:ログメッセージをリモートsyslog サーバにリダイレクトできます。
- 位置情報ロギング:Web App Firewall を構成して、要求を受信したエリアの地理的位置情報を含めることができます。組み込みの地理位置情報データベースを使用できますが、外部位置情報データベースを使用するオプションもあります。NetScalerアプライアンスは、IPv4とIPv6の両方の静的地理位置情報データベースをサポートしています。
-
情報リッチログメッセージ:設定に応じて、ログに含めることができる情報のタイプの例をいくつか示します。
- Web App Firewall ポリシーがトリガーされました。
- セキュリティチェック違反がトリガーされました。
- リクエストは形式に誤りがあると考えられました。
- リクエストまたはレスポンスがブロックされたか、ブロックされませんでした。
- リクエストデータ(SQL またはクロスサイトスクリプティングの特殊文字など)またはレスポンスデータ(クレジットカード番号やセーフオブジェクト文字列など)が変換されました。
- 応答のクレジットカードの数が、設定された制限を超えました。
- クレジットカード番号とタイプ。
- 署名ルールで設定されたログ文字列、および署名 ID。
- リクエストのソースに関する地理位置情報。
- 保護された機密フィールドに対するユーザ入力のマスク (X アウト)。
正規表現パターンを使用して機密データをマスクする
Web アプリケーションファイアウォール (WAF) プロファイルにバインドされたログ式のREGEX_REPLACE
詳細ポリシー (PI) 関数を使用すると、WAF ログ内の機密データをマスクできます。オプションを使用して、正規表現パターンを使用してデータをマスクし、データをマスクする文字または文字列パターンを指定できます。また、PI 関数を設定して、正規表現パターンの最初のオカレンスまたはすべてのオカレンスを置き換えることができます。
デフォルトでは、GUI インターフェイスには次のマスクがあります。
- SSN
- クレジットカード
- パスワード
- ユーザー名
Web アプリケーションファイアウォールのログで機密データをマスクする
WAFプロファイルにバインドされたログ式でREGEX_REPLACE
詳細ポリシー式を設定することで、WAF ログ内の機密データをマスクできます。
機密データをマスクするには、次の手順を完了する必要があります。
- Web アプリケーションファイアウォールプロファイルを追加する
- ログ式を WAF プロファイルにバインドする
Web アプリケーションファイアウォールプロファイルを追加する
コマンドプロンプトで入力します:
add appfw profile <name>
例:
Add appfw profile testprofile1
Web アプリケーションファイアウォールプロファイルでログ式をバインドする
コマンドプロンプトで入力します:
bind appfw profile <name> -logExpression <string> <expression> –comment <string>
例:
bind appfw profile testProfile -logExpression "MaskSSN" "HTTP.REQ.BODY(10000).REGEX_REPLACE(re!\b\d{3}-\d{2}-\d{4}\b!, “xxx”, ALL)" -comment "SSN Masked"
NetScaler GUIを使用してWebアプリケーションファイアウォールログの機密データをマスクする
- ナビゲーションペインで、[ セキュリティ ]>[ NetScaler Web App Firewall ]>[ プロファイル]の順に展開します。
- [ プロファイル ] ページで、[ 編集] をクリックします。
- [NetScaler Web App Firewall プロファイル ]ページで、[ 詳細設定 ]セクションに移動し、[ 拡張ログ]をクリックします。
-
[ 拡張ログ ] セクションで、[ 追加] をクリックします。
-
[NetScaler Web App Firewall 拡張ログバインドの作成 ]ページで、次のパラメーターを設定します。
- 名前。ログ式の名前。
- Enabled。機密データをマスクするには、このオプションを選択します。
- ログマスク。マスクするデータを選択します。
- 式。WAF ログの機密データをマスクできるようにする高度なポリシー式を入力します。
- [コメント]。機密データのマスキングに関する簡単な説明。
- [作成]して[閉じる] をクリックします。