Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Faux entretiens d'embauche - Le piège qui vise les devs Next.js

Des faux entretiens d'embauche avec des repos GitHub vérolés pour piéger les devs Next.js... on croit rêver et pourtant, Microsoft vient de documenter cette campagne ciblée et vous allez voir, c'est violent.

En fait, un groupe de hackers se fait actuellement passer pour des recruteurs et contacte des développeurs JavaScript en leur proposant un entretien technique. Le deal c'est de cloner un repo GitHub pour un "test de compétences"... sauf que le repo en question est truffé de malware.

Microsoft a ainsi identifié plusieurs vecteurs d'infection planqués dans ces repos. Le premier, c'est via les fichiers de configuration VS Code, c'est à dire ceux dans le dossier .vscode/, qui peuvent exécuter du code dès que vous cliquez "Trust" à l'ouverture du projet (ce que la plupart des devs font sans réfléchir).

Le deuxième passe par un npm run dev piégé, la commande de dev classique qui lance le malware en même temps que le serveur (car oui, c'est aussi simple que ça...).

Et le troisième est encore plus sournois puisqu'il s'agit d'un module backend qui décode une URL depuis le fichier .env, exfiltre toutes les variables d'environnement (tokens cloud, clés API...), puis exécute du JavaScript reçu en retour. Sympaaaaaa....

Du coup, le malware est plutôt bien pensé. C'est un loader JavaScript qui se télécharge depuis l'infrastructure Vercel (comme ça, ça a l'air légitime), et qui s'exécute entièrement en mémoire, et spawne un processus Node.js séparé pour ne pas éveiller les soupçons. Une fois installé, il se connecte alors à un serveur C2 qui change d'identifiant régulièrement, histoire de compliquer la détection. Et là, ça se met à exfiltrer tout ce qui traîne... code source, secrets, credentials cloud... bref, tout ce qui a de la valeur.

Alors, comment on se protège de ce genre de menace quand on est un simple dev ? Hé bien déjà, vérifiez le profil du "recruteur". Pas de site d'entreprise vérifiable, des messages génériques... c'est un joli red flag !

Ensuite, avant de lancer quoi que ce soit, lisez le package.json à la recherche de scripts suspects dans preinstall, postinstall ou prepare, inspectez le dossier .vscode/ (surtout tasks.json), et faites un npm install --ignore-scripts pour bloquer l'exécution automatique des hooks. Lancez aussi un safe-npm et un npm audit une fois les dépendances installées. Et côté VS Code, désactivez l'exécution auto des tasks avec "task.allowAutomaticTasks": "off" dans vos settings.

Ça me rappelle les campagnes type Shai-Hulud et les packages npm vérolés , mais avec un vecteur social bien plus élaboré. Le piège, c'est qu'on ne balance plus des packages malveillants dans le registry en espérant qu'un dev les installe par erreur... non, non, on cible directement les développeurs, un par un, en exploitant ce stress de la recherche d'emploi comme le ferait un conseiller France Travail quand vous arrivez en fin de droits chomdu...

Et si vous êtes en pleine recherche d'emploi, attention, ne lancez JAMAIS un projet d'un inconnu dans votre environnement principal. Utilisez une VM, un container Docker (docker run --rm -it -v $(pwd):/app node:20 bash et c'est réglé), ou au minimum un compte utilisateur séparé sans accès à vos tokens et clés SSH. On n'est jamais trop prudent !

Maintenant vous savez... si un recruteur vous envoie un repo GitHub sans profil LinkedIn ni site d'entreprise véritable et vérifiable... c'est que c'est pas un recruteur. Voilà voilà...

Source

safe-npm - Pour ne plus flipper à chaque 'npm install'

Après l'attaque massive de septembre 2025 qui a vérolé 18 packages ultra-populaires (coucou debug et chalk ) et la campagne Shai-Hulud 2.0 qui a siphonné les credentials cloud de 25 000 dépôts GitHub, on peut le dire, on est officiellement dans la sauce. Surtout si vous êtes du genre à faire un npm install comme on traverse l'autoroute les yeux bandés ! Il est donc temps de changer vos habitudes parce qu'entre les crypto-stealers qui vident vos portefeuilles en 2 heures et les malwares qui exfiltrent vos clés AWS, l'écosystème JavaScript ressemble de plus en plus à un champ de mines.

Le rayon d'action de la campagne Shai-Hulud 2.0 - une véritable moisson de secrets ( Source )

D'ailleurs, beaucoup se demandent comment savoir si un package npm est vraiment sûr. Et la réponse classique, c'est de lire le code de toutes les dépendances. Ahahaha... personne ne fait ça, soyons réalistes. Du coup, on se base sur la popularité, sauf que c'est justement ce qu'exploitent les attaques supply chain en ciblant les mainteneurs les plus influents pour injecter leurs saloperies.

C'est là qu'intervient safe-npm , une petite pépite qui va vous éviter bien des sueurs froides. Cela consiste à ne jamais installer une version de package publiée depuis moins de 90 jours. Pourquoi ? Parce que l'Histoire nous apprend que la plupart des compromissions massives sont détectées et signalées par la communauté dans les premiers jours ou semaines. Ainsi, en imposant ce délai de "quarantaine", vous laissez aux experts en sécurité le temps de faire le ménage avant que le malware n'arrive sur votre bécane.

Et hop, un souci en moins !

La supply chain npm, le nouveau terrain de jeu préféré des attaquants ( Source )

Concrètement, si vous voulez react@^18 et que la version 18.5.0 est sortie hier, safe-npm va poliment l'ignorer et installer la version précédente ayant passé le test des 90 jours.

Pour l'installer, c'est du classique :

npm install -g @dendronhq/safe-npm

Ensuite, vous l'utilisez à la place de votre commande habituelle. L'outil propose des options bien pratiques comme --min-age-days pour ajuster le délai, --ignore pour les packages que vous savez sains (ou critiques), et surtout un mode --strict parfait pour votre CI afin de bloquer tout build qui tenterait d'importer du code trop frais pour être honnête. Y'a même un --dry-run pour voir ce qui se passerait sans rien casser, c'est nickel.

Alors oui, ça veut dire que vous n'aurez pas la toute dernière feature à la mode dès la première seconde. Mais bon, entre avoir une nouvelle icône dans une lib de CSS et voir son compte AWS se faire siphonner par un groupe de hackers russes, le choix est vite fait, non ? Perso, je préfère largement ce filet de sécurité, surtout quand on voit que les attaquants utilisent maintenant Gemini ou Qwen pour réécrire leur code malveillant à la volée afin d'échapper aux antivirus.

Bien sûr, ça ne remplace pas un bon scanner de malware spécifique ou une lecture attentive des vulnérabilités, mais c'est une couche de protection supplémentaire qui coûte rien et qui peut sauver votre boîte. À coupler d'urgence avec les recommandations de la CISA comme la MFA résistante au phishing et la rotation régulière de vos credentials.

Bref, si vous voulez kiffer votre code sans avoir l'impression de jouer à la roulette russe à chaque dépendance ajoutée, safe-npm est clairement un indispensable à rajouter dans votre caisse à outils de dev paranoïaque.

Allez sur ce, codez bien et restez prudents (et gardez un œil sur vos backdoors générées par IA , on sait jamais ^^).

❌