NoScript, l'extension sécurité incontournable de Firefox

Date : 30 Juillet 2008

Force est de constater que les vulnérabilités que nous rencontrons ces derniers temps, visent de plus en plus les internautes, leurs habitudes de navigation et plus précisément leurs outils de travail au quotidien. Le navigateur, qu'il s'agisse d'Internet Explorer, de Firefox, d'Opéra ou des autres, est au cœur de la navigation sur Internet et devient donc une cible privilégiée.

Souvent pris dans sa quête d'informations sur la toile, dans une recherche effrénée sur "google", l'internaute ne prête peu ou plus attention à certaines erreurs ou incidents de navigation, aux contenus dynamiques des pages qu'il visite. C'est donc sans surprise que les navigateurs et les technologies de l'Internet attirent les convoitises en termes de sécurité des pirates et hackers de tous bords.

Depuis longtemps nous recommandons à notre communauté d'être vigilent lors de toute navigation sur Internet, de ne naviguer que sur des sites de confiance, de se méfier de certaines URI, de contrôler les certificats, d'être attentif à toute anomalie de navigation. Il est vrai que cela est plus facile à dire qu'à faire, y compris pour les personnes de la sécurité, pourtant aguerries aux bonnes pratiques de navigation.

Pour nous aider dans cette tâche, et s'il y avait une seule extension de sécurité à recommander pour naviguer en "toute sécurité", sans hésitation les experts sécurité citent "NoScript".

Le présent article porte sur cette extension de sécurité qui n'est malheureusement dédiée qu'aux utilisateurs des navigateurs basés sur Firefox (Flock, Seamonkey etc.). Préconisée de nombreuses fois dans la communauté des Certs, et utilisée depuis longtemps par nos équipes sécurité, cette extension méritait bien un article.

Avant de poursuivre, et puisque tout le monde n'est pas familier avec Firefox voire encore moins avec ses extensions, rappelons ce que sont les extensions Firefox.


Qu’est-ce qu’une extension Firefox ?

Les extensions permettent d'ajouter de nouvelles fonctionnalités à Firefox ou d'étendre celles existantes dans le navigateur. Certaines apparaissent sous la forme de barres, de boutons, de menu contextuel que l'utilisateur peut actionner à souhait comme si ceux-ci étaient imbriqués dans le navigateur.

Une extension Firefox se présente sous la forme d'une archive au format XPI (Cross Platform Installer) contenant plusieurs fichiers décrivant le code de l'extension, le programme d'installation, les caractéristiques de langue et la configuration de l'extension.


A quoi servent-elles ?

Il en existe de très nombreuses dans des catégories très différentes les unes des autres. Citons sans être exhaustif, celles permettant de lire les flux RSS, de lire les fichiers PDF, d'accéder à un dictionnaire depuis le navigateur, celles bloquant les sites publicitaires ou encore celles donnant la météo, permettant de faire du développement, de faciliter les téléchargements ou celles suivant le cours des actions (cf. https://addons.mozilla.org).

Pour résumer, les extensions permettent d'augmenter les fonctionnalités du navigateur.


Et NoScript ?

NoScript est une extension de sécurité "open source", apportant de nouvelles fonctions de protection au navigateur Firefox et ses dérivés. Globalement, son objectif est simple. Il est de permettre le blocage de l'exécution des codes JavaScript pour les pages visitées afin d'assurer une navigation plus sécurisée sur les pages mettant à profit ce langage. Notamment, il permet de bloquer les fenêtres "popup", les exécutions automatiques de scripts, les redirections vers d'autres sites et bien d'autres artifices JavaScript, si l'utilisateur n'a pas donné sa confiance au site visité.


Principe de fonctionnement

Le principe de fonctionnement de NoScript est basé sur un modèle dit de "liste blanche" (white list) qui veut que "Tout ce qui n'est pas formellement autorisé, soit implicitement interdit".

NoScript permet à l'internaute d'entretenir une "base de données" de sites de confiance qu'il fréquente. De nombreux paramètres permettent d'affiner les types de restriction qu'il est possible de mettre en œuvre, pour assurer le blocage/déblocage des pages à contenu dynamique visitées.


Fonctionnalités

Dans ces premières versions, NoScript visait uniquement à prévenir les utilisations "non maîtrisées" du langage JavaScript. Au fil du temps les développeurs ont enrichi cet outil pour bloquer également celles utilisant les contenus dynamiques (Java, Flash, SilverLight, etc…).

En terme de sécurité, ce type de restriction permet d'éviter les trop nombreuses attaques de type XSS (Cross-Site Scripting), XSRF (Cross-Site Request Forgery) ou certaines attaques de phishing ou encore celles basées sur l'utilisation de fichiers Flash malveillants.

Dans la pratique, et sans être exhaustif, les applets Java, les objets JAR, Flash, QuickTime, les documents PDF ou encore les vidéos ne pourront pas être téléchargés ou visionnés automatiquement tant que l'internaute ne leur a pas accordé sa confiance, temporairement ou définitivement.

NoScript offre de nombreuses fonctionnalités :

  • Restriction d'accès (blocage/déblocage) des pages
    • temporaire
    • permanent
  • Autorisation de JavaScript globalement

Cette option est bien sûr à proscrire, puisqu'elle consiste à réactiver JavaScript pour tous les sites et de ne pas considérer la "white list".

  • Notification des pages bloquées
  • Protection Anti-XSS
  • Transformation de requêtes POST en requêtes GET
  • Possibilité d'exclusion pour traiter des cas particuliers

 
Restrictions d'accès et validité des restrictions

NoScript utilise le terme de "greffons" (plugins) pour qualifier les technologies qu'il est en mesure de bloquer, c'est-à-dire JavaScript, Java, Flash, Silverlight, etc.

En termes de restriction, NoScript permet :

  • d’autoriser/Interdire JavaScript
  • d’autoriser/Interdire Java
  • d’autoriser/Interdire Adobe Flash
  • d’autoriser/Interdire d'autres plugins susceptibles d'être lancés par JavaScript
  • d’interdire les "IFRAME"
  • de bloquer les attaques XSS, XSRF, Phishing (Anti-XSS protection)

En termes de validité des restrictions, il est possible :

  • d'autoriser temporairement un site à utiliser le JavaScript et les greffons d'une page au cours d'une session
  • de les autoriser de façon permanente.

Il est à noter que NoScript offre la possibilité d'exclure certaines restrictions du modèle "white list" et d'accorder sa confiance de façon spécifique pour certains sites visités.

Notification

Lors d'un blocage d'un site, NoScript affiche un bandeau signifiant à l'internaute qu'il navigue sur un site potentiellement dangereux. Il existe plusieurs niveaux de notification que l'utilisateur peut paramétrer, afin que les demandes de confirmation répétitives se fassent de façon le plus confortable possible.

De plus, NoScript utilise une icône représentant un "S" dans la barre d'état du navigateur pour spécifier si l'extension a bloqué quelque chose dans la page actuellement visitée. Citons les icones les plus importantes :

  • icône "S" : Aucune restriction sur la page. Le site est de confiance.
  • icône "S" barré : Le site n'est pas de confiance et est potentiellement dangereux.
  • icône "S" partiellement barrée : Le site est partiellement de confiance, c'est-à-dire que certains de ces liens ne sont pas de confiance.

 
Avertissement

Attention, il est fondamental de considérer que : NoScript n'empêchera pas une attaque XSS, XSRF ou autre, si l'utilisateur a fait confiance au site relayant celle-ci ou s'il a fait confiance au site hébergeant le code malveillant de l'attaque.


Conclusion

Pour certains, NoScript est "l'incontournable extension de sécurité" de Firefox. Pour d'autres, elle est "gênante" dans la pratique car certains sites ne s'affichent pas correctement du fait des restrictions d'exécution des contenus dynamiques. Les premiers jugent les apports en termes de sécurité, les seconds les contraintes induites par la validation des sites visités. Il est vrai que pour certains sites le navigateur affiche brutalement une page blanche. Néanmoins, la notification de NoScript montre bien que le contenu est potentiellement dangereux pour la navigation.

Bref, NoScript n'a que le défaut du modèle sur lequel il s'appuie, c'est-à-dire le "white listing".

Sans rentrer dans les débats plus ou moins polémiques sur le sujet "liste blanche vs liste noire" ("Tout ce qui n'est pas autorisé, est interdit" vs "Tout ce qui n'est pas interdit, est autorisé"), NoScript est vraiment une extension qui mérite une attention particulière pour les acteurs de la sécurité. Il est même étonnant que celle-ci n'ait pas été intégrée directement dans le navigateur tant elle est utile.

Le Cert-IST vous encourage donc à la tester et peut être l'adopter.


Pour plus d'informations :

Site Officiel : http://noscript.net/

Extensions : https://addons.mozilla.org

Précedent Précedent Suivant Suivant Imprimer Imprimer