Noscript

NoScript

Wikipedia nous dit à son sujet:

Il a été classé parmi les 100 meilleurs produits de 2006 par PC World. Le principe de blocage par défaut et ses mises à jour fréquentes lui ont donné une réputation de sûreté.Son utilisation a été qualifié de pratique sûre de navigation sur Internet par le United States Computer Emergency Readiness Team.

Cependant, inscrire les sites dans la liste blanche peut s'avérer fastidieux pour un utilisateur classique, et les alertes de sécurités pénibles.

Fonctionnement simple

Sécurité et utilisation

Utiliser NoScript est relativement simple. Après l'installation, JavaScript, Java, Flash, Silverlight et les autres contenus exécutables sont par défaut bloqués dans le navigateur[2]. Ensuite, l'utilisateur peut explicitement permettre à ce type de contenu de s'exécuter, éventuellement de manière temporaire. Par rapport à une liste noire, le fonctionnement avec une liste blanche permet une défense plus efficace contre les exploitations des failles de sécurités.

NoScript se présente dans Firefox sous la forme d'un bouton discret dans la barre d'état, qui permet d'ouvrir un menu afin de configurer NoScript. L'utilisateur peut aussi afficher une barre d'outils. Lorsqu'un script est bloqué, une notification semblable à celle annonçant une pop up apparaît, autorisant l'utilisateur à maintenir le blocage ou à autoriser le script.

Fonctionnement de la liste blanche

La liste blanche est l'inventaire des sites dont les scripts sont autorisés. Un site faisant partie de la liste blanche a la permission d'utiliser tous les protocoles. L'utilisateur peut autoriser une adresse exacte, ce qui autorise implicitement tous les sous répertoires, et autoriser un nom de domaine, ce qui a pour effet d'autoriser les pages appartenant à ce domaine ainsi qu'à tous les sous domaines.

Les premières versions de NoScript bloquaient par défaut seulement le Javascript et le Java. Dans la dernière version, le Flash et autres plugins le sont aussi, afin d'éviter les attaques XSS basés sur Flash ainsi que l'exploitation des failles de différents plugins.

Liste noire

NoScript possède aussi un système de liste noire. Les sites présents dans la liste noire voient leur contenu bloqué au même titre qu'un site inconnu. En revanche, le blocage n'est pas notifié à l'utilisateur à chaque fois qu'un script tente de s'exécuter. Cette fonctionnalité est donc particulièrement utile en ce qui concerne les sites auxquels l'utilisateur est souvent confronté[6

Protection contre XSS

NoScript contre les failles XSS basées sur le DOM ainsi que les attaques XSS dirigées vers des sites appartenant à la liste blanche.Lorsque qu'un tel cas de figure se présente, l'utilisateur en est averti et peut éventuellement choisir de bloquer la requête soupçonnée d'être malicieuse. Les requêtes dont l'origine et la destination sont des sites de la liste blanche sont aussi filtrées.

Le cross-site scripting

Le cross-site scripting, abrégé XSS, est un type de faille de sécurité des sites Web, que l'on trouve typiquement dans les applications Web qui peuvent être utilisées par un attaquant pour provoquer un comportement du site Web différent de celui désiré par le créateur de la page (redirection vers un site, vol d'informations, etc.). Il est abrégé XSS pour ne pas être confondu avec le CSS (feuilles de style), X étant une abréviation commune pour « cross » (croix) en anglais

Le principe est d'injecter des données arbitraires dans un site web, par exemple en déposant un message dans un forum, mais aussi par des paramètres d'URL, etc.

Cross-site_scripting_wikipedia_en_Fr

liens

Une fois encore dans le domaine de la sécurité, c'est Pierre Pinard le plus loquace. Il a déjà été dit et répété que son protocole de sécurisation, quoique long et laborieux sous windows est indispensable.

Il nous offre ici un article sur la configutation avancée d'une ancienne version de noscript sur firefox windows. Elle reste extrêmement utile pour Firefox Linux.

assiste_logitheque_noscript

Selon lui, NoScript fait partie des 3 modules complémentaires de Firefox totalement indispensables (NoScript, AdBlock Plus et CookieSafe).

Divers liens avancés

attention-noscript-users

dear-adblock-plus-and-noscript-users_par_maone

Sur ce dernier point, je dis faux ! Une fois vos sites fiables enregistrés, il est facile de surfer. Par aventure, si vous n'aimiez pas cette extension, testez Opera, il fonctionne de façon sécurisée par défaut, parfois trop.

Paramétrage avancé

Paramétrage du navigateur

Commençons par paramètrer le navigateur lui-même afin que ses réglages n'interfèrent pas avec ceux de NoScript.Dans Firefox, cliquez sur :

Outils > Options > Onglet “Contenu” (dans FF pour Win, dans FF pour linux, Edition, préférences) et cochez les cases “Activer JavaScript” et “Activer Java”. C'est désormais NoScript qui prend en charge cette gestion d'activation / désactivation.

La coche java n'est plus présente depuis plusieurs mois!

Accès aux options de paramétrage de NoScript

En bas à droite de la fenêtre de votre navigateur, faire un clic avec n'importe quel bouton de la souris sur l'icône NoScript pour faire apparaître le menu contextuel de NoScript puis cliquez sur “Options”. Nous allons le paramétrer

Ou cliquer sur le bandeau noscript.

Panneau "Général"

Autoriser temporairement les sites de premier niveau par défaut.

Il est conseillé de laisser cette case décochée (elle est décochée par défaut). Lorsqu'elle est cochée, le premier niveau d'URL d'un domaine (généralement la page d'accueil d'un site mais pas toujours) est autorisé à exécuter ses scripts systématiquement (à l'exclusion, toutefois, des scripts dans des sous-cadres (frames), des objets embarqués (objets média…) et des scripts de sites que vous avez marqué “Non fiables”.

Clic gauche sur le bouton de la barre d'outils NoScript inverse les permissions pour le site de premier niveau en cours Cette option permet un “raccourci” pour autoriser / bloquer rapidement l'exécution des scripts sur un site. Il est recommandé de laisser cette case décochée et de cliquer sur le bouton option afin de voir ce qui se passe. Si vous souhaitez utiliser ce raccourci, faites-le précisément (pour les adresses complètes).

Recharger les pages affectées automatiquement après avoir changé les permissions

Cochez cette case. Ceci vous évitera d'avoir à cliquer sur le bouton “Actualiser la page courante”. La page actuellement affichée sera ré-affichée automatiquement en tenant compte de vos derniers paramétrages.

Autoriser les sites ouverts par les marque-pages

Dépend de la manière dont vous remplissez vos marque-pages (signets). Si vos marque-pages (signets) sont tous des sites de confiance, vous pouvez cocher cette case sinon la laisser décocher. Si vous autorisez les sites ouverts par les marque-pages, ceux-ci deviennent une seconde liste blanche.

Autoriser les sites globalement

Ne jamais cocher cette case (ou alors, autant désinstaller NoScript !). Il faut considérer cette case comme un outil de test, pratique dans un seul cas : vérifier si un blocage provient de Noscript (mais seulement si on est sur un site fiable, bien sûr).

Panneau "Liste blanche"

Liste de vos sites de confiance. Toutes les pages de tous ces sites sont autorisées à exécuter leurs scripts. Les boutons “Importer” et “Exporter” permettent de sauvegarder votre liste blanche ou d'en importer une (format texte).

websites in the default whitelist

Extrait de la FAQ de l'auteur (en Anglais)

Q: What websites are in the default whitelist and why?

A: If you're a security-minded user, you probably want to build your own customized whitelist suiting your needs and keep it as short as you can. Therefore, when you install NoScript for the first time, you've got a very short default whitelist of sites you can trust:

1. chrome: It's the only “permanent” one. It can't be removed because it is the privileged pseudo-protocol used by Firefox internal scripts: disabling it would prevent the browser itself from working.

2. about:xyz A bunch of about: internal pseudo URLs. You'd better keep them there because they help your browser to work as expected.

3. addons.mozilla.org and mozilla.net

The add-ons Mozilla website and the domain serving its static content for performance reasons. You probably installed NoScript and any other extension you've got from there. You trust these guys, don't you?

4. noscript.net, flashgot.net, informaction.com, maone.net My own websites. You just installed a software of mine on your system, running with the privileges of your web browser. If you don't trust me, you've got a much bigger problem than JavaScript on my websites ;) Notice that I intentionally left out hackademix.net, because it contains user-generated content (blog comments) and it could occasionally host security-related proof of concepts for didactic purposes, which you may want to allow explicitly.

5. paypal.com, paypalobjects.com (Paypal)

6. gmail.com, google.com nad googleapis.com (GMail and other Google services)

hotmail.com, live.com, microsoft.com, msn.com, passport.com, passport.net, passportimages.net, js.wlxrs.com (Microsoft webmail services)

yahoo.com, yimg.com, yahooapis.com (Yahoo! Mail)

All these sites have been added to enable JavaScript on the most popular AJAX-based webmail services “out of the box”. This way, even if a user installs NoScript without understanding what he's doing, and he's got no idea about how NoScript works, he can still ask for help by email.

Obviously, if any of the entries above (except chrome:) bothers you for any reason, you can delete it at any time by using either NoScript Options|Whitelist|Remove or the regular Forbid commands.

Panneau Objets embarqués

Autrefois appelé “Greffons” (plugins).

Restrictions supplémentaires pour les sites à risque

Si seul Java est bloqué par défaut (en plus de JavaScript qui est le fonctionnement principal de NoScript), plusieurs autres greffons (plugins) peuvent également être bloqués. Ceci ajoute, outre l'élément de sécurité, un élément de vitesse puisque les contenus média ne seront alors par téléchargés du tout, libérant ainsi votre bande passante Internet et accélérant considérablement la vitesse d'affichage des pages qui, en sus, apparaissent beaucoup plus “propres”.

Un gain substantiel est, par exemple, la suppression des musiques de fond dont nous affligent certains Webmasters fiers de leurs choix, très sûrs pour eux mais d'une nullité crasse pour les visiteurs que l'on tente de transformer en auditeurs exaspérés.

Tout ce que vous trouvez ennuyeux peut ainsi être bloqué puis, si sur un site en particulier, il vous semble qu'une fonction manque, vous pouvez alors l'autoriser en l'introduisant dans votre liste blanche (et à condition que la case “Appliquer ces restrictions également aux sites de confiance” ne soit pas cochée).

Interdire java, flash, video audio, silverlight,iframes; etc, détail ci-dessous.

Interdire <IFRAME>

Cette case devrait toujours être cochée. <IFRAME> est une possibilité, sur une page Web, de faire apparaître le contenu d'un autre site sur le sien comme si ce contenu était le sien et appartenait à la page courante - ce contenu peut être visible ou invisible (voir caché). Cette possibilité est massivement employée pour piéger des pages Web et faire exécuter sur une page un contenu actif (injection de code) venant d'ailleurs et tentant d'échapper au contrôle effectué sur le site courant (sur l'URL courante). Un échange de données peut également être établi entre les deux sites (Cross Site Scripting - Xss). <IFRAME> doit toujours être interdit. Toutefois, si vous étendez le blocage des plugins aux sites dans votre liste blanche (case cochée “Appliquer ces restrictions également aux sites de confiance”) et si vous utilisez l'option XSS (voir panneau “Avancé” - onglet “XSS”), cocher cette case <IFRAME> n'apporte pas grand chose de plus car vous êtes, à ce moment là, convenablement protégé contre les exploits basés sur la faille <IFRAME>.

Appliquer ces restrictions également aux sites de confiance

Selon ce que vous mettez dans votre liste blanche, vous pouvez :

Laissez décochée cette case. Dans ce cas, les sites de confiance sont “entièrement de confiance”, pour leurs scripts comme pour leurs autres contenus actifs

Cochez cette case. Dans ce cas, les sites de confiance sont de confiance pour JavaScript et ne sont pas de confiance pour les restrictions supplémentaires exprimées.

Afficher l'emplacement fictif de l'objet bloqué

Cochez cette case, ce qui permet de voir qu'il manque quelque chose et, également, de préserver la mise en page. L'objet manquant est figuré, sur la page, par le logo semi transparent de NoScript. Exemple :

Demander confirmation avant de débloquer temporairement un objet

Vous pouvez cliquer sur une zone de l'écran contenant un script bloqué afin de le débloquer. L'objet reçoit alors une autorisation temporaire d'exécution. Cochez cette case de manière à ce que le lancement d'un tel script soit précédé d'une demande de confirmation.

Panneau "Apparences"

Ici est choisi ce qui va être affiché lorsque l'on clique sur le bouton “option”, en bas à droite de la fenêtre du navigateur

Panneau "Notifications"

Ici est choisi la manière dont NoScript interagit avec vous.

Panneau "Avancé - Non Fiable"

S'applique à tous les sites marqués “Non Fiables” dans votre liste de “Non Fiables” ainsi qu'à tous les nouveaux sites qui sont considérés comme “Non fiables” par défaut.

Interdire les bookmarklets

Les “bookmarklets” sont de petits scripts qui peuvent être inclus dans un lien (HTML ou marque-pages…)

Interdire <a ping..>

Instruction “ping” que l'on peut trouver dans certaines URL (dans certains liens) et servant de traceur pour comptabiliser les clics des visiteurs. J'invite ceux qui souhaitent savoir de quoi il s'agit à lire, par exemple, cette page.

Cacher les éléments <NOSCRIPT>

Un script JavaScript peut être prévu, par son développeur, pour afficher un contenu de remplacement lorsque JavaScript est désactivé chez le visiteur du site. Ce contenu est mis entre les balises <noscript> et </noscript> d'un script. Le contenu peut être un texte du genre “Ce site nécessite JavaScript pour fonctionner - Merci de l'activer”. Ce peut aussi être n'importe quoi d'autre, au bon vouloir du webmaster, y compris une duplication complète de la page sans script (le webmaster développant alors son site pour ceux ayant JavaScript et pour ceux le refusant)… Vous pouvez donc demander à ce que ces contenus alternatifs ne soient pas utilisés en cochant cette case.

Interdire les "Web Bugs"

Les “Web Bugs” sont des images microscopiques et invisibles (images de 1 pixel transparent, par exemple) situées sur des serveurs de tracking. Elles sont utilisées uniquement pour l'espionnage de votre navigation. Il est préférable de les désactiver. Pour en savoir plus, lire Web Bugs. Elles permettent au serveur de récupérer toutes ces informations et celles-ci.

Interdire les redirections META dans des éléments <NOSCRIPT>

Ceci se trouve entre les balises <noscript> et </noscript> d'un script. Il s'agit de vous rediriger en utilisant une balise de redirection immédiate, généralement vers une page spéciale du site vous expliquant qu'il faut JavaScript pour pouvoir naviguer sur le site (mais le lien de redirection peut rediriger vers n'importe quel page du Web. Exemple : <noscript><META http-equiv=“refresh” content=“0”;URL=/erreur_javascript.html“></noscript>. Vous pouvez donc demander à ne pas être redirigé.

Essayer de réparer les liens JavaScript

Lorsque des liens sont écrits avec du JavaScript et alors que NoScript bloque JavaScript pour ce site, il peut tenter de reconstruire des liens “normaux” en remplacement des liens en JavaScript

Panneau "Avancé - Fiable"

S'applique à tous les sites que vous avez inscrits dans votre liste blanche.

Panneau "Avancé - XSS"

Gestion du Cross Script Scripting Ce paramétrage supprime le passage d'arguments dans les requêtes d'un site à un autre site. Des exceptions peuvent être spécifiées en utilisant des “expressions régulières” (une par ligne).

Panneau "Avancé - HTTPS"

What's HTTPS and why is that important for NoScript users?

HTTPS stands for “Hypertext Transfer Protocol over Secure Socket Layer”, and you can figure it as HTTP (the protocol you usually retrieve web pages with) over a secure encrypted connection.

It is meant to protect you from eavesdroppers and man-in-the-middle attacks.

An important feature of HTTPS is that if a web site has a valid digital certificate for its identity, as verified automatically by your browser, you can be reasonably sure it is the one it says to be.

You can recognize HTTPS web sites by looking at their addresses, always beginning with "https://". Firefox hilights sites having a valid certificate turning part of the location bar to blue or green.

Since NoScript security is largely based on domain names, a malicious party capable of spoofing a trusted site might work-around your whitelist.

This kind of spoofing may happen through a DNS Hijacking attack or because you're using an untrusted proxy server, like many anonymizers including Tor.

The former risk can be mitigated by configuring a static secure DNS, e.g. OpenDNS, and forcing its usage even if you're roaming with your laptop.

Untrusted proxies or connectivity providers are harder to tame, because a man-in-the-middle could inject arbitrary content in any non-secure (non-HTTPS) page.

In order to mitigate these issues, NoScript can be configured to honor your whitelist only if the current page is served through HTTPS, and therefore cannot be spoofed. Additionally, NoScript can help you forcing your most sensitive sites to always use HTTPS, and mitigating cookie hijacking.

Allow only the sites of my whitelist which are served through HTTPS 

6.2 Q: How can I tell NoScript to allow only the sites of my whitelist which are served through HTTPS ?

A: Open NoScript Options|Advanced|HTTPS|Behavior,

click under Forbid active web content unless it comes from a secure (HTTPS) connection and choose one among:

Never

1. Every site matching your whitelist gets allowed to run active content.

Proxies

2. When using a proxy (recommended with Tor) - only whitelisted sites which are being served through HTTPS are allowed when coming through a proxy. This way, even if an evil node in your proxy chain manages to spoof a site in your whitelist, it won't be allowed to run active content anyway.

Always

3. Always - no page loaded by a plain HTTP or FTP connection is allowed.

Force some sites to always use HTTPS

6.3 Q: Can NoScript force some sites to always use HTTPS? A:Yes, just open NoScript Options|Advanced|HTTPS|Behavior,

entering the sites you want to force in the topmost box, and those you want to always leave alone in the bottom one.

You can use space-separated simple strings, which will be matched as “starts with…”, glob patterns like *.noscript.net and full-fledged regular expressions.

If, for instance, you want HTTPS to be forced on every Google application excluding Search and iGoogle, you can put

*.google.com 

in the “Force” box and

www.google.com/search www.google.com/ig

in the “Never” box. (the latter can be of course rewritten as a

^https?://www\.google\.com/(?:search|ig)\b.*

regular expression).

Notice that NoScript provides also a mechanism for web site to declare they want SSL forced on their connections..

6.4Q: What can NoScript do against HTTPS cookie hijacking ?

A: HTTPS cookie hijacking happens when a site sets sensitive cookies (e.g. those identifying authenticated sessions) over HTTPS connections but “forgets” to flag them as “Secure”.

This means that subsequent unencrypted (non-HTTPS) requests for the same site will leak the session cookies away, even if you logged in securely.

NoScript provides means to mitigate this issue, configurable in

NoScript Options|Advanced|HTTPS|Cookies.

If Enable Automatic Secure Cookies Management is checked, NoScript will try to “patch” insecure cookies set by HTTPS sites on the fly:

1. If the site matches the “Ignore unsafe cookies…” pattern list, NoScript lets its cookies pass through untouched

2. If the site matches the “Force encryption for all the cookies…” pattern list, NoScript appends a ”;Secure“ flag to every non-secure cookie set by this response

3. Otherwise, NoScript just logs unsafe cookies

BUT if no secure cookie is set in a HTTPS transaction setting other (unsafe) cookies, NoScript patches all these cookies with ”;Secure“ like in #2. However, if a navigation from an encrypted to a non-encrypted part of the same site (i.e. sharing the same cookies) happens in the same tab, NoScript removes its ”;Secure“ patch to ensure compatibility. When it happens, this event is logged to the Error Console, along with a recommendation to try forcing HTTPS by listing this site in the HTTPS|Behavior|Force section.

Cannot login on some sites.

6.5 Q: I cannot login on some sites. Since I've got Automatic Secure Cookie Management enabled, I cannot login on some sites. What's happening ?

Sites qui gérent mal l'authentification en laissant celle ci être lue par la partie non sécurisée du même site ou d'autres sites

A: Some web sites depend on very complicated domain interrelations and, while they handle sign on on a certain domain through a secure HTTPS channel, they need to propagate authentication across multiple domains which do not support HTTPS. NoScript tries its best to gracefully degrade in these situation which simply cannot be protected, but some sites are just too complex not to break and login fails. In this case, you've got two options:

1. If you're in a hurry, disable Automatic Secure Cookie Management, clear your cookies (at least those for the site you're trying to enter) from

Firefox's Options|Privacy|Cookies and retry logging in. It should just work.

Etudier le problème en 5 minutes

2. If you've got a few minutes to investigate,

check your Tools|Error Console output for lines starting with "[NoScript HTTPS] AUTOMATIC SECURE on https://www.somewebsite.com";

open NoScript Options|Advanced|HTTPS|Cookies

and add *.somewebsite.com to the Ignore unsafe cookies… list.

Close NoScript Options with “OK”, clear your cookies (at least those for somewebsite.com) from Firefox's Options|Privacy|Cookies and try to log in.

If, for instance, you can't login on www.ebay.com , the problem can be fixed adding *.ebay.com to NoScript Options|Advanced|HTTPS|Cookies|Ignore unsafe cookies...

and possibly resetting your cookies. If the problem happens on http://twitter.com (notice there's no “www.” there), you'll need to put both twitter.com and *.twitter.com to match both the top domain and the subdomains.

Whatever solution you choose, I'd appreciate you to send me any [NoScript HTTPS] line you may find in Tools|Error Console (possibly anonymizing authentication tokens) for analysis, so I can better tweak this very new feature.

Web sites tell NoScript to always force HTTPS on its domain

6.6 Q:Can a web site tell NoScript to always force HTTPS on its domains ?

A:Yes, it can. NoScript features the 1st public implementation of the Strict Transport Security mechanism. A website, e.g. http://paypal.com, just needs to sent a Strict-Transport-Security: max-age=31536000;includeSubdomains header to protect itself and its subdomains (e.g. www.paypal.com) for one year. Notice that noscript provides also a way for users to force SSL on sites of their choice.

Panneau "Avancé - ABE"

A compléter

Panneau "Avancé - Filtres Externes"

A compléter
noscript.txt · Dernière modification: 2012/03/04 10:12 (modification externe)
GNU Free Documentation License 1.3
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5