Page suivantePage précédenteTable des matières

12. Questions de sécurité

Le mécanisme de PATH est souvent un gros problème du point de vue sécurité. Utiliser une erreur dans la définition du PATH est une manière fréquente de pirater un système. Il est facile pour un pirate de fabriquer des chevaux de Troie, s'il arrive à forcer root ou un autre utilisateur à exécuter ses propres programmes.

Une erreur fréquente par le passé (?) était de laisser le répertoire courant '.' dans le PATH de l'utilisateur root. Un pirate malveillant peut alors créer son propre programme 'ls' dans son répertoire. Ensuite, si root fait :

 # cd ~pirate
 # ls
il exécute le programme du pirate...

De la même façon, cela s'applique à tous les programmes exécutés par root. Aucun important démon ne devrait exécuter quoi que ce soit qui puisse être modifié par un utilisateur. Dans certains systèmes, /usr/local/bin peut contenir des programmes jugés moins sûr, mais le répertoire est retiré du PATH de root. Cependant, si on sait qu'un démon exécute bidule avec 'PATH=/usr/local/bin:...', il est possible de tromper le démon en lui faisant exécuter /usr/local/bin/bidule à la place de /bin/bidule. Dans ce cas, n'importe qui pouvant écrire dans /usr/local/bin peut sûrement pirater le système.

Il est donc très important de faire attention à l'ordre dans lequel les répertoires sont placés dans le PATH. Si /usr/local/bin se trouve avant /bin, il y a un risque. Alors que s'il se trouve après, il est impossible de lancer la commande modifiée /usr/local/bin/bidule à la place de /bin/bidule.

Sous Linux, vous devez vous souvenir que la recherche dans le PATH est faîte dans tous les mécanismes d'appels du système d'exploitation. N'importe où, où le chemin d'un exécutable est donné, vous pouvez utiliser le nom de la commande seul qui sera alors cherchée au moins dans /bin et /usr/bin, et vraisemblablement dans beaucoup d'autres endroits.


Page suivantePage précédenteTable des matières