Une publicité sponsorisée Google redirige les développeurs macOS qui cherchent à télécharger Codex vers une fausse page d’installation hébergée sur Google Sites. L’équipe Cato CTRL de Cato Networks a publié son analyse le 24 août. La page ne contient aucun fichier à télécharger. Elle affiche une commande Terminal que la victime copie et exécute elle-même, selon la technique dite du ClickFix.
La commande ressemble à une ligne npm classique pour installer Codex, mais décode en réalité une URL encodée en Base64, récupère un script sur un serveur distant et l’injecte dans zsh. La chaîne d’infection se déploie en trois étapes. Un premier loader shell contient un blob encodé qu’il décode et exécute via eval. Le second stage envoie une requête à /api/metrics/run?event=pasted pour confirmer que la victime a bien collé la commande, puis télécharge la charge finale dans /tmp/helper. Il supprime les attributs étendus du fichier avec xattr -c pour contourner les alertes de quarantaine de macOS, le rend exécutable avec chmod +x et le lance. Le binaire déposé est un exécutable universel Mach-O capable de tourner nativement sur Mac Intel comme sur Apple Silicon.
La page visible sur sites.google.com ne contient elle-même aucun code hostile mais charge le contenu piégé depuis des serveurs externes via un iframe intégré à travers un proxy de contenu statique fourni par Google. Cato a identifié trois ensembles d’infrastructures distincts, chacun associant un leurre Google Sites à un hôte iframe différent.
| Infrastructure | Leurre Google Sites | Hôte iframe |
|---|---|---|
| Set 1 | sites[.]google[.]com/view/codex-desktop-app/ | bright-links[.]com |
| Set 2 | sites[.]google[.]com/view/codexmac | swiftsaverfin[.]com/codexx/ |
| Set 3 | sites[.]google[.]com/view/cdx-off-page | bright-links[.]com |
Cette séparation permet aux opérateurs de remplacer le contenu malveillant sans modifier la page d’appât ni la publicité sponsorisée. Le Set 3 réutilise l’hôte iframe de bright-links[.]com déjà observé dans le Set 1, mais s’appuie sur une infrastructure de télémétrie et de livraison de payload entièrement renouvelée.
Le filtrage des cibles repose sur deux mécanisme : Le chemin /codexx/ délivre la page empoisonnée, tandis que /codex/, plus intuitif, affiche une vitrine inoffensive. Les visiteurs qui n’utilisent pas macOS reçoivent eux aussi la version bénigne. « Ce type de filtrage peut induire en erreur les analystes et les scanners automatisés », ont précisé les chercheurs de Cato Networks. Toute requête ne correspondant pas au profil ciblé ne rencontre jamais le contenu dangereux.
La charge finale présente des similitudes très fortes avec Atomic macOS Stealer (AMOS), un infostealer documenté dans plusieurs campagnes antérieures de publicités malveillantes. Loaders encodés en Base64, étapes zsh compressées et obfusquées, télémétrie à /api/metrics/run?event=pasted, URLs de mise à jour à la structure identique, binaires universels Mach-O déposés dans /tmp/helper, suppression des attributs étendus avant exécution. Cato note que la version la plus récente du loader a évolué vers un conteneur gzip chiffré en AES, avec reconstruction de la clé de déchiffrement à partir de variables multiples, une progression qui complique l’analyse tout en conservant le schéma de livraison en aval. AMOS vole les mots de passe enregistrés dans les navigateurs, les données système et le contenu des portefeuilles de cryptomonnaies.
La campagne ne se limite pas à Codex. Cato a découvert une page ClickFix similaire se faisant passer pour Claude Code d’Anthropic, qui partage une partie de l’infrastructure avec les leurres Codex sans être hébergée sur Google Sites. Des recherches antérieures avaient déjà documenté des campagnes « LLMShare » utilisant des conversations partagées ChatGPT et Claude pour distribuer des commandes Terminal malveillantes encodées en Base64.
Ne jamais coller dans Terminal une commande copiée depuis un site web sans en décortiquer chaque segment. Vérifier systématiquement que l’URL du résultat de recherche pointe bien vers openai.com ou le dépôt officiel du projet. Surveiller la présence de fichiers inhabituels dans /tmp/ et activer un outil de détection capable d’identifier les binaires Mach-O universels non signés. Traiter toute instruction qui demande xattr -c suivi d’un chmod +x sur un fichier inconnu comme un signal d’alarme absolu.

