• [^] # Re: autre patch sans controle d'accès pour le noyau 2.6

    Posté par . En réponse à la dépêche ASLR pour le noyau 2.6. Évalué à 1.

    Il était très bon de parler de l'existance d'exec-shield pour le noyau 2.6, en fait je n'étais pas au courrant.
    Tu ne sombres pas du tout dans le troll et tu as raison: en ce qui concerne le noyau 2.6 uniquement, exec-shield n'est pas surpassé par ASLR26 comme c'est le cas pour le noyau 2.4 entre exec-shield et PaX, qui lui offre beaucoup plus qu'exec-shield et beaucoup mieux fait (notamment garantie de l'impossibilité d'introduction d'un nouveau code exécutable dans l'espace d'adressage du processus, ce qui inclue une protection contre un mprotect() -sauf par mmap PROT_EXEC d'un fichier exécutable appartenant à l'attaquant, ce qui doit être restreint par un AC-)

    En ce qui concerne un système ET_DYN, Redhat a poussé l'effort jusqu'à inclure dans la nouvelle version de ld un switch -pie permettant de générer de l'ET_DYN exécutable, effort fort louable mais qui n'a malheureusement pas été suivi ensuite par la distribution. Mais même dans le cas d'ET_DYN le patch ne pourra pas rendre non exécutable toutes les données à cause des limitations que j'ai déjà citées, et il n'est également pas vraiment prévu pour traiter séparément les exécutables ET_DYN: par chance, ceux-ci finiront quand même dans l'armure ASCII car les linkers mettent toujours leur base adresse à 0, cependant cela risque de poser des problèmes de "place", notamment a cause de la section .bss.

    Quant à l'article de Nergal, il étudie en fait la faiblesse de tous les systèmes relogeant le code exécutable dans le cas des ET_EXEC, en expliquant qu'il n'est pas possible de reloger le GOT/PLT d'un ET_EXEC et que cela peut ête utilisé pour retourner où l'on veut (y compris localiser des fonctions dont l'adresse a été rendue aléatoire). Il s'applique donc tant à PaX qu'à exec-shield. La différence pour PaX est qu'il dispose déjà de plusieurs distributions entièrement ET_DYN qui lui sont dédiées, alors que Redhat semble avoir fait beaucoup de pub pour exec-shield dans leur distribution serveur mais n'a pas adapté sa distribution à son produit., espérons que cela changera!

    Exec-shield est toutefois un "bon petit patch", il offre une meilleure protection de l'espace d'adressage qu'OpenWall qui est pourtant très utilisé car il a été prouvé qu'il repoussait beaucoup de script kiddies, il sera donc lui aussi efficace sur ce tableau.