OS X : la faille du sudo expliquée à ma fille
Par Arnaud Morel - Publié le
Yoann Gini, consultant et formateur OS X, OS X Server, Xsan et iOS, revient sur le sujet et donne des explications limpides sur cette faille. La faille, explique-t-il, est liée à la manière dont OS X gère l'authentification root, en nous évitant de saisir le mot de passe à nouveau si celui-ci a déjà été saisi dans les 5 minutes précédent la commande nouvelle.
L’intéressant ici est de comprendre comment est géré le système de cache d’authentification de la commande. Chose expliquée dans sa documentation, précise-t-il. Lorsque vous utilisez la commande sudo, OS X créé un dossier cache situé là
Ce dossier présente une particularité : sa date de création sert de point de départ pour un délai de 5 minutes pendant lequel OS X ne vous redemandera pas votre mot de passe root, même si vous lancez une nouvelle commande sudo. Histoire de nous simplifier la vie quoi, intention louable mais détournée pour aboutir à cette faille potentielle. Dès lors, si l'attaquant "remonte le temps" et change la date du système pour la régler au 1er janvier 1970, l’epoch UNIX, il gagne un accès root sans besoin de mot passe.
Maintenant que vous savez comment fonctionne la commande et la faille, il est aisé de comprendre comment s’en prémunir le temps qu’Apple fournisse un correctif de sécurité. Par exemple, vous pourriez ajouter deux services launchd. Le premier lancé au démarrage du système supprimera tout le contenu du dossier /var/db/sudo. Le second observera tout changement dans le dossier /var/db/sudo pour de nouveau tout supprimer, note-t-il.
Source