Web App Firewall ログ
NetScaler(ネイティブ)形式のログ
-
タイムスタンプ。接続が発生した日時。
-
重大度。ログの重大度レベル。
-
モジュール。ログエントリを生成したNetScalerモジュール。
-
イベントタイプ。署名違反やセキュリティチェック違反などのイベントのタイプ。
-
イベント ID。イベントに割り当てられた ID。
-
クライアント IP。接続がログに記録されたユーザーの IP アドレス。
-
トランザクション ID。ログの原因となったトランザクションに割り当てられた ID。
-
セッション ID。ログの原因となったユーザーセッションに割り当てられた ID。
-
メッセージ。ログメッセージ。ログエントリをトリガーした署名またはセキュリティチェックを識別する情報が含まれます。
/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>
共通イベントフォーマット (CEF) ログ
-
src — 送信元 IP アドレス
-
spt — 送信元ポート番号
-
リクエスト — リクエスト URL
-
act — アクション (ブロックされた、変換されたなど)
-
msg — 監視されたセキュリティー検査違反に関するメッセージ
-
cn1 — イベント ID
-
cn2 — HTTP トランザクション ID
-
cs1 — プロファイル名
-
cs2 — PPE ID (PPE1 など)
-
cs3-セッション ID
-
cs4:重大度(情報、アラートなど)
-
cs5 — イベント年
-
cs6-署名違反カテゴリ
-
method — メソッド (GET/POST など)
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
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
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
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
Web App Firewall 違反メッセージにジオロケーションを記録する
CEF loggingおよびGeoLocationLoggingはオフになっています。両方のパラメータを明示的に有効にする必要があります。
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
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
コマンドインターフェイスを使用してログアクションとその他のログパラメータを設定する
-
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
-
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 ログをカスタマイズする
> sh version
NetScaler NS12.1: Build 50.0013.nc, Date: Aug 28 2018, 10:51:08 (64-bit)
Done> 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> add appfw profile test_profile
Done> add appfw policy appfw_pol true test_profile -logAction custom1
Done
Web App Firewall ログを分離するように Syslog ポリシーを構成する
-
シェルに切り替え、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 -Croot@ns# **kill -HUP** 1063 -
コマンドラインインターフェイスから、アクションを含む詳細またはクラシック SYSLOG ポリシーを構成し、グローバル Web App Firewall ポリシーとしてバインドします。高度なSYSLOGポリシーを構成Citrix。SYSLOG ポリシーの詳細設定
add audit syslogAction sysact1 1.1.1.1 -logLevel ALL -logFacility LOCAL2add audit syslogPolicy syspol1 true sysact1bind audit syslogGlobal -policyName syspol1 -priority 100 -globalBindType APPFW_GLOBALクラシック SYSLOG ポリシー設定add audit syslogAction sysact1 1.1.1.1 -logLevel ALL -logFacility LOCAL2add audit syslogPolicy syspol1 true sysact1bind audit syslogGlobal -policyName syspol1 -priority 100 -globalBindType APPFW_GLOBAL -
Web App Firewall のセキュリティチェック違反はすべて、
/var/log/ns.log.appfwファイルにリダイレクトされます。このファイルを末尾に付けて、進行中のトラフィックの処理中にトリガーされる Web App Firewall 違反を表示できます。root@ns# tail -f ns.log.appfw
/var/log/ns.logファイルに表示されなくなります。
syslogactionを追加し、外部サーバーの設定と同様にADCを構成します。ADCはログを保存するサーバーとして機能します。同じ IP とポートで 2 つのアクションを追加することはできません。syslogactionでは 、デフォルトでは、IP の値は127.0.0.1に設定され、portの値は514に設定されます。
Web App Firewall ログを表示する
-
Shell -
tail -f /var/log/ns.log
grep コマンドを使用して、クレジットカード違反に関するログメッセージにアクセスできます。
-
tail -f /var/log/ns.log | grep SAFECOMMERCE
-
プロファイルの特定のセキュリティチェックのログメッセージを表示するには、 > に移動し、ターゲットプロファイルを選択し、 をクリックします。ターゲットセキュリティチェックの行を強調表示し、 をクリックします。プロファイルの選択したセキュリティチェックから直接ログにアクセスすると、ログメッセージが除外され、選択したセキュリティチェックの違反に関連するログのみが表示されます。Syslog Viewer では、Web App Firewall ログをネイティブ形式および CEF 形式で表示できます。ただし、Syslog Viewer がターゲットプロファイル固有のログメッセージを除外するには、プロファイルからアクセスしたときに、ログが CEF ログ形式である必要があります。
-
特定のセキュリティ検査の Web App Firewall セキュリティ検査違反ログメッセージにアクセスするには、 のドロップダウンリストオプションで を選択してフィルタリングします。 には、選択をさらに絞り込むための豊富なオプションセットが表示されます。たとえば、 APPFW_FIELDFORMAT チェックボックスをオンにしてボタンをクリックすると、フィールド形式のセキュリティチェック違反に関連するログメッセージのみがSyslogビューアに表示されます。****同様に、 と チェックボックスをオンにして ボタンをクリックすると、これら 2 つのセキュリティー検査違反に関するログメッセージのみが syslog ビューアに表示されます。
ハイライト
-
CEF ログ形式のサポート:CEF ログ形式オプションは、Web App Firewall ログメッセージを監視、解析、分析して攻撃を特定し、構成された設定を微調整して誤検出を減らし、統計情報を収集するための便利なオプションを提供します。
-
ログメッセージをカスタマイズするオプション-高度な PI 式を使用してログメッセージをカスタマイズし、ログに表示するデータを含めることができます。
-
Web App Firewall 固有のログを分離する-アプリケーションファイアウォール固有のログをフィルタリングし、別のログファイルにリダイレクトするオプションがあります。
-
リモートロギング:ログメッセージをリモートsyslog サーバにリダイレクトできます。
-
位置情報ロギング:Web App Firewall を構成して、要求を受信したエリアの地理的位置情報を含めることができます。組み込みの地理位置情報データベースを使用できますが、外部位置情報データベースを使用するオプションもあります。NetScalerアプライアンスは、IPv4とIPv6の両方の静的地理位置情報データベースをサポートしています。
-
情報リッチログメッセージ:設定に応じて、ログに含めることができる情報のタイプの例をいくつか示します。
-
Web App Firewall ポリシーがトリガーされました。
-
セキュリティチェック違反がトリガーされました。
-
リクエストは形式に誤りがあると考えられました。
-
リクエストまたはレスポンスがブロックされたか、ブロックされませんでした。
-
リクエストデータ(SQL またはクロスサイトスクリプティングの特殊文字など)またはレスポンスデータ(クレジットカード番号やセーフオブジェクト文字列など)が変換されました。
-
応答のクレジットカードの数が、設定された制限を超えました。
-
クレジットカード番号とタイプ。
-
署名ルールで設定されたログ文字列、および署名 ID。
-
リクエストのソースに関する地理位置情報。
-
保護された機密フィールドに対するユーザ入力のマスク (X アウト)。
-
正規表現パターンを使用して機密データをマスクする
REGEX_REPLACE詳細ポリシー (PI) 関数を使用すると、WAF ログ内の機密データをマスクできます。オプションを使用して、正規表現パターンを使用してデータをマスクし、データをマスクする文字または文字列パターンを指定できます。また、PI 関数を設定して、正規表現パターンの最初のオカレンスまたはすべてのオカレンスを置き換えることができます。
-
SSN
-
クレジットカード
-
パスワード
-
ユーザー名
Web アプリケーションファイアウォールのログで機密データをマスクする
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アプリケーションファイアウォールログの機密データをマスクする
-
ナビゲーションペインで、[ セキュリティ ]>[ Citrix Web App Firewall ]>[ プロファイル]の順に展開します。
-
[Citrix Web App Firewall プロファイル ]ページで、[ 詳細設定 ]セクションに移動し、[ 拡張ログ]をクリックします。
-

-
[Citrix Web App Firewall 拡張ログバインドの作成 ]ページで、次のパラメーターを設定します。
-
名前。ログ式の名前。
-
Enabled。機密データをマスクするには、このオプションを選択します。
-
ログマスク。マスクするデータを選択します。
-
式。WAF ログの機密データをマスクできるようにする高度なポリシー式を入力します。
-