Injections SQL

Injections SQL : des attaques au cœur de ton site web

En plus des attaques par force brute, les injections SQL apparaissent toujours sur la liste des plus grands dangers pour les sites WordPress. Il s'agit de manipulations relativement faciles à réaliser sur la base de données de ton site Web. Tu peux ainsi accéder à des données sensibles ou créer toi-même des comptes admin et manipuler un site web à ta guise. Nous t'expliquons comment cette attaque fonctionne et pourquoi elle est si dangereuse.

En mars 2008, 134 millions de données de cartes de crédit ont été récupérées auprès du groupe américain Heartland Payment Systems, notamment par un véritable Mastermind. Cette attaque repose sur un hack relativement facile à exécuter appelé SQL Injection. Cette attaque permet d'accéder à la base de données d'un site web et donc à toutes les données d'un site web. En fait, les injections SQL sont considérées comme l'un des plus grands dangers pour les sites Web - même et surtout pour les personnes qui travaillent principalement avec WordPress.

Et comme, au plus tard depuis WooCommerce , les boutiques plus grandes et plus complexes peuvent être exploitées sans problème avec WordPress, il est important de comprendre quel est le risque d'une injection SQL WordPress et comment elles fonctionnent.

Injections SQL WordPress - à quel point sont-elles dangereuses ?

La question de la "dangerosité" d'un hack WordPress ne peut pas être résolue sous la forme d'un seul indicateur. Il faut plutôt considérer au moins deux aspects : D'une part, la probabilité que ton projet WordPress soit victime d'une telle attaque, et d'autre part, les dommages qu'un hack peut causer.

En ce qui concerne les attaques par force brute, le nombre d'attaques mensuelles est si élevé (parfois plus d'un milliard d'attaques mesurées + le nombre de cas non recensés) que l'on peut dire qu'il s'agit d'une réalité : Tous les sites WordPress sont tôt ou tard ciblés par une telle attaque. Les dommages causés par un piratage réussi sont multiples. La plupart du temps, les attaques par force brute servent aussi à détourner des sites Web et à les intégrer dans un botnet. Le Cross Site Scripting, en revanche, est beaucoup plus rare, mais sert surtout à infecter les sites Web avec des codes malveillants.

L'organisation à but non lucratif Open Web Application Security Project (OWASP) publie régulièrement une liste des 10 principaux risques de sécurité pour les applications web. Et les injections SQL y occupaient durablement la première place par le passé. Depuis 2021, elles ne sont plus "que" à la troisième place.

En fait, les injections SQL sont venues pour rester. Le hack est connu depuis maintenant plus de 20 ans. La fréquence des injections SQL a également augmenté au fil du temps.

Wordfence, fabricant d'un logiciel de sécurité pour WordPress, conclut que les injections SQL représentent un grand danger pour les sites WordPress en particulier. Une analyse de près de 1600 failles de sécurité dans les plugins, signalées sur une période de 14 mois, montre clairement que les injections SQL sont le deuxième risque de sécurité le plus fréquent pour les sites WordPress.

Injections SQL WordPress Wordfence Analyse
Le graphique montre que les injections SQL sont le deuxième risque de sécurité le plus fréquent de tous pour les sites WordPress.

Bien sûr, il faut garder à l'esprit que le nombre de cas non recensés est bien plus élevé - les attaques SQL passent souvent inaperçues et n'apparaissent donc pas dans les statistiques.

Les chiffres montrent que les injections SQL de WordPress font partie des types d'attaques les plus fréquents après les attaques par force brute et les failles XSS. De plus, les injections SQL ciblent un domaine particulièrement sensible de ton site web : ta base de données. Pour les boutiques en particulier, ces piratages représentent donc une menace existentielle. Il est donc important de comprendre comment ils fonctionnent et ce que tu peux faire pour les éviter.

Les injections SQL de WordPress ciblent le cœur de ton site web

Pour comprendre comment fonctionne une injection SQL, il faut que tu saches comment WordPress est fondamentalement construit. Si tu le sais déjà, tu peux sans problème sauter cette section.

La base de données est la base de toute installation WordPress : tous les contenus y sont stockés. Le CMS lui-même permet d'afficher et d'éditer ce contenu. WordPress est une base de données MySQL. SQL signifie Structured Query Language, un langage de programmation complet qui permet de créer des structures dans une base de données et d'insérer, de modifier et de supprimer des données.

Chaque fois que tu écris un article, que tu crées une nouvelle catégorie, que tu changes ton mot de passe ou même qu'un commentaire est écrit, ces nouvelles données sont enregistrées dans la base de données. C'est donc là que se trouve chaque contenu de ton site.

Chaque fois que ton site Web est consulté et que certains contenus sont demandés, WordPress extrait les données appropriées de la base de données, les combine avec PHP et crée un document HTML qui est finalement transmis au navigateur du client. Le client ne se rend pas compte de tout ce qui se passe jusqu'à ce moment-là.

Les injections SQL injectent un code externe dans la base de données

Même si tu n'interagis jamais directement avec la base de données, mais seulement avec le backend de WordPress, la base de données est le cœur de ton site web.

Mais comme nous l'avons déjà mentionné, les utilisateurs sont eux aussi en mesure de saisir des données dans la base de données. Écrire un commentaire, créer un compte d'utilisateur, remplir un formulaire de contact et l'envoyer - toutes ces actions génèrent des données qui sont enregistrées dans la base de données.

Mais que se passe-t-il si quelqu'un utilise cet accès indirect à ta base de données pour y introduire un code malveillant ? On parle alors d'injection SQL.

L'idée n'est même pas particulièrement compliquée : S'il n'y a pas de mesures de sécurité, il suffit d'entrer le code SQL dans un champ de formulaire (par exemple en écrivant un commentaire). Il contient des caractères qui ont une fonction spéciale pour l'interpréteur SQL - qui est responsable de l'exécution des commandes SQL dans la base de données. Ces caractères spéciaux, appelés métacaractères, sont par exemple ; " ' et \.

Le CMS pense qu'il s'agit de données inoffensives et transmet l'entrée comme d'habitude à la base de données avec l'ordre de la sauvegarder. L'interpréteur SQL reconnaît le code comme un ordre d'action grâce aux métacaractères et exécute la commande de la base de données.

D'ailleurs, les injections SQL, tout comme les attaques par force brute, n'impliquent pratiquement jamais qu'une seule personne soit assise devant l'ordinateur et saisisse manuellement des codes SQL dans des formulaires. Ces attaques sont également menées par des réseaux de zombies automatisés qui recherchent simultanément des vulnérabilités sur des milliers de sites Web et qui frappent là où ils en découvrent une.

Que peut-il se passer maintenant ?

  • Tout mécanisme d'authentification est contourné ou l'identité d'un utilisateur existant est utilisée pour obtenir l'accès. Si, par exemple, un nouveau compte admin est créé, on parle aussi d'un Priviledge Escalation Exploit.
  • De cette manière, les données peuvent être espionnées, modifiées ou effacées. C'est particulièrement important si tu gères une boutique en ligne et si tu as des données de paiement.
  • Il est également possible de prendre le contrôle de l'ensemble de ton site web et de ton espace web. C'est possible en se connectant en tant qu'administrateur. Le backend permet d'obtenir le contrôle total de ton site web - et il peut donc être utilisé comme collecteur de spam ou inséré dans un botnet, ou tout simplement introduire un code malveillant.

"*" indique les champs requis

Je souhaite m'abonner à la newsletter pour être informé des nouveaux articles de blog, des ebooks, des fonctionnalités et des nouvelles de WordPress. Je peux retirer mon consentement à tout moment. Merci de prendre connaissance de notre politique de confidentialité.
Ce champ sert à la validation et ne doit pas être modifié.

Conclusion : surtout à cause de l'automatisation WordPress Les injections SQL sont très dangereuses.

Les injections SQL de WordPress font partie des piratages les plus dangereux qui soient. Ils sont faciles à réaliser, généralement automatisés et peuvent causer des dommages massifs : Pour les boutiques en particulier, le danger des injections SQL est une menace existentielle en raison des données contenues dans la base de données.

Il est donc important de protéger ton site Web de manière adéquate : Toute entrée extérieure doit être vérifiée et nettoyée. Tu dois également masquer les données afin d'empêcher l'exécution de codes malveillants. Ce processus s'appelle l'assainissement et la validation des données et est traité en détail dans le guide du développeur WordPress, par exemple.

Les plugins de sécurité complets sont également d'une grande aide : ils sont notamment capables de bloquer les attaques automatisées sur tes sites Web, qui constituent la base de nombreux piratages.

As-tu aimé cet article ?

Tes évaluations nous permettent d'améliorer encore plus notre contenu.

Laisse un commentaire

Ton adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués d'un *.