Configurer la liste d’autorisation pour les applications qui utilisent les fonctionnalités LD_PRELOAD
Remarque :
La configuration de la liste d’autorisation à l’aide de la fonctionnalité LD_PRELOAD est uniquement disponible pour l’application Citrix Workspace™ pour Linux.
La protection des applications bloque le lancement d’une session protégée si d’autres applications en cours d’exécution utilisent LD_PRELOAD. S’il existe des applications légitimes ou si elles sont approuvées par l’administrateur, vous pouvez utiliser la fonctionnalité de liste d’autorisation. Pour autoriser l’utilisation d’autres applications qui utilisent LD_PRELOAD, vous devez configurer la liste d’autorisation.
La protection des applications empêche le démarrage d’une session protégée si d’autres applications utilisant LD_PRELOAD sont en cours d’exécution. Mais s’il existe des applications légitimes ou si l’administrateur les approuve, vous pouvez utiliser la fonctionnalité de liste d’autorisation. Pour permettre à ces applications de s’exécuter, vous devez configurer la liste d’autorisation.
Vous pouvez ajouter des applications avec des fonctionnalités de préchargement à la liste d’autorisation en suivant les étapes suivantes :
- Identifiez le processus qui bloque le démarrage de la session VDA/application protégée.
- Créez un fichier de configuration pour la liste d’autorisation et ajoutez le processus identifié.
Identifier le processus qui empêche le lancement du VDA protégé
Lorsque AppProtection empêche le lancement d’un VDA protégé en raison de l’utilisation de LD_PRELOAD, vérifiez les processus utilisant LD_PRELOAD. Les processus légitimes peuvent être ajoutés à la liste d’autorisation.
Pour identifier les processus utilisant LD_PRELOAD, utilisez le script suivant. Enregistrez-le avec une extension .sh et exécutez-le en tant que sudo dans une fenêtre 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-->
En fonction de la sortie du script précédent, identifiez les processus qui empêchent le lancement du VDA protégé et ajoutez ces processus à la liste d’autorisation.
Voici un exemple d’image affichant la sortie avec une liste d’applications ayant une liste de préchargement.

Création du fichier de configuration de la liste d’autorisation
Le fichier de configuration de la liste d’autorisation de processus n’est pas installé par défaut pour des raisons de sécurité. Vous devez créer ce fichier de configuration la première fois qu’il est nécessaire.
- Créez un fichier vide nommé AppProtection_Preload_Allowlist.json dans le dossier “$ICAROOT/config/”.
-
Ajoutez les détails du processus au format suivant :
{ "LD_PRELOAD_PATH1" : "PROCESS_PATH1", "LD_PRELOAD_PATH2" : "PROCESS_PATH2" } <!--NeedCopy-->Voici un exemple d’image affichant la configuration nouvellement ajoutée :

- Enregistrez le fichier, puis définissez les autorisations pour le fichier AppProtection_Preload_Allowlist.json à l’aide de la commande suivante.
sudo chmod 644 $ICAROOT/config/AppProtection_Preload_Allowlist.json
Remarque :
Des expressions regex minimales sont autorisées dans les entrées de configuration pour éviter la redondance. Les caractères spéciaux des expressions regex doivent être vérifiés et échappés avec une double barre oblique inverse (\).
- Par exemple, considérez que la sortie du script est la suivante :
LD_PRELOAD=:/snap/blue-recorder/126/$LIB/bindtextdomain.so" : "/snap/blue-recorder/126/blue-recorder
- Vous pouvez voir que la sortie inclut ‘.’, ‘$’ qui sont des caractères spéciaux dans les motifs regex. Vous devez donc les échapper en utilisant une barre oblique inverse comme suit :
LD_PRELOAD=:/snap/blue-recorder/126/\\$LIB/bindtextdomain\\.so" : "/snap/blue-recorder/126/blue-recorder
- Pour utiliser des éléments variables comme le nombre 126, des expressions regex peuvent être utilisées pour une entrée de liste d’autorisation plus générique :
LD_PRELOAD=:/snap/blue-recorder/\\d+/\\$LIB/bindtextdomain\\.so" : "/snap/blue-recorder/\\d+/blue-recorder