Configurer la liste verte pour les applications qui utilisent les fonctionnalités LD_PRELOAD
Remarque :
La configuration de la liste verte à l’aide de la fonctionnalité LD_PRELOAD n’est disponible que pour l’application Citrix Workspace pour Linux.
App Protection 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 authentiques ou si elles sont approuvées par l’administrateur, vous pouvez utiliser la fonctionnalité de liste verte. Pour autoriser l’utilisation d’autres applications utilisant LD_PRELOAD, vous devez configurer la liste verte.
App Protection 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 verte. Pour autoriser l’exécution de ces applications, vous devez configurer la liste verte.
Vous pouvez ajouter des applications dotées de fonctionnalités de préchargement à la liste verte en procédant comme suit :
- Identifiez le processus qui empêche le démarrage de la session VDA/d’application protégée.
- Créez un fichier de configuration pour la liste verte, puis ajoutez le processus identifié.
Identifier le processus empêchant le lancement d’un VDA protégé
Lorsqu’AppProtection empêche le lancement d’un VDA protégé en raison de l’utilisation de LD_PRELOAD, vérifiez les processus à l’aide de LD_PRELOAD. Les processus authentiques peuvent être ajoutés à la liste verte.
Pour identifier les processus utilisant LD_PRELOAD
, exécutez le script suivant. Enregistrez-le avec l’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 à l’origine de l’échec du lancement du VDA protégé, puis ajoutez-les à la liste verte.
Voici un exemple d’image affichant la sortie avec une liste d’applications et une liste de préchargement.
Création du fichier de configuration de la liste verte
Le fichier de configuration de la liste verte 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 que vous en avez besoin.
- 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 récemment 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 régulières minimales sont autorisées dans les entrées de configuration pour éviter la redondance. Les caractères d’expression régulière spéciaux doivent être vérifiés et remplacés par une double barre oblique inverse (\).
- Par exemple, 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 modèles 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 tels que le nombre 126, des expressions régulières peuvent être utilisées pour une entrée de liste verte plus générique :
LD_PRELOAD=:/snap/blue-recorder/\\d+/\\$LIB/bindtextdomain\\.so" : "/snap/blue-recorder/\\d+/blue-recorder