Qu'est-ce qu'une attaque par injection SQL ?
Vous ne savez peut-être pas ce qu'est une attaque par injection SQL (SQLI) ni comment elle fonctionne, mais vous connaissez certainement les victimes. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn et Sony Pictures : toutes ces entreprises ont été piratées par des cybercriminels utilisant des injections SQL.
Un SQLI est un type d'attaque par lequel des cybercriminels exploitent des vulnérabilités logicielles dans des applications web dans le but de voler, supprimer ou modifier des données, ou d'obtenir un contrôle administratif sur les systèmes utilisant les applications affectées.
Les chercheurs en cybersécurité considèrent le SQLI comme l'une des cybermenaces les moins sophistiquées et les plus faciles à contrer. Malwarebytes Labs a classé le SQLI en troisième position dans le Top 5 des cybermenaces les plus stupides mais qui fonctionnent quand même, citant le fait que le SQLI est une attaque connue, prévisible et dont les contre-mesures sont faciles à mettre en œuvre.
Les attaques SQLI sont si faciles que les attaquants peuvent trouver des sites web vulnérables en utilisant les recherches Google advanced , appelées Google Dorking. Une fois qu'ils ont trouvé une cible appropriée, les attaquants SQLI peuvent utiliser des programmes automatisés pour exécuter efficacement l'attaque à leur place. Il leur suffit de saisir l'URL du site cible et de regarder les données volées affluer.
Pourtant, les attaques par SQLI sont monnaie courante et se produisent tous les jours. En fait, si vous avez un site web ou une entreprise en ligne, il est probable que des cybercriminels aient déjà essayé d'utiliser le SQLI pour s'introduire dans votre site web. Une étude de l'Institut Ponemon sur la menace des injections SQL et les violations récentes dans le secteur de la vente au détail a révélé que 65 % des entreprises interrogées ont été victimes d'une attaque basée sur le SQLI.
Les applications web les plus fréquemment visées sont les sites de médias sociaux, les détaillants en ligne et les universités. Les petites et moyennes entreprises sont particulièrement vulnérables, car elles ne connaissent souvent pas les techniques utilisées par les cybercriminels dans le cadre d'une attaque SQLI et ne savent pas non plus comment se défendre contre ce type d'attaque.
Prenons donc les devants pour nous défendre contre les injections SQL en nous informant sur le sujet. Voici une introduction aux injections SQL.
Comment fonctionne une injection SQL ?
Développé au début des années 70, SQL (abréviation de structured query language) est l'un des plus anciens langages de programmation encore utilisés aujourd'hui pour gérer des bases de données en ligne. Ces bases de données contiennent des informations telles que les prix et les niveaux de stock pour les sites d'achat en ligne. Lorsqu'un utilisateur a besoin d'accéder aux informations de la base de données, SQL est utilisé pour accéder à ces données et les présenter à l'utilisateur. Mais ces bases de données peuvent également contenir des données plus sensibles et précieuses, comme des noms d'utilisateur et des mots de passe, des informations sur les cartes de crédit et des numéros de sécurité sociale. C'est là que les injections SQL entrent en jeu.
En termes simples, on parle d'injection SQL lorsque des pirates informatiques introduisent des commandes malveillantes dans des formulaires web, tels que le champ de recherche, le champ de connexion ou l'URL d'un site web non sécurisé, afin d'obtenir un accès non autorisé à des données sensibles et précieuses.
Voici un exemple. Imaginez que vous vous rendiez sur votre site de vente de vêtements en ligne préféré. Vous achetez des chaussettes et vous avez devant vous un monde en technicolor de chaussettes colorées, toutes disponibles d'un simple clic de souris. Les merveilles de la technologie ! Chaque chaussette que vous voyez existe dans une base de données sur un serveur quelque part. Lorsque vous trouvez une chaussette qui vous plaît et que vous cliquez dessus, vous envoyez une requête à la base de données des chaussettes, et le site d'achat répond en fournissant les informations relatives à la chaussette sur laquelle vous avez cliqué. Imaginez maintenant que votre site d'achat en ligne préféré soit construit de manière peu rigoureuse et qu'il soit truffé de failles SQL exploitables.
Un cybercriminel peut manipuler les requêtes de la base de données de telle sorte qu'une demande d'informations sur une paire de chaussettes renvoie le numéro de carte de crédit d'un malheureux client. En répétant ce processus à l'infini, un cybercriminel peut sonder les profondeurs de la base de données et voler des informations sensibles sur tous les clients qui ont fait des achats sur votre site de vente de vêtements en ligne préféré, y compris vous. En poussant l'expérience encore plus loin, imaginez que vous êtes le propriétaire de ce site de vêtements. Vous êtes confronté à une énorme violation de données.
Une seule attaque SQLI peut permettre aux cybercriminels d'obtenir des informations personnelles, des courriels, des identifiants, des numéros de carte de crédit et des numéros de sécurité sociale pour des millions de consommateurs. Les cybercriminels peuvent ensuite revendre ces informations personnelles dans les coins les plus sombres du dark web, pour les utiliser à toutes sortes de fins illégales.
Les courriels volés peuvent être utilisés pour des attaques de phishing et de malspam. Ces dernières peuvent à leur tour être utilisées pour infecter les victimes avec toutes sortes de malwares destructeurs tels que les ransomwares, les adwares, les cryptojackers et les chevaux de Troie (par exemple Emotet), pour n'en citer que quelques-uns. Les numéros de téléphone volés pour les appareils mobiles Android et iOS peuvent être ciblés par des appels téléphoniques non sollicités et des spams.
Les identifiants volés sur les sites de réseaux sociaux peuvent même être utilisés pour envoyer des messages de spam et voler encore plus d'identifiants pour d'autres sites. Malwarebytes Labs Nous avons déjà signalé que des comptes LinkedIn piratés étaient utilisés pour spammer d'autres utilisateurs avec des messages InMail contenant de mauvaises URL usurpées, ou truquées, pour ressembler à une page de connexion à Google Docs par laquelle les cybercriminels pouvaient récupérer les noms d'utilisateur et les mots de passe de Google.
Quelle est l'histoire des injections SQL ?
L'exploit de l'injection SQL a été documenté pour la première fois en 1998 par le chercheur en cybersécurité et pirate informatique Jeff Forristal. Ses découvertes ont été publiées dans le magazine de pirates informatiques Phrack, qui existe depuis longtemps. Sous le nom de Rain Forest Puppy, Forristal expliquait comment une personne ayant des compétences de base en codage pouvait superposer des commandes SQL non autorisées à des commandes SQL légitimes et extraire des informations sensibles de la base de données d'un site web non sécurisé.
Lorsque M. Forristal a informé Microsoft de l'impact de la vulnérabilité sur son célèbre produit SQL Server, l'entreprise n'y a pas vu de problème. Comme l'a dit Forristal, "selon eux [Microsoft], ce que vous allez lire n'est pas un problème, alors ne vous préoccupez pas de faire quoi que ce soit pour l'arrêter".
Ce qui rend la réponse laxiste de Microsoft si choquante, c'est que de nombreux secteurs et institutions dépendaient sérieusement (à l'époque et aujourd'hui) de la technologie de gestion de base de données de l'entreprise pour assurer le bon fonctionnement de leurs activités, notamment le commerce de détail, l'éducation, la santé, la banque et les ressources humaines. Cela nous amène à l'événement suivant dans la chronologie de l'histoire de SQLI : la première attaque majeure de SQLI.
En 2007, la plus grande chaîne de magasins de proximité des États-Unis, 7-Eleven, a été victime d'une attaque SQLI. Les pirates russes ont utilisé des injections SQL pour pirater le site web de 7-Eleven et s'en servir comme tremplin pour accéder à la base de données des cartes de débit des clients de la supérette. Les pirates ont ainsi pu retirer de l'argent chez eux, en Russie. Au total, les coupables ont emporté deux millions de dollars, comme le rapporte le magazine Wired.
Toutes les attaques par SQLI ne sont pas motivées par l'appât du gain. Dans un autre exemple remarquable datant de 2007, des cybercriminels ont utilisé SQLI pour prendre le contrôle administratif de deux sites web liés à l'armée américaine et rediriger les visiteurs vers des sites web contenant de la propagande anti-américaine et anti-israélienne.
La violation de données de MySpace en 2008 est l'une des plus importantes attaques contre un site web grand public. Les cybercriminels ont volé les courriels, les noms et les mots de passe partiels de près de 360 millions de comptes. Voilà pourquoi nous ne réutilisons pas les mots de passe d'un site à l'autre.
Le titre du manque de sécurité le plus flagrant revient à Equifax. La violation de données d'Equifax en 2017 a permis de recueillir des informations extrêmement personnelles (noms, numéros de sécurité sociale, dates de naissance et adresses) concernant 143 millions de consommateurs. Pour une organisation qui joue le rôle de gardien des informations de chaque Américain, à l'exception de ceux qui vivent hors du réseau, on pourrait penser qu'elle prendrait des précautions contre une attaque SQLI de base. Avant la violation des données, un cabinet de recherche en cybersécurité a même averti Equifax qu'elle était susceptible de subir une attaque SQLI, mais le bureau de crédit n'a pris aucune mesure jusqu'à ce qu'il soit trop tard.
Dans ce qui est considéré comme le piratage le plus effrayant de l'histoire, une attaque SQLI de 2015 sur le fabricant de jouets Vtech a conduit à une violation de près de cinq millions de parents et 200 000 enfants. S'adressant à Motherboard, la publication multimédia en ligne, le pirate responsable a affirmé qu'il n'avait pas l'intention d'utiliser les données et qu'il ne les avait pas publiées en ligne. À l'inverse, le pirate a également expliqué que les données étaient très faciles à voler et que quelqu'un d'autre aurait pu les obtenir en premier. Une consolation bien froide en effet.
Aujourd'hui, l'attaque SQLI est toujours d'actualité. Tous les trois ans, l'Open Web Application Security Project (OWASP) classe les 10 risques les plus critiques des applications Web Security . Dans l'édition 2017 la plus récente, l'attaque SQLI est classée en première position.
Au-delà de la longévité de l'attaque SQLI, ce qui est intéressant, c'est que les attaques SQLI n'ont pas changé ou évolué d'une quelconque manière. Les attaques SQLI fonctionnent et continueront de fonctionner jusqu'à ce que les gens changent d'attitude à l'égard de la cybersécurité. Soyez ce changement.
Nouvelles sur les injections SQL
- Qu'est-ce qu'un pot de miel ? Comment ils sont utilisés en cybersécurité
- Entretien avec un chasseur de primes aux insectes : Youssef Sammouda
- Un guide sur les attaques de type "zero-day" pour 2020 : Attaques récentes et techniques préventives advanced
- Les vulnérabilités des applications mobiles financières mettent en danger les consommateurs et les entreprises
- Comment sécuriser votre système de gestion de contenu
- Expliqué : Injection SQL
- Top 10 de l'OWASP - Une sécurité ennuyeuse mais payante
- Les 5 cybermenaces les plus stupides qui fonctionnent malgré tout
Comment les injections SQL affectent-elles mon entreprise ?
Comme l'indique notre rapport sur les tactiques et techniques de cybercriminalité, les cyberattaques (de toutes sortes) contre les entreprises ont augmenté de 55 % au second semestre 2018, tandis que les attaques contre les consommateurs individuels n'ont progressé que de 4 %. Ces statistiques ne sont pas surprenantes. Les entreprises dont la sécurité est médiocre représentent pour les criminels une cible facile, car elles détiennent un trésor de données précieuses qui valent des millions.
À l'inverse, une entreprise victime d'une violation de données peut s'attendre à devoir débourser des millions. Selon une étude d'IBM, le coût moyen d'une violation de données, y compris les mesures correctives et les pénalités, s'élève à 3,86 millions de dollars. La violation de données de LinkedIn mentionnée précédemment a fini par coûter au site de réseautage professionnel 1,25 million de dollars dans le cadre d'un règlement à l'amiable.
Après sa violation de données, Target a été contraint de payer le montant le plus élevé jamais enregistré - 18,5 millions de dollars - pour régler des enquêtes menées par plusieurs États. Ce montant s'ajoute aux 10 millions de dollars versés par Target pour régler un recours collectif intenté par des consommateurs.
Il est vrai qu'il s'agit d'énormes violations de données qui touchent des millions de consommateurs. Cependant, les petites et moyennes entreprises peuvent encore s'attendre à payer 148 dollars pour chaque dossier de consommateur volé.
La morale de l'histoire ? Prenez votre sécurité au sérieux et évitez d'être une "cible" pour les cybercriminels.
Comment puis-je me protéger contre les injections SQL ?
Toutes ces considérations mises à part, vous êtes ici parce que vous savez que les injections SQL constituent une menace sérieuse. Maintenant, agissons. Voici quelques conseils pour protéger votre entreprise contre les attaques par injection SQL.
Mettez à jour votre logiciel de gestion de base de données. Votre logiciel est défectueux tel qu'il sort du fabricant. C'est un fait. Il n'existe pas de logiciel exempt de bogues. Les cybercriminels peuvent tirer parti de ces vulnérabilités logicielles, ou exploits, à l'aide d'un SQLI. Vous pouvez vous protéger en appliquant des correctifs et en mettant à jour votre logiciel de gestion de base de données.
Appliquer le principe du moindre privilège (PoLP). Ce principe signifie que chaque compte ne dispose que d'un accès suffisant pour effectuer son travail, et rien de plus. Par exemple, un compte web qui n'a besoin que d'un accès en lecture à une base de données donnée ne devrait pas avoir la possibilité d'écrire, d'éditer ou de modifier les données de quelque manière que ce soit.
Utilisez des instructions préparées ou des procédures stockées. Contrairement au SQL dynamique, les instructions préparées limitent les variables sur les commandes SQL entrantes. Ainsi, les cybercriminels ne peuvent pas insérer des injections SQL malveillantes dans des instructions SQL légitimes. Les procédures stockées limitent également les possibilités des cybercriminels en stockant des instructions SQL dans la base de données, qui sont exécutées par l'utilisateur à partir de l'application web.
Embaucher des développeurs compétents et expérimentés. Les attaques SQLI résultent souvent d'un codage négligé. Faites savoir à l'avance à vos développeurs de logiciels ce que vous attendez d'eux en matière de sécurité.
Que faire si mes informations personnelles ont été volées lors d'une violation de données ? Nous vous conseillons de consulter notre liste de contrôle en cas de violation de données. Vous y apprendrez tout ce qu'il faut faire pour nettoyer et rester en sécurité après une violation de données due à une attaque SQLI.
Visitez le site de l'OWASP. Le projet Open Web Application Security , OWASP en abrégé, est la principale autorité en matière d'applications web. Il propose de nombreuses lectures complémentaires sur la manière d'éviter les injections SQL.
Et si vous ne pouvez pas vous passer de l'injection SQL dans votre vie, visitez le blogMalwarebytes Labs pour tout savoir sur les derniers événements dans le monde des cybermenaces et de la cybersécurité.