Okea - stock.adobe.com
Veracode Fix : Veracode se lance dans la course à la remédiation « intelligente »
La semaine dernière, le spécialiste de la sécurité applicative a annoncé la préversion limitée de Veracode Fix, une extension payante à sa suite Veracode Static Analysis. L’outil, propulsé à l’IA et directement accessible depuis un IDE du marché, doit suggérer des moyens de remédier des vulnérabilités connues.
Comme beaucoup d’acteurs de la cybersécurité, Veracode participe au mouvement considérant que les mesures de sécurité doivent s’immiscer au plus tôt dans le cycle de développement. C’est la fameuse mouvance « Shift Left ». Or la plupart des outils qu’ils servent en amont ou en aval de la mise en production ne disposaient pas jusqu’alors de capacités de remédiations des erreurs et vulnérabilités les plus courantes.
Les choses changent à vitesse grand V en même temps que les modèles d’intelligence artificielle s’immiscent dans les systèmes de tests et de corrections. Il est toutefois difficile, voire impossible, d’automatiser la remédiation, selon Veracode. « Pour des raisons de confidentialité, de sécurité et de responsabilité, nous ne pourrons jamais effectuer la correction automatique de code », déclare Frédéric Patouly, Strategic Channel Manager SEMEA chez Veracode auprès du MagIT. « En revanche, nous voulons arriver à la porte de l’automatisation en proposant des conseils et des propositions de corrections ».
Veracode Fix, l’héritier de Jaroona
C’est pour cette raison que l’éditeur a acquis la startup allemande Jaroona en avril 2022. Elle a développé Jaroona Enterprise Application Security, une solution établie sur une architecture d’apprentissage profond transformer, « la technologie sous-jacente à ChatGPT », rappelle la communication de Veracode. De fait, les modèles de type transformer ont cette capacité à effectuer des relations entre les éléments d’un langage, qu’il soit un langage humain ou de programmation.
La startup avait utilisé cette technologie afin de détecter des vulnérabilités, puis de les associer à des CWE (Common Weakness Enumeration, une liste de vulnérabilités connues) et des remédiations éprouvées.
En l’occurrence, Jaroona a mis au point un pipeline permettant de faire apprendre à un transformer la relation entre les composants d’un langage permettant de détecter son origine. Ensuite, la sémantique du code et la syntaxe des vulnérabilités connues sont extraites et vectorisées avant une phase d’étiquetage permettant d’associer les bouts de code liés, ou non, à des vulnérabilités.
Avant son rachat par Veracode, Jaroona effectuait cet entraînement sur des données disponibles publiquement depuis 1999. Pour développer Veracode Fix, l’équipe s’est appuyée sur un historique propriétaire de 130 billions de lignes de code et de 85 millions de remédiations. L’ensemble des données amassé par Veracode depuis sa création en 2006.
« Nous voulions être sûr que les recommandations générées ne soient pas aberrantes », avance Gregory Domagala, Senior Solutions Architect chez Veracode.
Au fil des ans, l’éditeur a constitué sa propre base de données de patterns de vulnérabilités et de CWE qu’il a étoffés avec celles accessibles sur le marché.
Associé à l’outil SAST de Veracode, Fix permet de proposer d’obtenir plusieurs suggestions de remédiations depuis un IDE.
Gregory DomagalaSenior Solutions Architect, Veracode
« Dans l’idée, le développeur déclenche un scan avec notre logiciel SAST. S’il détecte des vulnérabilités, elles sont classées par ordre d’importance. Le développeur peut explorer la vulnérabilité et la CWE associées. Puis, Veracode Fix lui suggère au moins trois propositions de corrections », décrit Gregory Domagala.
L’extension surligne le code vulnérable, propose des modifications en contexte de l’application en indiquant les ajouts et les suppressions à effectuer. Si le développeur les accepte, il peut ensuite déclencher un pull request ou effectuer une demande de revue avant d’appliquer les changements en production. Veracode Fix doit donc s’insérer sans heurts dans le cycle de développement.
« Dans le cadre de nos études, nous nous sommes aperçus que le délai de moyen entre la détection et la remédiation d’une vulnérabilité est de 300 jours », affirme Gregory Domagala.
Veracode ne prétend pas avoir la solution à toutes les vulnérabilités, mais il veut pouvoir accélérer ce « temps moyen de remédiation » (MTTR). « Quand l’on met ce type de programme là en place, les développeurs ne le voient pas forcément d’un bon œil », souligne Frédéric Patouly. « Deux raisons à cela : c’est un nouvel outil qu’il faut prendre en main et il est perçu comme un censeur ». Avec Veracode Fix, « il s’agit d’aider à trouver rapidement et efficacement une solution », vante le responsable.
Le système peut être utilisé dans un environnement de développement comme en production. Une fois que les entreprises auront déployé Veracode Fix, l’éditeur imagine qu’il sera possible de produire des correctifs pour les vulnérabilités critiques ainsi que pour de petites failles récurrentes jusque-là laissées de côté.
Un galop d’essai avec Java et C#
À sa disponibilité générale en juin prochain, Veracode Fix sera compatible avec les langages Java et C#.
Plus tard, l’éditeur entend couvrir JavaScript, TypeScript, Python, C++, .NET, PHP, Kotlin, Scala, Swift, Objc, Go, COBOL, Coldfusion, Ruby, les protocoles TSQL/PSQL ainsi que VB6.
Pour le moment, Veracode Fix couvre une dizaine de CWE pour Java (CWE 73, 80, 113, 117, 327, 331, 382, 470, 597 et 601) et C# (CWE 80, 201, 259, 352, 404, 601, 611, et 789).
Cela serait déjà suffisant. D’après l’éditeur, Veracode Fix génère des recommandations de corrections pour 72 % des vulnérabilités détectées dans les bases de code Java.
« La préversion va nous permettre d’obtenir des retours des clients afin d’améliorer la cohérence des suggestions de correction », reconnaît Gregory Domagala.
Cette base sera amenée à largement s’étoffer avec le temps, promet l’éditeur. Avant son acquisition, Jaroona savait associer des patterns de code à plus de 120 CWE différentes.
Veracode a déjà prévu d’embarquer la technologie de Jaroona dans l’ensemble de son portfolio.
L’IA à la rescousse du DevSecOps
L’éditeur est loin d’être le seul à s’appuyer sur des modèles de machine learning pour détecter et tenter de remédier des vulnérabilités. De fait, les outils de scans s’appuient déjà sur des algorithmes.
Les « plateformes DevOps » (GitHub, GitLab) ainsi que les outils de CI/CD intègrent, eux aussi, des solutions de détection, de génération de tests unitaires ou encore de propositions de remédiations.
De plus, les acteurs du monitoring se lancent également dans la détection de vulnérabilités et dans la proposition de correctifs ou de remédiations. C’est le cas de New Relic ou de Datadog, entre autres.
Puis, il faut compter sur les outils de suggestion ou de génération de code comme GitHub Copilot ou Amazon CodeWhisperer. « Ces outils peuvent proposer des remédiations, mais le code utilisé, en provenance de dépôts publics, n’est pas forcément sécurisé », commente Gregory Domagala. « Pour l’instant, ces acteurs ne sont pas au même niveau que les éditeurs spécialisés dans la sécurité ».
Toutefois, il reste difficile de maîtriser cette phase de remédiation et les mécanismes automatisés ne peuvent régler qu’une petite partie du problème.