11800475012
academy
Sécurité
Confidentialité
Performances
Français

Qu’est-ce que l’injection SQL et
en quoi consiste-t-elle ?

L’injection SQL est un type d’attaque discrète dans laquelle le pirate insère son propre code dans un site web afin de contourner ses mesures de sécurité et d’accéder à des données protégées. Une fois dans le site, il peut prendre le contrôle de sa base de données et pirater les informations concernant ses utilisateurs. Découvrez comment fonctionnent les attaques par injection SQL, comment s’en prémunir et comment un bon outil antivirus comme Avast One peut vous protéger des cyberdangers.

Clubic-icon
2022
Antivirus performant, fiable
presse-citron-icon
Meilleur antivirus
PC-editors-choice-icon
2023
Choix de la rédaction
SQL_injection-Hero
Écrit par Ivan Belcic
Publié le 22 septembre 2020

Qu’est-ce que l’injection SQL ? Et qu’est-ce que le SQL ?

Avant de nous intéresser à la partie injection, voyons d’abord exactement ce qu’est le SQL. Le langage SQL ou « Structured Query Language » est un langage de requête structuré créé dans les années 1970 et devenu le langage standard dans le domaine de la gestion des bases de données. Si un site web doit accéder à une base de données sur le serveur pour rechercher des informations ou les modifier, il utilise le langage SQL pour traiter cette demande, ou « requête ».

Hamburguer menu icon

Cette article contient :

    Le SQL est un langage extrêmement flexible qui offre de très nombreuses possibilités aux concepteurs des bases de données. La plupart de ces concepteurs créent leurs bases de données à partir de règles SQL particulières adaptées à leurs besoins. Il est impossible de simplement copier le SQL d’une base de données à une autre, les bases de données étant souvent conçues de façon totalement différente.

    Quand intervient l’injection ?

    Si le développeur du site web n’est pas assez prudent, il risque de créer son site de façon à ce qu’une personne malveillante soit capable d’apporter des modifications imprévues à la base de données. Voici comment fonctionnent les injections SQL. Le pirate entre, ou injecte, du code SQL malveillant, c’est-à-dire une forme de malware appelée charge, sur le site web et le trompe pour le forcer à transmettre ce code à la base de données en tant que requête légitime.

    Les pirates se servent de l’attaque par injection SQL pour accéder à la base de données du site. L’objectif est peut-être simplement de causer des ravages en supprimant des données ou de modifier la base de données, surtout si le site visé est celui d’une institution financière.

    Les attaques par injection SQL ne sont possibles que lorsque le site ne dispose pas de mesures suffisantes de nettoyage des entrées. Il s’agit du processus qui s’assure que les données entrées par les utilisateurs ne s’immiscent pas dans le code pour se faire passer pour du code exécutable côté serveur. Ceci exige naturellement un surcroît de travail de la part du développeur, mais permet de protéger le site des injections SQL, des scripts de site à site et autres types d’attaques visant les sites web.

    Que font les attaques par injection SQL ?

    Les pirates se servent de l’attaque par injection SQL pour accéder à la base de données du site. L’objectif est peut-être simplement de causer des ravages en supprimant des données ou de modifier la base de données, surtout si le site visé est celui d’une institution financière. Une fois que le pirate a pris le contrôle de la base de données, il peut facilement modifier le solde des comptes client et transférer des fonds vers son propre compte.

    Mais souvent, les cybercriminels s’intéressent davantage aux données des utilisateurs enregistrées sur le site, par exemple les informations d’identification. Ils peuvent ensuite exploiter ces données pour effectuer des opérations sous le nom des utilisateurs affectés ou bien regrouper les informations piratées sous forme de listes pour les revendre à d’autres cybercriminels sur le Dark Web. Ceux qui leur rachètent ensuite ces informations volées les utilisent la plupart du temps pour les vols d’identité et la fraude à l’identité.

    Comment se déroulent les attaques par injection SQL ?

    Si le site web ne nettoie pas correctement les données, le pirate peut y injecter son propre code SQL. Le site web transmet ensuite le code du pirate (autrement dit la charge) à son serveur. Une fois que cette charge atteint la base de données du site web sur le serveur, elle entre en action et modifie la base de données conformément aux objectifs poursuivis par le pirate.

    Les pirates peuvent utiliser les attaques par injection SQL pour accéder à la base de données des sites.Les pirates se servent de l’attaque par injection SQL pour accéder à la base de données du site.

    Voici comment fonctionne l’injection SQL. N’essayez pas ça chez vous !

    Injection SQL via les données entrées par les utilisateurs

    L’injection SQL via les données entrées par les utilisateurs est le moyen le plus simple de lancer une attaque par injection SQL. Des milliers de sites web collectent les données qu’entrent les utilisateurs et les envoient à leur serveur. C’est par exemple le cas si vous avez passé une commande en ligne et que vous avez entré votre adresse. C’est la même chose pour les commentaires ou les avis que vous laissez sur les sites. Sans un bon nettoyage des entrées, tout formulaire ou toute zone de commentaires représente une vulnérabilité exploitable par injection SQL.

    Au lieu de remplir ces formulaires avec des données standard, les pirates cherchant à utiliser une injection SQL entrent autre chose, à savoir une chaîne de code SQL. Si les pratiques de nettoyage des entrées du site web ne sont pas suffisantes, le code du pirate s’exécute lorsque le contenu du formulaire est envoyé au serveur. C’est ainsi que l’injection SQL permet aux pirates de voler les données des utilisateurs ou de perturber le fonctionnement d’un site web.

    Pour mieux comprendre, prenons par exemple la situation dans laquelle une personne se porte candidate à un poste. Le nom du candidat est Bernard Arnaud, mais dans sa demande, il entre « Embaucher Bernard Arnaud ». Lorsque le responsable des ressources humaines lit le nom de ce candidat à voix haute, son équipe l’entend dire « Embaucher Bernard Arnaud » et envoie donc un contrat à Bernard.

    Au lieu de donner son véritable nom, Bernard a envoyé une charge SQL qui, lorsqu’elle a été exécutée par la base de données (ici le responsable des ressources humaines), a permis à ce candidat d’être embauché. 

    Injection SQL via la modification des cookies

    Les cookies sont de petits fichiers qui se trouvent dans votre navigateur et transmettent aux sites web des informations vous concernant. Ils sont parfois utiles, par exemple lorsqu’ils retiennent vos informations d’identification et vos préférences. Ils peuvent aussi s’avérer malveillants. En effet, de nombreux sites utilisent des cookies pour suivre votre comportement sur Internet et sur leurs pages. Ils exploitent ensuite ces informations de suivi pour effectuer des études de marché et optimiser leur stratégie publicitaire. Ce deuxième type de cookie est un outil de suivi couramment utilisé sur le web.

    Les cybercriminels peuvent manipuler ou « empoisonner » les cookies de façon à ce que lorsqu’ils renvoient des informations au serveur du site, ils transmettent du code SQL à la base de données.

    Injection SQL via des variables serveur

    Lorsque vous saisissez l’URL d’un site web dans votre navigateur, il se produit une séquence rapide de communications avant que le site ne puisse être affiché. Dans le cadre de ce processus, votre navigateur demande toute une liste d’informations appelée « variables serveur » qui l’aident à afficher correctement le site.

    Les pirates les plus habiles peuvent glisser du code SQL dans les demandes faites par le navigateur, et si ces demandes ne sont pas correctement nettoyées, elles risquent d’être injectées dans la base de données du site sur le serveur.

    Injection SQL via des outils de piratage automatisés

    Si tout cela semble trop compliqué, il existe une autre solution plus simple. Les outils d’injection SQL automatisés comme SQLMAP peuvent détecter et exploiter les vulnérabilités d’injection SQL présentes sur un site web et dans sa base de données.

    SQLMAP est un outil open source largement utilisé par les gestionnaires de bases de données et les concepteurs de sites web souhaitant protéger leurs sites des attaques par injection SQL. Mais rien n’empêche que SQLMAP soit utilisé à des fins malveillantes.

    Attaques SQL de deuxième niveau

    L’injection SQL de deuxième niveau pousse cette technique plus loin encore et applique une approche encore plus sophistiquée. Comme de nombreux sites web nettoient ce qu’entrent les utilisateurs, les pirates injectent du code SQL conçu pour ne s’exécuter que lors des visites suivantes. Lorsque les contremesures de nettoyage de base sont bien en place, le site web visé bloque les attaques par injection SQL normales, aussi appelées de premier niveau. Mais l’attaque par injection SQL de deuxième niveau est une bombe à retardement. Voilà ce qui se passe :

    Le pirate injecte dans la base de données du code qui, lorsqu’il est pris de manière isolée, ne fait rien. Mais ce code est conçu pour modifier la façon dont la base de données fonctionne lorsqu’elle interprète ce code comme entrée de la base de données. L’attaque est alors déclenchée lorsque le SQL de la base de données reprend le code du pirate dans ses fonctions.

    Pour illustrer ce concept, prenons un classique de la littérature, l’Odyssée d’Homère. Dans cette histoire, Ulysse, le héros, est capturé par un cyclope du nom de Polyphème. Pour lui échapper, Ulysse enivre Polyphème. Lorsque Polyphème lui demande son nom, pour le remercier du vin qu’il lui a offert, Ulysse lui répond qu’il s’appelle « Personne ».

    C’est la première étape de l’attaque SQL de deuxième niveau : le pirate nommé Ulysse injecte une charge SQL apparemment inoffensive (Personne) dans la base de données de Polyphème.

    Ensuite, Ulysse rend Polyphème aveugle. Fou de colère, le cyclope court dire à ses frères qu’on lui a joué un mauvais tour et que c’est Personne qui l’a rendu aveugle. Il n’obtient que des rires en réponse. Incapable de se venger, Polyphème se retrouve humilié et Ulysse parvient à s’échapper.

    C’est la deuxième étape. La charge SQL « Personne » est inoffensive en elle-même, mais lorsque Polyphème (la base de données) essaie d’utiliser cette information, l’attaque se déploie.

    Comme elle est à première vue indétectable, l’injection SQL de deuxième niveau est un moyen indirect, mais efficace pour les cybercriminels de passer outre les procédures de base de nettoyage des entrées.

    Impact des attaques par injection SQL

    Les attaques par injection SQL peuvent avoir de nombreuses conséquences. Une seule et unique attaque par injection SQL peut avoir des effets dévastateurs sur les victimes, mais aussi sur l’entreprise visée.

    Effets des injections SQL sur les personnes

    Bien que les attaques par injection SQL ne vous visent pas directement, si un des sites web que vous utilisez est attaqué, les conséquences peuvent être lourdes pour vous. Le fait de disposer d’un compte sur un site web piraté ou d’y entrer des informations personnelles peut permettre aux pirates de faire bien plus que de s’emparer de vos données personnelles.

    Les attaques par injection SQL peuvent avoir des conséquences sévères pour les utilisateurs, entre autres :

    • Des pertes financières : le pirate peut utiliser l’injection SQL contre une banque ou un établissement financier pour transférer des fonds à partir de votre compte.

    • Le vol d’identité : une fois qu’il a pris le contrôle de la base de données, le pirate peut récupérer les données qu’elle contient et les revendre sur le Dark Web. D’autres cybercriminels peuvent ensuite acheter ces données et les utiliser pour commettre un vol d’identité.

    Vous pouvez vous protéger des attaques visant à voler votre identité avec Avast BreachGuard, qui surveille le Dark Web pour voir si vos données y apparaissent et vous avertit si un des sites web que vous utilisez a fait l’objet d’un piratage ou de tout autre type d’attaque.

    Disponible aussi sur Mac

    Disponible aussi sur Mac

    Disponible aussi sur Mac

    Disponible aussi sur Mac

    Effets de l’injection SQL pour les entreprises

    Comme les entreprises sont la cible directe des attaques par injection SQL, elles se trouvent face à un nombre plus élevé de menaces. Lorsqu’un pirate pénètre dans une base de données, il peut faire ce qu’il veut, et lorsque cette information est rendue publique, l’entreprise visée a fort à faire pour limiter les dégâts en termes d’image.

    Voici quelques-uns des effets néfastes que peuvent avoir les attaques par injection SQL sur les entreprises :

    • Sabotage : en effaçant complètement la base de données d’une entreprise ou endommageant son site web, le pirate peut facilement mettre à mal l’entreprise.

    • Vol de données : l’objectif de nombreuses attaques par injection SQL est le vol de données confidentielles, par exemple des informations commerciales secrètes, des informations internes, des éléments de propriété intellectuelle protégés, mais aussi souvent des informations concernant les utilisateurs ou les clients.

    • Problèmes de sécurité : le pirate peut réutiliser le contenu de la base de données piratée pour accéder à d’autres parties du réseau interne de l’entreprise. Dans ce cas, c’est l’ensemble du réseau qui est compromis.

    • Dégradation de l’image : après avoir fait l’objet d’une attaque par injection SQL, il peut être difficile pour une entreprise de regagner la confiance de ses clients et du grand public.


    Coûts potentiels des attaques par injection SQL

    Étant donné l’ampleur des dégâts que peut causer un pirate avec une attaque par injection SQL, les coûts peuvent être très élevés. Une étude menée en 2014 a conclu que mêmes mineures, les attaques par injection SQL peuvent coûter aux alentours de 200 000 $ en frais de réparation, et il ne s’agit là que des implications financières. 

    Un article publié par Ars Technica la même année explique que la marine américaine a dépensé plus d’un million de dollars suite à une seule attaque par injection SQL. Conséquence de cette attaque, plus de 70 membres des forces armées n’ont pas pu soumettre de demande de transfert pendant plusieurs mois.

    En plus de l’impact financier d’une telle attaque, les dégâts à long terme sur l’image de l’entreprise peuvent s’avérer irréversibles.

    Comment éviter les attaques par injection SQL ?

    À moins d’être développeur web, vous ne pouvez pas. Les attaques par injection SQL ne vous visent pas directement, vous n’avez donc aucun moyen de les détecter, de les déjouer ou de les bloquer. Et vous n’avez aucun moyen de savoir si vous utilisez un site web qui a été piraté tant que les effets de ce piratage ne sont pas révélés.

    La prévention des attaques par injection SQL est la responsabilité des personnes qui assurent la maintenance des sites web que vous utilisez. Mais vous n’êtes pas totalement impuissant face aux attaques par injection SQL. Commencez par vérifier si vos informations d’identification sur un site ont été compromises grâce à notre outil gratuit Avast Hack Check. Si c’est le cas, changez immédiatement le mot de passe de ce site.

    Avast Hack Check vous signale si l’un de vos jeux d’informations d’identification a fait l’objet d’une fuite.Utilisez Avast Hack Check pour savoir si vos informations d’identification ont fait l’objet d’une fuite.

    Comme la plupart des attaques par injection SQL ont pour objectif le vol de données, Hack Check est un bon moyen de réduire les risques si vos données font l’objet d’une telle attaque.

    Donc, comment puis-je éviter les attaques par injection SQL ?

    Bien qu’il soit impossible de prévenir les attaques par injection SQL, il est possible de réduire le risque que vous soyez affecté si vous êtes touché par ce genre d’attaque. Appliquez à votre routine Internet les pratiques suivantes :

    • Ne communiquez jamais d’informations personnelles sur des sites douteux. Assurez-vous de ne communiquer vos données que sur des sites web de confiance qui mettent en œuvre des mesures de sécurité fortes. Même s’il ne s’agit pas d’une garantie absolue d’éviter les attaques par injection SQL, c’est un bon début. 

    • Tenez-vous informé des actualités sur la sécurité. Les entreprises annoncent la plupart du temps si leurs bases de données ont été compromises lors d’attaques. Tenez-vous informé à propos des sites web que vous consultez, et si vous tombez sur un cas d’attaque par injection SQL, modifiez immédiatement vos informations d’identification.

    • Appliquez de bonnes habitudes en matière de gestion des mots de passe. Vous pouvez réduire les risques en utilisant un mot de passe unique pour chacun de vos comptes. Adoptez de bonnes habitudes de création de mots de passe pour garder une longueur d’avance sur les pirates informatiques.

    • Utilisez un gestionnaire de mots de passe. De nombreux gestionnaires de mots de passe vous avertissent si un site web que vous utilisez a fait l’objet d’un piratage. Vous pourrez ainsi rapidement changer de mot de passe pour en utiliser un autre, tout aussi difficile à deviner. Choisissez un gestionnaire qui fonctionne sur plusieurs plateformes pour pouvoir accéder à vos mots de passe sur tous vos appareils.

    • Utilisez un logiciel antivirus. Un outil antivirus efficace peut protéger votre appareil contre un large éventail de menaces, y compris les sites web malveillants.


    Bénéficiez d’une protection numérique complète avec Avast One.

    Votre navigateur ne peut pas savoir si vous avez consulté un site web qui a fait l’objet d’une attaque par injection SQL, mais ce n’est pas pour cela que vous devez vous battre seul contre les cybercriminels. Il est temps d’appeler les renforts.

    Avast One vous assure une cybersécurité en temps réel sur plusieurs fronts et vous protège de tous les types de menaces. Vous pourrez ainsi fortifier votre réseau à l’aide de son pare-feu efficace et détecter les vulnérabilités présentes sur votre appareil (logiciels obsolètes, applications suspectes, tentatives de phishing, malwares, etc.).

    Renforcez votre sécurité en optant pour un fournisseur d’antivirus déjà utilisé par plus de 400 millions d’internautes dans le monde.

    Protégez votre iPhone contre les cybermenaces avec Avast One

    Installer gratuitement

    Protégez votre appareil Android contre les cyberattaques et le piratage avec Avast One

    Installer gratuitement
    Piratage
    Sécurité
    Ivan Belcic
    22-09-2020