Le Vibe coding, une pratique qui consiste à créer des logiciels en les décrivant à un modèle d’IA plutôt qu’en écrivant et en révisant manuellement chaque ligne, est devenu de plus en plus courant dans le secteur technologique. Sa rapidité et son accessibilité peuvent aider les utilisateurs à créer des logiciels avec moins de ressources, mais du code qui n’est pas entièrement compris ou inspecté peut introduire des risques de sécurité.

L’entreprise de cybersécurité Apiiro a déclaré qu’une analyse des entreprises du Fortune 50 avait révélé que le vibe coding rendait les ingénieurs quatre fois plus productifs, tout en générant dix fois plus de problèmes de sécurité. Pour les débutants, les pratiques suivantes peuvent réduire certains de ces risques.

1. Rédiger des instructions précises et créer un fichier de sécurité persistant

Les modèles d’IA peuvent prendre des raccourcis pour répondre à une demande sans ajouter les protections appropriées. Les prompts doivent donc préciser les exigences en matière de confidentialité, les restrictions d’accès, le chiffrement et les autres contrôles de sécurité. Les développeurs peuvent également demander au modèle de tenir compte de la liste de l’OWASP consacrée aux principales vulnérabilités.

De nombreux outils prennent en charge un contexte ou des règles persistants. Un fichier Markdown peut contenir les exigences de sécurité du projet afin que le modèle en tienne compte lors des tâches futures. La source recommande également de choisir des outils dotés de journaux d’audit, qui facilitent le suivi des modifications apportées au projet.

2. Garder les identifiants hors des prompts et du code source

Les clés API et les mots de passe ne doivent pas être saisis dans une conversation avec une IA ni intégrés directement au code. Si des identifiants sont ensuite envoyés sur GitHub, ils pourraient devenir visibles par d’autres personnes. Restreindre l’accès d’un outil d’IA peut également contribuer à réduire le risque d’attaques par injection de prompts.

Pour les débutants, l’approche recommandée consiste à stocker les informations sensibles dans un gestionnaire de mots de passe et à utiliser les fonctions de gestion des secrets ou des variables d’environnement proposées par des services tels que Replit, Lovable ou Vercel. Lorsque ces fonctions ne sont pas disponibles, un fichier .env côté backend peut être utilisé, à condition de l’exclure avec .gitignore et de ne jamais l’exposer sur le frontend de l’application. TruffleHog peut aider à détecter les secrets divulgués accidentellement.

3. Protéger les données de l’application

Les applications qui traitent d’importants volumes de données peuvent s’appuyer sur des bases de données SQL, qui peuvent être ciblées par des attaques par injection SQL. Les développeurs doivent demander à l’IA de paramétrer les requêtes, de nettoyer les entrées, d’utiliser les Server Actions pour les opérations critiques et d’activer la sécurité au niveau des lignes avec des politiques appropriées lorsque cela est pertinent.

La source conseille également de vérifier que le projet utilise des versions actuelles de ses bibliothèques. Les systèmes d’IA peuvent suggérer des packages qui n’existent pas ou introduire involontairement des dépendances malveillantes ; les recommandations générées doivent donc être vérifiées avant leur adoption.

4. Ajouter une limitation du débit

La limitation du débit restreint la fréquence à laquelle un utilisateur ou un système automatisé peut effectuer une action. Elle peut contribuer à réduire les activités de déni de service, les attaques par force brute contre les mots de passe et les tentatives de bourrage d’identifiants.

Les limites appropriées dépendent de l’application. Un chatbot d’assistance, par exemple, pourrait limiter le nombre de jetons consommés par utilisateur chaque jour. Lorsque cela est possible, la source recommande de limiter l’activité en fonction de l’identifiant du compte avant d’utiliser les adresses IP, ce qui rend plus difficile le contournement des contrôles au moyen d’un VPN. Les flux de vérification par e-mail ou par téléphone et les CAPTCHA peuvent fournir une protection supplémentaire contre les activités indésirables.

5. Réviser et tester le code généré

Une revue professionnelle du logiciel est préférable, mais les développeurs peuvent également demander à un modèle d’IA de rechercher des vulnérabilités et de tester le projet par rapport à l’OWASP Top 10. L’utilisation d’un modèle différent pour une seconde revue peut révéler des problèmes que le premier a manqués.

La source cite plusieurs outils conçus pour évaluer les projets générés par l’IA, notamment Claude Code Security, Codex Security, Wingman de Stackhawk, CheckVibe, SafeToShip et le Vibe App Scanner. Les contrôles de sécurité doivent se poursuivre après le lancement, car une surveillance est nécessaire pour identifier les nouveaux problèmes dans une application déployée.

Sources: Engadget.