THREAD #OSINT - Comment j'ai découvert un réseau d'entreprises fictives sur LinkedIn qui administre des centaines de faux profils.
La semaine dernière, j'ai reçu une invitation LinkedIn de ce profil qui m'a tout de suite paru suspect.
Je vous explique ⤵️
Pas de chance pour Richard, j'ai beaucoup travaillé sur les faux visages générés par intelligence artificielle et je sais les reconnaître en un coup d'oeil.
L'indicateur le plus évident, c'est la position des yeux : certaines IA vont toujours les placer au même endroit.
Par curiosité, je vais jeter un oeil à la page de Digitize, l'entreprise pour laquelle travaille Richard.
Et là, énorme surprise : parmi les 43 employés de l'entreprise, la quasi-totalité présente une photo de profil qui semble générée par une IA !
Même si vous avez encore un doute, je vous donnerai une preuve irréfutable un peu plus bas dans ce thread.
Mais pour le moment, regardez un peu ce beau trombinoscope :
En creusant un peu, on se rend compte que ce n'est pas seulement les comptes qui sont fictifs, mais carrément l'entreprise elle-même.
Il suffit d'aller voir son site internet pour s'en rendre compte : aucun lien ne fonctionne, et les clients semblent même inventés.
Dans les (faux) articles de la page d'accueil, on voit d'ailleurs qu'ils ont publié un article... en 2025 😅
Revenons aux profils LinkedIn. J'ai envie de connaître la date de création de tous ces comptes, pour deux raisons :
- Confirmer qu'ils ont été créés au même moment pour alimenter un réseau de bots
- Découvrir la date de mise en activité de ce réseau
Malheureusement, LinkedIn ne donne pas la date de création d'un compte.
Mais il existe une magouille permettant de récupérer l'identifiant d'un compte dans la base de données de LinkedIn, en allant fouiller le code HTML de la page :
Comme cet identifiant est séquentiel, deux comptes créés le même jour auront des numéros très proches.
Pour éviter de faire ce scraping manuellement sur tous les comptes, on peut automatiser ça très facilement avec Python.
Les résultats sont sans appel : la plupart des profils ont été créés récemment et de manière très groupée.
Pour vous donner une référence, voici la comparaison avec mes collègues de CodinGame.
En demandant à des personnes qui ont créé leur compte récemment, j'ai aussi pu placer deux identifiants de référence pour dater précisément la création de ces faux profils.
Je vous avais aussi promis une preuve incontestable que les photos de profil sont générées par une intelligence artificielle.
Pour ça, je dois d'abord vous expliquer quelques bases techniques sur les IA génératives.
Ici, il est question d'un réseau de neurones appelé StyleGAN2, qui apprend à générer des images à partir d'un grand nombre d'images d'entraînement.
StyleGAN2 a été rendu célèbre grâce au site ThisPersonDoesNotExist qui génère un nouveau visage à chaque refresh de la page.
ThisPersonDoesNotExist a cessé de fonctionner en février 2023, mais il était massivement utilisé pour créer des fausses photo de profil, notamment pour des comptes d'arnaques ou des bots d'influence politique.
Mais qu'est-ce qui explique que les visages générés par StyleGAN2 ont toujours les yeux au même endroit ?
En fait, il s'agit d'une propriété de la banque d'images qui a servi à l'entraîner.
Pour entraîner StyleGAN2, ses créateurs (des ingénieurs NVIDIA) ont utilisé le dataset FFHQ, qui contient 70 000 photos libres de droit récupérées sur Flickr.
Les photos originales sont croppées pour ne garder que le visage.
Et cette transformation sur des photos de vraies personnes place les yeux sur le même emplacement à chaque fois. Du coup, quand StyleGAN2 va essayer de reproduire le dataset FFHQ, il va aussi placer les yeux à cet endroit !
Voici quelques images du dataset d'entraînement :
Maintenant, parlons du site ThisPersonDoesNotExist. Je vous disais qu'un nouveau visage était généré à chaque rafraîchissement de la page, mais ce n'est pas exactement le cas.
Pour économiser de la puissance de calcul, le site a mis en place une technique intéressante.
En fait, le serveur produit une nouvelle image chaque seconde, qui est distribuée à tous les utilisateurs faisant une requête dans ce laps de temps.
Les images ne sont donc pas uniques, si deux personnes font une requête dans la même seconde elles recevront le même visage !
Je me suis rendu compte de ça en 2021, et j'ai décidé de créer un outil qui télécharge *toutes* les images produites par ThisPersonDoesNotExist pour les mettre dans une base de données de reconnaissance faciale, qui me permet donc de déterminer si une photo provient du site.
Parmi les employés de Digitize, on trouve un certain Alan Harris.
Et en passant sa photo dans l'outil, on trouve une correspondance parfaite téléchargée sur ThisPersonDoesNotExist le 13 février 😁
On peut donc affirmer avec certitude que Digitize utilise des photos de profil générées par une IA.
Parmi les autres indices intéressants, on trouve aussi des employés avec des noms très similaires mais sans aucun lien sur la photo ou le titre de poste.
Encore une faute d'OPSEC qui montre que ce réseau de bots est administré par des amateurs.
Le réseau ne s'arrête d'ailleurs pas là.
Plusieurs éléments nous ont permis de confirmer un lien avec au moins deux autres entreprises fictives sur LinkedIn, totalisant une centaine de faux profils et environ 250 000 personnes concernées.
Si vous êtes dans le réseau LinkedIn de l'un de ces faux comptes, je vous recommande de les retirer au plus vite.
Les liens des 3 entreprises fictives sont dispo dans le tweet ci-dessous, vérifiez que vous n'avez aucun contact parmi celles-ci.
Une question subsiste : quels sont les intérêts d'administrer un tel réseau fictif sur LinkedIn ?
Plusieurs hypothèses sont valides :
1. Un scraping massif de données personnelles.
C'est un grand classique des attaques sur les réseaux sociaux. On se souviendra de l'entreprise Cambridge Analytica qui avait collecté les données de 87 millions d'utilisateurs Facebook, notamment pour appuyer la campagne Trump.
2. Des pratiques commerciales douteuses.
Nombreuses sont les entreprises qui automatisent les prises de contact sur LinkedIn pour trouver des clients potentiels. Pas impossible que Digitize soit le résultat d'une équipe de commerciaux malhonnêtes (pléonasme 😇)
3. Autre chose ?
Il y a plein d'autres utilités à avoir un réseau de plusieurs centaines de milliers de contacts.
Par exemple, en mars 2023, Google a révélé qu'un service de renseignement nord-coréen utilisait un réseau de faux recruteurs sur LinkedIn pour cibler des victimes.
Cette dernière hypothèse me semble peu probable (surtout vu l'amateurisme de la démarche), mais ça servira de piqûre de rappel : faites attention avant d'accepter une demande Linkedin venant de quelqu'un que vous ne connaissez pas !
Merci d'avoir lu ce thread !
Je remercie grandement Anso de l'association @openfacto, ainsi que les étudiants de @Guardia_School (Bl1nk_, @LouNuX_, Percya et Shai) qui ont travaillé avec moi sur cette enquête ❤️
Il est possible qu'une partie 2 soit en cours d'élaboration 😇
Et pour en apprendre davantage sur StyleGAN2 et mon outil de détection de photos générées sur ThisPersonDoesNotExist, je vous renvoie vers cette conférence de 35 minutes que j'ai présentée l'an dernier sur le sujet :
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Je suis à Stockholm cette semaine pour la conférence @Jfokus, et j'ai décidé de participer au quiz de l'un des sponsors. Je crois que j'ai gagné 😇
Petit thread de cybersécurité appliquée dans lequel je vous explique comment j'ai fait ⤵️
En voyant que le classement est basé sur la rapidité, j'ai eu envie de l'automatiser pour avoir un temps surhumain.
Mais ça, c'était avant de découvrir trois failles dans l'appli ! (restez jusqu'au bout du thread, j'ai une technique de hacking ultra puissante à vous montrer)
Avant toute chose, on doit commencer par une phase de reconnaissance : comprendre le fonctionnement du site, sa surface d'attaque, les technos utilisées côté serveur, etc.
Ici très simple, je regarde simplement les requêtes envoyées par mon ordi en faisant le quiz normalement.
THREAD : Les intelligences artificielles peuvent-elles coder à notre place ?
J'ai donné 5 exercices de code à ChatGPT et GitHub Copilot, voici les résultats ⤵️
Pour chaque exercice, je donne à l'IA un bout de code et un commentaire pour lui expliquer ce qu'elle doit faire.
J'ai choisi des cas simples, avec des problématiques réalistes que l'on peut rencontrer dans des projets de dev.
EXERCICE 1
On commence en douceur avec un échauffement Python, la fonction doit télécharger une image puis calculer son hash. Une fonction utilitaire très classique qui s'écrit en quelques lignes.
Les imposteurs dans la tech détestent les évaluations CodinGame, parce que c'est beaucoup plus facile de mentir sur un CV que sur un test de code. 1/6
Évidemment, il existe plein d'autres raisons de ne pas aimer ces tests, notamment le stress.
Mais si vous refusez toute évaluation de vos compétences en considérant qu'un CV est suffisant pour vous connaître, vous finirez dans des équipes remplies d'imposteurs.
Comprenez bien que ces évaluations sont créées pour vous mettre en difficulté et tester les limites de vos compétences : même si c'est frustrant, il est normal (voire attendu) de ne pas obtenir 100%.
La barre pour les entreprises se situe généralement à 40-60%.
Malgré les énormes progrès de l'IA dans la dernière décennie, on est encore assez loin d'une machine omnisciente qui arrive à prévoir des résultats aussi incertains que ça.
Comme beaucoup s'en sont doutés, les prédictions de @WorldCupAI sont manipulées.
En fait, c'est super facile de tweeter le résultat d'un match en avance : il suffit de poster tous les résultats possibles et de supprimer a posteriori ceux qui étaient faux !
La finale d'hier par exemple, c'est 300 images comme ça sur mon disque dur :
Pour prouver que les administrateurs Mastodon ont accès à votre mot de passe, j'ai déployé ma propre instance en ajoutant une backdoor très simple sur le serveur.