Citrix ADC

機密フィールド

Web フォームフィールドを機密情報として指定して、ユーザーが入力する情報を保護できます。通常、保護されたWebサーバーの1つ上のWebフォームにユーザーが入力した情報は、Citrix ADCログに記録されます。ただし、機密として指定された Web フォームのフィールドに入力された情報はログに記録されません。この情報は、Web サイトがそのようなデータを保存するように構成されている場所、通常は安全なデータベースに保存されます。

機密フィールド指定で保護する必要がある一般的な情報には、次のものがあります。

  • パスワード
  • クレジットカード番号、検証コード、有効期限
  • 社会保障番号
  • 納税者番号
  • 自宅住所
  • 非公開電話番号

eコマースサーバーでのPCI-DSSコンプライアンス、米国内の医療情報を管理するサーバーでのHIPAAコンプライアンス、その他のデータ保護基準への準拠には、適切な機密フィールド指定の使用が必要になる場合があります。

重要

次の 2 つのケースでは、機密フィールドの指定が期待どおりに機能しません。

  • Webフォームに機密フィールドまたはアクションURLが256文字を超える場合、Citrix ADCログでフィールドまたはアクションURLがトランケートされます。
  • 特定の SSL トランザクションでは、機密フィールドまたはアクション URL のいずれかが 127 文字を超えると、ログはトランケートされます。

いずれの場合も、Web App Firewall は、通常の 8 文字の文字列ではなく、文字「x」で 15 文字の文字列をマスクします。機密情報を確実に削除するには、最初の 256 文字に一致するフォームフィールド名とアクション URL 式、または (SSL が使用されている場合) 最初の 127 文字を使用する必要があります。

保護された Web サイトの Web フォームフィールドを機密として扱うように Web App Firewall を設定するには、そのフィールドを [機密フィールド] リストに追加します。フィールド名を文字列として入力することも、1 つ以上のフィールドを指定する PCRE互換の正規表現を入力することもできます。フィールドを追加するときに機密フィールド指定を有効にすることも、後で指定を変更することもできます。

コマンドラインインターフェイスを使用して機密フィールドを追加するには

コマンドプロンプトで、次のコマンドを入力します。

  • add appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )] [-comment "<string>"] [-state ( ENABLED | DISABLED )]
  • save ns config

次の例では、名前が「パスワード」で始まるすべての Web フォームフィールドを機密フィールドの一覧に追加します。

add appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -isRegex REGEX -state ENABLED
save ns config

コマンドラインインターフェイスを使用して機密フィールドを変更するには

コマンドプロンプトで、次のコマンドを入力します。

  • set appfw confidField <fieldName> <url> [-isRegex ( REGEX | NOTREGEX )][-comment "<string>"] [-state ( ENABLED | DISABLED )]
  • `save ns config’

次の例では、機密フィールドの指定を変更して、コメントを追加します。

set appfw confidField Password "https?://www[.]example[.]com/[^<>]\*[^a-z]password[0-9a-z._-]\*[.](asp|cgi|htm|html|htp|js|php)" -comment "Protect password fields." -isRegex REGEX -state ENABLED
save ns config

コマンドラインインターフェイスを使用して機密フィールドを削除するには

コマンドプロンプトで、次のコマンドを入力します。

  • rm appfw confidField <fieldName> <url>
  • save ns config

GUI を使用して機密フィールドを構成するには

  1. [セキュリティ] > [アプリケーションファイアウォール] に移動します。
  2. 詳細ウィンドウの [設定]で、[機密フィールドの管理] をクリックします。
  3. [機密フィールドの管理] ダイアログボックスで、次のいずれかの操作を行います。
    • 新しいフォームフィールドを一覧に追加するには、[追加] をクリックします。
    • 既存の機密フィールドの指定を変更するには、フィールドを選択し、[編集] をクリックします。 [Web App Firewall 機密フィールド] ダイアログボックスが表示されます。

      既存の機密フィールドの指定を選択し、[追加] をクリックすると、[機密フォームフィールドの作成] ダイアログボックスに、その機密フィールドの情報が表示されます。この情報を修正して、新しい機密フィールドを作成できます。

  4. ダイアログボックスで、要素を入力します。これには、次の種類のアカウントがあります。
    • [有効] チェックボックス。この機密フィールド指定を有効または無効にする場合は、選択または選択解除します。
    • フォームフィールド名は正規表現チェックボックスです。フォームフィールド名で PCRE-format 正規表現を有効にする場合は、選択または選択解除します。
    • フィールド名。特定のフィールド名を表すリテラル文字列または PCRE-format 正規表現を入力します。この正規表現は、パターンに続く名前を持つ複数のフィールドと一致します。
    • アクションの URL。機密フィールドを含む Web フォームが配置されている Web ページの 1 つ以上の URL を定義するリテラル URL または正規表現を入力します。
    • コメント。コメントを入力します。オプションです。
  5. [作成] または [OK] をクリックします。
  6. 機密フィールドの一覧から機密フィールドの指定を削除するには、削除する機密フィールドの一覧を選択し、[削除] をクリックして削除し、[OK] をクリックして選択を確定します。
  7. 機密フィールド指定の追加、変更、削除が完了したら、[閉じる] をクリックします。

以下に、便利なフォームフィールド名を定義する正規表現をいくつか示します。

  • ^passwd_ (「passwd_」文字列で始まるすべてのフィールド名に、機密フィールドのステータスを適用します。)
  • ^(([0-9a-zA-Z._-] *||x [0-9A-fa-f] [0-9A-fa-f]) +-)? passwd_ (passwd_ で始まる、または ASCII 以外の特殊文字を含む可能性のある別の文字列の後に-passwd_ という文字列を含むすべてのフィールド名に、機密フィールドのステータスを適用します。)

有用な特定の URL タイプを定義する正規表現を次に示します。例では、独自のウェブホストとドメインを置き換えます。

  • WebフォームがWebホストwww.example.com上の複数のWebページに表示されますが、それらのすべてのWebページの名前がlogon.plの場合? を使用する場合は、次の正規表現を使用できます。

     https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_.-]*/)*logon[.]pl?
    
  • Web フォームが Web ホスト www.example-español.com 上の複数の Web ページに表示される場合 (n チルダ (ñ) 特殊文字を含む)、次の正規表現を使用できます。この正規表現は、n チルダ特殊文字を C3 B1 を含むエンコードされた UTF-8 文字列として表し、その文字を UTF-8 文字セットで使用します。

     https?://www[.]example-espa\xC3\xB1ol[.]com/([0-9A-Za-z][0-9A-Za-z_.-]\*/)\* logon[.]pl?
    
  • query.pl を含む Web フォームが example.com ドメイン内の異なるホストの複数の Web ページに表示される場合は、次の正規表現を使用できます。

     https?://([0-9A-Za-z][0-9A-Za-z_-.]*[.])\*example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]\*/)*logon[.]pl?
    
  • query.pl を含む Web フォームが、異なるドメインの異なるホスト上の複数の Web ページに表示される場合は、次の正規表現を使用できます。

     https?://([0-9A-Za-z][0-9A-Za-z_-.]\*[.])\*[0-9A-Za-z][0-9A-Za-z_-.]+[.][a-z]{2,6}/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl?
    
  • WebフォームがWebホストwww.example.com上の複数のWebページに表示されますが、それらのすべてのWebページの名前がlogon.plの場合? を使用する場合は、次の正規表現を使用できます。

     https?://www[.]example[.]com/([0-9A-Za-z][0-9A-Za-z_-.]*/)*logon[.]pl?