Hacking : des attaques par injection SQL permettent à trois américains de voler plus de 130 millions de numéros de cartes bleues. Comment contrer ces attaques ?
Un habitant de Miami âgé de 28 ans, Albert Gonzalez, ainsi que ses deux comparses d'origine russe ont été accusés aujourd'hui par les Services Secrets du New Jersey de ce que les journaux U.S. désignent déjà comme le plus grand vol de données de l'histoire américaine.
Les trois hommes ont en effet réalisé une attaque à grand échelle. Ils ont en tout mis la main sur plus de 130 millions de numéros de cartes bancaires, ainsi que sur les informations personnelles d'identification des propriétaires qui y étaient associées.
L'américain et les deux russes opéraient depuis octobre 2006 avec une technique bien rôdée : une attaque par injection SQL qui leur permettait de voler les informations désirées en contournant le pare-feu du réseau visé. Ils envoyaient ensuite les données volées sur des serveurs aux Pays-Bas et en Ukraine et effaçaient leurs traces.
Une injection SQL est un type d'attaque ciblant les applications fonctionnant avec une base de données relationnelle. Le pirate injecte une requête SQL imprévue dans le système et exploite les failles générées par cette action.
En effet, pour les sites fonctionnant de cette manière, les paramètres sont annoncés à la base de donnée sous la forme de requêtes SQL. Vous comprendrez alors aisément que si l'administration du site ne contrôle ni ne verouille les paramètres ainsi envoyés, un pirate pourra aisément compromettre la base de données, y accédant par l'envoi de ses propres requêtes falacieuses.
Par exemple, certains caractères permettent d'éxécuter plusieurs requêtes à la suite, tandis que d'autres (par exemple, l'apostrophe) forcent à ignorer la suite de la requête. De cette manière, un hacker peut lancer presque n'importe quelle requête de son cru.
Les autorités locales se félicitent d'avoir appréhendé les trois pirates -malgré les protections sophistiquées qu'ils avaient utilisées pour dissimuler leurs identités- ce qui couronne leurs efforts pour poursuivre de manière individuelle les personnes sévissant de cette manière dans le "grand banditisme électronique". La justice américaine à ici fait preuve d'une grande diplomatie pour travailler conjointement avec ses homologues étrangers dans ce cas d'envergure internationale.
L'entreprise ayant subit le plus gros préjudice dans cette affaire est Heartland Payment Systems à qui les pirates ont volé plus de 100 millions de numéros de cartes de crédit. Ont aussi été mises à mal 7-Eleven Inc. (chaîne de magasins nationale basée au Texas, 4.2 millions de numéros volés) et Hannaford Brothers (chaîne de supermarchés ayant son siège dans le Maine). Les noms des deux autres compagnies victimes de cette fraude n'ont pas encore été rendus publiques.
S'ils sont reconnus coupables, les trois compères risquent jusqu'à 25 ans de réclusion criminelle ainsi qu'une amende de plus de 500.000 dollars chacun.
Mais ce n'est pas tout pour Gonzalez, récidiviste arrêté une première fois en 2003 pour fraude à la carte bancaire, qui sera également jugé en septembre 2009 ainsi qu'à l'automne 2010 pour d'autres braquages électroniques (vol de données des compagnies TJX Companies, Dave & Busters, BJ's Wholesale Club, OfficeMax, Boston Market, Barnes & Noble, Sports Authority, Forever 21 et DSW).
Source : Communiqué du Ministère de la Justice des Etats-Unis
Comment éviter une attaque par injection SQL ? Utiliser des comptes utilisateurs SQL à accès limité (en lecture-seule) et des requêtes SQL préparées (requêtes à trous envoyées au serveur SQL, serveur à qui l'on envoie par la suite les paramètres qui boucheront les trous) est-il suffisant ?
Avec tous les moyens de protection actuels, est-il normal que de telles attaques soient encore réalisables ?