Sécurité
SCA : Software Composition Analysis, en français analyse de composition logicielle. « Dresser la liste des composants tiers d'un logiciel et la comparer à la liste de leurs défauts connus », par analogie avec le contrôle technique, qui sait que les freins de ce modèle ont été rappelés mais ne vérifie pas si l'on freine.
Fonctionnement : L'outil lit les manifestes et fichiers de verrouillage (package-lock.json, requirements.txt, pom.xml…) ou analyse les binaires et images, reconstitue l'arbre des dépendances directes et transitives, puis le croise avec des bases de vulnérabilités et de licences. Il produit souvent un SBOM au passage.
Limite : Il signale la présence d'une version vulnérable, pas son atteignabilité : la fonction fautive peut ne jamais être appelée. Certains outils tentent une analyse d'atteignabilité, avec un succès variable. Sans tri, le résultat est une liste de plusieurs centaines d'alertes que personne ne lit, ce qui est une forme de sécurité par épuisement.
Place dans la chaîne : Il s'exécute idéalement à chaque construction dans la CI et en continu sur les logiciels déjà déployés, car une dépendance saine aujourd'hui peut recevoir une CVE (Common Vulnerabilities and Exposures) demain sans que le code ait changé.
Homonymes : SCA désigne aussi la Strong Customer Authentication (authentification forte du client) de la directive européenne sur les services de paiement, et parfois les attaques par canal auxiliaire (Side-Channel Attack).
Ce qui arrive si on s'en passe
Sans analyse de composition, une équipe ignore qu'elle embarque une bibliothèque vulnérable trois niveaux sous ses dépendances directes, jusqu'à ce qu'un scanner externe ou un attaquant le lui apprenne. Le délai entre la publication d'une faille et sa correction s'allonge alors de plusieurs mois. À l'inverse, un SCA mal réglé qui bloque chaque construction pour des alertes non pertinentes finit désactivé, ce qui ramène exactement au point de départ, avec un abonnement en plus.
Explication de la marmotte
Un logiciel moderne utilise beaucoup de briques écrites par d'autres, qui utilisent elles-mêmes d'autres briques. Un outil de SCA fait automatiquement la liste de toutes ces briques et vérifie si certaines ont des failles connues ou des licences problématiques. Il ne sait pas toujours si la faille est vraiment utilisable dans ce logiciel précis, donc un humain doit trier les résultats.
