Configurar la lista de permitidos para las aplicaciones que utilizan funcionalidades de LD_PRELOAD
Nota:
La configuración de la lista de permitidos mediante la funcionalidad LD_PRELOAD solo está disponible para la aplicación Citrix Workspace™ para Linux.
La protección de aplicaciones bloquea el inicio de una sesión protegida si otras aplicaciones en ejecución utilizan LD_PRELOAD. Si hay aplicaciones legítimas o si el administrador las aprueba, puede utilizar la función de lista de permitidos. Para permitir el uso de otras aplicaciones que utilizan LD_PRELOAD, debe configurar la lista de permitidos.
La protección de aplicaciones impide que se inicie una sesión protegida si se están ejecutando otras aplicaciones que utilizan LD_PRELOAD. Pero si hay aplicaciones legítimas o si el administrador las aprueba, puede utilizar la función de lista de permitidos. Para permitir que estas aplicaciones se ejecuten, debe configurar la lista de permitidos.
Puede añadir aplicaciones con funcionalidades de precarga a la lista de permitidos siguiendo estos pasos:
- Identifique el proceso que impide el inicio de la sesión protegida de VDA/aplicación.
- Cree un archivo de configuración para la lista de permitidos y añada el proceso identificado.
Identificar el proceso que impide el inicio del VDA protegido
Cuando AppProtection impide el inicio de un VDA protegido debido al uso de LD_PRELOAD, verifique los procesos que utilizan LD_PRELOAD. Los procesos legítimos se pueden añadir a la lista de permitidos.
Para identificar los procesos que utilizan LD_PRELOAD, utilice el siguiente script. Guárdelo con una extensión .sh y ejecútelo como sudo en una ventana de terminal:
#!/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-->
Según la salida del script anterior, identifique los procesos que están provocando que el inicio del VDA protegido falle y añada esos procesos a la lista de permitidos.
Aquí tiene una imagen de ejemplo que muestra la salida con una lista de aplicaciones con una lista de precarga.

Creación del archivo de configuración de la lista de permitidos
El archivo de configuración de la lista de permitidos del proceso no se instala de forma predeterminada por motivos de seguridad. Debe crear este archivo de configuración la primera vez que sea necesario.
- Cree un archivo vacío llamado AppProtection_Preload_Allowlist.json en la carpeta “$ICAROOT/config/”.
-
Agregue los detalles del proceso en el siguiente formato:
{ "LD_PRELOAD_PATH1" : "PROCESS_PATH1", "LD_PRELOAD_PATH2" : "PROCESS_PATH2" } <!--NeedCopy-->Aquí tiene una imagen de ejemplo que muestra la configuración recién agregada:

- Guarde el archivo y, a continuación, establezca los permisos para el archivo AppProtection_Preload_Allowlist.json mediante el siguiente comando.
sudo chmod 644 $ICAROOT/config/AppProtection_Preload_Allowlist.json
Nota:
Se permiten expresiones regex mínimas en las entradas de configuración para evitar la redundancia. Los caracteres especiales de regex deben comprobarse y escaparse con una doble barra invertida (\).
- Por ejemplo, considere que la salida del script es la siguiente:
LD_PRELOAD=:/snap/blue-recorder/126/$LIB/bindtextdomain.so" : "/snap/blue-recorder/126/blue-recorder
- Puede ver que la salida incluye ‘.’, ‘$’, que son caracteres especiales en los patrones regex. Por lo tanto, debe escaparlos usando una barra invertida de la siguiente manera:
LD_PRELOAD=:/snap/blue-recorder/126/\\$LIB/bindtextdomain\\.so" : "/snap/blue-recorder/126/blue-recorder
- Para usar elementos variables como el número 126, se pueden usar expresiones regex para una entrada de lista de permitidos más genérica:
LD_PRELOAD=:/snap/blue-recorder/\\d+/\\$LIB/bindtextdomain\\.so" : "/snap/blue-recorder/\\d+/blue-recorder