Configurar la lista de permitidos para las aplicaciones que usan funcionalidades LD_PRELOAD
Nota:
La configuración de una lista de permitidos mediante la funcionalidad LD_PRELOAD solo está disponible para la aplicación Citrix Workspace para Linux.
App Protection bloquea el inicio de una sesión protegida si otras aplicaciones en ejecución usan LD_PRELOAD. Si hay aplicaciones legítimas o si el administrador las aprueba, puede usar la función de lista de permitidos. Para permitir el uso de otras aplicaciones que usan LD_PRELOAD, debe configurar la lista de permitidos.
App Protection impide que se inicie una sesión protegida si se están ejecutando otras aplicaciones que usan LD_PRELOAD. Pero si hay aplicaciones legítimas o si el administrador lo aprueba, puede usar la función de lista de permitidos. Para permitir que estas aplicaciones se ejecuten, debe configurar la lista de aplicaciones permitidas.
Puede agregar aplicaciones con funciones de precarga a la lista de aplicaciones permitidas siguiendo estos pasos:
- Identifique el proceso que bloquea el inicio de la sesión protegida del VDA/aplicación.
- Cree un archivo de configuración para la lista de permitidos y agregue el proceso identificado.
Identifique el proceso que impide el inicio de un VDA protegido
Cuando App Protection impida el inicio de un VDA protegido debido al uso de LD_PRELOAD, verifique los procesos mediante LD_PRELOAD. Los procesos legítimos se pueden agregar a la lista de permitidos.
Para identificar los procesos mediante LD_PRELOAD
, use el siguiente script. Guárdelo con la 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 el resultado del script anterior, identifique los procesos que provocan un error en el inicio del VDA protegido y agregue esos procesos a la lista de permitidos.
Esta es una imagen de ejemplo que muestra el resultado con una lista de aplicaciones con una lista de precarga.
Crear el archivo de configuración de la lista de permitidos
El archivo de configuración de la lista de procesos permitidos no se instala de forma predeterminada por motivos de seguridad. Debe crear este archivo de configuración la primera vez que lo necesite.
- Cree un archivo vacío denominado 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-->
Esta es una imagen de ejemplo que muestra la configuración recién agregada:
- Guarde el archivo y, a continuación, defina los permisos en el archivo AppProtection_Preload_allowlist.json mediante el siguiente comando.
sudo chmod 644 $ICAROOT/config/AppProtection_Preload_Allowlist.json
Nota:
Se admite un mínimo de expresiones regulares en las entradas de configuración para evitar la redundancia. Los caracteres de expresiones regulares especiales deben abrirse y cerrarse con una barra invertida doble (\).
- 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 de expresiones regulares. Por lo tanto, debe encerrarlos usando el carácter 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 regulares 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