Le "vibe coding", ou la programmation "à l'intuition" assistée par intelligence artificielle, s'est rapidement imposé comme une pratique courante chez de nombreux développeurs, séduits par la promesse d'une productivité décuplée. Des outils comme GitHub Copilot, Tabnine ou les modèles conversationnels avancés permettent de générer des blocs de code, des fonctions entières, voire des applications complètes à partir d'une simple description en langage naturel. Cependant, derrière cette apparente facilité se cachent des problématiques profondes et coûteuses, notamment liées aux limites techniques des modèles d'IA et aux risques de sécurité critiques.
La fenêtre de contexte : une mémoire courte qui coûte cher
L'une des contraintes majeures des grands modèles de langage (LLM) réside dans leur fenêtre de contexte. Il s'agit de la quantité d'informations, mesurée en tokens (des fragments de mots), que le modèle peut prendre en compte simultanément pour générer une réponse. Pour qu'une IA puisse modifier ou ajouter une fonctionnalité à un projet existant, le développeur doit idéalement lui fournir l'ensemble du code pertinent. C'est là que le bât blesse.
À chaque nouvelle requête, par exemple pour corriger un bug ou ajouter une simple feature, le développeur est souvent contraint de réinjecter une grande partie, voire la totalité, du code de l'application dans le prompt. Ce processus est non seulement fastidieux, mais il engendre une redondance massive. L'IA traite encore et encore le même code, ce qui a un impact direct et significatif sur le coût d'utilisation de l'API.
Le modèle de facturation de la plupart de ces services est basé sur le nombre de tokens en entrée (le prompt) et en sortie (le code généré). En soumettant constamment du code redondant, la consommation de tokens explose. Une simple mise à jour peut ainsi coûter de manière disproportionnée par rapport à la complexité de la tâche. Cette inflation des coûts, souvent invisible au premier abord, devient une charge financière non négligeable pour les projets qui dépendent fortement de la génération de code par IA, transformant un outil de productivité en un gouffre financier.
Des failles de sécurité insidieuses et omniprésentes
Au-delà de l'aspect économique, la sécurité du code généré par IA est une préoccupation majeure et grandissante. Les modèles d'IA sont entraînés sur d'immenses corpus de code public, notamment des dépôts GitHub. Or, ce code est loin d'être toujours exemplaire. Il contient souvent des pratiques obsolètes, des erreurs de logique et, surtout, des failles de sécurité béantes. L'IA, n'ayant pas de discernement qualitatif, apprend et reproduit ces mauvais schémas sans distinction.
Les conséquences sont multiples et peuvent être critiques pour la sécurité d'une application :
Endpoints non sécurisés : Il est fréquent que l'IA génère des API ou des points d'accès réseau sans implémenter les contrôles d'authentification et d'autorisation nécessaires. Elle peut omettre des vérifications de droits, exposant ainsi des données sensibles à des accès non autorisés.
Mauvaises pratiques de chiffrement : L'IA peut suggérer l'utilisation d'algorithmes de chiffrement faibles ou dépréciés (comme MD5 pour le stockage de mots de passe). Pire encore, elle peut "hardcoder" des clés secrètes ou des mots de passe directement dans le code, une pratique unanimement reconnue comme étant extrêmement dangereuse.
Utilisation de librairies anciennes ou malveillantes : Dans sa quête de solutions, l'IA peut proposer d'intégrer des dépendances logicielles qui n'ont pas été mises à jour depuis des années et qui contiennent des vulnérabilités connues (CVE). Plus pernicieux encore est le risque "d'hallucination de librairie" : l'IA peut inventer le nom d'un package qui n'existe pas. Des acteurs malveillants peuvent alors créer et publier une librairie malveillante sous ce nom, sachant que des développeurs peu méfiants l'installeront, créant ainsi une attaque directe sur la chaîne d'approvisionnement logicielle.
Le "vibe coding" encourage une approche où le développeur fait confiance à la "magie" de l'IA sans forcément comprendre en profondeur le code produit. Cette absence de relecture critique et de validation humaine transforme la génération de code assistée en une véritable roulette russe pour la sécurité. Une étude récente de Veracode a d'ailleurs révélé qu'une part très importante du code généré par l'IA contient des failles de sécurité.
Conclusion
Si les outils de génération de code par IA offrent des gains de vitesse indéniables, leur utilisation "à l'aveugle" est périlleuse. La gestion inefficace de la fenêtre de contexte entraîne une spirale de coûts liés à la redondance, tandis que la nature même de leur apprentissage les prédispose à générer un code truffé de vulnérabilités. Le "vibe coding" ne doit donc pas se substituer à la rigueur, à l'expertise et à la vigilance du développeur, qui reste le garant ultime de la qualité, de la maintenabilité et de la sécurité du logiciel final.