Rechercher

Zéro injection SQL, malgré les développeurs

Éviter les injections SQL, c’est possible… en s’inspirant des compilateurs, selon Judicaël Courant.

Judicaël Courant, expert R&D chez Orange Cyberdefense, a développé une méthode pour effectuer des requêtes SQL qui garantit l’invulnérabilité aux injections SQL. Celle-ci a été publiée dans la revue MISC de septembre-octobre.

Ce sont les audits de code qu’il a réalisés qui lui ont donné envie de réfléchir à cette question : il a constaté des vulnérabilités aux injections SQL, alors même que les développeurs utilisaient les outils généralement conseillés pour éviter ces injections (les requêtes préparées), parce qu’ils ne les utilisaient pas correctement, par manque de temps ou de formation. D’où son questionnement : peut-on proposer une méthode qui ne mette pas la sécurité en péril si elle mal utilisée ?

La méthode qu’il propose s’adresse aux développeurs et est inspirée d’un domaine de l’informatique qu’il connaît bien, celui de la compilation : alors que les développeurs manipulent les requêtes sous forme de chaînes de caractères, les compilateurs manipulent des arbres de syntaxe abstraite, qui sont des structures de données beaucoup plus adaptées pour manipuler des requêtes.

En quelques mots, cette méthode :

  • consiste à proposer aux développeurs de construire et manipuler des requêtes SQL sous forme d’arbres ;
  • est implémentée sous forme d’une preuve de concept dans une bibliothèque Java disponible sur le GitHub Orange Cyberdefense et offerte sous licence libre ;
  • permet aux développeurs de construire des requêtes sûres sans risque d’erreur et est plus facile à mettre en œuvre qu’un ORM (Object-Relational Mapping) sur des projets existants.

Pour aller plus loin, nous vous invitons à consulter l’article en cliquant sur le lien (article réservé aux abonnés).