クレジットカード確認
クレジットカードを受け入れるアプリケーションがある場合、または Web サイトがクレジットカード番号を格納するデータベースサーバーにアクセスできる場合は、データ漏えい防止 (DLP) 対策を使用し、受け入れるクレジットカードの種類ごとに保護を構成する必要があります。
Citrix Web App Firewallのクレジットカードチェックは、攻撃者がデータ漏洩防止の欠陥を悪用して顧客のクレジットカード番号を取得するのを防ぎます。簡単な設定手順に従うことで、1) ビザ、2) マスターカード、3) ディスカバー、4) アメリカンエキスプレス (アメックス)、5) JCB、6) ダイナースクラブ。
クレジット・カード・セキュリティ・チェックは、サーバーの応答を調べ、ターゲットのクレジット・カード番号のインスタンスを識別し、そのような番号が見つかったときに指定された処理を適用します。アクションは、クレジットカード番号の最後の桁を除くすべての桁数を X’ing して応答を変換したり、指定した数以上のクレジットカード番号が含まれている場合に応答をブロックしたりできます。両方を指定した場合、ブロックアクションが優先されます。[ページごとに許可される最大クレジットカード数] の設定により、ブロックアクションがいつ呼び出されるかが決まります。デフォルト設定である 0 (ページ上のクレジットカード番号は許可されていません) が最も安全ですが、最大 255 まで許可できます。応答で違反が検出され、ブロックアクションがトリガーされる場所によっては、応答で許可されるクレジットカードの最大数よりも少なくなる場合があります。
誤検出を避けるために、リラクゼーションを適用して、クレジットカードの小切手から特定の番号を免除することができます。たとえば、社会保障番号、発注番号、Google アカウント番号は、クレジットカード番号に似ています。個々の番号を指定するか、正規表現を使用して、クレジットカード検査の応答 URL を処理するときにバイパスする桁数を指定します。
免除するクレジットカード番号がわからない場合は、学習機能を使用して、学習したデータに基づいてレコメンデーションを生成できます。パフォーマンスを損なうことなく最適なメリットを得るには、このオプションを短時間有効にしてルールの代表的なサンプルを取得し、緩和を展開して学習を無効にします。
ログ機能を有効にすると、クレジット・カード・チェックによって実行されるアクションを示すログ・メッセージが生成されます。ログを監視して、正当な要求に対する応答がブロックされているかどうかを判断できます。ログメッセージの数が大幅に増加すると、アクセスが阻止された可能性があります。デフォルトでは、doSecureCreditCardLogging パラメータはオンになっているため、安全な商取引(クレジットカード)違反によって生成されたログメッセージにはクレジットカード番号は含まれません。
統計機能は、違反とログに関する統計を収集します。stats カウンタの予期しない急増は、アプリケーションが攻撃を受けていることを示している可能性があります。
アプリケーションを保護するためのクレジット・カード・セキュリティ・チェックを構成するには、このアプリケーションとの間で送受信されるトラフィックの検査を管理するプロファイルを設定します。
注:
SQL データベースにアクセスしない Web サイトは、通常、クレジットカード番号などの機密性の高い個人情報にアクセスできません。
コマンドラインを使用したクレジットカードチェックの設定
コマンドラインインターフェイスでは、set appfw profile コマンドまたは add appfw profile コマンドのいずれかを使用して、クレジットカードチェックを有効にし、実行するアクションを指定できます。unset appfw profile コマンドを使用して、デフォルト設定に戻すことができます。緩和を指定するには、bind appfw コマンドを使用して、クレジットカード番号をプロファイルにバインドします。
コマンドラインを使用してクレジットカードチェックを構成するには
次のように、set appfw プロファイルコマンドまたは add appfw プロファイルコマンドを使用します。
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 コマンドを使用して、クレジットカード番号をプロファイルにバインドします。プロファイルからクレジットカード番号を削除するには、bind コマンドで使用したものと同じ引数を指定して unbind コマンドを使用します。show コマンドを使用して、プロファイルにバインドされたクレジットカード番号を表示できます。
-
クレジットカード番号をプロファイルにバインドするには
bind appfw profile <profile-name> -creditCardNumber <any number/regex> “<url>”
例: bind appfw profile test_profile -creditCardNumber 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] をクリックし、[保存して 閉じる] をクリックして [セキュリティチェック] ウィンドウを閉じます。
- このセキュリティー検査の追加オプションを構成する場合は、「クレジット・カード」をダブルクリックするか、行を選択して「 アクション設定 」をクリックして、次のように追加オプションを表示します。
-
[Out]:応答で検出されたクレジットカード番号をマスクします。最後のグループの数字を除く各数字を「X」に置き換えます。
-
[ページごとに許可されるクレジットカードの最大数]:ブロックアクションを起動せずにクライアントに転送できるクレジットカードの数を指定します。
-
保護されたクレジットカード。チェックボックスをオンまたはオフにして、クレジットカードの種類ごとに保護を有効または無効にします。
-
[クレジットカード設定] ペインで、ブロック、ログ、統計、学習の各アクションを編集することもできます。
上記の変更を行った後、[ OK ]をクリックして変更を保存し、[セキュリティチェック]テーブルに戻ります。必要に応じて、他のセキュリティー検査の設定に進むことができます。[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に移動します > プロファイルをクリックし、ターゲットプロファイルを強調表示して、[ 編集]をクリックします。
- [詳細設定] ウィンドウで、[学習ルール] をクリックします。「学習済みルール」(Learned Rules) テーブルで「クレジットカード」(Credit Card) エントリを選択し、ダブルクリックすると、学習済みルールにアクセスできます。学習したルールを展開するか、緩和ルールとして展開する前にルールを編集できます。ルールを破棄するには、ルールを選択して [スキップ] ボタンをクリックします。一度に編集できるルールは 1 つだけですが、複数のルールを選択して展開またはスキップできます。
また、「学習済みルール」(Learned Rules) テーブルで「クレジットカード」(Credit Card) エントリを選択し、「ビジュアライザー」(Visualizer) をクリックして、学習済み緩和の要約ビューを表示するオプションもあります。ビジュアライザーを使用すると、学習したルールを簡単に管理できます。データの包括的なビューを 1 つの画面に表示し、1 回のクリックでルールのグループに対するアクションを簡単に実行できます。ビジュアライザーの最大の利点は、複数のルールを統合するために正規表現を推奨することです。区切り文字とアクション URL に基づいて、これらのルールのサブセットを選択できます。ドロップダウンリストから番号を選択すると、ビジュアライザーに 25、50、または 75 のルールを表示できます。学習したルールのビジュアライザーには、ルールを編集して緩和として展開するオプションがあります。または、ルールをスキップして無視することもできます。
クレジット・カード・チェックでのログ機能の使用
ログ処理が有効な場合、クレジット・カード・セキュリティ・チェック違反は、APPFW_SAFECOMMERCE_XFORM違反またはAPPFW_SAFECOMMERCE_XFORM違反として監査ログに記録されます。Web App Firewall は、ネイティブログ形式と CEF ログ形式の両方をサポートしています。ログをリモート syslog サーバに送信することもできます。
クレジットカードロギングのデフォルト設定は ON です。OFFに変更すると、クレジットカード番号と種類の両方がログメッセージに含まれます。
クレジット・カード・チェック用に構成された設定によっては、アプリケーションファイアウォールで生成されたログ・メッセージに次の情報が含まれる場合があります。
- 応答がブロックされたか、ブロックされていません。
- クレジットカード番号が変換されました (X’dアウト). 変換されたクレジットカード番号ごとに個別のログメッセージが生成されるため、1 つの応答の処理中に複数のログメッセージが生成される場合があります。
- 応答には、潜在的なクレジットカード番号の最大数が含まれていました。
-
クレジットカード番号とそれに対応するタイプ。
-
コマンドラインを使用してログメッセージにアクセスするには
シェルに切り替えて、/var/log/ フォルダの ns.logs を末尾に付けて、クレジットカード違反に関するログメッセージにアクセスします。
- Shell
- tail -f /var/log/ns.log | grep SAFECOMMERCE
-
GUI を使用してログメッセージにアクセスするには
-
Citrix GUIには、ログメッセージを分析するための非常に便利なツール(Syslogビューア)が含まれています。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-->
クレジットカード違反の統計
stats アクションが有効な場合、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 プロファイルに適用されます。
- あなたはすべてのクレジットカード固有の設定を見るために、CreditCardのshのappfwプロファイルコマンドとgrepの出力をパイプすることができます。たとえば、sh appfw プロファイル my_profile | grep CreditCard では、さまざまなパラメータの設定と、my_profile という名前の Web App Firewall プロファイルのクレジットカードチェックに関する緩和ルールが表示されます。
- 残りのクレジットカード番号のセキュリティチェック検査をバイパスすることなく、クレジットカード検査から特定の番号を除外できます。
- リラクゼーションは、すべてのWeb App Firewall で保護されたクレジットカードパターンでご利用いただけます。GUI では、ビジュアライザを使用して、緩和ルールに対する追加、編集、削除、有効化、無効化操作を指定できます。
- Web App Firewall 学習エンジンは、発信トラフィックを監視して、観察された違反に基づいてルールを推奨できます。ビジュアライザのサポートは、GUIで学習したクレジットカードのルールを管理するためにも利用できます。学習したルールを編集して展開することも、慎重な検査の後にスキップすることもできます。
- 許可されるクレジットカード数の設定は、各応答に適用されます。ユーザーセッション全体で確認されたクレジットカード番号の累積合計には適用されません。
- X 出力桁数は、クレジットカード番号の長さによって異なります。10桁は、13~15桁のクレジットカードの場合はX’dです。16桁のクレジットカードの場合、12桁はX’dです。アプリケーションで応答にクレジットカード番号全体を送信する必要がない場合は、この操作を有効にして、クレジットカード番号の数字を隠すこのアクションを有効にすることをお勧めします。
- X-out 操作では、すべてのクレジットカードが変換され、許可されるクレジットカードの最大数に対して構成された設定とは独立して動作します。たとえば、応答に 4 枚のクレジットカードがあり、creditCardMaxAllowed パラメーターが 10 に設定されている場合、4 枚のクレジットカードはすべて X’d-out になりますが、ブロックされません。クレジットカード番号が文書に広がっている場合、応答がブロックされる前に、X’d-out 番号の部分的な応答がクライアントに送信されることがあります。
- 考慮する前に、doSecureCreditCardLogging パラメータを無効にしないでください。このパラメータをオフにすると、クレジットカード番号が表示され、ログメッセージでアクセスできます。X-out アクションが有効になっている場合でも、これらの数字はログにマスクされません。ログをリモート syslog サーバに送信し、ログが危険にさらされると、クレジットカード番号が公開される可能性があります。
- クレジットカード違反のため応答ページがブロックされると、Web App Firewall はエラーページにリダイレクトされません。