Journal Content Security Policy 1.0 intégré à Firefox

Posté par  . Licence CC By‑SA.
25
13
juin
2013
Ce journal a été promu en dépêche : Content Security Policy 1.0 intégré à Firefox.

Depuis le 30 mai Content Security Policy (CSP) 1.0 est supporté par Firefox, dans le canal Aurora (version pre-beta de firefox) .

Content Security Policy ?

CSP est un mécanisme de sécurité dont le but est de protéger l'utilisateur contre les failles XSS en permettant aux sites web de restreindre l'origine des scripts.
CSP a été crée par la fondation Mozilla, et les premières implémentations ont été intégrés à Firefox 4.
Depuis le 15 novembre 2012, c'est même une recommandation candidate du W3C, et c'est cette version qui sera intégrée dans Firefox 23.

Comment ça marche ?

L’entête HTTP Content-Security envoyé avec la page contient une liste des domaines d’où peuvent provenir les différents scripts.
Pour que ce soit efficace, le Javascript inline est bloqué , tout comme les fonctions comme eval qui permettrait l’exécution de code.

Si un attaquant injecte un script situé sur un domaine non autorisé par la CSP, le navigateur refuse de l’exécuter.

CSP va même plus loin en donnant le contrôle sur la provenance d'autres ressources, comme les images, les frames ou les polices.

Quelles differences avec NoScript ?

Déjà, CSP est intégré de base au navigateur contrairement à cette extension.
Ensuite et surtout, la source du filtrage est différent, NoScript est configuré par l'utilisateur, CSP par le webmaster.
CSP ne protégera donc pas l'utilisateur des scripts malveillants ou de tracking si ils ont été mis en place et autorisés par le webmaster, ni des MITM si l'attaquant modifie aussi l’entête CSP.

Qui le supporte ?

La plupart des navigateurs, mais souvent dans une version expérimentale avec des préfixes particuliers.
Seul Chrome et les futures versions de Firefox supportent la recommandation complétement et avec les entêtes définis dans la version 1.0.
Safari utilise des entêtes X-WebKit-CSP, Internet Explorer uniquement une version partielle depuis sa version 10.
Opera ne supporte pas CSP, mais cela devrait être le cas dans sa prochaine version.

Si le navigateur ne le supporte pas, cela n'aura pas d'impact visible pour l'utilisateur, CSP ne sera juste pas pris en considération.

Un tableau sur la compatibilité.

J'ai envie d'en savoir plus!

Je conseille la lecture de cet article très complet, et de l'annonce sur le blog de Mozilla

Pour aider à l’écriture de la politique de sécurité, Mozilla a sortit une extension Firefox. Cet extension permet aussi aux utilisateurs de définir une politique CSP pour des sites ne la supportant pas encore.

  • # CSP manque de granularité

    Posté par  (site web personnel) . Évalué à 2.

    Pour que ce soit efficace, le Javascript inline est bloqué , tout comme les fonctions comme eval qui permettrait l’exécution de code.

    Malheureusement la granularité de CSP ne permet pas d'autoriser la fonction eval pour un script particulier, c'est tout ou rien.
    Résultat, tu codes tout aux petits oignons et tu te retrouves à ajouter un "unsafe-eval" dans ta politique de sécurité CSP parce que sinon ton mashup avec google maps marche plus à cause d'un eval dans leur script.

    C'est vraiment dommage. Si je suis passé à coté de quelque chose (à part OpenStreetMap), n'hesitez pas à me corriger, j'aimerais bien virer ce "unsafe-eval".

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.