#AstuceDeCode 15 : fausse bonne idée – les listes noires avec sudo

sudo est une commande très pratique, permettant notamment d’exécuter des commandes en tant que superutilisateur tout en gardant une traçabilité, ou encore tout simplement d’avoir conscience qu’on tape quelque chose en tant que root. Bien qu’utilisant Debian depuis maintenant quelques mois (et avant Ubuntu), je l’ai gardé et n’utilise jamais directement mon compte root. Néanmoins il y a un piège dans lequel ne pas tomber : les listes noires.

sudo permet en effet d’interdire des commandes par listes noires. Pour ce faire il suffit d’indiquer la commande à taper, précédée d’un point d’exclamation. Sauf que c’est une très mauvaise idée, et dans la suite on montre pourquoi.

Dans une mission précédente les administrateurs système en avaient assez de devoir gérer les commandes autorisées pour sudo une par une, aussi ils ont finalement décider de tout autoriser sauf les commandes suivantes (le Linux utilisé était une RedHat) :


cp,mv,rm,yum,rpm,bash,ksh,csh,tcsh,<...>

On remarque notamment que cp est bloqué, tout comme bash. D’autre part sudo était réglé pour refuser d’exécuter toute commande qui ne serait pas située dans les chemins /bin, /usr/bin, /sbin, /usr/sbin, /usr/local/bin et /usr/local/sbin.

Jusque là on pourrait se dire que la chose est blindée… sauf que… cp n’est pas la seule manière de faire une copie de fichier sous Linux. On peut parfaitement le faire avec un scp (si si, essayez scp <fichier_source> <fichier_cible>, vous verrez ça va marcher) ou encore écrire un petit programme en Java qui faisait la manip.

Bref dès lors l’astuce consistait à copier le fichier /bin/bash vers un nom arbitraire dans un des chemins sus-cités, puis exécuter la copie de bash avec sudo et on passait root. On s’est amusé à chercher d’autres moyens de contourner la sécurité et en cherchant un quart d’heure on en a trouvé une quinzaine… 😉

En d’autres termes si vous vous reposez sur des listes noires de commandes avec sudo vous pouvez être sûr que l’utilisateur dont les droits sont restreints trouvera un moyen de passer root. Autrement dit quand vous configurez sudo faites-le toujours avec des listes blanches de commande, en refusant tout le reste.

Dans la même veine un compte qui aurait tous les droits sudo doit être traité comme un compte root, et pour les paranos dont je fais partie vous pouvez ajouter la ligne suivante qui oblige l’utilisateur à rentrer son mot de passe à chaque fois qu’il utilise sudo :


Defaults        timestamp_timeout = 0

Cet article vous a plu ? Vous aimerez sûrement aussi :

Julien
Moi c’est Julien, ingénieur en informatique avec quelques années d’expérience. Je suis tombé dans la marmite étant petit, mon père avait acheté un Apple – avant même ma naissance (oui ça date !). Et maintenant je me passionne essentiellement pour tout ce qui est du monde Java et du système, les OS open source en particulier.

Au quotidien, je suis devops, bref je fais du dév, je discute avec les opérationnels, et je fais du conseil auprès des clients.

Son Twitter Son LinkedIn

gojul

Recent Posts

Jensen Huang : Le visionnaire qui a propulsé NVIDIA au sommet de l’IA

En un peu plus de trente ans, Jensen Huang a transformé NVIDIA d’une modeste startup…

3 jours ago

WeLoveDevs.com rejoint Insitoo Group – La tribune de Damien

Aujourd’hui, je veux partager avec vous une évolution majeure pour WeLoveDevs.com. C’est une étape clé,…

4 jours ago

NVIDIA en chute libre ? La vérité derrière le scandale des RTX 50

​NVIDIA, leader mondial des processeurs graphiques, traverse une période contrastée. Entre succès financiers et défis…

2 semaines ago

Guerre commerciale – Le déclic qui va faire adopter du Cloud Français ?

Hier, les "tariffs", les tarifs douaniers imposés par les américains concernant les importations mexicaines et…

2 semaines ago

L’ordinateur du futur est là : la puce quantique de Microsoft enterre tout ce qu’on connaissait

Microsoft a récemment dévoilé une avancée majeure dans le domaine de l'informatique avec la présentation…

3 semaines ago

Code Review : Pratique incontournable ou frein à la productivité ?

Introduction : la Code Review en 2025 La code review est un rituel bien ancré…

3 semaines ago