attaque par injection

Une définition du Jargon Français.
Aller à : Navigation, rechercher

locution nominale, féminin.  [type d'attaque]  [programmation]. Façon de pénétrer consistant à trouver et exploiter une erreur de programmation d'un logiciel animé par le système visé, grâce à laquelle l'attaquant placera des instructions ou commandes de sorte qu'elles soient exécutées.

L'injection SQL, par exemple, est parfois possible lorsque le programme serveur demande des informations à l'utilisateur, par exemple via un formulaire, puis stocke sa réponse dans un SGBDR. L'attaquant place une commande SQL dans sa réponse de sorte qu'elle soit exécutée par le SGBDR lorsque le serveur tentera de la stocker. Cette commande lui offre moyen d'accéder indûment au contenu de la base, par exemple d'y lire des informations confidentielles, de modifier ou supprimer...

En voici un exemple:

Si le programme serveur emploie la requête SQL suivante:

SELECT immatriculation_compte FROM table_des_comptes WHERE pseudonyme = '$pseudo';

La variable $pseudo contient ici le pseudonyme soumis par l'utilisateur.

Si ce dernier répond par exemple « ' OR 'a'='a », la requête deviendra:

SELECT immatriculation_compte FROM table_des_comptes WHERE pseudonyme = '' OR 'a'='a';

... et lorsque le logiciel la soumettra au SGBDR, ce dernier lui renverra les immatriculations de tous les comptes car « WHERE pseudonyme = '' OR 'a'='a' » n'en filtre rien puisque « 'a'='a' » est toujours vrai. Si le logiciel affiche directement le résultat (informations fournies par le SGBDR) le pirate obtiendra ainsi des informations potentiellement confidentielles.

Le pirate ne sait d'ordinaire rien de la requête, mais il peut empiriquement parvenir à ses fins.

La parade consiste, pour le développeur du programme serveur, à:

Certains scripts en JavaScript ou VBScript des sites web sont d'autres vecteurs classiques. L'attaque consiste à fournir une réponse qui contient un script dangereux. Elle sera publiée, et certains navigateurs exécuteront le script.

De la même façon certaines attaques visent des shells ou des programmes en PHP ou ASP, ou encore des serveurs expédiant des courriels, par exemple afin de spammer.

Direction.png Voir aussi : débordement de tampon.