Skip to main content

Snyk, votre allié sécurité pour Amazon CodeWhisperer

feature snyk codewhisperer

29 novembre 2023

0 minutes de lecture

Vos équipes de développement prévoient d’adopter un outil de programmation basé sur l’IA générative, mais vous, en tant que responsable de la sécurité, avez des préoccupations en matière de conformité et de sécurité. La plus importante : que se passera-t-il si vous ne parvenez pas à suivre le rythme de vos équipes et qu’une faille importante passe inaperçue ? Heureusement, Snyk vous permet de développer en toute sécurité à la vitesse de l’IA : c’est le partenaire sécurité d’Amazon CodeWhisperer.

Tout le monde encourage l’adoption des outils d’IA générative pour rester compétitif. Les développeurs ne font pas exception et sont impatients d’utiliser des outils comme Amazon CodeWhisperer pour produire du code plus rapidement. Ces progrès sont formidables, mais qu’en est-il de la réglementation, de la conformité et de la sécurité ? En tant que professionnel de la sécurité, vous êtes soumis à des exigences plus élevées, et la responsabilité des défaillances de sécurité vous incombera entièrement, même si le plan a été approuvé par d’autres services. Pour gérer les risques de manière fiable sans freiner les progrès, vous avez besoin d’un outil de sécurité ultra-rapide et convivial pour les développeurs, aussi axé sur la sécurité que vous : Snyk.

Qu’est-ce qu’Amazon CodeWhisperer ?

Amazon CodeWhisperer est un outil de programmation basé sur l’IA générative (GenAI), décrit par Amazon comme un « générateur de code généraliste propulsé par le machine learning ». Notez le choix du mot « générateur ». Il souligne que l’outil automatise simplement la création de code.

Comme les autres outils de GenAI, CodeWhisperer « apprend » en analysant en masse des dépôts de code (dans ce cas, dans AWS CodeCommit) afin d’y repérer des modèles de code fréquemment répétés dans certains contextes, puis en comparant ces modèles au code d’un développeur dans le fichier en cours. Dans l’IDE, CodeWhisperer génère alors en temps réel des suggestions de code probables, fondées sur les modèles détectés. Ces suggestions s’affichent dans la console CodeWhisperer ou sous forme de commentaires dans le code du développeur, un peu comme les suggestions de Grammarly. Le développeur peut ensuite choisir celle qui lui convient. On comprend aisément que CodeWhisperer est un outil puissant, capable de décupler la productivité des développeurs, de réduire les tâches fastidieuses et de transformer durablement leur façon de travailler.

Mais le code qu’il génère est-il sécurisé par défaut ?

Oui, l’IA génère des vulnérabilités

Les LLM (grands modèles de langage, une catégorie de GenAI entraînée sur des textes et qui produit du texte) comme CodeWhisperer établissent des prédictions statistiques à partir de ce qu’ils observent le plus souvent. Imaginez que vous représentiez un grand nombre de données sur une courbe en cloche, puis que vous fondiez une prédiction sur la probabilité qu’une donnée se situe au centre de cette courbe. C’est, en substance, ce que fait l’IA générative. La précision de CodeWhisperer dépend donc des modèles de code courants, répétitifs et prévisibles. Elle sera au mieux inégale dans des contextes plus inhabituels ou avec des séquences de code rares.

Autre problème fréquent : toutes les IA génératives sont sujettes aux hallucinations, et la qualité du code généré ne peut pas dépasser celle du code sur lequel le modèle de GenAI a été entraîné. Dans ce dernier cas, il faut garder à l’esprit qu’un modèle entraîné sur du code non sécurisé proposera du code non sécurisé. CodeWhisperer peut donc aider les développeurs à travailler rapidement, mais ne peut pas toujours garantir la sécurité ni la précision du code. Après tout, l’IA générative n’a pas de capacité de raisonnement : elle ne comprend pas réellement le contexte des situations différentes ou nuancées, ne sait pas reconnaître le code incorrect ou non sécurisé qu’elle a généré et ne peut pas signaler au développeur les problèmes éventuels. 

Non, les outils d’IA générative ne peuvent pas sécuriser entièrement le code qu’ils génèrent 

Détecter ces failles de sécurité est une tâche complexe qui comporte plusieurs niveaux, car les vulnérabilités ne sont pas isolées : elles se répartissent dans le code. La plupart s’étendent sur plusieurs blocs de code, fonctions et fichiers. Pour repérer ces faiblesses, il faut comprendre en profondeur les problèmes de sécurité et le fonctionnement de l’application dans son ensemble. 

La complexité des vulnérabilités du code révèle un autre problème lié à CodeWhisperer et aux assistants de programmation similaires basés sur l’IA. Lorsqu’un développeur utilise un outil comme CodeWhisperer, il lui soumet une tâche et l’outil tente de générer du code correspondant à la demande. Cependant, comme l’IA générative fonctionne par petits blocs et extraits de code, l’outil ne cherche pas à comprendre l’application dans son ensemble. CodeWhisperer peut tenter de reproduire du code trouvé ailleurs dans l’application, mais cela ne signifie pas qu’il apprend le fonctionnement de l’application : il ne fait que reproduire les modèles de code du développeur. Pourtant, chaque nouvel extrait, ligne ou bloc de code modifie le flux de données dans l’application. Pour trouver les problèmes de sécurité, il faut donc prendre en compte le contexte de l’application dans son ensemble. Il n’existe pas d’autre moyen d’identifier ces failles avec précision. 

En résumé, laisser les développeurs utiliser CodeWhisperer sans garde-fous de sécurité pose problème : 

  1. En raison de son fonctionnement, l’IA générative ne permet pas à CodeWhisperer de vérifier si le code produit est correct ou non. Il s’en remet à l’intervention humaine pour apporter les corrections nécessaires. 

  2. Un développeur expérimenté utilisant CodeWhisperer saura repérer la plupart des problèmes fonctionnels dans le code généré par l’outil, mais peu de développeurs ont les compétences ou le temps nécessaires pour trouver chaque problème de sécurité.

  3. Pire encore, les développeurs inexpérimentés risquent de faire trop confiance aux résultats de CodeWhisperer, surtout à mesure que les outils d’IA se généralisent. Ils peuvent alors ne pas voir les problèmes fonctionnels et de sécurité du code généré par l’IA.

CodeWhisperer est un outil puissant qui stimulera sans aucun doute la productivité des développeurs. Mais son utilisation efficace et sûre dépend de la présence de garde-fous de sécurité et de la qualité de l’outil de sécurité employé. Il faut donc toujours utiliser CodeWhisperer (ou tout autre assistant de programmation basé sur l’IA générative) avec un outil de sécurité complémentaire comme Snyk.

La sécurité à la vitesse de l’IA

Les assistants de sécurité doivent être aussi rapides que les assistants de programmation basés sur l’IA utilisés par les développeurs, sinon ils ne seront pas adoptés. Mais ce n’est qu’un début. Voici quelques fonctionnalités importantes à rechercher dans votre outil de sécurité, que l’on retrouve toutes dans Snyk.

Rapide et couvrant un large éventail de besoins

Un outil de sécurité réellement efficace prend en charge un large éventail de langages de programmation (Snyk en prend en charge plus de 19) et détecte les vulnérabilités avant qu’elles ne quittent l’IDE. Snyk est également jusqu’à 50 fois plus rapide que les autres solutions grâce à notre IA hybride propriétaire et à ses méthodes axées sur la sécurité. Il vérifie le code source en temps réel, directement dans l’IDE où travaillent vos développeurs — et CodeWhisperer.

Automatisé

Snyk a mis toute son expertise en sécurité au service d’un outil conçu spécialement pour sécuriser le code et pensé pour les développeurs. Nous savons que les développeurs programment dans différents langages et que leur expertise et leurs priorités concernent la création de logiciels, pas la sécurité. Les contrôles de sécurité doivent donc être ultra-rapides et automatisés, et les correctifs faciles à mettre en œuvre, afin de favoriser l’adoption de l’outil sur le long terme.

Adapté aux workflows et complet

Snyk vérifie automatiquement le code des développeurs dans l’IDE pendant qu’ils travaillent, signale les vulnérabilités, explique les résultats (sans références obscures !) et propose automatiquement des correctifs en ligne en temps réel. Les développeurs peuvent ainsi corriger leur code au fur et à mesure qu’ils le créent. Snyk évalue l’application dans son ensemble — et pas seulement le fichier en cours et ses dépendances — pour en comprendre tout le contexte, avant et après la génération d’un éventuel correctif. Cela permet de repérer les problèmes complexes de sécurité du code susceptibles de se propager entre fonctions et fichiers. Comme le sait toute personne travaillant dans la sécurité, comprendre les flux de données, les interactions du code et toute la complexité de l’application est essentiel au respect des normes de sécurité. Associer Snyk à CodeWhisperer permet de pallier les lacunes de sécurité liées à la génération de code par l’IA.

Précis, personnalisable et doté de rapports centralisés

Snyk sait également que les équipes de développement et de sécurité manquent de temps. Peu importe sa rapidité, Snyk ne serait pas utile s’il générait trop de faux positifs. Certains outils de sécurité du code ne permettent pas de créer des règles personnalisées pour filtrer les nombreux faux positifs, ou obligent les équipes à créer manuellement des règles pour gérer ceux qui se produiraient autrement. Ce n’est pas le cas avec Snyk. 

Avec l’aide de DeepCode AI, nos experts en sécurité gèrent des règles prêtes à l’emploi et une vaste base de connaissances regroupant des modèles de code vulnérable et des correctifs suggérés. Cela améliore la précision et réduit les faux positifs. Vous ne verrez ainsi que quelques résultats pertinents et importants dans vos contrôles de sécurité, plutôt qu’une longue liste de faiblesses sans intérêt. Snyk vous permet également de rédiger des règles personnalisées pour affiner davantage les résultats et répondre aux besoins spécifiques de votre organisation. 

En outre, la fonctionnalité de rapports native de Snyk répond aux besoins des responsables de la sécurité. Elle regroupe les problèmes et les équipes dans une vue centralisée et permet d’appliquer des filtres détaillés. Associée à Snyk Insights, elle permet de prendre des décisions tactiques et stratégiques éclairées et de hiérarchiser les problèmes les plus pertinents.

Indépendant des outils et des technologies

L’indépendance est essentielle aux bonnes pratiques et à une gouvernance efficace. Nous vous recommandons de toujours vérifier que les équipes derrière vos outils de programmation basés sur l’IA sont totalement indépendantes (sans lien direct ni indirect) de celles qui protègent votre code. Confier ces deux rôles à des parties liées revient un peu à demander au renard de garder le poulailler. Chez Snyk, nous sommes des experts en sécurité, sans aucun lien avec les outils de programmation basés sur l’IA : nous nous concentrons exclusivement sur la gestion de vos risques.

Commencez à sécuriser le code généré par l’IA

Créez gratuitement votre compte Snyk pour commencer à sécuriser le code généré par l’IA en quelques minutes. Vous pouvez aussi réserver une démonstration avec un expert pour découvrir comment Snyk répond à vos besoins en sécurité des développeurs.

Plébiscité par les développeurs

Chez Snyk, nous sommes fiers d’avoir conquis non seulement les professionnels de la sécurité, mais aussi les développeurs. L’adoption rapide de Snyk par des entreprises renommées comme Google, Reddit et ABInBev en témoigne. L’intégration et l’adoption de Snyk se font sans friction, car la solution s’intègre parfaitement aux workflows et aux outils existants, notamment aux IDE, aux outils SCM/Git et aux outils CI/CD. Nicolai Brogaard, responsable du service Software Composition Analysis (SCA) et Static Application Security Testing (SAST) chez Visma, explique :

« Le problème avec bon nombre de ces outils de test de sécurité, c’est qu’ils nécessitent beaucoup de connaissances préalables. On ne peut donc pas simplement les installer et les utiliser dans son environnement. L’un des atouts qui distingue Snyk, c’est que les développeurs peuvent se lancer rapidement et trouver eux-mêmes leurs repères. » 

La confiance du secteur et de nos clients 

Snyk a été désigné « Leader » dans le Magic Quadrant 2023 de Gartner pour les tests de sécurité des applications, « Leader » dans le Forrester Wave 2023 pour l’analyse de la composition logicielle et a été distingué par les clients dans les Gartner Peer Insights 2022 pour les tests de sécurité des applications. Ces récompenses témoignent des efforts continus de Snyk pour intégrer la sécurité le plus tôt possible dans le cycle de développement, tout en maintenant une approche rigoureuse de la sécurité, sans imposer de changement de comportement aux développeurs ni perturber leurs workflows.

D’autres ressources de Snyk sur l’IA

Bonnes pratiques pour développer avec l’IA en toute sécurité

10 conseils pour aider les développeurs et les professionnels de la sécurité à atténuer efficacement les risques potentiels tout en tirant pleinement parti du développement avec l’IA.

Lire la suite

blog feature snyk container custom base recommendations
Blog

Découvrez Evo Agentic AppSec : une sécurité au rythme du développement de l’IA

Le développement piloté par l’IA dépasse les workflows de sécurité traditionnels. L’AppSec agentique de Snyk s’appuie sur des agents de sécurité pour détecter, corriger et vérifier les vulnérabilités en continu, tandis que les équipes définissent les exigences.

blog feature ai violet
Blog

VulnBump : les agents IA peuvent-ils corriger les dépendances vulnérables sans casser le build ?

VulnBump évalue des agents IA sur 307 mises à niveau de dépendances réelles. Une correction n’est comptabilisée que si la vulnérabilité disparaît et que la compilation et les tests restent au vert.

Blog

Les modèles de pointe ont trouvé les vulnérabilités. Seul l’attaquant a trouvé les chaînes d’exploitation.

L’analyse statique a détecté les failles, mais seuls des tests d’attaque en conditions réelles ont prouvé comment elles pouvaient être enchaînées pour provoquer des compromissions. Comparaison d’Evo COS, de Claude Security et de Claude Code Security.