• [^] # Re: 0 day

    Posté par . En réponse au journal Annonce : Manux 0.0.4. Évalué à 6.

    Exactement. Un exemple, quand je tape cat ~/docs/file.txt, c'est le lanceur de cat, un petit exéctuable de /bin, qui se lance. Il construit alors une arborescence virtuelle contenant simplement le fichier file.txt dans le répertoire ~/docs, puis fait un chroot dans la racine du vrai programme cat (à laquelle il a accès grâce à un lien racine, un lien spécial qui n'est suivable qu'en faisant ce genre de chroot). Ensuite, il fait un execve() sur le vrai binaire de cat.

    Ce binaire, à son tour, examine sa ligne de commande, voit qu'il doit accéder à ~/docs/file.txt, l'ouvre (sans repérer qu'il se situe dans une arborescence virtuelle qui ne contient rien d'autre que ce fichier), fait son travail et quitte. Et même s'il y avait eu un exploit jour zéro dans ce fichier, comme cat n'a (normalement) pas l'accès en écriture à sa propre racine, et qu'il n'a accès qu'à un seul autre fichier en-dehors de celle-ci, il se retrouve coincé.

    C'est cela que je veux dire par "encaisser" : je ne peux pas empêcher l'existence d'exploits, mais je peux les rendre en pratique inexploitables.