Guide d'autodéfense numérique

Dans l'évolution du web et de ses navigateurs, il est rapidement devenu clair que pour avoir un minimum d'interactivité, il était nécessaire qu'une partie du code source du site web soit exécutée du côté du client, par le navigateur, et non sur le serveur web qui héberge le site.

Cela a plusieurs aspects pratiques : du côté du serveur web, c’est du travail en moins et des économies sur le matériel. Du côté du client, l'affichage et les fonctionnalités du site sont accélérés. Cela permet aussi de minimiser le trafic réseau entre le navigateur et le site web : plus besoin de demander une page complète du site à chaque fois que l'on clique sur un petit bouton, seul un petit fragment de la page doit être transmis.

Des technologies ont été ajoutées aux navigateurs web pour permettre ces fonctionnalités : JavaScript et Ajax, Flash et Java en sont les principaux représentants.

Mais ces petits plus ont également un coût : comme précisé plus haut, cela signifie que l'auteur d'un site est en mesure d'exécuter le code de son choix sur l'ordinateur des personnes qui le visitent (ce qui pose de nombreux problèmes de sécurité, comme nous l'avons vu dans le premier tome de ce guide). Bien sûr, des protections ont été mises en place au sein des navigateurs1, mais elles ne couvrent pas tous les risques et ne remplacent en tout cas pas la vigilance des internautes2.

D'autant que ces technologies ont parfois des fonctionnalités qui, si elles peuvent être utiles, posent question : ainsi, Flash ou WebRTC3 peuvent accéder au micro et à la caméra de l'ordinateur sur lequel ils sont exécutés4. Et dans le cas de Flash, il s'agit d'un logiciel propriétaire... L'usage de Flash est également problématique car l'intérieur même du moteur d'exécution ne peut être inspecté, et les corrections de trous de sécurité ne peuvent être faites que par la société Adobe qui le distribue.

On a vu que placer sa confiance dans un logiciel était un choix complexe. Dès lors, l'exécution de ce genre de programmes pose des questions quant au pouvoir donné aux auteurs de sites ou d'applications web d'accéder aux ressources de notre ordinateur, et aux informations qu'il contient.

De plus, avant d'être exécutés par le navigateur, ces bouts de code transitent par le réseau, souvent sans aucune authentification. Cela laisse le loisir aux personnes malintentionnées et bien placées de les modifier, tout comme le reste d'une page web. Pour y introduire, par exemple, un logiciel malveillant. Il est aussi possible de jouer avec les données que ces codes doivent traiter pour tenter de détourner leur usage. Ce genre de manipulation de pages web a par exemple été détecté par le passé lors de l'utilisation du point d'accès Wi-Fi d'un hôtel à New York qui utilisait un équipement réseau dédié à cette tâche.5

Au final, un navigateur web moderne a tellement de fonctionnalités qu'un éventuel adversaire dispose d'un nombre considérable d'angles d'attaque.


  1. Il s'agit en général de ne donner accès au code des sites web qu'à des fonctions limitées en l'exécutant dans un « bac à sable ». (Wikipédia, 2014, Sandbox (sécurité informatique)

  2. Félix Aimé, 2012, Sécurité des navigateurs

  3. Technologie qui vise à intégrer aux navigateurs web les communications en temps réel, par exemple la voix sur IP (VOIP).

  4. Une faille de sécurité dans Flash permettait à un pirate de déclencher à leur insu la webcam des personnes qui visitent un site web. Vincent Hermann, 2011, Flash corrigé pour empêcher l'espionnage par webcam et micro, PC INpact

  5. Justin Watt, 2012, Hotel Wifi JavaScript Injection (en anglais).