GrammaTech identifie les failles et les vulnérabilités des codes binaires de logiciels tiers

GrammaTech CodeSentry

Avec l’outil CodeSentry, l’éditeur d’outils de test et d’analyse statique de code GrammaTech (distribué en France par ISIT) propose une solution d’analyse statique qui permet de dresser l’inventaire des codes de tierces parties contenus dans une application.... CodeSentry, qui appartient à la classe des outils dits d’analyse de composition logicielle (SCA, Software Composition Analysis), réalise ce type d’analyse sur les codes binaires sans nécessité de disposer du code source. Grâce à cet outil, explique GrammaTech, il est désormais possible pour les responsables de la sécurité des logiciels d’identifier et de maîtriser les risques liés aux codes tiers enfouis dans leurs applications, et ce tout au long du cycle de vie de leurs logiciels dans une approche de type DevSecOps.

« L’utilisation de codes tiers notamment open source pour accélérer la mise sur le marché de produits est une pratique très largement répandue, explique Mike Dager, P-DG de GrammaTech. Or la plupart des organisations reconnaissent désormais les risques de sécurité que ces codes tiers posent pour leurs applications et leurs activités, ainsi que la nécessité de réaliser des analyses de composition logicielle telles que celle réalisée par CodeSentry pour inspecter les binaires avec une grande précision. »

Ce besoin d'examiner plus minutieusement les codes tiers a été amplifié récemment par l'émergence d'attaques de haut niveau exploitant des vulnérabilités open source, note GrammaTech. Selon Gartner (*), « les risques liés à la chaîne d'approvisionnement des logiciels ont attiré une attention accrue. Un nombre croissant d'incidents ont été observés dans lesquels du code malveillant a été intentionnellement introduit par des attaquants cherchant à exploiter la confiance qui existe dans la communauté open source ».

Dans ce contexte, étant donné que les logiciels tiers peuvent être fournis sous forme de sources et de binaires, des composants sous-jacents peuvent être inconnus de l'équipe de développement qui les utilise. A ce niveau CodeSentry détecte les composants et les vulnérabilités qui leur sont associées, y compris les composants réseau, les composants de gestion d’interface homme-machine (GUI) ou les couches d'authentification. Il utilise une analyse binaire approfondie pour créer une nomenclature logicielle détaillée (SBOM, Software Bill Of Materials) et une liste complète des vulnérabilités connues.

« Les outils d'analyse SCA de première génération s'appuient sur le code source pour identifier les composants tiers, ce qui les rend bien souvent inutilisables sur les logiciels livrés sous forme binaire, note Vince Arneja, directeur produits de GrammaTech. La capacité de CodeSentry à analyser les binaires pour en créer une nomenclature logicielle exhaustive élimine cette problématique et permet aux entreprises de réduire de manière proactive leur surface d’attaque. »

D’un point de vue plus technologique, CodeSentry se fonde sur une technique d'analyse de code binaire, associée à un logiciel d’apprentissage automatique (machine learning) de GrammaTech. CodeSentry permet de mapper le désassemblage des composants logiciels sur des vecteurs multidimensionnels et de les comparer aux vecteurs dérivés des composants. Une approche qui s’appuie sur une interface de téléchargement d'application qui accepte les binaires natifs, les fichiers .zip ou tout autre type d’archivage, et qui analyse du code exécutable et non issu de l'environnement de build. Une manière de réduire le le nombre de “faux positifs” dus au code superflu présent dans les builds comme par exemple des composants (bibliothèques) exclus en raison de configurations de build spécifiques.

Enfin, CodeSentry identifie des composants présents dans les binaires natifs grâce à différents algorithmes de correspondance afin de collecter les informations relatives aux numéros de version, pour in fine créer la SBOM et fournir des liens vers les systèmes d’évaluation standardisés CVE (Common Vulnerabilities and Exposures) et CVSS (Common Vulnerability Scoring System).

(*) Gartner, “Technical Insight for Software Composition Analysis”, 01 November 2019 by Dale Gardner