Skip to main content

Comment Snyk utilise l’IA pour sécuriser le développement

Écrit par

Frank Fischer

feature snyklaunch

4 avril 2023

0 minutes de lecture

À la pointe de l’application de l’IA à la sécurité du développement, Snyk adopte une approche unique. Aujourd’hui, nous souhaitons vous donner un aperçu de la façon dont Snyk utilise actuellement l’IA et la science des données, ainsi qu’un avant-goût de ce qui vous attend.

Avant d’entrer dans le vif du sujet, nous souhaitons mettre en évidence deux aspects de l’utilisation de l’IA par Snyk pour poser le contexte :

  1. Snyk associe différentes approches et différents algorithmes d’IA, en combinant les deux grandes écoles de l’intelligence artificielle — l’apprentissage automatique (ML) et l’IA symbolique — avec l’intelligence humaine pour créer une IA hybride.

  2. Jusqu’à présent, Snyk a principalement utilisé l’IA en coulisses, afin d’améliorer la qualité et la précision de ses services de recherche en sécurité. Snyk continue d’innover avec l’IA dans ses travaux de recherche et ajoutera de nouvelles fonctionnalités plus visibles dans l’interface utilisateur.

L’approche de Snyk en matière d’IA : l’IA hybride

Revenons plus en détail sur le premier point évoqué ci-dessus : l’IA hybride. Nous parlons d’IA hybride parce que nous combinons plusieurs modèles d’IA avec l’intelligence humaine.

Il existe deux grandes écoles d’IA : le ML et l’IA symbolique.

  • Le ML, ou apprentissage automatique, est efficace dans les situations ambiguës, mais nécessite une grande quantité de données d’entraînement. On parle de « boîte noire », car il ne peut pas justifier la validité de ses résultats. Les techniques de ML génératif, comme GPT, en font partie.

  • L’IA symbolique, quant à elle, convient aux tâches à la structure claire, ne nécessite pas de données d’entraînement et peut justifier ses résultats (elle est transparente, contrairement à une boîte noire). En revanche, elle est moins efficace dans les situations ambiguës.

Pour obtenir des résultats de sécurité, vous devez pouvoir gérer ces deux types de situations. Il vous faut des outils qui analysent le code et en comprennent l’intention, même si sa structure varie d’un exemple à l’autre. C’est un domaine où le ML est utile, mais les systèmes de ML génératif comme GPT ou Codex présentent un inconvénient majeur : les hallucinations. Aussi impressionnants soient-ils, leurs résultats ne sont pas nécessairement exacts et peuvent être trompeurs de façon très convaincante.

C’est là qu’intervient l’IA symbolique, qui fournit des résultats et peut expliquer pourquoi ils sont corrects. Pour prévenir les hallucinations, Snyk associe le ML génératif à l’IA symbolique. Ses modèles de ML génératif produisent le code source d’un correctif, puis l’IA symbolique vérifie que le code généré ne contient aucun problème. Snyk vous fournit automatiquement, directement dans votre IDE, le code qui corrige le problème rencontré et dont l’analyse confirme qu’il n’en introduit pas de nouveaux.

Enfin, et ce n’est pas le moins important, il y a l’intelligence humaine. Snyk croit fermement à l’intelligence naturelle de ses experts en sécurité, qui contrôlent et orientent l’IA. Mais ce n’est pas tout. L’équipe de recherche en sécurité de Snyk a découvert et divulgué des milliers de vulnérabilités, et enrichit ses résultats de métadonnées et d’analyses qui aident les personnes qui les utilisent — développeurs et équipes de sécurité — à les comprendre et à agir. L’IA aide à repérer la fumée, mais les chercheurs de notre équipe savent déterminer s’il y a réellement un incendie et veillent à ce que nos résultats soient précis et exploitables.

Comme l’association de ces approches améliore considérablement la facilité d’utilisation et la robustesse, Snyk mise sur l’IA hybride. C’est le meilleur moyen de concrétiser notre philosophie : proposer des solutions de sécurité innovantes, fondées sur les dernières avancées de l’IA et sur notre expertise unique en sécurité.

Les produits Snyk qui utilisent déjà l’IA

Chez Snyk, des équipes spécialisées travaillent sur différentes technologies d’IA et de science des données. Notre équipe centrale dédiée à l’IA est issue de DeepCode et rassemble des chercheurs et des praticiens de renommée mondiale dans les domaines de l’IA, de l’analyse statique et de la sécurité. Elle a publié plusieurs articles universitaires dans des conférences et des revues reconnues et participe aux débats du secteur sur l’utilisation de l’IA pour la sécurité des applications.

Voici un aperçu de la façon dont Snyk utilise aujourd’hui l’IA et la science des données dans ses produits :

  • Snyk utilise l’IA pour surveiller de nombreux réseaux sociaux et espaces communautaires, filtrer les signalements intéressants et les transmettre à son équipe de recherche en sécurité. Grâce à des techniques avancées de traitement du langage naturel, l’analyse des sentiments, la recherche par mots-clés et la triangulation permettent de repérer d’éventuelles nouvelles vulnérabilités ou des vulnérabilités exploitées dans les packages et frameworks open source.

  • Snyk Code utilise l’IA pour effectuer une analyse sémantique du code, rapide et approfondie, et établit ainsi la norme du secteur en matière de vitesse. Notre moteur d’IA est non seulement extrêmement rapide et précis, mais les modèles d’IA que nous utilisons expliquent leurs résultats, indiquent les flux de données à suivre et donnent des exemples de la façon dont d’autres développeurs ont résolu le problème dans une situation similaire. Expliquer pourquoi une réponse est correcte est essentiel en matière de sécurité et repose sur un modèle différent de celui des outils de ML génératif.

  • Nous créons et tenons à jour notre base de connaissances SAST à l’aide d’algorithmes d’apprentissage automatique, entraînés sur plus de 100 000 dépôts open source par langage de programmation. En associant l’IA à notre expertise en sécurité, nous avons créé une IA hybride unique et évolutive.

  • Snyk Cloud associe différentes sources de données en temps réel pour modéliser la posture de sécurité d’une application, du code source au cloud, et inversement. Grâce aux mécanismes d’analyse et de reporting avancés de la plateforme Snyk, les informations sont transformées en données utiles à la prise de décision ou intégrées à des systèmes d’entreprise plus vastes, proposés par des partenaires comme ServiceNow et Sysdig.

Les prochaines applications de l’IA chez Snyk

À mesure que nous poursuivons nos travaux et nos innovations, Snyk s’appuiera sur les exemples suivants pour développer davantage de fonctionnalités produit reposant sur l’IA.

  • Si vous avez assisté à notre événement SnykLaunch d’avril, vous avez découvert une démonstration d’une prochaine fonctionnalité basée sur l’IA de Snyk. Snyk vous fournira automatiquement, directement dans votre IDE, du code qui corrige un problème de sécurité et vérifiera que le code généré n’introduit aucun nouveau problème et corrige effectivement le problème initial.

  • Les utilisateurs pourront interagir directement avec l’IA de Snyk pour rédiger des requêtes de code personnalisées. L’IA apporte deux avantages majeurs : la complétion automatique sémantique des requêtes simplifie les recherches et accélère les résultats sur l’ensemble d’entraînement utilisé par le moteur Snyk Code. De plus, Snyk peut générer des règles au moyen d’algorithmes évolutionnaires ou génétiques, afin de les optimiser, de réduire le bruit et d’améliorer leur exhaustivité.

  • En associant les capacités de recherche sémantique dans le code de Snyk au traitement du langage naturel, les développeurs peuvent exprimer leurs intentions en langage naturel et trouver des exemples d’implémentation dans des projets open source pour s’en inspirer et les adapter. Vous pouvez formuler librement vos intentions et obtenir des exemples de code fiables qui répondent à vos besoins.

  • À l’avenir, le volume et la complexité des données transmises à Snyk augmenteront, à mesure que la chaîne d’approvisionnement logicielle gagnera en complexité et que Snyk recueillera davantage de données sur le code, les packages et le cloud, ainsi que des données issues de ses partenaires. L’IA hybride pourra repérer des problèmes qui ne constituent pas encore directement une faille de sécurité, mais pourraient en devenir une.

  • Snyk Learn, un environnement d’apprentissage interactif, peut s’adapter au niveau de compétence de chaque développeur grâce à l’IA, qui personnalise les modules de formation.

Pour aller plus loin : ML génératif, IA symbolique et hallucinations

Si les modèles d’IA et la façon dont Snyk les utilise pour obtenir des résultats vous passionnent, cette section est pour vous !

Une grande partie de l’engouement récent autour de l’IA est liée aux résultats impressionnants des modèles GPT-3 et désormais GPT-4 d’OpenAI, ainsi que de leurs dérivés, comme Codex de Microsoft. Les modèles de ML génératif apprennent des règles en analysant d’immenses volumes de données et en établissant leurs propres règles pour déterminer comment certaines entrées produisent certains résultats. Malgré leurs résultats étonnants, les modèles de ML génératif présentent un problème appelé hallucination. Une hallucination se produit lorsqu’une machine fournit une réponse convaincante, mais entièrement inventée, qui diffère de ce qui est attendu ou considéré comme « normal ». Autrement dit, bien qu’ils soient efficaces pour interpréter des informations ambiguës, ces systèmes ne garantissent pas l’exactitude de leurs résultats, qui peuvent être très trompeurs, car ils ne peuvent pas expliquer pourquoi ils estiment qu’une réponse est correcte.

L’IA symbolique, en revanche, convient aux tâches à la structure claire, ne nécessite pas de données d’entraînement et peut expliquer pourquoi ses résultats sont exacts. Elle intègre des règles et une logique qui servent ensuite à analyser les données et à déterminer une réponse. Comme ces règles font partie du système, je peux vous expliquer comment celui-ci parvient à sa réponse. Son point faible reste toutefois les situations ambiguës.

Pour prévenir les hallucinations, Snyk associera le ML génératif à l’IA symbolique. Snyk utilise ses propres modèles génératifs, optimisés pour produire du code source, et s’appuie sur l’IA symbolique pour vérifier que le code généré ne contient aucun problème. Pour vous, utilisateur final, Snyk fournira automatiquement le code qui corrige le problème rencontré et vérifiera que le correctif n’en introduit pas de nouveaux.