GrammaTech étend l'analyse statique aux bibliothèques uniquement accessibles en code binaire

GrammaTech CodeSonar for Librairies

Avec CodeSonar for Libraries, l’éditeur américain d’outils d’analyse de code GrammaTech (distribué en France par ISIT), étend l’analyse statique de code source aux bibliothèques qui ne sont disponibles que sous forme binaire. ...Selon GrammaTech, les outils d'analyse statique de code source présents sur le marché ignorent en effet ces appels vers les bibliothèques tierces binaires, les traitant comme si elles n'existaient pas. Cette simplification conduit régulièrement, toujours selon l'éditeur, à des problèmes non détectés (les faux négatifs, false negative), car analyser un code source nécessite aussi d'interpréter les appels et les liens entre le code source et le code binaire de la bibliothèque externe utilisée.

Cette simplification masque également les problèmes causés par une mauvaise utilisation de l'API d'une bibliothèque. Dans ce cadre, CodeSonar for Libraries ajoute à l’outil d’analyse statique de code CodeSonar Source de la société la possibilité de basculer de façon transparente entre l'analyse source et l'analyse binaire en examinant les chemins possibles à travers l’ensemble de l’application. Une approche qui entraîne une augmentation nette du nombre de problèmes détectés dans le code source des utilisateurs.

« L'utilisation de bibliothèques binaires est souvent une zone d'ombre pour les équipes de développement de logiciels, et peut rendre difficile la détection d’erreurs critiques, explique Mark Hermeling, directeur produit au sein de la société GrammaTech. CodeSonar for Libraries répond à cette problématique par sa capacité d'innovation dans le domaine de l'analyse statique hybride, code source/code binaire, pour les systèmes critiques où les défaillances ne sont pas permises. »

Rappelons que de nombreux projets de développement de logiciels utilisent des bibliothèques binaires externes avec du contenu issu de tiers ou du code existant hérité, comme par exemple des OS ou micronoyaux, des sous-systèmes d’IHM graphiques, des pilotes logiciels ou des couches de middleware telles que Corba, DDS, MQTT... (voir graphique ci-dessous, repris par GrammaTech dans un blog de Mark Hermeling).