Rechercher :         

Sociétés Prestataires Carnet Formations Progiciels Encyclo Fonds Guide d'achat Téléchargement

BOURSE

 

 Tous nos articles

Actualité / Sécurité
Jeudi 6 septembre 2001
Pourquoi les failles de Cross Site Scripting se ramassent à la pelle
          
Envoyer/recevoir. Tous les messages stockés sur le serveur arrivent l'un après l'autre dans la boîte aux lettres de l'utilisateur. D'un revers de sécurité saine, celui-ci écarte les e-mails avec des pièces jointes aux formats susceptibles de contenir des codes malicieux. Vient alors la lecture d'un message incitant à ouvrir un lien d'apparence innocente. A priori, impossible de savoir à l'avance si derrière ce lien peut se cacher un risque, car celui-ci pointe vers un formulaire Web signé d'un site très en vue. Résultat, à l'insu de l'utilisateur, la requête ne glisse pas un mot dans le champ de saisie du formulaire mais un code JavaScript malicieux. Une fois envoyée sur le serveur vulnérable, la séquence contenue dans la requête se sert alors de l'environnement d'éxécution non protégé pour renvoyer la réponse au poste client.

Scénario possible ensuite ? Ouverture de multiples fenêtres sur l'écran de l'utilisateur, transfert des mots de passe des cookies stockés sur le disque dur, écriture d'informations dans la base de registre (nombreuses exploitations possibles selon une alerte de Securiteam), ou même introduction d'un ver. En fait, il serait fastidieux de lister toutes les opportunités néfastes qu'offrent JavaScript et même VBScript aux malveillants, qui peuvent également glisser l'url fautive sur la page d'un site ou derrière une image. "Je sais qu'il est possible de lancer une boucle d'ouverture de la commande Telnet provoquant 50 connexions au serveur FBI.gov, lequel reçoit l'IP de la personne qui en est victime", explique Aurelien Cabezon, consultant sécurité chez Asséphira à Sophia-Antipolis.

Au moins des dizaines d'applications concernées
"Le terme Cross Site Scripting désigne une faille qui touche à peu près tous les éléments dynamiques d'un serveur web, comme un cgi, une page php, un module, une page d'erreur interne au serveur...", décrit Grégory Duchemin, consultant chez Neurocom au Canada. Selon ce spécialiste de ce type de vulnérabilités, des "publications de failles CSS concernant divers produits apparaissent régulièrement sur les forums spécialisés en sécurité. [Elles] sont, je crois, le fait de la méconnaissance du problème par les développeurs de logiciels qui n'ont reçu aucune formation adéquate en sécurité, ou bien sont tout simplement sous pression. Cela est regrettable, car ce sont eux qui pourraient limiter la casse. Au lieu de cela, d'un côté les développeurs introduisent de nouveaux risques, de l'autre les experts en sécurité auditent et remontent des alarmes, et au centre l'utilisateur-victime ne comprend pas grand chose à cela."

Pour saisir l'ampleur du phénomène, voici une liste non-exhaustive des logiciels qui ont un jour été concernés: citons les navigateurs Explorer, Netscape et Opera côté client, puis les serveurs web IIS et Apache, les serveurs d'applications IBM WebSphere, Tomcat (open source) et Macromedia JRun (ex-Allaire), le proxy Squid, le serveur ITS de SAP et certains serveurs spécifiques de Microsoft. La plupart de ces produits, sauf si les correctifs ne sont pas appliqués, ne sont plus concernés par les failles décrites précisément en suivant les liens ci-dessus. Mais d'autres vulnérabilités du même type peuvent parfois subsister en leur sein.

Développements spécifiques, exploitation côté serveur
Apparues de manière obscure et non médiatisées en 1997, les attaques utilisant des failles de Cross Site Scripting ont fait l'objet d'une première mention officielle dans un communiqué du Cert (navigateurs et serveurs web) daté de février 2000. Depuis, leur exploitation a connu une accélération. En témoignent les découvertes à répétition des détournements possibles des services Hotmail et Yahoo (alerte de juin parmi d'autres). Alors que le premier des deux a fait l'objet d'une vague d'articles la semaine dernière pour une troisième faille, le portail français du second a été notifié en même temps d'une autre vulnérabilité CSS non médiatisée, heureusement vite corrigée.

Or, dans le cas de la "troisième faille", les risques ne visent pas que des applications du commerce. Le développement propriétaire est aussi touché par beaucoup de failles CSS, rendant le nombre de sites visés encore plus incalculable. L'alerte cite les services de type Webmail, enchères en ligne, les forums et "chats" en HTML entre autres. "Les langages interprétés côté serveur ont permis un nouveau type d'exploitation du Cross Site Scripting", dévoile Gregory Duchemin. "La personne attaque directement le serveur en lui injectant du script PHP, Server Side Include... par le biais d'un forum par exemple, ce qui permet d'éxécuter dessus à peu près n'importe quelle commande système. L'exploitation est toujours en trois phases : 1.injection du code dans le forum sous la forme d'un message; 2.ouverture du nouveau message, interprétation du code par le serveur; et 3.visualisation du message et donc du résultat de l'éxécution du code par le serveur." Ceci permet entre autres à un pirate de s'infiltrer à l'aide d'informations renvoyées.


Contrer ces failles par des filtres clients ou serveurs ?
Face à une telle famille de vulnérabilités exploitables par de simples programmeurs sans avoir aucun recours à des outils de hackers, les systèmes de protection automatisés n'existent pas. Côté client, "la première démarche serait d'évacuer JavaScript (et VBScript)", indique Aurélien Cabezon. "La deuxième serait pour les développeurs de vérifier tous les codes dans les scripts. L'une des solutions serait aussi d'intervenir avec des filtres au niveau client avant la validation du remplissage des champs ouverts."

Pour Gregory Duchemin, "il est nécessaire de toujours utiliser la dernière version d'un logiciel destiné a un usage public et de vérifier si des mises à jour sont disponibles. Mais cela reste très insuffisant puisque nombre d'éditeurs n'interviennent qu'après la découverte d'une faille dans une optique très 'stratégie commerciale'. L'audit reste la solution la plus sûre pour l'ensemble des éléments dynamiques qui acceptent en entrée des données saisies par l'utilisateur, pour ensuite les afficher même partiellement. Il est important de filtrer le flux de sortie pouvant être dangereux, et préférable d'utiliser les codes d'échappement spécifiques du langage utilisé plutôt qu'un système de filtre propriétaire comportant des oublis ici et là."

"Dans certains types de services, continue-t-il, il convient d'autoriser quelques commandes à l'utilisateur. Aussi dans ce cas, je crois que la meilleur devise est ' tout est interdit sauf ' en dressant une liste des commandes autorisées pour diminuer les risques d'erreurs fatales. L'audit devrait être fait sur les sources de toutes pages avec du code dynamique, tous les cgi/scripts intervenant dans le processus interactif, et bien sûr le serveur web lui-même en le connaissant bien pour éviter les erreurs de configuration. J'ajouterais qu'il est toujours préférable, quand cela est possible, d'utiliser des logiciels dont les sources sont accessibles. Cela améliore grandement la qualité de l'audit."
[François Morel, JDNet]

Au sommaire de l'actualité

  Nouvelles offres d'emploi   sur Emploi Center
Auralog - Tellmemore | Publicis Modem | L'Internaute / Journal du Net / Copainsdavant | Isobar | MEDIASTAY



Nos autres sites Société | Contacts | Publicité | PA Emploi | Presse | Recrutement | Tous nos sites | Données personnelles
© Benchmark Group, 4 rue Diderot. 92156 Suresnes Cedex