Variable d'environnement CHEMIN
La Variable d'environnement CHEMIN est un contrôle de sécurité important. Il indique les répertoires à rechercher pour trouver une commande.
La valeur CHEMIN systemwide par défaut est spécifiée dans le fichier /etc/profile et chaque utilisateur possède normalement une valeur CHEMIN dans le fichier $HOME/.profile de l'utilisateur. La valeur CHEMIN dans le fichier .profile remplace la valeur CHEMIN du système ou ajoute des répertoires supplémentaires.
Les modifications non autorisées apportées à la variable d'environnement CHEMIN peuvent permettre à un utilisateur sur le système de "spoof" d'autres utilisateurs (y compris les superutilisateurs). Les programmes Spoofing (également appelés programmes Cheval de Troie ) remplacent les commandes du système, puis les informations de capture destinées à cette commande, telles que les mots de passe de l'utilisateur.
Par exemple, supposons qu'un utilisateur modifie la valeur CHEMIN de sorte que le système recherche d'abord le répertoire /tmp lorsqu'une commande est exécutée. Ensuite, l'utilisateur place dans le répertoire /tmp un programme appelé su qui demande le mot de passe root tout comme la commande su . Ensuite, le programme /tmp/su envoie le mot de passe du superutilisateur à l'utilisateur et appelle la commande su réelle avant de quitter. Dans ce scénario, tout superutilisateur qui utilisait la commande su révélerait le mot de passe du superutilisateur et ne le sait même pas.
Pour éviter tout problème avec la variable d'environnement CHEMIN pour les administrateurs du système et les utilisateurs, procédez comme suit :
- En cas de doute, indiquez les noms de chemin complets. Si un nom de chemin complet est spécifié, la variable d'environnement CHEMIN est ignorée.
- Ne jamais placer le répertoire en cours (spécifié par . (période)) dans la valeur CHEMIN spécifiée pour l'utilisateur root. N'autorisez jamais le répertoire actuel à être spécifié dans /etc/profile.
- L'utilisateur root doit disposer de sa propre spécification PATH dans son fichier .profile privé. En général, la spécification dans /etc/profile répertorie la norme minimale pour tous les utilisateurs, alors que le superutilisateur peut avoir besoin de plus ou moins de répertoires que la valeur par défaut.
- Avertir les autres utilisateurs de ne pas modifier leurs fichiers .profile sans consulter l'administrateur système. Sinon, un utilisateur sans méfiance pourrait apporter des changements qui permettent un accès non intentionnel. Un fichier .profile utilisateur doit disposer de droits d'accès définis sur 740.
- Les administrateurs système ne doivent pas utiliser la commande su pour obtenir le privilège de superutilisateur à partir d'une session utilisateur, car la valeur CHEMIN de l'utilisateur spécifiée dans le fichier .profile est en vigueur. Les utilisateurs peuvent définir leurs propres fichiers .profile. Les administrateurs système doivent se connecter à la machine de l'utilisateur en tant que superutilisateur ou de préférence, en utilisant leur propre ID, puis utiliser la commande suivante :
/usr/bin/su - rootCela permet de s'assurer que l'environnement du superutilisateur est utilisé pendant la session. Si un administrateur système fonctionne en tant que superutilisateur dans une autre session utilisateur, l'administrateur système doit spécifier des noms de chemin complets tout au long de la session.
- Protégez la variable d'environnement du séparateur de champ d'entrée (IFS) à partir de la modification dans le fichier /etc/profile. La variable d'environnement IFS du fichier .profile peut être utilisée pour modifier la valeur CHEMIN.