Un CMS peut-il techniquement modifier de lui même les droits d'un répertoire?

Par exemple quand il se met à jour.

4 réponses

Évaluation
  • oyubir
    Lv 6
    il y a 5 mois
    Meilleure réponse

    S'il est bien configuré non.

    Un CMS n'est qu'un programme. Un programme s'exécute avec les droits d'un utilisateur, rarement le root, sauf s'il y a une bonne raison ("mkdir", "chmod", etc, ne sont aussi que des programmes cela dit ; et en général on les exécute en tant que root ceux-là).

    Ce serait une très mauvaise idée d'exécuter le CMS en tant que root, puisque ça voudrait dire que le moindre bug, ou, pire, bien sûr, la moindre faille de sécurité, peut prendre des proportions gigantesques. Je ne compte plus le nombre de sites où j'ai réussi facilement à faire de l'injection de code (à chaque fois juste pour montrer à mes étudiants à quel point c'est facile). Ecrire "coucou" dans une page (juste dans la sienne de page - avec le plaisir de savoir que c'est le serveur qui a été trompé pour le faire, et non le client) c'est facile. En revanche, profiter de cette injection de code pour faire des choses malveillantes demande plus de temps (il faut en gros comprendre le fonctionnement interne du code pour l'amener à faire des choses qu'on n'est pas censé avoir les droits de faire).

    Si le CMS s'exécutait avec des droits root (ou même seulement les droits pour modifier l'arborescence du serveur web, ou même juste de son propre code), il suffirait d'injecter le code system("rm -fr /") pour rigoler un peu

    Bref, non. Normalement non. Ça se passe même un cran avant ça : apache tourne déjà en tant que "nobody" (ou autre utilisateur non root), et donc tout code qu'il exécute (par exemple tout code php) l'est sans ces droits.

    Mais une fois cela dit, si on veut le faire quand même, on peut. On peut toujours configurer apache pour qu'il s'éxécute avec les droits root (ou plus sainement, donner les droits d'écriture à l'utilisateur utilisé par apache sur l'arborescence qu'on veut modifier). Ou bien créer un programme ad-hoc pour faire les modifications qu'on peut (un chmod dédié) qui a les droits "suid" (c'est à dire qu'il s'exécute avec les droits root, même si l'utilisateur qui l'a lancé n'est pas root).

    C'est quoi votre vraie question au juste ?

    Vous voulez offrir une solution qui permet de mettre à jour un repertoire ? (auquel cas, expliquez ce que vous voulez faire ; il y a forcément une solution ; y compris une solution qui n'oblige pas à créer un trou béant de sécurité)

    Ou au contraire, vous voulez une garantie que ça n'arrivera pas ?

    • oyubir
      Lv 6
      il y a 5 moisSignaler

      différents (via un chroot; voire via un docker, machines virtuelles, etc)

  • il y a 5 mois

    ça dépend... sya du vent

  • il y a 5 mois

    Je réponds sans vraiment savoir que non, car il faut disposer de droits super-admin pour changer les paramètres d'un répertoire.

    Je suppose que les répertoires utilisés par ta base de données ont été initialement créés par un super-admin et que leurs droits d'accès sont maintenant figés.

  • il y a 5 mois

    Je ne pourrais te le dire

Vous avez d’autres questions ? Pour obtenir des réponses, posez vos questions dès maintenant.