Les utilisateurs d’ordinateurs clients peuvent se servir de l’utilitaire chmod pour définir les bits de mode setuid (Set User Identifier On Execution), setgid (Set Group Identifier On Execution) et sticky (restant en mémoire) sur des fichiers ou des répertoires stockés dans une partition système NTFS et partagés via le service Serveur pour NFS. Lorsqu’un client UNIX accède ensuite au fichier ou répertoire, la sémantique standard de ces bits s’applique. Par exemple, un fichier exécutable dont le bit setuid est défini s’exécute sous l’ID d’utilisateur (UID) du propriétaire du fichier et non sous l’UID de la personne qui exécute le fichier.
En règle générale, lorsque le bit setuid ou setgid est défini sur un fichier, le propriétaire ou groupe auquel appartient le fichier devient le propriétaire ou l’ID de groupe (GID) où le fichier sera exécuté. À moins qu’un utilisateur n’ait le droit de restaurer des fichiers ou des répertoires, la sécurité de Windows autorise un utilisateur à devenir le propriétaire d’un fichier (si les autorisations relatives au fichier le permettent), mais pas à transférer cette propriété à un second utilisateur. Par conséquent, si vous voulez utiliser chown ou chgrp afin de modifier le propriétaire ou groupe auquel appartient un fichier, vous devez disposer du privilège de restaurer des fichiers et des répertoires. Par défaut, ce privilège est attribué aux membres des groupes Administrateurs et Opérateurs de sauvegarde. Toutefois, il peut être attribué à d’autres groupes ou à des utilisateurs individuels. En outre, le compte de l’utilisateur qui exécute chown ou chgrp, ainsi que l’utilisateur ou le groupe auquel la propriété est transférée, doivent être correctement mappés via la recherche Active Directory ou le mappage de noms d’utilisateurs.
Certains serveurs NFS (Network File System) UNIX appliquent des interprétations ou restrictions particulières aux bits setuid, setgid et sticky. Par exemple, dans certaines versions d’UNIX, un verrouillage obligatoire est appliqué sur un répertoire lorsque le bit setgid est défini sans autorisations d’exécution. Le service Serveur pour NFS n’implémente pas d’interprétations ou de restrictions particulières lors de l’utilisation de ces bits.
Problème de sécurité
Le comportement usuel de setuid et setgid présente un problème de sécurité connu dans UNIX. Un pirate peut exploiter le comportement de setuid et setgid en remplaçant un fichier exécutable par un cheval de Troie, puis en exécutant ce dernier. Le fichier remplacé s’exécute avec les droits du propriétaire et non avec ceux du pirate.
Pour résoudre ce problème de sécurité bien connu, setuid et setgid sont désactivés par défaut et n’affectent pas les paramètres UID ou GID, si le fichier ou répertoire présente les caractéristiques suivantes :
-
L’un des bits suivants, ou les deux, sont définis : setgid ou setuid.
-
Le fichier ou répertoire peut faire l’objet d’une écriture par le groupe, d’une exécution par le groupe, d’une écriture par tout le monde ou d’une exécution par tout le monde.
Certains clients peuvent juger ce problème de sécurité problématique, car il implique une différence par rapport au comportement usuel d’UNIX ; toutefois, le comportement usuel de setuid et setgid dans UNIX n’est pas spécifié dans le cadre du protocole NFS.
Modification du comportement de setuid et setgid
Procédez comme suit pour modifier le comportement des bits setuid et setgid :
Pour modifier le comportement de setuid et setgid |
Ouvrir l’Éditeur du Registre
Définissez la clé de Registre suivante :
HKEY_Local_Machine\System\CurrentControlSet\Services\NfsSvr\Parameters\SafeSetUidGidBits = (DWORD)
-
La valeur 1 permet de rendre le comportement de setuid et setgid plus sûr.
-
La valeur 0 entraîne un comportement standard dans UNIX.
-
La valeur 1 permet de rendre le comportement de setuid et setgid plus sûr.