[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fonctionnement de chroot



On Mon, 26 Jan 2004 02:06:41 +0100, Alain Tesio <alain@onesite.org>
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 !



Reply to: