Cookie の機密データフィルタの追加

機密 Cookie フィルタを使用して、トランザクション スナップショット詳細の URL から機密情報を難読化するようにエージェントを構成できます。

  1. Apache エージェント構成ファイルを編集します。<path_to_webserver_dir>/conf/appdynamics_agent.conf
  2. ディレクティブとして機密 Cookie フィルタ要素を追加します。
    • AppDynamicsMaskCookie ON
    • AppDynamicsCookieMatchPattern pattern
      • AppDynamicsMaskCookie: フィルタリングを有効にするかどうかを指定します。Cookie フィルタリングを有効にするには、ON に設定します。デフォルトは次の値です。OFF.
      • AppDynamicsCookieMatchPattern: 一致したときにその Cookie の値をフィルタ処理するパターンを指定します。         

  3. AppDynamicsMaskCookie を有効にすると、指定された要求に関連付けられているすべての Cookie の値がマスクされます。選択的 Cookie をフィルタ処理するには、次のように設定します。
    • AppDynamicsCookieMatchPattern を追加して、値を AppDynamicsCookieMatchPattern <pattern> としてマスクする必要がある Cookie の完全な名前を指定します。

例:

AppDynamicsCookieMatchPattern PHPSESSID
CODE

Cookie 名のサブストリングは、トランザクション スナップショット内の値をマスクしません。このディレクティブに対して Cookie の完全な名前を入力していることを確認してください。

    • 複数の Cookie 値を同時にマスキングするには、次のように、すべての Cookie の名前を 1 つの文字列として「|」で区切って指定します。

AppDynamicsCookieMatchPattern <pattern1|pattern2|pattern3>

例:                    

AppDynamicsCookieMatchPattern PHPSESSID|X-CSRF-TOKEN|cookiekey  
CODE

Cookie 名自体に "|" が含まれている場合、エージェントはそれらの Cookie をマスクできません。AppDynamicsCookieMatchPattern ディレクティブでは、"|" が名前の区切り文字として使用されるためです。

SM_USER の機密データフィルタの追加

SM_USER フィルタを使用して、トランザクション スナップショット詳細の URL から機密情報を難読化するようにエージェントを構成できます。

  1. Apache エージェント構成ファイルを編集します。<path_to_webserver_dir>/conf/appdynamics_agent.conf.

  2. ディレクティブとして機密 SM_USER フィルタ要素を追加します。

    • AppDynamicsMaskSmUser ON
    • AppDynamicsMaskSmUser: フィルタリングを有効にするかどうかを指定します。sm_user フィルタリングを有効にするには、ON に設定します。デフォルト値は OFF です。

これを有効にすると、指定された要求に関連付けられているすべての SM_USER の値がマスクされます。

特定の URL セグメントまたはクエリパラメータのフィルタ処理

デフォルトでは、Splunk AppDynamics Apache エージェントは、コントローラに組織が特権情報として分類する可能性のあるトランザクションデータを送信します。このようなデータは診断およびトラブルシューティングに役立ちますが、セキュリティを考慮すると、コントローラのビューから特定の機密情報をフィルタ処理する必要があります。Sensitive URL フィルタを使用して、スナップショット詳細の URL から機密情報を除外できます。 

機密URLフィルタを追加する

  1. パス <path_to_webserver_dir>/conf/appdynamics_agent.conf にある appdynamics_agent.conf 構成ファイルを編集します。
  2. appdynamics_agent.conf ファイルには、次の設定を行います。
    • AppDynamicsDelimiter:URL セグメントのエンドポイントとして使用する文字を指定してください。エージェントは各区切り文字インスタンスでURLを接続してセグメントを作成します。HTTPの場合は、スラッシュ文字「/」を使用してください。スラッシュの場合、エージェントはプロトコル直後のスラッシュでは分割しません。たとえば、"https://myapp.example.com/" は 1 つのセグメントを構成します。デフォルトでは区切り文字は "/" ですが、正常なフィルタリングにはこの区切り文字が必須です。

例:

AppDynamicsDelimiter /
CODE

構成ファイルが処理できないため、"#" は区切り文字として使用できません。

    • AppDynamicsSegment:エージェントがフィルタ処理するセグメントを指定するには、カンマ区切りのリストを指定します。セグメント番号は 1 から始まります。0 または負の値を指定すると、エージェントはセグメントの編集に失敗します。この属性は必須です。

例:

AppDynamicsSegment 2,3
CODE
  • AppDynamicsMatchfilterURL を NOT_EMPTY|EQUALS|STARTSWITH|ENDSWITH|CONTAINS|REGEX と照合するために使用されるフィルタのタイプです。デフォルトは NOT_EMPTY, ですが、必須です。

これを正しく使用するに、照合フィルタリングでクエリパラメータを考慮する必要はありません。コール "https://myapp.example.com/sensitive/data?first_name=abc&last_name=xyz" の例では、照合フィルタを STARTSWITH として指定するには、ホスト名(この例では “myapp.example.com”)で始まる指定された文字列と照合します。同様に、ENDSWITH については、クエリパラメータはスナップショットで報告されないため、クエリパラメータから除外される最後のセグメント(この例では “data”)に対応します。

次に例を示します。

AppDynamicsMatchfilter CONTAINS
CODE
  • AppDynamicsMatchpattern照合フィルタでフィルタ処理する文字列を指定します。この属性は必須です。

例:

AppDynamicsMatchpattern one
CODE

たとえば、次の構成は、URL を "/" 文字で分割し、URL の 3 番目と 5 番目のセグメントをマスクします。この場合、セグメンテーションと難読化は "myapp" を含む URL にのみ適用されます。

AppDynamicsDelimiter /
AppDynamicsSegment 3,5
AppDynamicsMatchfilter CONTAINS
AppDynamicsMatchpattern myapp
CODE

"https://myapp.example.com/customer/customerid/account/accountid/data?first_name=abc&last_name=xyz" への exit コールは、"https://myapp.example.com"、"customer"、"customerid"、“account”、“accountid”、および "data?first_name=abc&last_name=xyz" という 6 つのセグメントに分割されます。コントローラは、スナップショットの詳細に URL のマスクされた値 “/customer/*****/account/*****/data” を表示します。"https://myapp.example.com" は、セグメント番号 1 に対応します(以下同様)。

クエリパラメータはコントローラに送信されないため、フィルタ処理されません。トランザクション スナップショットでは、URL はデフォルトでクエリパラメータなしで送信されますが、対応する URL セグメントをマスクした後で送信されるようになりました。

複数の URL のフィルタリング

Apache 構成の制限により、複数の URL を個別にフィルタ処理する場合は、次の説明に従って引数を "|" で区切って記述する必要があります。

AppDynamicsDelimiter /|/
AppDynamicsSegment 1,2,3|1,4
AppDynamicsMatchfilter CONTAINS|ENDSWITH
AppDynamicsMatchpattern One|.php
CODE

"|" で区切られた各値が、追加される URL フィルタに対応します。"n" 個の個別の URL フィルタには、それに応じて "n" 個の異なる "|" 構成を用意する必要があります。これらのフィルタは URL に対して個別に動作し、各フィルタに指定された構成に基づいてフィルタ処理します。

構成ではデフォルト値が想定されていますが、すべての構成設定を定義する必要があります。複数のフィルタリングを使用する場合に特定の設定を定義し忘れると、フィルタリングが失敗します。