jobsphp

ActualitéÉcosystème PHP

Attention : des tests techniques piégés sur LinkedIn infectent les développeurs

Décidément, on ne s'ennuie jamais dans le web! Comme le rapportent les chercheurs de Securelist, un groupe d'APT surnommé Mirage Kitten joue les recruteurs sur LinkedIn pour refiler des « tests…

Attention : des tests techniques piégés sur LinkedIn infectent les développeurs

Décidément, on ne s'ennuie jamais dans le web! Comme le rapportent les chercheurs de Securelist, un groupe d'APT surnommé Mirage Kitten joue les recruteurs sur LinkedIn pour refiler des « tests techniques » piégés à des développeurs (et pas n'importe lesquels: aviation, aérospatial, fintech, en Égypte, Éthiopie, Afghanistan). Et le pire, c'est que ça marche — ou du moins, ça a déjà fait des victimes. Bref, si tu codes, que tu sois plutôt Node ou PHP, cet épisode te concerne directement.

Pourquoi un « simple test » peut ruiner ta semaine?

Le scénario est d'une simplicité désarmante. Un faux profil LinkedIn te contacte pour un poste alléchant, on t'envoie un lien vers un dépôt S3 « recruteur-friendly », et tu télécharges une archive qui ressemble à un projet classique (Express, React, Vite dans le cas documenté). Sauf qu'à l'intérieur, un package npm malveillant — colorized_terminal en version 2.1.0, ou pretty-log dans d'autres variantes — lance discrètement NodeRabbit en tâche de fond dès que ton serveur démarre. Magie: tu penses bosser sur un bug fix, et tu viens d'ouvrir une porte dérobée persistante sur ta machine. Bienvenue dans le legacy du jour.

Ce qui change vraiment (et ce qui devrait te parler)

Premier point marquant: selon Securelist, c'est la première fois que Mirage Kitten abandonne ses malwares en C/C++/Go pour passer à du Node.js / JavaScript. Pourquoi c'est important pour nous? Parce que ça veut dire que l'attaquant cible explicitement les environnements de dev multi-OS (Windows/Linux/macOS), là où se trouve le jackpot — clés cloud, accès repo, secrets d'entreprise. Et les astuces de persistance font mal: clés Run du registre, tâches planifiées, cron, LaunchAgents (classique, mais diablement efficace)… sans oublier la fausse extension VS Code « GitHub Copilot Helper » et l'injection dans les hooks Git, pour que ton git commit relance gentiment la machine à malware. Chapeau l'artiste (non, pas un chapeau de cowboy).

Concrètement, on fait quoi demain matin?

Avant de craquer sur la prochaine offre « trop belle pour être vraie », quelques réflexes (parce que la hype du recrutement 100% asynchrone, c'est aussi ça):

  • Si on te file une archive hors GitHub/GitLab officiel de l'entreprise, méfiance. Un repo privé de la boîte, oui; un bucket S3 avec un lien brut en DM, beaucoup moins.
  • Tu ne lances jamais un npm install (ni un composer install, soyons fous) les yeux fermés dans un dossier qui vient d'un inconnu. Tu ouvres le package.json ligne par ligne, tu inspectes node_modules, et tu scannes le tout dans une VM jetable si possible.
  • Tu jettes un œil aux hooks Git et aux extensions VS Code déjà installées — parce que la persistance par le workflow dev, c'est exactement le genre de truc discret qui passe sous le radar pendant des mois.

Et entre nous: ce coup-ci, c'est Node qui est visé. Mais le pattern (fausses offres, package malveillant bundlé, persistance via outils de dev) est totalement portable à notre écosystème PHP. Demain, ce sera un composer.json trafiqué ou un helper Symfony « livré en avant-première » dans une archive de test. On en parle maintenant en conf' francophone, ou on attend le prochain incident pour ouvrir le débat?