(Courriels de diversion: <dechaînent@informatiseriez-blinderas.com> <embauchaient@anticonstitutionnel-retransmets.com> <loucherai@effleurerons-remontrent.com> <curriculum@perciez-tangent.com> <verbalises@tracasserons-retraduits.com> <reciproquement@affectueusement-serrerions.com> <avanceras@renfrogneriez-effrayerais.com> <sucote@surencheris-analyseurs.com> <gaspilleriez@raierai-apprivoiserais.com> <recrachent@syndiques-embosser.com> )


Jean-Marc Mongrelet a écrit :

La question que je me posai, était de savoir, pourquoi un script exécuté dont le bit setuid est positionné, n'exécute pas les commandes (programme) en temps que le propriétaire du script (cad root dans mon cas)?


Parce qu'il y a un problème de concurrence quand tu penses aux étapes nécessaires :
- le noyau ouvre le script et lit #!interpréteur args
- le noyau lance "interpréteur args nomDuFichierScript"


Entre les deux, il y a une fénêtre de temps pendant laquelle on pourrait changer le fichier de script (ce qui enlèverait le caractère suid, la plupart du temps).

Pour te protéger contre cela, il y a deux mécanismes :
- le noyau n'honore pas les bits suid et sgid sur les fichiers scripts ;
- la plupart des interpréteurs, en particulier les *sh, remmettent l'identité effective du processus à son identité réelle si on ne leur spécifie pas explicitiement que c'est OK (option -p pour ksh et consorts).


La première protection, celle du noyau, n'est pas nécessaire dans les systèmes bien conçus, par exemple Solaris, qui ne passent pas le nom du fichier script à l'interpréteur, mais un descripteur sur le fichier qu'à ouvert le noyau pour lire #!... Vue la gestion des fichiers UNIX, cela rend inexploitables les attaques de ce genre.

 Je suis étonné que Linux n'ait toujours pas un tel mécanisme.

Il me semble avoir écrit un truc à ce sujet en réponse à jdd il y a quelques années, mais je suis incapable de le retrouver dans les archives de linux-31.

--
Marc Thirion                   | Ramonville Saint-Agne, France
Projet Internet et Citoyenneté : http://www.le-pic.org/


-------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>