Notes de terrain sur la détection de menaces supply-chain.
60 samples sur 67 attendaient juste MUADDIB-PKG-001. Le TPR mesurait l'IOC database, pas les 250+ règles comportementales. Track C (16 fixtures synthétiques), Track A (6 tarballs réels), Track B (7 reconstructions), Track D (compound direct-IP+linux-fingerprint), fix download PyPI 38% fail rate. TPR@20 +3,1pp (85,19% → 88,30%), FPR npm stable, FPR PyPI honnête à 9,68% sur 124/132 (was 6,10% sur 82/132 biaisé).
La campagne Mini Shai-Hulud de TeamPCP a compromis 200+ packages npm dont @tanstack/react-router (12M DL/semaine). MUAD'DIB a détecté les patterns mais le scoring les a écrasés à 2/100. Trois causes racines (reachability, isLargeJs, MT-1 cap), cinq correctifs, score final 100/100 CRITICAL.
Détection live d'un package npm publié sous un scope interne deviné, payload de stage 2 capturé en direct (250 lignes, 12 formats de credentials, remontée de 8 niveaux de /proc/<ppid>/environ), C2 hébergé en sous-domaine d'une vitrine SaaS russe de réservation pour stations de lavage automobile.
22 tarballs archivés sous un scope npm, 3 variantes de payload, exfiltration triple canal (HTTP, DNS, Discord), revendication d'un programme YesWeHack DBS Bank non vérifiable publiquement.
AUC 0.999 sur corpus pollué vs AUC 0.9917 sur corpus humain propre. Pourquoi XGBoost ne marche pas sur 302 samples et comment un post-filtre déterministe a réduit les FP CRITICAL de 33.8%.
Review de securite complete sur 15 jours d'archives npm. 52 malwares confirmes dans 7 campagnes distinctes, dont 12 que le scanner avait sous-scores. 5 nouvelles regles implementees.
Trois packages npm, une chaîne de dépendances, un infostealer Lazarus. Comment MUAD'DIB détecte logkitx et dev-log-core — et pourquoi logger-base passe à travers.
4 versions en 4 heures, un path.js copie du module natif avec deux IIFE fetch+eval injectées, et des dépendances qui shadow fs, process et path. Score 100, reporté à npm.
49 malwares confirmés, un modèle qui tourne en rond, et un retrain à 100% de précision. Tout ce qui pouvait mal tourner a mal tourné.
Les malwares détectent Docker en 3 lignes. gVisor intercepte les syscalls au niveau kernel. Le malware pense qu'il tourne sur une vraie machine.
7 packages compromis détectés, verdict DORMANT SUSPECT au lieu de MALICIOUS. Le payload Python attendait 5 minutes. La sandbox n'attendait pas.
3 mois de monitoring, 0 malware confirmé, 8176 labels contaminés. Comment un nettoyage de données a fait passer la précision ML de 37% à 98%.
Un classifier binaire XGBoost en JavaScript pur pour filtrer les faux positifs de la zone grise T1, sans aucune dépendance Python en production.
Comment tester un scanner de sécurité quand l'attaquant connaît les règles.
9 heures de benchmark sur le dataset Datadog. 14 587 packages in-scope, 13 486 détectés.
433 packages npm compromis, du code caché dans des caractères zero-width, et un C2 sur la blockchain.
Quand les malwares attendent 72h avant de voler les credentials, on accélère le temps.
Notre taux de faux positifs était de 0%. En réalité, il était de 38%.