• [^] # Re: root ?

    Posté par . En réponse au journal Présentation d'un laptop certifié PCI-DSS. Évalué à 6.

    En effet, on utilise quelques surcouches (wrappers), pour laisser un peu de latitude à l'utilisateur sans pour autant laisser les clés sur le frigo.

    Il y en a un pour apt, qui limite les opérations possibles, en particulier l'installation d'un paquet qui n'est pas dans un repo autorisé, mais qui protège aussi de l'obtention d'un shell root, par exemple quand dpkg demande quoi faire pour les fichiers de configs modifiés, ou qu'un pager complaisant à une option pour lancer une commande (par exemple less ou more et leur commande !). On encore qui bride les options du type "ne pas vérifier les signatures".

    On a aussi un wrapper pour systemctl, qui permet de start/stop/restart des services, mais pas tous (par exemple on protège syslog, l'antivirus, cron et quelques autres...). Ce wrapper m'a permis d'apprendre les bases de Python1 , j'ai bien aimé :). Le plus amusant était de protéger un service en prenant en compte ses petits noms (par exemple sshd peut aussi s'appeller openssh, ssh, avec sans le .service, syslog.service a aussi des variantes, fun).

    Quand on fait ce genre de développement, on doit bien faire attention, en plus de ne pas introduire de trou de sécu supplémentaires, à ne pas utiliser des options qui n'existent que sur la version courante des outils qu'on utilise, mais aussi sur les versions passées en cours d'upgrade, et dans la version future. Donc pas trop d'options toutes nouvelles et pas d'options dépréciées.

    Il y a aussi un "truc" (je sais plus la terminologie), qui se charge dans le démon Docker pour vérifier que les containers sont bien lancés sans les droits root.

    Enfin on s'amuse bien, et quand on trouve un trou, on le rebouche :).


    1. même si Perl gardera une place dans mon cœur pour toujours