Firefox prend en charge le blocage des sites malveillants de Google depuis 2005 quand il a commencé en tant qu’extension autonome de Firefox. Dans un premier temps, disponible uniquement aux États-Unis, il a été mis à disposition du reste du monde en 2006 et migré vers la barre d’outils Google. Il a ensuite été intégré directement dans Firefox 2.0 avant le lancement public du service en 2007.

Beaucoup de gens semblent perplexes devant ce système de protection contre l’hameçonnage et les logiciels malveillants et, bien qu’il y ait une plutôt bonne explication de son fonctionnement sur notre site d’assistance, elle n’entre pas dans les détails techniques. Notre article intéressera, je l’espère, ceux qui ont davantage de questions sur le sujet.

Protection de la navigation

La partie principale du système de blocage des sites malveillants est celle qui veille aux URL dangereuses pendant que vous naviguez. La protection de la navigation protège actuellement les utilisateurs des :

Si un utilisateur de Firefox tente de consulter un de ces sites, une page d’alerte apparaîtra à la place, ce que vous pouvez voir par vous même ici :

Les deux premières alertes peuvent être désactivées en utilisant (dans about:config) la préférence browser.safebrowsing.malware.enabled tandis que la dernière est contrôlée par browser.safebrowsing.enabled.

Mises à jour de la liste

Ce serait trop lent (et une ingérence dans la vie privée) de contacter un serveur de confiance à chaque fois que le navigateur veut établir une connexion avec un serveur web. Firefox télécharge plutôt une liste de mauvaises URL toutes les 30 minutes depuis le serveur (browser.safebrowsing.provider.google.updateURL) et fait une recherche dans sa base de données locale avant de présenter une page à l’utilisateur.

Télécharger la liste entière des sites signalés par le blocage des sites malveillants serait impraticable à cause de sa taille, donc les changements suivants sont appliqués :

  1. chaque URL de la liste est mise en forme de façon canonique,
  2. puis hashée,
  3. et seuls les premiers 32 bits du hash ne sont conservés.

Les listes qui sont demandées au serveur de blocage des sites malveillants et utilisées pour marquer les pages comme malveillantes/indésirables ou d’hameçonnage peuvent être respectivement trouvées dans urlclassifier.malwareTable et urlclassifier.phishTable.

Si vous voulez voir des informations de débogage dans votre terminal quand Firefox télécharge les listes mises à jour, activez browser.safebrowsing.debug.

Une fois téléchargées, les listes peuvent être trouvées dans le dossier de cache :

  • ~/.cache/mozilla/firefox/XXXX/safebrowsing/ sur Linux
  • ~/Library/Caches/Firefox/Profiles/XXXX/safebrowsing/ sur Mac
  • C:\Users\XXXX\AppData\Local\mozilla\firefox\profiles\XXXX\safebrowsing\ sur Windows

Résoudre les conflits des hash partiels

Puisque la base de données du blocage des sites malveillants ne contient que des hashes partiels, il est possible qu’une page inoffensive partage le même préfixe de hash 32-bit qu’une mauvaise page. Par conséquent, quand une URL correspond à une entrée de la liste locale, le navigateur a besoin de savoir si oui ou non le reste du hash correspond à l’entrée de la liste de blocage des sites malveillants.

Afin de résoudre de tels conflits, Firefox demande au serveur de blocage des sites malveillants (browser.safebrowsing.provider.mozilla.gethashURL) tous les hashes qui commencent par le préfixe 32-bit concerné et ajoute ces hashes entiers à sa base de données locale. Activez browser.safebrowsing.debug pour voir des informations de débogage dans le terminal pendant que ces demandes d’« achèvement » sont faites.

Si l’URL en cause ne correspond à aucun de ces hashes, le chargement a lieu comme d’habitude. Si elle correspond à un d’eux, une page d’alerte interstitielle est affichée et le chargement est annulé.

La protection des téléchargements

La seconde partie du système de blocage des sites malveillants protège les utilisateurs contre les téléchargements malicieux. Elle a été lancée en 2011, intégrée dans Firefox 31 sur Windows et activée dans Firefox 39 sur Mac et Linux.

Cela fonctionne à peu près ainsi :

  1. Télécharge le fichier.
  2. Vérifie l’URL principale, le référent et la chaîne de redirection dans une liste de blocage locale (urlclassifier.downloadBlockTable) et bloque le téléchargement en cas de correspondance.
  3. Sur Windows, si le binaire est signé, vérifie la signature dans une liste blanche locale (urlclassifier.downloadAllowTable) des éditeurs connus favorablement et libère le téléchargement si une correspondance est trouvée.
  4. Si le fichier n’est pas un fichier binaire alors libère le téléchargement.
  5. Sinon, envoie les métadonnées au serveur distant de réputation des applications (browser.safebrowsing.downloads.remote.url) et bloque le téléchargement si le serveur indique que le fichier n’est pas sûr.

Les téléchargements bloqués peuvent être débloqués en effectuant un clic droit depuis le gestionnaire de téléchargements et en choisissant « Débloquer ».

Alors que la fonction de protection est automatiquement désactivée quand la protection contre les logiciels malveillants (browser.safebrowsing.malware.enabled) est désactivée, elle peut être désactivée indépendamment grâce à la préférence browser.safebrowsing.downloads.enabled.

Notez que l’étape 5 est le seul point pour lequel de l’information à propos du téléchargement est partagée avec Google. Cette requête distante peut être supprimée grâce à la préférence browser.safebrowsing.downloads.remote.enabled pour les utilisateurs préoccupés par l’envoi de métadonnées à une tierce partie.

Typologie des logiciels malveillants

Le service de réputation des applications original devait protéger les utilisateurs contre les téléchargements « dangereux », mais il a récemment été étendu pour aussi avertir les utilisateurs sur les logiciels indésirables ainsi que les logiciels qui ne sont pas communément téléchargés.

Ces diverses alertes peuvent être activées et désactivées dans Firefox à l’aide des préférences suivantes :

  • browser.safebrowsing.downloads.remote.block_dangerous
  • browser.safebrowsing.downloads.remote.block_dangerous_host
  • browser.safebrowsing.downloads.remote.block_potentially_unwanted
  • browser.safebrowsing.downloads.remote.block_uncommon

… et testées en utilisant la page de tests de Google.

Si vous voulez voir comment chaque « verdict » est retourné par le serveur, vous pouvez jeter un œil aux résultats de la télémétrie pour Firefox bêta.

Vie privée

Un des malentendus les plus persistants sur le blocage des sites malveillants est l’idée que le navigateur doit envoyer toutes les URL visitées à Google pour vérifier si oui ou non elles sont sûres.

Alors que c’était une option dans la version 1 du protocole de blocage des sites malveillants (comme le révèle leur politique de confidentialité à cette époque). La prise en charge de ce « mode amélioré » a été retiré dans Firefox 3 et le serveur de la version 1 a été mis hors service fin 2011 en faveur de la version 2 de l’API de blocage des sites malveillants qui ne propose pas ce type de vérification en temps réel.

Google a explicitement déclaré que les informations collectées dans le cadre du service d’exploitation de la navigation sécurisée « sont seulement utilisées pour marquer les activités malicieuses et n’est jamais utilisé autre part chez Google » et que « les requêtes de le blocage des sites malveillants n’ont pas été associées avec votre compte Google ». En outre, Firefox ajoute quelques protections de la vie privée :

Les paramètres des chaînes de demandes (query string) expurgés des URL que nous vérifions dans le cadre de la fonction de protection des téléchargements.

Les cookies enregistrés par les serveurs de navigation privée pour protéger le service des abus sont stockés dans une archive jar de cookies séparée pour qu’ils ne soient pas mélangés avec les cookies de navigation/session normaux.

Lors de la demande des hashes complets pour un préfixe 32-bit, Firefox envoie un certain nombre d’entrées de « bruits » pour obscurcir davantage l’URL originale.

Tous comptes faits, nous croyons que la plupart des utilisateurs voudront conserver la navigation privée activée, mais nous avons aussi facilité sa désactivation pour les utilisateurs avec des exigences particulières.

Aller plus loin…

Si vous voulez en apprendre davantage sur la façon dont fonctionne le blocage des sites malveillants dans Firefox, vous pouvez trouver tous les détails techniques sur les pages du wiki de Mozilla sur le blocage des sites malveillants et sur la réputation des applications ou vous pouvez poser des questions sur notre liste de diffusion.

Google fournit quelques statistiques intéressantes sur ce que leurs systèmes détectent dans leur rapport de transparence et propose un outil pour découvrir pourquoi une page en particulier a été bloquée. Des informations sur la façon dont les sites d’hameçonnage sont détectés sont aussi disponibles sur le blog sécurité de Google, mais pour des informations plus détaillées sur toutes les parties du système de blocage des sites malveillants, consultez les articles (PDF) suivants :

-- François Marier

Licence : CC By-SA 4.0



Traduction et relecture : Mozinet, Théo, Guapyo-JeffD, Abdel et anonymes