Injection SQL

Les cybercriminels utilisent les injections SQL pour exploiter les vulnérabilités logicielles des applications web et obtenir un accès non autorisé à vos données sensibles et précieuses.

Qu'est-ce qu'une attaque par injection SQL ?

Vous ne savez peut-être pas ce qu'est une attaque par injection SQL (SQLI) ou comment elle fonctionne, mais vous connaissez certainement les victimes. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn et Sony Pictures - ces entreprises ont toutes été piratées par des cybercriminels utilisant des injections SQL.

Une SQLI est un type d'attaque où les cybercriminels exploitent des vulnérabilités dans les applications web dans le but de voler, supprimer, modifier des données ou obtenir un contrôle administratif sur les systèmes exécutant les applications affectées.

Les chercheurs en cybersécurité considèrent l'injection SQL comme l'une des menaces cybernétiques les moins sophistiquées et faciles à contrer. Malwarebytes Labs a classé l'injection SQL en troisième position dans Les 5 menaces cybernétiques les plus stupides qui fonctionnent quand même, citant le fait que l'injection SQL est une attaque connue et prévisible avec des contre-mesures faciles à mettre en œuvre.

Les attaques SQLI sont si faciles que les attaquants peuvent trouver des sites vulnérables en utilisant des recherches avancées sur Google, appelées Google Dorking. Une fois qu'ils ont trouvé une cible appropriée, les attaquants SQLI peuvent utiliser des programmes automatisés pour effectuer efficacement l'attaque pour eux. Tout ce qu'ils ont à faire est de saisir l'URL du site cible et de regarder les données volées affluer.

Et pourtant, les attaques SQLI sont courantes et surviennent chaque jour. En fait, si vous avez un site web ou une entreprise en ligne, des cybercriminels ont probablement déjà essayé d'utiliser la SQLI pour tenter de s'introduire dans votre site. Une étude de Ponemon Institute sur "The SQL Injection Threat & Recent Retail Breaches" a révélé que 65 % des entreprises interrogées étaient victimes d'une attaque basée sur SQLI.

Les applications web souvent ciblées comprennent : les sites de réseaux 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 que les cybercriminels utilisent lors d'une attaque SQLI et, par conséquent, ne savent pas comment se défendre contre une telle attaque.

Avec cela, faisons le premier pas pour se défendre contre une injection SQL en s'éduquant sur le sujet. Voici votre guide sur les injections SQL.

« Une injection SQL est un type d'attaque par lequel des cybercriminels exploitent les vulnérabilités logicielles des applications web dans le but de voler, supprimer ou modifier des données, ou d'obtenir le contrôle administratif des systèmes exécutant les applications affectées. »

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 la gestion de bases de données en ligne. Ces bases de données contiennent des informations telles que les prix et les niveaux de stock des sites de vente en ligne. Lorsqu'un utilisateur souhaite accéder à des informations dans une base de données, SQL est utilisé pour y accéder et les lui présenter. Cependant, ces bases de données peuvent également contenir des données plus sensibles et précieuses, comme des identifiants et des mots de passe, des informations de carte bancaire et des numéros de sécurité sociale. C'est là que les injections SQL entrent en jeu.

En termes simples, une injection SQL se produit lorsque des activités criminelles sont commises. hackers Saisir 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-vous sur votre site de vêtements en ligne préféré. Vous cherchez des chaussettes et vous découvrez un univers haut en couleur, accessible en un clic. La magie de la technologie ! Chaque chaussette est stockée dans une base de données sur un serveur. Lorsque vous trouvez une chaussette qui vous plaît et que vous cliquez dessus, vous envoyez une requête à la base de données, et le site répond avec les informations concernant la chaussette sélectionnée. Imaginez maintenant que votre site d'achat en ligne préféré soit mal conçu et truffé de failles SQL exploitables.

Un cybercriminel peut manipuler les requêtes de base de données de telle sorte qu'une demande d'informations sur une paire de chaussettes renvoie le numéro de carte bancaire d'un client malchanceux. En répétant ce processus inlassablement, il peut sonder les profondeurs de la base de données et dérober des informations sensibles sur tous les clients ayant déjà effectué des achats sur votre site de vêtements en ligne préféré, y compris vous. Poussons l'expérience encore plus loin : imaginez que vous soyez le propriétaire de ce site. Vous êtes confronté à une fuite de données massive.

Une seule attaque SQLI peut permettre aux cybercriminels de s'emparer des informations personnelles, adresses e-mail, identifiants, numéros de carte bancaire et numéros de sécurité sociale de millions de consommateurs. Ils peuvent ensuite revendre ces données sur les recoins les plus obscurs du dark web , pour les utiliser à des 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 de sites de réseaux sociaux peuvent même être utilisés pour envoyer des spams de messages et voler encore plus d'identifiants pour d'autres sites. Malwarebytes Labs avait précédemment 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 falsifiées pour ressembler à une page de connexion Google Docs, permettant ainsi aux cybercriminels de récupérer des noms d'utilisateur et des mots de passe Google.

« Un cybercriminel peut manipuler les requêtes de bases 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 client malchanceux. »

Quelle est l'histoire des injections SQL ?

L'exploitation de la faille d'injection SQL a été documentée pour la première fois en 1998 par un chercheur en cybersécurité et hacker Jeff Forristal. Ses conclusions ont été publiées dans la revue à long terme hacker Dans le fanzine Phrack, Forristal, écrivant sous le pseudonyme de Rain Forest Puppy, expliquait comment une personne possédant des compétences de base en programmation pouvait s'appuyer sur des commandes SQL légitimes pour exécuter des commandes SQL non autorisées et extraire des informations sensibles de la base de données d'un site web non sécurisé.

Lorsque Forristal a informé Microsoft de l'impact de cette vulnérabilité sur son produit phare SQL Server, l'entreprise n'y a vu aucun problème. Comme l'a déclaré Forristal : « D'après eux [Microsoft], ce que vous allez lire n'est pas un problème, alors ne vous inquiétez pas et ne faites rien pour y remédier. »

Ce qui rend la réaction désinvolte de Microsoft si choquante, c'est que de nombreux secteurs et institutions dépendaient (hier comme aujourd'hui) de sa technologie de gestion de bases de données pour assurer leur fonctionnement, notamment le commerce de détail, l'éducation, la santé, la banque et les ressources humaines. Ceci nous amène à l'événement suivant dans l'histoire des injections SQL : la première attaque majeure de ce type.

En 2007, la plus grande chaîne de supérettes des États-Unis, 7-Eleven, a été victime d'une attaque SQLI. hackers Ils 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. Cela leur a permis de… hackers Ils ont ensuite rapatrié l'argent en Russie. Au total, les malfaiteurs ont emporté deux millions de dollars, comme l'a rapporté le magazine Wired.

Toutes les attaques SQLI ne sont pas motivées par la cupidité. Dans un autre exemple remarquable de 2007, des cybercriminels ont utilisé SQLI pour obtenir un contrôle administratif sur deux sites Internet liés à l'armée américaine et rediriger les visiteurs vers des sites contenant de la propagande anti-américaine et anti-israélienne.

Le piratage de MySpace en 2008 figure parmi les plus importantes attaques jamais perpétrées contre un site web grand public. Les cybercriminels ont dérobé les adresses électroniques, les noms et des parties de mots de passe de près de 360 ​​millions de comptes. C'est pourquoi il est essentiel de ne pas réutiliser ses mots de passe d'un site à l'autre.

La palme de la plus grave négligence en matière de sécurité revient à Equifax. La fuite de données de 2017 a exposé 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 fait office de gardienne des informations pour chaque Américain, à l'exception de ceux vivant hors réseau, on pourrait s'attendre à ce qu'elle prenne des précautions contre une simple attaque SQLI. Avant même la fuite, une société de recherche en cybersécurité avait averti Equifax de sa vulnérabilité à ce type d'attaque, mais l'agence d'évaluation du crédit n'a réagi que trop tard.

Considérée comme l'une des attaques informatiques les plus inquiétantes de l'histoire, une injection SQL réalisée en 2015 contre le fabricant de jouets VTech a permis de compromettre les données de près de cinq millions de parents et de 200 000 enfants. Dans un entretien accordé à Motherboard , publication multimédia en ligne, hacker Les responsables ont affirmé n'avoir aucun projet concernant ces données et ne les ont publiées nulle part en ligne. À l'inverse, hacker Il a également été expliqué que les données étaient très faciles à voler et que quelqu'un d'autre aurait pu y accéder avant lui. Quelle maigre consolation !

Aujourd'hui, l'attaque par injection SQL existe toujours. Tous les trois ans, le projet de sécurité des applications Web ouvertes (OWASP) classe les dix risques de sécurité des applications Web les plus critiques. Dans l'édition la plus récente de 2017, l'attaque par injection SQL se classait au premier rang.

Au-delà de la longévité des attaques SQLI, il est frappant de constater qu'elles n'ont ni changé ni évolué. Les attaques SQLI fonctionnent et continueront de fonctionner tant que les mentalités en matière de cybersécurité resteront inchangées. Soyez acteurs du changement.

Actualités sur les injections SQL

Quel est l'impact des injections SQL sur mon entreprise ?

Comme l'indique notre rapport sur les tactiques et techniques de la cybercriminalité , les cyberattaques (de toutes sortes) contre les entreprises ont augmenté de 55 % au second semestre 2018, tandis que les attaques contre les particuliers n'ont progressé que de 4 %. Ces statistiques ne sont pas surprenantes. Les entreprises dont la sécurité est défaillante constituent une cible facile pour les criminels, car elles recèlent une mine d'informations précieuses valant des millions.

À l'inverse, une entreprise victime d'une fuite de données peut s'attendre à débourser des millions. Une étude d'IBM a révélé que le coût moyen d'une fuite de données , incluant la remédiation et les pénalités, s'élevait à 3,86 millions de dollars. LinkedIn La fuite de données mentionnée précédemment a finalement coûté 1,25 million de dollars au site de réseautage professionnel dans le cadre d'un règlement à l'amiable.

Suite à la fuite de données dont a été victime Target, l'entreprise a été contrainte de verser la somme record de 18,5 millions de dollars pour clore les enquêtes menées par plusieurs États. Ce montant s'ajoute aux 10 millions de dollars déjà versés par Target pour régler un recours collectif intenté par des consommateurs.

Certes, il s'agit de fuites de données massives touchant des millions de consommateurs. Cependant, les petites et moyennes entreprises peuvent s'attendre à devoir débourser 148 $ pour chaque donnée client volée.

La morale de cette histoire ? Prenez votre sécurité au sérieux et évitez d'être une « cible » pour les cybercriminels.

Comment me protéger contre les injections SQL ?

Sans plus tarder, si vous êtes ici, c'est que vous savez que les injections SQL représentent une menace sérieuse. Alors, agissons ! Voici quelques conseils pour protéger votre entreprise contre les attaques par injection SQL.

Mettez à jour votre logiciel de gestion de bases de données. Il comporte des failles de sécurité dès sa sortie d'usine. C'est un fait. Aucun logiciel n'est exempt de bugs. Les cybercriminels peuvent exploiter ces vulnérabilités, ou failles de sécurité, via une injection SQL. Vous pouvez vous protéger en appliquant les correctifs et en mettant à jour votre logiciel de gestion de bases de données.

Appliquez le principe du moindre privilège. Ce principe signifie que chaque compte ne dispose que des droits d'accès nécessaires à son fonctionnement, 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 doit en aucun cas pouvoir y écrire, la modifier ou l'altérer.

Utilisez des requêtes préparées ou des procédures stockées. Contrairement au SQL dynamique, les requêtes préparées limitent les variables des commandes SQL entrantes. Ainsi, les cybercriminels ne peuvent pas injecter de code malveillant dans des requêtes SQL légitimes. De même, les procédures stockées limitent les actions des cybercriminels en stockant les requêtes SQL dans la base de données, lesquelles sont exécutées par l'utilisateur depuis l'application web.

Embauchez des développeurs compétents et expérimentés. Les attaques par injection SQL sont souvent dues à un codage bâclé. Informez vos développeurs en amont de vos exigences en matière de sécurité.

Que faire si mes informations personnelles ont été volées dans une fuite de données ? Consultez notre liste de contrôle en cas de fuite de données. Vous y apprendrez tout sur le nettoyage et la sécurité après avoir été victime d'une fuite de données suite à une attaque SQLI.

Visitez OWASP. L'Open Web Application Security Project, OWASP en abrégé, est l'autorité principale sur les applications Web, et ils ont beaucoup de lectures supplémentaires sur comment prévenir les injections SQL.

Et si vous n'en avez jamais assez des injections SQL dans votre vie, visitez le blog de Malwarebytes Labs pour connaître toutes les dernières actualités dans le monde des cybermenaces et de la cybersécurité.