Download PDF
Download page Apache エージェントの機密データのフィルタ処理.
Apache エージェントの機密データのフィルタ処理
関連ページ:
Cookie の機密データフィルタの追加
機密 Cookie フィルタを使用して、トランザクション スナップショット詳細の URL から機密情報を難読化するようにエージェントを構成できます。
- Apache エージェント構成ファイルを編集します。
<path_to_webserver_dir>/conf/appdynamics_agent.conf
- ディレクティブとして機密 Cookie フィルタ要素を追加します。
AppDynamicsMaskCookie
ON
AppDynamicsCookieMatchPattern
pattern
AppDynamicsMaskCookie:
フィルタリングを有効にするかどうかを指定します。Cookie フィルタリングを有効にするには、ON
に設定します。デフォルトは次の値です。OFF.
AppDynamicsCookieMatchPattern:
一致したときにその Cookie の値をフィルタ処理するパターンを指定します。
- AppDynamicsMaskCookie を有効にすると、指定された要求に関連付けられているすべての Cookie の値がマスクされます。選択的 Cookie をフィルタ処理するには、次のように設定します。
AppDynamicsCookieMatchPattern
を追加して、値をAppDynamicsCookieMatchPattern
<pattern
> としてマスクする必要がある Cookie の完全な名前を指定します。
例:
AppDynamicsCookieMatchPattern PHPSESSID
Cookie 名のサブストリングは、トランザクション スナップショット内の値をマスクしません。このディレクティブに対して Cookie の完全な名前を入力していることを確認してください。
- 複数の Cookie 値を同時にマスキングするには、次のように、すべての Cookie の名前を 1 つの文字列として「|」で区切って指定します。
AppDynamicsCookieMatchPattern
<pattern1|pattern2|pattern3>
例:
AppDynamicsCookieMatchPattern PHPSESSID|X-CSRF-TOKEN|cookiekey
Cookie 名自体に "|" が含まれている場合、エージェントはそれらの Cookie をマスクできません。AppDynamicsCookieMatchPattern
ディレクティブでは、"|" が名前の区切り文字として使用されるためです。
SM_USER の機密データフィルタの追加
SM_USER フィルタを使用して、トランザクション スナップショット詳細の URL から機密情報を難読化するようにエージェントを構成できます。
Apache エージェント構成ファイルを編集します。
<path_to_webserver_dir>/conf/appdynamics_agent.conf.
ディレクティブとして機密 SM_USER フィルタ要素を追加します。
AppDynamicsMaskSmUser
ON
AppDynamicsMaskSmUser:
フィルタリングを有効にするかどうかを指定します。sm_user フィルタリングを有効にするには、ON
に設定します。デフォルト値はOFF
です。
これを有効にすると、指定された要求に関連付けられているすべての SM_USER の値がマスクされます。
特定の URL セグメントまたはクエリパラメータのフィルタ処理
デフォルトでは、Splunk AppDynamics Apache エージェントは、コントローラに組織が特権情報として分類する可能性のあるトランザクションデータを送信します。このようなデータは診断およびトラブルシューティングに役立ちますが、セキュリティを考慮すると、コントローラのビューから特定の機密情報をフィルタ処理する必要があります。Sensitive URL
フィルタを使用して、スナップショット詳細の URL から機密情報を除外できます。
機密URLフィルタを追加する
- パス
<path_to_webserver_dir>/conf/appdynamics_agent.conf
にあるappdynamics_agent.conf
構成ファイルを編集します。 appdynamics_agent.conf
ファイルには、次の設定を行います。
AppDynamicsDelimiter
:URL セグメントのエンドポイントとして使用する文字を指定してください。エージェントは各区切り文字インスタンスでURLを接続してセグメントを作成します。HTTPの場合は、スラッシュ文字「/」を使用してください。スラッシュの場合、エージェントはプロトコル直後のスラッシュでは分割しません。たとえば、"https://myapp.example.com/" は 1 つのセグメントを構成します。デフォルトでは区切り文字は "/" ですが、正常なフィルタリングにはこの区切り文字が必須です。
例:
AppDynamicsDelimiter /
構成ファイルが処理できないため、"#" は区切り文字として使用できません。
AppDynamicsSegment
:エージェントがフィルタ処理するセグメントを指定するには、カンマ区切りのリストを指定します。セグメント番号は 1 から始まります。0 または負の値を指定すると、エージェントはセグメントの編集に失敗します。この属性は必須です。
例:
AppDynamicsSegment 2,3
AppDynamicsMatchfilter
:URL を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
AppDynamicsMatchpattern
:照合フィルタでフィルタ処理する文字列を指定します。この属性は必須です。
例:
AppDynamicsMatchpattern one
たとえば、次の構成は、URL を "/" 文字で分割し、URL の 3 番目と 5 番目のセグメントをマスクします。この場合、セグメンテーションと難読化は "myapp" を含む URL にのみ適用されます。
AppDynamicsDelimiter /
AppDynamicsSegment 3,5
AppDynamicsMatchfilter CONTAINS
AppDynamicsMatchpattern myapp
"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
"|" で区切られた各値が、追加される URL フィルタに対応します。"n" 個の個別の URL フィルタには、それに応じて "n" 個の異なる "|" 構成を用意する必要があります。これらのフィルタは URL に対して個別に動作し、各フィルタに指定された構成に基づいてフィルタ処理します。
構成ではデフォルト値が想定されていますが、すべての構成設定を定義する必要があります。複数のフィルタリングを使用する場合に特定の設定を定義し忘れると、フィルタリングが失敗します。