Bonjour,
D'après ce que j'ai lu, l'attaque sushi consiste, à partir d'un exécutable appartement à root ayant le bit suid à 1, de créer un fichier shell avec un bit suid à 1 que tout le monde pourra modifier/exécuter.
Ainsi tout le monde pourra lancer un shell en tant que root.
Heureusement, il existe des mécanismes pour se protéger de cette attaque :
- quand un fichier est modifié par une autre personne que son propriétaire, le bit suid est mis à 0;
- lors de l'exécution de script, le bit suid est ignoré.
Mais quid de LD_LIBRARY_PATH ?
Si j'ai un exécutable avec le bit suid à 1, je peux modifier LD_LIBRARY_PATH et "remplacer" les fonctions appelée par mes propres fonctions grâce à l'édition des liens dynamiques (et donc exécuter ce que je veux avec les droits root).
Comment Linux fait-il pour se protéger de cela ? Quels autres mécanismes sont mis en jeux ?
Est-ce que les fichiers avec le suid à 1 sont trop "dangereux" ?
Existe-t-il un méthode plus "sûre" pour permettre à un utilisateur d'accéder de manière restreinte à une ressource uniquement accessible par le root ?
Exemple :
J'ai une liste et je ne veux que personne (à part le root) ne puisse le lire/écrire.
Mais je veux qu'un programme exécutable par tous puisse lire ce fichier pour par exemple produire un résultat différent selon l'utilisateur.
Partager