1 Incidents de la semaine

Injection massive d’iframe

Cette semaine, le CERTA a traité un nombre conséquent d’incidents concernant des sites basés sur le gestionnaire de contenu web osCommerce. En effet, une attaque massive consistant à injecter une balise iframe dans la section title des pages vulnérables a été constatée.

Cette injection avait pour objectif de forcer le visiteur d’une page compromise à aller télécharger un code malveillant après une série de redirections. Au final, ce sont cinq vulnérabilités différentes affectant divers navigateurs qui étaient testées afin de compromettre la machine.

Le CERTA recommande donc aux utilisateurs de cette solution web de porter une attention toute particulière à l’intégrité du code source des pages web de leurs sites. En cas de compromission, il est nécessaire de réinstaller le serveur et un CMS à jour sur la base d’une sauvegarde saine et de changer les identifiants d’administration.

2 Fin de vie de la branche 2 du projet phpMyAdmin

À la lecture de l’avis CERTA-2011-AVI-411, l’absence de référence à la branche 2 du logiciel phpMyAdmin n’a échappé à personne.

En effet, cette branche ne bénéficie plus du support de l’équipe du projet, comme cela a été annoncé le 12 juillet 2011. Elle repose sur des briques PHP et MySQL, elles-mêmes anciennes. La version 2.11.11.3 est donc la dernière de cette branche pour laquelle aucun correctif de sécurité ne sera désormais émis.

Le CERTA recommande vivement aux utilisateurs de phpMyAdmin ou de logiciels incluant cet outil de vérifier les versions qu’ils utilisent. La migration vers des branches bénéficiant d’un support est indispensable. Lors du traitement d’incidents sur des serveurs, le CERTA constate régulièrement des attaques et des tentatives d’exploitations de vulnérabilités de certains logiciels dont phpMyAdmin.

Cette migration de phpMyAdmin pourra impliquer celles de PHP et de MySQL.

3.3 Documentation

3 HMTL5 et base de données

3.1 Web Storage

La récente norme HTML5 apporte son lot de nouveautés par rapport aux versions antérieures. Il devient notamment possible de stocker directement des informations au niveau du client Web grâce à une technologie dénommée Web Storage.

Cette idée n’est pas tout à fait nouvelle puisqu’elle se rapproche de la notion de cookie. Elle en reprend d’ailleurs l’une des bases : il s’agit, ici aussi, de stocker des données sous la forme de couples clé/valeur. Bien entendu, il ne s’agit pas d’une simple extension du système de cookies mais plutôt d’une nouvelle approche offrant des capacités étendues et une plus grande souplesse d’utilisation.

D’un point de vue plus technique, elle offre la possibilité de stocker et d’accéder à des données dans une base locale grâce à l’utilisation d’un simple script.

Afin de fournir ce service, deux types de bases différents sont disponibles : session storage et local storage. Elles diffèrent par leur nature : les bases de type session storage sont volatiles au sens où elles ont une durée de vie limitée à celle de la page les contenant alors que les bases de type local storage sont persistantes et vont par exemple servir à stocker le profil de l’utilisateur. Elles présentent aussi une différence importante au niveau de leurs droits d’accès. En effet, les bases de type local storage sont accessibles depuis l’ensemble des pages présentant le même triplé protocole/domaine/port que la page les ayant créés. Par exemple, une base créée par http://exemple.com/index.html sera accessible par http://exemple.com/access.html mais pas par https://exemple.com/access.html (notez le HTTPS au lieu du HTTP). Par contre, les bases de type session storage ne sont accessibles que par la page les ayant créées.

D’autres mécanismes de sécurité et de contrôle d’accès sont bien entendu prévus dans la spécification. Il est par exemple envisagé de pouvoir bloquer l’accès à la base de données d’un domaine par une iframe incluse dans l’une de ces pages. Des mécanismes de listes blanches/listes noires pour l’accès aux bases sont aussi à l’étude.

Des recommandations sont par ailleurs émises concernant le contenu pouvant être mis en base. Il est, par exemple, déconseillé d’y stocker des mèls ou toutes sortes d’informations sensibles.

Cependant, il s’agit de recommandations présentes dans la spécification de la norme (qui est toujours en développement) et rien ne garantit que les différentes implémentations les suivront. De plus, aucun mécanisme ne permet de prévenir le stockage de données sensibles. Diverses attaques permettant de contourner les mécanismes de protections et d’accéder aux données stockées sont aussi envisageables (par exemple, par une usurpation de nom DNS). Il est donc nécessaire de rester vigilant et de prendre garde aux types de données que l’on souhaite inclure dans une base lors du développement d’un site utilisant ce type de technologies.

Actuellement, les versions majeures des navigateurs les plus populaires supportent cette norme.

3.2 Web SQL Database

Outre Web storage, différentes solutions de stockage ont été envisagées lors du développement de HTML5. Web SQL Database en est une. Son développement a cependant été abandonné au mois de novembre 2010. Il est tout de même intéressant de noter que certains navigateurs comportent une implémentation de ces mécanismes : Google Chrome, Safari et Opera.

Sans rentrer dans les détails, cette solution se rapproche des technologies employées dans les bases de données et interprètent directement sur le langage SQL. Elle comporte cependant les mêmes problématiques de sécurité et de protection de la vie privée que  Web storage. À ce titre, il est, ici aussi, important de bien considérer les types d’informations que l’on va insérer dans cette base lors de son utilisation.

3.3 Documentation

4 Vulnérabilité dans Apple iOS liée à la validation de la chaîne de certificats X.509

Cette semaine Apple a publié une nouvelle mise à jour concernant iOS pour iPhone, iPod et iPad.

Une erreur lors de la vérification d’une extension d’un certificat X.509 (Basic Constraints) permet à un utilisateur malintentionné, en utilisant un certificat de fin de chaîne valide (donc non considéré comme autorité de certification), de signer un nouveau certificat dédié à un domaine quelconque et de le présenter comme valide. Lorsque celui-ci sera utilisé, aucun avertissement ne sera envoyé à l’utilisateur mentionnant que le certificat n’est pas valide.

Cette vulnérabilité peut être utilisée afin de réaliser des attaque de type «man-in-the-middle» et ainsi de récupérer et/ou modifier les informations transmises lorsque des transmissions HTTPS sont utilisées.

Le CERTA recommande d’appliquer la mise à jour dès que possible.

Documentation

Rappel des avis émis

Dans la période du 18 au 24 juillet 2011, le CERT-FR a émis les publications suivantes :


Durant la même période, les publications suivantes ont été mises à jour :