Aller au contenu
Vidéo

Ces fausses offres d’emploi qui piratent les développeurs : mes deux cas, les signaux d’alerte du FBI, et la parade

En juin 2026, le projet de test d’un faux client cachait un malware dans une dépendance npm, qui a tourné sur mon Mac pendant des jours ; en octobre, un autre m’a demandé de coller une commande dans mon terminal. Une vidéo explicative de 53 secondes : le mode opératoire, les signaux d’alerte du FBI, et trois habitudes qui l’arrêtent.

Publié
Lecture
5 min
Tags
  • security
  • malware
  • developer
  • explainer
Sommaire
  1. Juin : le projet de test était le malware
  2. Octobre : caméra coupée, « installez cette app de réunion »
  3. Un mode opératoire connu
  4. Pourquoi ce sont les personnes qui sont visées
  5. Les signaux d’alerte
  6. La parade
  7. Ce que j’ai construit ensuite
  8. Sources

En bref : deux fois en 2026, un faux « client » a essayé de me faire exécuter son code. En juin, ça a marché : le projet de test cachait un malware dans l’une de ses dépendances npm, il a tourné pendant des jours, et aucun antivirus n’a rien signalé. En octobre, j’ai refusé. Les deux suivaient un mode opératoire que le FBI associe à la Corée du Nord ; personne n’a formellement attribué mes deux cas, mais ils y correspondent. Le conseil du FBI : n’exécutez pas le code d’un entretien sur votre ordinateur de travail, utilisez une machine virtuelle séparée s’il le faut, et vérifiez qui recrute par un autre canal.

Juin : le projet de test était le malware

Toute l’histoire est dans mon article précédent, Deux fausses missions Upwork, un Mac infecté. En résumé : un « client » sur une plateforme de freelance m’a donné un test de programmation.

« He sent over a Node.js test project called "Online_Store". The malicious code was hidden in one of its npm dependencies. » (il m’a envoyé un projet de test Node.js appelé « Online_Store ». Le code malveillant était caché dans l’une de ses dépendances npm).

Je ne l’ai pas remarqué tout de suite : « By the time I noticed, it had been running in the background for days. » (quand je m’en suis aperçu, il tournait en arrière-plan depuis des jours).

Et rien ne m’a prévenu : « neither macOS's built-in XProtect nor traditional antivirus made a sound, either time. » (ni XProtect, intégré à macOS, ni les antivirus traditionnels n’ont réagi, ni l’une ni l’autre fois).

Octobre : caméra coupée, « installez cette app de réunion »

Quatre mois plus tard, un nouveau « client », cette fois d’une fausse entreprise. Pendant l’appel vidéo, « He kept his camera off » (il a gardé sa caméra coupée). Puis « we had to switch to a meeting app called "Zeff" » (il fallait passer à une app de réunion appelée « Zeff »), et pour l’obtenir, je devais « run a curl | bash command in the terminal, or download a DMG. I didn't install it. » (lancer une commande curl | bash dans le terminal, ou télécharger un DMG. Je ne l’ai pas installée).

Les commandes et les adresses restent hors de la vidéo et de cet article : il s’agit de repérer l’appât, pas de ce qu’il installe.

Un mode opératoire connu

Avec le recul, les deux tentatives avaient la même forme : « Both attacks followed the same playbook: contact, build trust, the ask, the payload. The second time, I stopped at the payload. » (les deux attaques ont suivi le même mode opératoire : prise de contact, mise en confiance, la demande, la charge malveillante. La deuxième fois, je me suis arrêté à la charge).

C’est une forme contre laquelle le FBI a mis en garde. Son avis au public PSA 240903 s’intitule « North Korea Aggressively Targeting Crypto Industry with Well-Disguised Social Engineering Attacks » (la Corée du Nord cible agressivement le secteur crypto avec des attaques d’ingénierie sociale bien déguisées). Mes cas correspondent au schéma qu’il décrit ; personne ne les a formellement attribués, donc je n’affirme pas que la Corée du Nord m’a piraté.

Pourquoi ce sont les personnes qui sont visées

Interrogé par la BBC après le piratage de Binance, Mackenzie Jackson, d’Aikido, a décrit un changement. Selon les mots de la BBC : « He says hackers have shifted from going after company infrastructure to going after the machines of the people who run it. » (selon lui, les pirates sont passés de l’infrastructure des entreprises aux machines des personnes qui la gèrent).

Et sur la manière : « Jackson says techniques vary, but include tricking workers into installing malware under the pretext of a job interview, or interfering with code that developers rely on. » (selon Jackson, les techniques varient, mais consistent notamment à piéger des employés pour qu’ils installent un malware sous prétexte d’un entretien d’embauche, ou à altérer du code dont dépendent les développeurs).

Jackson décrivait des techniques courantes, pas la manière dont Binance a été compromise.

Les signaux d’alerte

Le FBI cite celui-ci parmi ses indicateurs : « Requests to conduct a "pre-employment test" or debugging exercise that involves executing non-standard or unknown Node.js packages, PyPI packages, scripts, or GitHub repositories. » (des demandes de passer un « test préalable à l’embauche » ou un exercice de débogage qui implique d’exécuter des paquets Node.js, des paquets PyPI, des scripts ou des dépôts GitHub non standard ou inconnus).

De mes deux cas, j’en tire deux autres : un « client » qui garde la caméra coupée et veut passer à une app dont vous n’avez jamais entendu parler, et une demande de coller une commande dans votre terminal.

La parade

  1. Pas sur votre ordinateur de travail. Le FBI : « Avoid taking pre-employment tests or executing code on company owned laptops or devices. » (évitez de passer des tests préalables à l’embauche ou d’exécuter du code sur des ordinateurs portables ou des appareils appartenant à l’entreprise).
  2. Si le code doit tourner, isolez-le. Le conseil du FBI, en résumé : utilisez une machine virtuelle sur un appareil qui n’est pas connecté à l’entreprise, ou un appareil fourni par l’examinateur.
  3. Vérifiez par un autre canal. Le FBI : « Develop your own unique methods to verify a contact's identity using separate unconnected communication platforms. » (développez vos propres méthodes pour vérifier l’identité d’un contact en utilisant des plateformes de communication distinctes et non connectées).

Ce que j’ai construit ensuite

Ensuite, j’ai fait un outil : « So I built a small macOS menu bar app called Tsuba » (j’ai donc construit une petite app macOS pour la barre des menus, appelée Tsuba). L’idée : « before unfamiliar code runs for the first time, it takes a look for you. » (avant que du code inconnu s’exécute pour la première fois, elle y jette un œil pour vous). Tsuba est gratuite et open source. Elle vient après les habitudes ci-dessus, pas à leur place.

Sources

La vidéo est animée en code et le script a été écrit avec l’aide de l’IA ; chaque fait ci-dessus est vérifié auprès des sources. Illustratif : l’arborescence du projet et la dépendance en rouge, le bouclier « aucune menace », l’appel vidéo et la commande de terminal masquée. Cet article explique le risque et la parade, pas les étapes d’une attaque. La vidéo est en anglais. Réalisée avec Shotloop, mon app Mac gratuite pour faire des vidéos explicatives en code, corrigées un plan à la fois.

Suivre

Je partage mes projets, expériences et leçons au fil de l’eau.

Les nouvelles vidéos sur YouTube, des notes plus courtes sur X. Chaque article ici renvoie aux deux.

YouTube