Mozilla permet de W^X dans Firefox 46 pour améliorer la sécurité

0
173

Mozilla activé la fonctionnalité de sécurité de W^X dans Firefox Nightly (actuellement version 46) et les plans pour le rendre disponible à d’autres versions de son navigateur web une fois qu’ils sont mis à niveau vers la version 46.

W^X, parlé Écrire XOR Exécuter, est une politique de sécurité pour la mémoire qui définit pages de mémoire que ce soit en écriture ou exécutable, mais pas les deux. La fonctionnalité est présente dans le système d’exploitation OpenBSD depuis 2003.

OpenBSD système de base a été modifiée pour se conformer à elle. Cela permet d’éviter certaines attaques par débordement de tampon, y compris les plus courantes basée sur la pile d’attaque: s’assurer que la pile n’est pas exécutable, code arbitraire injecté dans elle ne va pas s’exécuter, mais au lieu de provoquer le programme de cessation de

La plupart des JIT (Just in Time) compilateurs utilisent RWX (lire-écrire-execute) les autorisations pour les pages de mémoire qui permet au compilateur de code patch sans surcharge de performance. C’est le cas pour Firefox actuelle du compilateur JIT, mais aussi pour Chrome ou Safari du compilateur.

Tandis que qui est bénéfique pour les performances du navigateur lors de l’exécution et l’exécution de code JavaScript, il introduit des questions en même temps.

RWX de Sécurité

firefox 46 rwx

Alors que la plupart des systèmes d’exploitation modernes store code exécutable, mais non accessible en écriture de la mémoire, RWX JIT code est une exception à ce qui en fait une cible pour les attaques. En outre, la corruption de la mémoire peut être un problème aussi.

Mozilla mise en œuvre de W^X rend tous JIT pages de code non accessible en écriture par défaut. Si le navigateur a besoin d’écrire des pages, une fonction doit être appelée explicitement de faire la page de l’écriture et de supprimer les exécuter drapeau en même temps.

Une fois l’opération d’écriture a été exécuté, ses autorisations sont modifiées de lire et d’exécuter une fois de plus.

Le développeur responsable de la mise en œuvre note que l’introduction de la fonctionnalité des impacts de la performance lors de l’exécution de code JavaScript.

Selon les tests de référence, Firefox perd moins de 1% sur des normes modernes tels que le Kraken ou de l’indice d’Octane, et moins de 4% sur les anciennes références telles que SunSpider. Alors qu’une chute des performances est mesurable, il n’est pas visible pour les utilisateurs du navigateur lorsque le code JavaScript est exécuté par celui-ci. (par Sören Hentzschel)