COMBELL Tech : l’injection SQL est désormais également populaire sur les sites web en ColdFusion
Ces 3 derniers mois, partout dans le monde, il a beaucoup été question d’un nouveau type d’'injection SQL' qui a infecté globalement plus d’un demi million de sites web. Cette forme de piratage informatique vise principalement la base de données sous-jacente et a pour but d’effectuer le plus possible de modifications dans la base de données. COMBELL a étudié ce phénomène et fournit des astuces permettant d’éviter les abus.
Jusqu’à il y a peu, cette nouvelle tendance n’avait été constatée que sur des sites programmés en ASP ou en ASP.NET. Maintenant, nous constatons que les sites web en ColdFusion sont également visés. Bien que le langage de programmation utilisé soit une variable, il y a toutefois certaines constantes :
- La cause est toujours une fuite de code
- La base de données sous-jacente est toujours une base de données Microsoft SQL Server
- On constate que du code JavaScript est injecté parmi les données présentes dans votre base de données
Ce ne sont certainement pas des constantes fortuites, puisqu’elles sont à la base de l’injection : grâce au manque de validation et de sécurité des paramètres des URL, les pirates réussissent à injecter leurs propres instructions SQL. Pour ce faire, ils n’ont besoin d’aucun identifiant, puisque le script leur fournit l’accès à la base de données.
L’architecture de Microsoft SQL Server contribue à leur portée et à leur impact : le data dictionary inclus dans différentes tables de la base de données peut être utilisé pour répertorier toutes les tables et tous les champs. Via la table « dbo.sysobjects », les pirates obtiennent un aperçu de toutes les tables disponibles, via « dbo.syscolumns », ils peuvent découvrir (par table) quels champs sont présents et pour finir, via « dbo.systypes », ils peuvent savoir quels champs peuvent contenir des valeurs alphanumériques. Cette combinaison permet aux pirates de remplacer tous les champs alphanumériques par leur propre texte, sans même connaître concrètement la structure de votre base de données.
Cela nous mène finalement à la dernière constante, à savoir la présence de code JavaScript. L’injection SQL n’est pas la fin en soi de cette opération. Le but final de ces pirates est d’intégrer de petites portions de code JavaScript aux données alphanumériques saines contenues dans les tables. Ce faisant, les pirates espèrent que ces données seront traitées comme du code HTML sur le site et qu’ainsi, le code JavaScript sera également exécuté dans le tas. Le code JavaScript en question génère un lien pointant vers du code qui est hébergé sur des sites malveillants et qui contient des virus. Dans de nombreux cas, il s’agit de sites russes et chinois.
Maintenant que cette infestation se rencontre également dans le monde de ColdFusion, il est important de procéder à l’assainissement de ses bases de données en maintenant « propres » les instructions SQL. Via ColdFusion, cela peut se faire facilement via la balise « CFQUERYPARAM ». Ainsi, on peut faire en sorte qu’un paramètre de requête ne contienne pas de données « interdites ».