Un SBOM prouve ce que vous avez installé. Il ne peut pas prouver que vous auriez dû le faire.
Un SBOM est un reçu. Il vous indique ce que vous avez installé. Il ne vous dit pas si vous aviez raison de l'installer.
La plupart des équipes utilisent un SBOM et des scans CVE dans leurs pipelines CI/CD. Ces outils sont excellents pour trouver des vulnérabilités connues dans des packages existants. Mais ils présentent un angle mort massif lors de l'utilisation d'agents de codage IA.
Un agent IA propose un nom de package. Il le fait avec la même assurance, que le nom soit réel, une hallucination ou un typosquat.
Si un attaquant a enregistré un nom de package malveillant hier, il n'a pas encore de CVE. Votre scan post-installation le verra et le marquera comme sain. Le scan est honnête, mais il a répondu à la mauvaise question. Il a répondu « est-ce que cela est connu pour être mauvais ? » au lieu de « ce nom devrait-il exister dans notre stack ? »
Le temps qu'un SBOM enregistre un package malveillant, le mal est fait. Le code malveillant s'exécute souvent pendant la phase d'installation via des scripts postinstall. Il peut voler vos variables d'environnement et vos secrets CI avant même que votre scanner ne voie l'arborescence des fichiers.
Vous avez besoin d'un verdict avant l'effet secondaire.
J'ai conçu un outil simple pour résoudre ce problème. Il s'agit d'une barrière de provenance pré-installation (pre-install provenance gate). Il fonctionne différemment d'un scanner :
• Il vérifie les noms AVANT l'exécution de npm install. • Il utilise une approche de refus par défaut (default-deny) par rapport à une base de référence validée. • Il signale les typosquats en mesurant la distance d'édition par rapport aux packages populaires. • Il détecte les hallucinations qui ne correspondent à aucun nom valide connu. • Il vérifie votre .npmrc pour s'assurer que vous ne contactez pas un registre malveillant.
Cet outil est hors ligne, sans clé, et utilise uniquement la bibliothèque standard Python. Il ne se connecte pas au réseau. Il ne résout pas les packages. Il examine simplement les noms proposés et demande : « Approuvons-nous ce nom ? »
Si le nom ne figure pas dans votre instantané validé et ne figure pas dans une base de référence populaire, la barrière renvoie DENY.
Arrêtez de vous fier uniquement aux enregistrements de ce qui s'est passé. Commencez à décider de ce qui est autorisé à se passer.
Source: https://dev.to/alex_spinov/an-sbom-proves-what-you-installed-it-cant-prove-you-should-have-117c
Communauté d'apprentissage optionnelle: https://t.me/GyaanSetuAi
