À propos du projet

supply-chain-guard est un scanner de sécurité de la chaîne d'approvisionnement open source qui s'exécute localement et hors ligne. Il détecte les paquets, extensions, plugins, providers, images de conteneurs et actions CI malveillants connus dans 15 écosystèmes, en lisant les manifestes et les lockfiles à n'importe quelle profondeur d'un dépôt, y compris les dépendances transitives épinglées par un lockfile. Il analyse également les artefacts installés pour détecter des comportements malveillants, couvrant des campagnes telles que GlassWorm, Vidar, Shai-Hulud, les faux dépôts d'outils IA et les prises de contrôle de comptes, avec plus de 350 indicateurs de menace au total. Au-delà de la détection, il génère des SBOM CycloneDX 1.6 avec de véritables inventaires de dépendances, analyse et valide structurellement les attestations in-toto/DSSE pour évaluer la provenance SLSA, et corrèle les constats individuels en incidents de chaîne d'attaque. Le projet mentionne son support pour les travaux SBOM et de documentation des composants du règlement européen sur la cyberrésilience (CRA), ainsi que pour les mesures de gestion des risques de la chaîne d'approvisionnement de NIS2. Les domaines de détection incluent les identités connues de paquets et composants malveillants, les marqueurs de campagnes de malware et l'infrastructure C2, les menaces au niveau du code telles que l'exécution obfusquée, l'Unicode invisible, les inversions RTL et l'analyse d'entropie, l'analyse des hooks d'installation, le typosquatting, la confusion de dépendances, le starjacking, les listes de blocage de versions connues comme malveillantes, les problèmes de durcissement des GitHub Actions et des Dockerfile, les préoccupations Terraform/IaC, les signaux de confiance des dépôts, les jetons d'injection de prompt ciblant les agents de codage IA, les motifs d'identifiants, la divulgation de topologie interne, et la détection de résolveurs dead-drop/C2. Un moteur de corrélation relie les constats en incidents nommés avec un score de confiance, et une décomposition de la confiance évalue l'éditeur, la qualité du code, la confiance dans les dépendances et le processus de publication. Il est distribué via npm (Node.js 22+), npx, un hook pre-commit, une image Docker multi-arch sur GHCR, une GitHub Action et un serveur MCP pour les agents de codage IA. Les formats de sortie incluent texte, JSON, HTML, Markdown, SARIF 2.1.0, SBOM CycloneDX, JSON de badge Shields et rapports GitLab Dependency Scanning. Les codes de sortie sont configurables via --fail-on, et une couverture incomplète est signalée comme partialScan plutôt que de passer silencieusement. L'analyse elle-même n'effectue aucune requête réseau ; une actualisation optionnelle des flux et des requêtes de registre nécessitent un accès réseau.