1 Outils d'injection SQL automatique

Le CERTA constate de nombreuses tentatives et des réussites dans les attaques par injection SQL. Cet article présente le principe des outils et des motifs permettant de déceler ces attaques et ces tentatives.

1.1 Principe d'une injection SQL

Le langage SQL (Structured Query Language) est un langage utilisé pour manipuler les bases de données. Le principe est d'envoyer une requête SQL à un système de gestion de base de données (SGBD), ce qui permet d'extraire, d'ajouter, de modifier ou de supprimer des données dans la base de données.

Une application web, comme un serveur web doté d'un interpréteur PHP, utilise parfois une base de données pour fonctionner. Lorsque la manipulation de la base de données est effectuée à l'aide d'une requête SQL construite avec des données entrées par un utilisateur et que ces données ne sont pas vérifiées correctement, l'application web est potentiellement vulnérable à une attaque de type injection SQL.

Une attaque de type injection SQL consiste à fournir en paramètre d'une requête HTTP des données qui, une fois intégrées dans la requête SQL, seront interprétées par le SGBD et auront pour conséquence de construire une requête malveillante. La requête SQL aura ainsi, sur la base de données, un effet autre que celui attendu par l'auteur de l'application web.

Une telle faille peut être exploitée à plusieurs fins dont voici une liste non exhaustive :

  • extraction, ajout, modification, suppression d'informations dans la base de données ;
  • exécution de code arbitraire à distance ;
  • élévation de privilèges ;
  • lecture de fichiers.

1.2 Outils automatisant l'exploitation d'une injection SQL

De nombreux sites sont la cible d'outils cherchant à exploiter de façon automatique des vulnérabilités de type injection SQL. L'utilisation la plus simple de ce type d'outil consiste généralement à entrer une URI vulnérable et laisser le programme trouver comment l'exploiter en laissant les paramètres par défaut. Cependant, pour des cas moins évident à exploiter, il est souvent possible de paramétrer l'outil manuellement.

Détection d'un scan d'un outil d'injection SQL automatique

Il existe quelques moyens simples pour tenter de déterminer si un site a été la cible d'un outil d'injection SQL automatique. Ainsi en inspectant les journaux d'un serveur web, certaines caractéristiques peuvent alerter :

  • certains outils, avec les paramètres par défaut, ajoutent une valeur spécifique dans l'en-tête HTTP User-Agent : ;
  • un nombre de requêtes HTTP par seconde anormalement élevé venant d'une même source ;
  • des variables entrées par les utilisateurs prenant des valeurs suspectes (les journaux d'un serveur web enregistrent souvent l'URI demandée par l'utilisateur où, dans le cas d'une requête GET, des variables entrées par les utilisateurs apparaissent).

Voici un format typique d'une ligne suspecte apparaissant dans un journal de serveur web :

<ip_source> - - <date_et_heure> "GET /uri/vulnerable.php?Submit=Submit&id=
999999.9%27+union+all+select+<...>2C0x31303235343830303536+and+%27x%27%3D%27x 
HTTP/1.1" 200 4567 "-" <User-Agent_suspect>

Ici deux caractéristiques peuvent attirer notre attention :

  • la variable id possède une valeur suspecte, où l'on voit notamment des commandes SQL (union, select, etc.) ;
  • le User Agent a un nom caractérisant un outil d'injection SQL automatique.

1.3 Documentation

2 Mise à jour Microsoft du mois de novembre et alerte

Cette semaine, Microsoft a publié quatre bulletins de sécurité pour ses produits. Parmi ces bulletins, deux traitent de vulnérabilités permettant de l'exécution de code arbitraire à distance. Une vulnérabilité dans la pile TCP/IP de Windows est considérée comme critique.

Il est important de noter qu'aucun de ces bulletins ne corrige la vulnérabilité mentionnée dans l'alerte CERTA-2011-ALE-006 publiée la semaine dernière. Le CERTA recommande donc le maintien du contournement provisoire, proposé par Microsoft, en attendant que cette vulnérabilité soit corrigée ; sous réserve de test avant déploiement.

Documentation

3 Sortie de la version 8 de Firefox

La nouvelle version du navigateur Web de la fondation Mozilla a été publiée le 08 novembre 2011. Elle apporte un certain nombre d'améliorations au niveau de la sécurité ainsi que différents correctifs.

Parmi les vulnérabilités corrigées, certaines, jugées critiques par l'éditeur, autorisent une exécution de code arbitraire à distance. Il est donc important d'effectuer la migration vers cette nouvelle version au plus vite.

La gestion des modules complémentaires (add-ons) a, elle aussi, été revue. Tout module de ce type ayant été installé par des programmes tiers est désormais désactivé jusqu'à la validation explicite de l'installation par l'utilisateur. Une fenêtre permettant la désactivation des modules déjà installés est aussi présentée à l'utilisateur lors de la mise à jour. Ces différentes mesures devraient permettre une meilleure gestion des add-ons par les utilisateurs et notamment empêcher l'installation d'extensions non désirées.

Documentation

Rappel des publications émises

Dans la période du 31 octobre 2011 au 06 novembre 2011, le CERT-FR a émis les publications suivantes :