Citrix Workspaceアプリ

LD_PRELOAD機能を使用するアプリの許可リストを構成する

注:

LD_PRELOAD機能を使用した許可リストの構成は、Linux版Citrix Workspace™アプリでのみ利用可能です。

他のアプリがLD_PRELOADを使用している場合、App Protectionは保護されたセッションの起動をブロックします。正規のアプリである場合、または管理者が承認した場合は、許可リスト機能を使用できます。LD_PRELOADを使用する他のアプリの使用を許可するには、許可リストを構成する必要があります。

LD_PRELOADを使用する他のアプリが実行されている場合、App Protectionは保護されたセッションの開始を停止します。ただし、正当なアプリである場合、または管理者が承認した場合は、許可リスト機能を使用できます。これらのアプリの実行を許可するには、許可リストを設定する必要があります。

プリロード機能を持つアプリを、以下の手順で許可リストに追加できます。

  1. 保護されたVDA/アプリセッションの開始をブロックしているプロセスを特定します。
  2. 許可リストの構成ファイルを作成し、特定されたプロセスを追加します。

保護されたVDAの起動を妨げているプロセスを特定する

AppProtectionがLD_PRELOADの使用により保護されたVDAの起動を妨げる場合、LD_PRELOADを使用しているプロセスを確認します。正規のプロセスは許可リストに追加できます。

LD_PRELOADを使用しているプロセスを特定するには、以下のスクリプトを使用します。.sh拡張子で保存し、ターミナルウィンドウでsudoとして実行します。

   #!/bin/bash

    for pid in /proc/*/; do
        pid=${pid%*/}
        pid=${pid##*/}
        environ_file="/proc/$pid/environ"

        if [[ ! -f "$environ_file" ]]; then
            continue
        fi

        ld_preload_entry=$(tr '\0' '\n' < "$environ_file" | grep -w "LD_PRELOAD")
        if [[ -n "$ld_preload_entry" ]]; then
            cmdline_file="/proc/$pid/cmdline"
            cmdline=$(tr '\0' ' ' < "$cmdline_file" | awk '{print $1}')
            echo "\"$ld_preload_entry\" : \"$cmdline\""
        fi
    done
<!--NeedCopy-->

上記のスクリプトの出力に基づいて、保護されたVDAの起動失敗の原因となっているプロセスを特定し、それらのプロセスを許可リストに追加します。

以下に、プリロードリストを持つアプリのリストを含む出力を表示するサンプル画像を示します。

出力表示

許可リスト構成ファイルの作成

プロセス許可リスト構成ファイルは、セキュリティ上の理由からデフォルトではインストールされません。この構成ファイルは、必要になったときに初めて作成する必要があります。

  1. 「$ICAROOT/config/」フォルダーに、AppProtection_Preload_Allowlist.jsonという名前の、中身が空のファイルを新規作成してください。
  2. 次の形式でプロセス詳細を追加します。

        {
            "LD_PRELOAD_PATH1" : "PROCESS_PATH1",
            "LD_PRELOAD_PATH2" : "PROCESS_PATH2"
        }
    <!--NeedCopy-->
    

    新しく追加された構成を表示するサンプル画像を次に示します。 構成ファイル

  3. ファイルを保存し、次のコマンドを使用してAppProtection_Preload_Allowlist.jsonファイルに権限を設定します。

sudo chmod 644 $ICAROOT/config/AppProtection_Preload_Allowlist.json

注:

冗長性を防ぐため、構成エントリでは最小限の正規表現が許可されています。特殊な正規表現文字は確認し、二重のバックスラッシュ (\) でエスケープする必要があります。

  • たとえば、スクリプト出力が次のようになっているとします。

LD_PRELOAD=:/snap/blue-recorder/126/$LIB/bindtextdomain.so" : "/snap/blue-recorder/126/blue-recorder

  • 出力に正規表現パターン内の特殊文字である「.」と「$」が含まれていることがわかります。したがって、次のようにバックスラッシュを使用してこれらをエスケープする必要があります。

LD_PRELOAD=:/snap/blue-recorder/126/\\$LIB/bindtextdomain\\.so" : "/snap/blue-recorder/126/blue-recorder

  • 126のような可変要素を使用するには、より汎用的な許可リストエントリのために正規表現を使用できます。

LD_PRELOAD=:/snap/blue-recorder/\\d+/\\$LIB/bindtextdomain\\.so" : "/snap/blue-recorder/\\d+/blue-recorder

LD_PRELOAD機能を使用するアプリの許可リストを構成する