I. Introduction▲
Un navigateur est un logiciel permettant de naviguer sur Internet et d'en afficher les pages web conformes aux principaux standards en vigueur. Ces standards étant nombreux et les types de ressources multimédias disponibles étant variées (script VBScript, document PDF, animation Flash, formule MathML, présentation SMIL, vidéo MPEG4, son MP3…) et parfois propriétaires, il est nécessaire d'ajouter au navigateur des modules provenant d'éditeurs divers. Chacun de ces plug-ins apportant au navigateur ses propres vulnérabilités.
Sa légèreté et sa simplicité d'utilisation font du navigateur une application universelle incontournable et largement déployée sur les PC comme sur les clients légers de type PDA, téléphone mobile… Il est partout ! Ce qui fait de lui une cible privilégiée des pirates désireux de nuire aux internautes.
II. État des menaces▲
L'internaute est menacé via son navigateur d'être victime des attaques suivantes :
III. Éléments d'un navigateur▲
Un navigateur est constitué de modules divers réalisant des fonctions bien déterminées :
- un interpréteur d'URL ;
- un interpréteur de code HTML ;
- un interpréteur de langage de script (JavaScript, VBScript…) ;
- un environnement d'exécution d'applications (Applet Java, ActiveX, plug-ins) ;
- une barre d'outils.
III-A. Interpréteur de code HTML▲
L'interpréteur de code HTML/CSS construit la page web en fonction des instructions de présentation et de mise en page du fichier HTML et des ressources associées (frames, images liées…). Les normes HTML, XHTML, WAP, CSS utilisées par le navigateur pour la construction du rendu de la page sont stables et ne donnent lieu à aucune faille de sécurité. La seule malfonction pouvant apparaître est des erreurs de rendu suite à la mauvaise interprétation des instructions de description.
III-B. Interpréteur de langage de script▲
L'interpréteur de langage de script permet l'exécution côté client de petits programmes permettant d'ajouter du dynamisme et d'interactivité aux pages, ce qui manquait terriblement aux pages statiques écrites en HTML.
Le langage le plus répandu est le JavaScript compréhensible par la plupart des navigateurs (IE, Firefox, Mozilla, Opera, Safari…), mais aussi le VBScript spécifique à Internet Explorer. Ces langages rajoutent un niveau significatif de complexité au navigateur web, ce qui est propice à l'apparition de bug. De plus, un programme informatique, même sous la simple forme de scripts interprétés, est susceptible de réaliser délibérément des actions non autorisées exploitant des bugs connus du navigateur. Certains pouvant jusqu'à permettre l'accès en lecture à des fichiers de l'ordinateur, d'où une fuite possible d'informations confidentielles.
De plus, une simple erreur de programmation d'un script peut provoquer le plantage du navigateur, voire de l'ordinateur. Par exemple, une boucle infinie peut avoir cet effet par saturation de la mémoire (pile d'appels).
III-C. Interpréteur d'URL▲
L'URL est le chemin d'une ressource sur le web, exemple :
http://cyberzoide.developpez.com/graphviz/article/index.php?param=valeur&id=50#LIII
Elle est constituée des éléments suivants :
- protocole utilisé (HTTP, FTP…) ;
- le serveur (nom de domaine ou adresse IP)Â ;
- le chemin dans le système de fichiers du serveur ;
- le nom du fichier ;
- des paramètres ;
- un fragment ;
- d'autres informations optionnelles (utilisateur, mot de passe, port)…
Une URL est une simple chaîne de caractères sans accents.
Il existe deux vulnérabilités connues utilisées par les pirates pour procéder à des attaques par phishing :
- écriture d'une URL falsifiée, mais contenant du texte trompant la confiance (nom d'une banque de confiance) ;
- exploitation d'une erreur d'interprétation du codage des URL afin de diriger l'internaute vers un site falsifié.
III-C-1. URL trompeuse : phishing▲
Par exemple, un internaute peut se voir proposer de se rendre vers des URL falsifiées du type (au lieu de http://www.mabanquedeconfiance.fr) :
- http://www.mabanquedeconfiance.fr.banquefalsifiee.com/;
- http://www.mabanquedeconfiance.fr:id=5454@www.banquefalsifiee.com/;
- http://www.mabanquedeconfiance.fr%00@214.15.29.172;
- http://www.mabank-de-confiance.com.
où il est explicitement écrit l'adresse de ma banque habituelle mabanquedeconfiance.fr, pourtant ce sont des fausses adresses qui pointent vers un site différent : banquefalsifiee.com dont l'aspect graphique sera le même que l'original et me demandera de saisir mes identifiants confidentiels pour m'escroquer. Une simple lettre peut changer dans l'URL afin de tromper l'internaute et le diriger vers un site pirate !
La seule parade et de ne jamais se rendre sur le site de sa banque via des liens trouvés dans des mails ou sur Internet. Il faut recopier l'URL fournie sur les documents (contrats, brochures…) officiels fournis en mains propres par votre banquier lors de l'ouverture de votre compte et disponibles dans votre agence.
III-C-2. Bug de codage des URLÂ : spoofing▲
Des URL trop longues ou comportant certains caractères spéciaux peuvent être mal interprétées et provoquer un bug dans l'affichage : une URL différente de celle réellement visitée sera affichée, trompant ainsi l'internaute.
III-D. plug-ins▲
Les plug-ins sont des modules logiciels ajoutés au navigateur pour en étendre les fonctionnalités. Un plug-in est généralement très spécifique et réalise une tâche particulière, comme la lecture d'un format particulier de vidéo. Un plug-in peut être intégré directement au navigateur ou bien au système d'exploitation qui sera requis par le navigateur pour fournir un moyen de lire un type de ressource particulier (type MIME).
III-D-1. Applets Java▲
Les applets Java sont des applications Java portables distribuées sur le web. Elles s'exécutent dans un environnement d'exécution spécifique appelé une JVM (Java Virtuel Machine). Cette JVM fournit les mécanismes de contrôle et de sécurité permettant d'empêcher un accès frauduleux à l'ordinateur et ses fichiers. Cependant, la JVM n'est pas exempte de bugs exploitables par des webmasters malicieux.
Une applet Java peut posséder une signature électronique certifiant sa provenance, le navigateur contrôlant auprès d'une autorité de certification que le programme est diffusé par tel ou tel éditeur. Cette signature donne une information utile à l'internaute afin de décider d'exécuter ou pas cette applet.
III-D-2. ActiveX▲
Les ActiveX sont eux aussi des programmes autonomes intégrés aux pages web et s'exécutant sur l'ordinateur de l'internaute. Contrairement aux JVM, rien n'empêche un ActiveX d'accéder directement aux ressources intimes de l'ordinateur et aux fichiers de l'utilisateur.
Le navigateur demande à l'internaute s'il veut faire confiance à l'ActiveX, mais cette relation de confiance est biaisée dans le cas où l'utilisateur est novice. Un ActiveX peut lui aussi posséder une signature électronique destinée à certifier sa provenance, permettant ainsi à l'utilisateur de décider du niveau de confiance à accorder à ce programme en fonction de l'éditeur.
III-D-3. Lecteurs multimédias▲
Le navigateur possède en interne les moyens de lire et d'afficher les types de ressources de base du web : les pages HTML, les feuilles de style CSS, les pages mobile WAP, les images GIF, JPEG et PNG, les sons WAV et MID. En revanche, il existe sur le web un grand nombre d'autres formats très répandus qu'il ne sait pas lire. Pour parer à cette limitation, il délègue à d'autres applications le soin de lire et afficher le contenu de ses ressources.
Quelques formats populaires lus par des plug-ins :
Nom |
Type |
Extention |
Principaux lecteurs |
---|---|---|---|
document texte enrichi portable |
|
Adobe Reader |
|
Flash |
animation multimédia |
swf |
Macromedia Flash Player |
présentation multimédia |
smil |
RealOne, QuickTime |
|
vidéo enrichie |
mpeg |
Real Player |
|
MOV |
vidéo |
mov |
QuickTime |
MathML |
formule mathématique de calcul formel |
mml |
MathPlayer |
VRML |
animation 3D |
wrl |
Cosmo |
Et évidemment, les vulnérabilités de chacun de ces plug-ins s'ajoutent à celles du navigateur. La popularité d'un plug-in attisant le désir des pirates d'en découvrir des bugs afin de les exploiter.
III-D-4. Barre d'outils▲
Les divers outils à placer en barre d'outils du navigateur sont des petits programmes au comportement pas toujours bien documenté puisque beaucoup d'entre eux contiennent des spywares : des modules espions transmettant des informations à votre insu sur vos sites visités, les mots de passe saisis, vos documents personnels…
L'installation d'un tel outil doit se faire avec précaution : il faut en connaître l'auteur et décider de la confiance à lui accorder.
Par exemple un plug-in permet de discuter en ligne avec les autres visiteurs du site en cours de visite, et potentiellement de se faire espionner ses discussions.
Le propre d'un plug-in en barre d'outils est d'être actif dès le lancement du navigateur et pour toute la durée de son exécution, certains en profitent pour espionner les sites visités, les mots clés de recherche, les mots de passe saisis, les emails envoyés… D'où le problème de sécurité !
IV. Conclusion▲
Avant d'installer quoi que ce soit sur son ordinateur et d'autoriser l'exécution d'un code exécutable d'une page web, il faut toujours contrôler l'origine du programme. Si l'éditeur n'est pas une société de confiance, alors il faut le refuser.
Ne jamais se rendre sur une page exigeant une authentification à partir une demande venue du web ou d'un lien trouvé sur le web. Il faut s'y rendre à partir des URL obtenues de façon sûre et officielle et recopiée au clavier puis placée en favori.
Le navigateur peut contenir des bugs, mais on peut en éviter facilement l'exploitation par des pirates par un comportement adéquat de l'utilisateur qui doit s'informer et se former sur les attaques possibles. L'utilisateur est à 95 % le maillon faible de la chaîne de sécurité en acceptant naïvement de faire tout ce que des inconnus mal intentionnés lui demandent.
Mettez à jour votre navigateur, optez pour une mise à jour automatique si cette option existe ! Utilisez de préférence l'un des navigateurs les plus répandus afin de profiter d'une équipe de développeurs motivés :
Systèmes d'exploitation |
Navigateurs |
---|---|
Windows |
Internet Explorer, Mozilla, Firefox, Opera |
Linux |
Mozilla, Firefox, Konqueror |
Mac OS |
Safari, Camino |
Voir aussi▲
Pour en savoir plus sur le comportement d'un navigateur web, je vous recommande la lecture de l'article Le Comportement des Navigateurs Internet de Mathieu Lemoine. Ce document PDF ActiveX et la sécurité de Frédéric Comte vous en dira plus sur les risques inhérents à l'utilisation des ActiveX.
Remerciements▲
Merci à buchs pour sa relecture orthographique.