Selon la documentation du projet PackageInferno, l’outil propose une chaîne de traitement complète en conteneurs pour auditer la supply chain npm et visualiser les résultats localement via un tableau de bord.

🧰 Pipeline clef en main en Docker : un « enumerator » construit la file de paquets, un « fetcher » télécharge les tarballs (avec option d’upload S3), un « analyzer » effectue l’analyse statique (YARA en option) et un Postgres stocke les résultats. Un dashboard Streamlit (http://localhost:8501) permet la recherche, le drill‑down et des analyses. La configuration passe par scan.yml (allowlists, seuils, règles YARA), avec historique des scans en base (scan_runs).

🔍 Capacités de détection : l’analyse couvre les hooks de cycle de vie (install/postinstall), activité réseau et C2/webhooks (Discord, Slack, Telegram), obfuscation avancée (entropie élevée, blobs base64, hex/XOR), vol d’identifiants (env vars sensibles, écritures hors périmètre), typosquatting, phishing (formulaires), binaires natifs (PE/ELF/Mach‑O) et correspondances YARA. Un système de scoring configurable (règles pondérées et seuils) classe les versions en clean/suspicious/malicious, avec stockage JSON et en base.

📊 Modes de scan et exploitation : ciblage par seeds (packages précis), pagination all_docs pour scans par lots ou scan complet non borné (avec reprise grâce à un curseur), et surveillance du flux de changements. Les artefacts et résultats peuvent être envoyés sur S3 (politiques IAM minimales proposées). Des requêtes SQL et des commandes jq sont fournies pour extraire résultats, scores, endpoints C2, cas de typosquatting et présence de binaires.

🧪 Exemples fournis : la documentation illustre des sorties de scan (ex. top packages par score, règles déclenchées comme url_outside_allowlist, suspicious_pattern, advanced_obfuscation, big_base64_blob). Un dashboard offre des vues Overview, Search, High Risk, C2 Analysis et Analytics.

TTPs (extraits des règles et détections):

  • Exécution via scripts d’installation/postinstallation (curl | sh, shell_spawn)
  • Exfiltration via webhooks C2 (Discord/Slack/Telegram)
  • Obfuscation (hex, XOR, tableaux de chaînes, blobs base64, entropie élevée)
  • Credential theft (lecture d’ENV sensibles, écritures dans .ssh/.npmrc)
  • Typosquatting (distance de Levenshtein, substitutions Unicode)
  • Phishing (formulaires de collecte d’identifiants)
  • Inclusion de binaires natifs et WASM

Il s’agit d’un « nouveaux outils » mettant à disposition un pipeline et un tableau de bord pour l’analyse technique de la supply chain npm.


🔗 Source originale : https://github.com/MHaggis/Package-Inferno