On Mon, 26 Jan 2004 02:06:41 +0100, Alain Tesio <[EMAIL PROTECTED]> wrote :
> > 3) Comme indiqué dans : > > http://www.linuxsecurity.com/feature_stories/feature_story-99.html > > Il est fondamental d'éliminer tout notion de 'root' dans la prison, > > mais je ne vois pas bien comment lancer les programmes en tant > > qu'utilisateur? car dès que je lance chroot il semble que je sois > > directement devenu root dans l'environnement (UID 0) > > Plus précisément il est fondamental qu'un utilisateur qui cracke le > programme qui tourne dans le chroot ne puisse pas obtenir un accès > root sinon le chroot ne sert plus à rien. Tu peux laisser des fichiers > exécutables par root uniquement, mais surtout pas de binaire avec le > flag suid. Ok j'ai compris ! > > J'ai essayé -sans succès- d'utiliser le programme setuidgid des > > daemontools pour fixer l'UID du processus que je vais lancer mais > > bizarrement même si j'importe dans la 'prison' /etc/passwd et > > /etc/group, setuidgid persiste à me dire que l'utilisateur n'existe > > En général le programme doit tourner en root au départ (par exemple > pour binder une socket < 1024) et change vers un autre user le plus > vite possible. D'accord mais comment faire dans le cas d'un programme qui n'est pas conçu comme ça dès le début ? Par exemple 'ls' ou 'find' ? C'est pourquoi j'avais pensé à setuidgid/ > > pas... De plus le fait même d'avoir setuidgid dans la 'prison' me > > renvoi à la case départ (désolé c'est à force de jouer au > > Monopoly...) car du coup la notion de root peut revenir par la > > fenêtre (un attaquant peut corrompre le setuidgid pour acquérir > > l'UID 0). > > Je ne connais pas setuidgid, si c'est un exécutable suid comme celui > de perl il y a un problème, si c'est un truc que tu lances en root > pour abandonner des privilèges il n'y a pas de risque particulier > d'escalade d'une intrusion. Je ne sais pas exactement comment il fonctionne mais il sert justement à lancer un exécutable sous l'UID d'un utilisateur (cf. http://cr.yp.to/daemontools/setuidgid.html) > Essaies makejail (package du même nom), en gros il essaie de trouver > tous les fichiers requis par ton programme qui tourne en chroot. Il y > a déjà des fichiers de configuration pour les trucs courants comme > apache bind mysql, environ une dizaine de lignes dont tu peux > t'inspirer pour ton cas. Ok merci du tuyau, je vais jeter un oeil !