Citrix Workspace 应用程序

配置使用 LD_PRELOAD 功能的应用程序的允许列表

注意:

使用 LD_PRELOAD 功能配置允许列表仅适用于适用于 Linux 的 Citrix Workspace™ 应用程序。

如果其他正在运行的应用程序使用 LD_PRELOAD,应用程序保护会阻止受保护会话的启动。如果有正版应用程序或经管理员批准,您可以使用允许列表功能。要允许使用其他使用 LD_PRELOAD 的应用程序,您必须配置允许列表。

如果其他使用 LD_PRELOAD 的应用程序正在运行,应用程序保护会阻止受保护会话的启动。但如果有合法应用程序或经管理员批准,您可以使用允许列表功能。要允许这些应用程序运行,您需要设置允许列表。

您可以使用以下步骤将具有预加载功能的应用程序添加到允许列表:

  1. 识别阻止受保护 VDA/应用程序会话启动的进程。
  2. 为允许列表创建配置文件并添加已识别的进程。

识别阻止受保护 VDA 启动的进程

当应用程序保护因使用 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. Create an empty file named AppProtection_Preload_Allowlist.json in the “$ICAROOT/config/” folder.
  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 功能的应用程序的允许列表