クレジットカードチェック
クレジットカードを受け入れるアプリケーションを使用している場合、またはウェブサイトがクレジットカード番号を保存するデータベースサーバーにアクセスできる場合は、データ漏えい防止 (DLP) 対策を講じ、受け入れるクレジットカードの種類ごとに保護を設定する必要があります。
NetScaler Web App Firewallのクレジットカードチェックは、攻撃者がデータ漏えい防止の欠陥を悪用して顧客のクレジットカード番号を取得するのを防ぎます。簡単な設定手順に従うだけで、1)Visa、2)マスターカード、3)ディスカバー、4)アメリカンエキスプレス(アメックス)、5)JCB、6)ダイナースクラブのいずれかのクレジットカードを強制的に保護できます。
クレジットカードセキュリティチェックは、サーバーの応答を調べて対象のクレジットカード番号のインスタンスを特定し、そのような番号が見つかった場合は指定されたアクションを適用します。アクションとしては、クレジットカード番号の最後のグループを除くすべての桁を X アウトして応答を変換したり、指定された数を超えるクレジットカード番号が含まれている場合は応答をブロックしたりすることができます。両方を指定すると、ブロックアクションが優先されます。1 ページあたりに許可されるクレジットカードの最大数設定により、ブロックアクションがいつ呼び出されるかが決まります。デフォルト設定の 0 (ページにクレジットカード番号を入力できない) が最も安全ですが、最大 255 件まで許可できます。レスポンス内のどこで違反が検出され、ブロックアクションがトリガーされるかによっては、レスポンスで許可されているクレジットカードの最大数よりも少なくなる場合があります。
誤検出を防ぐために、緩和措置を適用して特定の番号をクレジットカードの小切手から免除することができます。たとえば、社会保障番号、注文番号、Google アカウント番号は、クレジットカード番号に似ている場合があります。クレジットカード検査用の応答 URL を処理する際に無視する数字列を指定するには、数字を個別に指定することも、正規表現を使用して指定することもできます。
どのクレジットカード番号を免除すればよいかわからない場合は、学習機能を使用して、学習したデータに基づいてレコメンデーションを生成できます。パフォーマンスを犠牲にすることなく最適な効果を得るには、このオプションを短時間有効にしてルールの代表的なサンプルを入手してから、緩和策を適用して学習を無効にするとよいでしょう。
ログ機能を有効にすると、クレジットカードチェックが実行したアクションを示すログメッセージが生成されます。ログを監視して、正当な要求に対する応答がブロックされているかどうかを判断できます。ログメッセージの数が大幅に増えている場合は、アクセスの試みが阻止された可能性があります。デフォルトでは、doSecureCreditCardLogging パラメータは ON なので、クレジットカード番号はセーフコマース (クレジットカード) 違反によって生成されるログメッセージには含まれません。
統計機能は、違反とログに関する統計を収集します。stats カウンタの予期しない急増は、アプリケーションが攻撃を受けていることを示している可能性があります。
アプリケーションを保護するためのクレジットカードセキュリティチェックを設定するには、このアプリケーションとの間で送受信されるトラフィックの検査を制御するプロファイルを設定します。
注記:
SQL データベースにアクセスしない Web サイトでは、通常、クレジットカード番号などの機密の個人情報にはアクセスできません。
コマンドラインを使用してクレジットカードチェックを設定する
コマンドラインインターフェイスでは、set appfw profile コマンドまたは add appfw profile コマンドのいずれかを使用してクレジットカードチェックを有効にし、実行するアクションを指定できます。unset appfw profile コマンドを使用して、デフォルト設定に戻すことができます。緩和を指定するには、bind appfw コマンドを使用してクレジットカード番号をプロファイルにバインドします。
コマンドラインを使用してクレジットカードチェックを設定するには
次のように set appfw profile コマンドまたは add appfw profile コマンドのいずれかを使用します。
set appfw profile <name> -creditCardAction ( ([block][learn] [log][stats]) | [none])
set appfw profile <name> -creditCard (VISA | MASTERCARD | DISCOVER | AMEX | JCB | DINERSCLUB)
set appfw profile <name> -creditCardMaxAllowed <integer>
-
set appfw profile <name> -creditCardXOut ([ON] | [OFF])<name> -doSecureCreditCardLogging ([ON] | [OFF])
-
コマンドラインを使用してクレジットカード緩和ルールを設定するには
bind コマンドを使用して、クレジットカード番号をプロファイルにバインドします。クレジットカード番号をプロファイルから削除するには、バインドコマンドで使用したのと同じ引数を指定して unbind コマンドを使用します。show コマンドを使用すると、プロファイルにバインドされたクレジットカード番号を表示できます。
-
クレジットカード番号をプロフィールにバインドするには
bind appfw profile <profile-name> -creditCardNumber <any number/regex> “<url>”
例:バインド appfw プロファイル test_profile-クレジットカード番号 378282246310005
http://www.example.com/credit\_card\_test.html
-
クレジットカード番号をプロフィールからバインド解除するには
unbind appfw profile <profile-name> -creditCardNumber <credit card number / regex> <url>
-
プロファイルに紐付けられたクレジットカード番号のリストを表示します。
show appfw profile <profile>
-
GUI を使用してクレジットカードチェックを設定する
GUI では、アプリケーションに関連するプロファイルのペインでクレジットカードのセキュリティチェックを設定します。
GUI を使用してクレジットカードのセキュリティチェックを追加または変更するには
-
Web App Firewall > プロファイルに移動し、ターゲットプロファイルを強調表示して 、「 編集」をクリックします。
-
[ 詳細設定 ] ペインで、[ セキュリティチェック] をクリックします。
セキュリティー検査テーブルには、すべてのセキュリティー検査に対して現在構成されているアクション設定が表示されます。設定には次の 2 つのオプションがあります。
- クレジットカードのブロック、ログ、統計、学習アクションを有効または無効にするだけの場合は、表のチェックボックスをオンまたはオフにして、「 OK」をクリックし、「 **保存して閉じる** 」 をクリックしてセキュリティチェックペインを閉じます 。
- このセキュリティチェックに追加のオプションを設定する場合は、「クレジットカード」をダブルクリックするか、行を選択して「 アクション設定 」をクリックすると、次のような追加オプションが表示されます。
-
アウト:最後のグループの数字を除く各桁を文字「X」に置き換えて、応答で検出されたすべてのクレジットカード番号をマスクします。
-
1 ページあたりに許可されるクレジットカードの最大数-ブロックアクションをトリガーせずにクライアントに転送できるクレジットカードの数を指定します。
-
保護されたクレジットカード。チェックボックスをオンまたはオフにして、クレジットカードの種類ごとに保護を有効または無効にします。
-
「クレジットカード設定」ペインで「ブロック」、「ログ」、「統計」、「学習」のアクションを編集することもできます。
上記の変更を行った後、「 OK」 をクリックして変更を保存し、「Security Checks」テーブルに戻ります。必要に応じて、他のセキュリティー検査の設定に進むことができます。「OK」をクリックして「セキュリティ・チェック」セクションで行ったすべての変更を保存し、「保存して閉じる」をクリックしてセキュリティ・チェック・ペインを閉じます。
-
-
[ 詳細設定 ] ペインで、[ プロファイル設定] をクリックします。クレジットカード番号の安全なロギングを有効または無効にするには、「 セキュア・クレジット・カード・ロギング 」チェックボックスをオンまたはオフにします。(デフォルトでは選択されています)。
「 OK」 をクリックして変更を保存します。
-
GUI を使用してクレジットカード緩和ルールを設定するには
- Web AppFirewallに移動します > プロファイルをクリックし、ターゲットプロファイルを強調表示して、[ 編集]をクリックします。
- [詳細設定]ペインで、[緩和規則] をクリックします。リラクゼーションルールテーブルにはクレジットカードのエントリがあります。ダブルクリックするか、この行を選択して [ 編集 ] をクリックすると、クレジットカード緩和ルールダイアログが表示されます 。緩和ルールの [ 追加]、[編集]、[削除]、[ 有効化]、または [ 無効化 ] 操作を実行できます。
クレジットカード小切手での学習機能の使用
学習アクションが有効になると、Web App Firewall 学習エンジンはトラフィックを監視し、トリガーされた違反を学習します。学習したルールは定期的に検査できます。十分に検討したうえで、特定の数字列をクレジットカードのセキュリティチェックから除外したい場合は、学習したルールを緩和ルールとして適用できます。
-
コマンドラインインターフェイスを使用して学習データを表示または使用するには
show appfw learningdata <profilename> creditCardNumber
rm appfw learningdata <profilename> -creditcardNumber <credit card number> "<url>"
export appfw learningdata <profilename> creditCardNumber
-
GUI を使用して学習済みデータを表示または使用するには
- Web AppFirewallに移動します > プロファイルをクリックし、ターゲットプロファイルを強調表示して、[ 編集]をクリックします。
- [ 詳細設定 ] ペインで、[ 学習済みルール] をクリックします。「学習ルール」テーブルでクレジットカードのエントリを選択してダブルクリックすると、学習したルールにアクセスできます。学習したルールを展開したり、緩和ルールとして展開する前にルールを編集したりできます。ルールを破棄するには、ルールを選択して「スキップ」( Skip ) ボタンをクリックします。一度に編集できるルールは 1 つだけですが、展開またはスキップするルールは複数選択できます。
また、「学習ルール」テーブルで「クレジットカード」エントリを選択し、「ビジュアライザー」をクリックすると、学習したすべての違反をまとめて表示できます。ビジュアライザーを使用すると、学習したルールを非常に簡単に管理できます。1 つの画面でデータの包括的なビューを表示し、1 回のクリックでルールのグループに対するアクションの実行を容易にします。ビジュアライザーの最大の利点は、正規表現を推奨して複数のルールを統合できることです。デリミタとアクション URL に基づいて、これらのルールのサブセットを選択できます。ドロップダウンリストから番号を選択すると、ビジュアライザーに 25、50、または 75 個のルールを表示できます。学習したルールのビジュアライザーには、ルールを編集して緩和として展開するオプションがあります。または、ルールをスキップして無視することもできます。
クレジットカードチェックでのログ機能の使用
ログアクションを有効にすると、クレジットカードのセキュリティチェック違反は APPFW_SAFECOMMERCE または APPFW_SAFEMCOMMERCE_XFORM 違反として監査ログに記録されます。Web App Firewall は、ネイティブログ形式と CEF ログ形式の両方をサポートしています。ログをリモート syslog サーバに送信することもできます。
DoSecureCreditCardLogging のデフォルト設定は ON です。OFFに変更すると、クレジットカード番号と種類の両方がログメッセージに含まれます。
クレジットカードチェックの設定によっては、アプリケーションファイアウォールが生成するログメッセージには次の情報が含まれる場合があります。
- 応答がブロックされたか、ブロックされなかったか。
- クレジットカード番号が変換されました(Xが出力されました)。変換されたクレジットカード番号ごとに個別のログメッセージが生成されるため、1 つの応答の処理中に複数のログメッセージが生成される可能性があります。
- 回答には、考えられるクレジットカード番号が最大数含まれていました。
-
クレジットカード番号とそれに対応するタイプ。
-
コマンドラインを使用してログメッセージにアクセスするには
シェルに切り替えて、/var/log/ フォルダー内の ns.logs を末尾に移動して、クレジットカード違反に関するログメッセージにアクセスします。
- Shell
-
tail -f /var/log/ns.log grep SAFECOMMERCE
-
GUI を使用してログメッセージにアクセスするには
-
GUI には、ログメッセージを分析するための非常に便利なツール (Syslog Viewer) が含まれています。Syslog Viewer にアクセスするにはいくつかの方法があります。 ターゲットプロファイル > セキュリティチェックに移動します。「クレジットカード」行を強調表示して、「ログ」をクリックします。プロファイルのクレジットカードセキュリティチェックから直接ログにアクセスすると、ログメッセージが除外され、これらのセキュリティチェック違反に関連するログのみが表示されます。
-
「 NetScaler 」>「 システム 」>「 監査 」の順に選択して、Syslogビューアにアクセスすることもできます。監査メッセージセクションで、 Syslog メッセージリンクをクリックして Syslog Viewer を表示します。このビューアには、他のセキュリティチェック違反ログを含むすべてのログメッセージが表示されます。これは、要求処理中に複数のセキュリティチェック違反がトリガーされる可能性がある場合のデバッグに役立ちます。
HTML ベースの Syslog ビューアには、関心のあるログメッセージのみを選択するためのさまざまなフィルタオプションがあります。クレジットカードのセキュリティチェック違反ログメッセージにアクセスするには、モジュールのドロップダウンオプションで [APPFW] を選択してフィルタリングします。[イベントタイプ] には、選択をさらに絞り込むための豊富なオプションセットが表示されます。たとえば、「APPFW_SAFECOMMERCE」と「APPFW_SAFECOMMERCE_XFORM」チェックボックスを選択して「適用」ボタンをクリックすると、クレジットカードのセキュリティチェック違反に関するログメッセージのみが Syslog ビューアに表示されます。
特定のログメッセージの行にカーソルを置くと、Module や EventType などの複数のオプションがログメッセージの下に表示されます。これらのオプションのいずれかを選択して、ログ内の対応する情報を強調表示できます。
-
応答がブロックされていない場合のネイティブ形式のログメッセージの例
May 29 01:26:31 <local0.info> 10.217.31.98 05/29/2015:01:26:31 GMT ns 0-PPE-0 :
default APPFW APPFW_SAFECOMMERCE 2181 0 : 10.217.253.62 1098-PPE0
4erNfkaHy0IeGP+nv2S9Rsdu77I0000 pr_ffc http://aaron.stratum8.net/FFC/CreditCardMind.html
Maximum number of potential credit card numbers seen <not blocked>
<!--NeedCopy-->
応答が変換された場合の CEF 形式のログメッセージの例
May 28 23:42:48 <local0.info> 10.217.31.98
CEF:0|Citrix|NetScaler|NS11.0|APPFW|APPFW_SAFECOMMERCE_XFORM|6|src=10.217.253.62
spt=25314 method=GET request=http://aaron.stratum8.net/FFC/CreditCardMind.html
msg=Transformed (xout) potential credit card numbers seen in server response
cn1=66 cn2=1095 cs1=pr_ffc cs2=PPE2 cs3=xzE7M0g9bovAtG/zLCrLd2zkVl80002
cs4=ALERT cs5=2015 act=transformed
<!--NeedCopy-->
応答がブロックされた場合の CEF 形式のログメッセージの例。doSecureCreditCardLogging パラメータが無効になっているため、クレジットカードの番号と種類がログに表示されます。
May 28 23:42:48 <local0.info> 10.217.31.98
CEF:0|Citrix|NetScaler|NS11.0|APPFW|APPFW_SAFECOMMERCE|6|src=10.217.253.62
spt=25314 method=GET request=http://aaron.stratum8.net/FFC/CreditCardMind.html
msg=Credit Card number 4505050504030302 of type Visa is seen in response cn1=68
cn2=1095 cs1=pr_ffc cs2=PPE2 cs3=xzE7M0g9bovAtG/zLCrLd2zkVl80002 cs4=ALERT cs5=2015
act=blocked
<!--NeedCopy-->
クレジットカード違反の統計
統計アクションを有効にすると、Web App Firewall がこのセキュリティチェックに対して何らかのアクションを実行すると、クレジットカードチェックに対応するカウンタが増えます。統計は、トラフィック、違反、およびログのレートと合計数について収集されます。ログカウンターのインクリメントは、構成された設定によって異なる場合があります。たとえば、ブロックアクションが有効で [クレジットカードの最大許容数] 設定が 0 の場合、20 個のクレジットカード番号を含むページのリクエストでは、最初のクレジットカード番号が検出されるとすぐに、ページがブロックされると、統計カウンタが 1 ずつ増えます。ただし、ブロックが無効で変換が有効な場合、クレジットカードの変換ごとに個別のログメッセージが生成されるため、同じリクエストを処理するとログの統計カウンタが 20 ずつ増えます。
-
コマンドラインを使用してクレジットカードの統計情報を表示するには
コマンドプロンプトで入力します。
sh appfw stats
特定のプロファイルの統計情報を表示するには、以下のコマンドを使用します。
stat appfw profile <profile name>
GUI を使用してクレジットカードの統計情報を表示するには
- [ システム ] > [ セキュリティ ] > [ Web App Firewall] に移動します。
- 右側のペインで、[統計 リンク] にアクセスします。
- スクロールバーを使用すると、クレジットカード違反やログに関する統計が表示されます。統計テーブルはリアルタイムデータを提供し、7秒ごとに更新されます。
ハイライト
クレジットカードのセキュリティチェックについては、次の点に注意してください。
- Web App Firewall を使用すると、クレジットカード情報を保護し、この機密データにアクセスしようとする試みを検出できます。
- クレジットカード保護チェックを使用するには、少なくとも 1 種類のクレジットカードとアクションを指定する必要があります。その後、チェックは HTML、XML、および Web 2.0 のプロファイルに適用されます。
-
sh appfw profile コマンドと grep for CreditCard の出力をパイプすると、クレジットカード固有の設定をすべて表示できます。たとえば、.sh.appfw プロファイル、my_profile などです。 grep CreditCard は、さまざまなパラメータの設定と、my_profile という名前の Web App Firewall プロファイルのクレジットカードチェックに関連する緩和ルールを表示します。 - クレジットカード番号のセキュリティチェックをバイパスせずに、特定の番号をクレジットカード検査から除外できます。
- リラクゼーションは、Web App Firewall で保護されているすべてのクレジットカードパターンで利用できます。GUI では、ビジュアライザーを使用して、緩和ルールの追加、編集、削除、有効化、または無効化操作を指定できます。
- Web App Firewall の学習エンジンは、送信トラフィックを監視して、検出された違反に基づいてルールを推奨できます。ビジュアライザーのサポートにより、学習したクレジットカードルールをGUIで管理することもできます。学習したルールは編集して展開することも、慎重に調べてからスキップすることもできます。
- 許可されるクレジットカードの数の設定は、各回答に適用されます。ユーザーセッション全体で確認されたクレジットカード番号の累積合計には関係ありません。
- 出力される X 桁の数は、クレジットカード番号の長さによって異なります。13 ~ 15 桁のクレジットカードでは、10 桁の X が出力されます。16桁のクレジットカードの場合、12桁のXが出力されます。アプリケーションでクレジットカード番号全体をレスポンスで送信する必要がない場合は、このアクションを有効にしてクレジットカード番号の数字を隠すことをお勧めします。
- X-out 操作はすべてのクレジットカードを変換し、許可されるクレジットカードの最大数の設定とは無関係に機能します。たとえば、レスポンスにクレジットカードが4枚あり、CreditCardMaxAllowedパラメータが10に設定されている場合、4枚のクレジットカードすべてがX’Dアウトになりますが、ブロックされません。クレジットカード番号が文書内に散らばっている場合、応答がブロックされる前に、X’d-out 番号を含む部分的な応答がクライアントに送信される可能性があります。
- 十分に検討する前に、doSecureCreditCardLogging パラメータを無効にしないでください。このパラメータをオフにすると、クレジットカード番号が表示され、ログメッセージからアクセスできるようになります。X-out アクションが有効になっていても、これらの数字はログに隠されません。ログをリモート Syslog サーバに送信していて、ログが漏えいした場合、クレジットカード番号が漏洩する可能性があります。
- クレジットカード違反のため応答ページがブロックされると、Web App Firewall はエラーページにリダイレクトされません。