Snyk à RSAC 2021 — Le ML dans le SAST : diversion ou révolution ?
Tony Sleva
30 juin 2021
0 minutes de lectureLe machine learning est un terme chargé de sens. S’il offre un potentiel remarquable pour faire progresser les technologies, il est souvent employé comme un mot à la mode pour désigner une simple reconnaissance de motifs. Il devient donc de plus en plus difficile de savoir si l’application du machine learning à une technologie existante va ouvrir de nouvelles perspectives ou simplement servir à vendre davantage de licences. C’est le problème qu’aborde Frank Fischer, responsable du marketing produit chez Snyk Code, dans sa présentation à RSAC 2021, Le ML dans le SAST : révolution ou diversion ?.
Le test de sécurité statique des applications (SAST) est une technologie qui détecte les vulnérabilités de sécurité dans le code source qui n’est pas en cours d’exécution. L’objectif du SAST est de détecter les vulnérabilités le plus tôt et le plus rapidement possible dans le cycle de vie du développement logiciel (SDLC). Comme il analyse le code source, le SAST se prête parfaitement à l’application de l’IA symbolique : les outils SAST peuvent ainsi appliquer des règles aux bases de code pour repérer les problèmes.
Dernièrement, GitHub Copilot a beaucoup fait parler de lui. Cette solution repose sur un modèle de machine learning, mais semble mieux comprendre le code sous-jacent. Comme le montrent les exemples partagés sur les réseaux sociaux, elle fournit parfois des suggestions remarquables, et se comporte parfois comme un perroquet qui répète des phrases déjà entendues. Elle illustre ce qui est possible aujourd’hui et les limites actuelles — et renforce toute la pertinence de la présentation à RSAC !
Le SAST existe depuis longtemps, mais il n’a guère connu de révolution : seules des améliorations progressives ont été apportées. La précision s’est régulièrement améliorée, mais au prix d’une intensité de calcul accrue. Résultat : les analyses capables d’être à la fois fiables (sans faux positifs) et exhaustives (sans vulnérabilités manquées) peuvent prendre des heures, voire des jours. De plus, les outils SAST repèrent souvent très bien les problèmes, mais proposent rarement des solutions concrètes. La question est donc la suivante : le machine learning peut-il apporter au SAST la révolution nécessaire pour le rendre rapide, précis et exploitable ?
Avant de répondre, il est important de comprendre le fonctionnement des outils SAST. Pour détecter les vulnérabilités, ils ont besoin d’une base de connaissances comprenant des règles et des méthodes permettant d’identifier les motifs malveillants. Cette base doit être entretenue par des experts qui étudient les vulnérabilités et ajoutent de nouvelles règles d’IA symbolique. La gestion de cette base ne peut pas encore être automatisée, mais elle peut être améliorée grâce au machine learning.
En s’appuyant sur un nombre considérable de dépôts de code source (tous disponibles en open source) et en appliquant le machine learning, les experts qui gèrent les bases de connaissances SAST peuvent multiplier de façon exponentielle le nombre de vulnérabilités qu’ils détectent. En apprenant à partir de milliards de lignes de code, la fiabilité et l’exhaustivité peuvent faire un bond considérable. Un tel bond constitue une révolution.
Mais détecter davantage de vulnérabilités ressemble à une amélioration, pas à une révolution. La véritable révolution consisterait à appliquer le machine learning à la correction automatisée du code. Son utilisation ne peut pas s’arrêter à la détection : elle doit également s’appliquer aux corrections des vulnérabilités. Bien appliqué au SAST, le machine learning peut non seulement détecter les motifs incorrects, mais aussi identifier les bons motifs à appliquer pour résoudre les problèmes. Voilà la révolution.
Enfin, le machine learning peut révolutionner le domaine en améliorant la précision et la capacité à proposer des mesures concrètes à grande échelle. Chaque jour, nous disposons d’une puissance de calcul accrue (par exemple, les GPU), de meilleurs algorithmes et de davantage de modèles préentraînés (comme GPT-3 ou GitHub Copilot) pour permettre au machine learning de fonctionner à l’échelle nécessaire et de réduire la durée des analyses à quelques minutes.
Au vu de ces éléments, Frank conclut que le machine learning va bel et bien révolutionner le SAST en améliorant sa rapidité, sa précision et sa capacité à proposer des mesures concrètes. Mais même s’il peut être révolutionnaire, il peut aussi détourner l’attention si sa mise en œuvre est incomplète. Lorsque vous évaluerez votre prochain outil SAST, voici quelques points à prendre en compte :
Votre solution SAST utilise-t-elle déjà le machine learning, même à un niveau limité ? Si ce n’est pas le cas, est-il prévu dans sa feuille de route ? Le machine learning doit servir à détecter et à corriger les vulnérabilités. Si ces deux usages ne figurent pas dans la feuille de route, la solution SAST ne sera pas à la hauteur.
Votre solution SAST propose-t-elle déjà des solutions concrètes ? Et le fait-elle directement depuis les outils utilisés par les développeurs ? Si ce n’est pas le cas, le machine learning ne fera que détecter davantage de vulnérabilités sans proposer de solutions : les développeurs auront plus de travail et l’adoption sera plus faible.
Votre solution SAST s’intègre-t-elle directement à un pipeline automatisé ? Dans le cas contraire, un goulot d’étranglement subsistera, aussi robuste que soit la mise en œuvre du machine learning. À ce sujet, notre récent rapport État de la sécurité des applications cloud natives révèle que 72 % des équipes entièrement automatisées corrigent les vulnérabilités critiques en moins d’une semaine. Le machine learning peut encore améliorer ce résultat.
Regardez l’intégralité de la présentation de RSAC 2021 pour en savoir plus sur le machine learning dans le SAST. Vous recherchez un outil SAST déjà rapide, précis et capable de proposer des mesures concrètes ? Inscrivez-vous et commencez à utiliser Snyk Code gratuitement.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.
