ANALYSE · ARTICLE

Frontières: script espion dans les commentaires

Pendant plus d'un mois, chaque article de Frontières chargeait silencieusement un script de surveillance dans le navigateur de ses visiteurs. Le script transmet des données de navigation à deux serveurs de contrôle distincts. 0 détection sur 91 moteurs antivirus. Nous n'avons pas pu identifier qui opère l'infrastructure.

Pendant 31 jours, un script de surveillance s'est chargé automatiquement dans le navigateur de chaque visiteur de Frontières. Il était dissimulé dans un commentaire. Personne n'a rien vu.

3707Articles infectés
0/91Détections antivirus
ActifToujours en ligne

Ce que les visiteurs ont chargé

Pendant 31 jours, chaque visite sur un article de Frontières a déclenché le chargement automatique d'un script externe. Ce script collecte les données du navigateur et les transmet à deux serveurs de contrôle distincts. Il n'a pas été détecté par les 91 moteurs antivirus de VirusTotal. Frontières n'a pas prévenu ses lecteurs.

Nous l'avons découvert en faisant autre chose : à la suite d'un thread de Sleeping Giants France documentant les commentaires racistes et haineux du site, nous avons voulu évaluer l'ampleur du problème. Parmi les publications de l'utilisateur mmartin (author_id : 166411), un payload JavaScript dissimulé dans une balise image :

La balise est invisible à l'écran. Mais dès qu'un visiteur charge la page, son navigateur exécute automatiquement le code onerror et charge un script externe depuis frntrs-analytics.dedyn.io — un nom délibérément conçu pour imiter celui du média.

  1. 13 mai 2026 — 17h34

    Premier payload

    mmartin poste son premier commentaire piégé. Le script commence à collecter les données des visiteurs.

  2. 14 mai 2026 — 18h56

    Dernier payload

    Dernier commentaire de mmartin. L'opération couvre moins de 25 heures. 3 707 articles infectés. Le compte devient inactif.

  3. 13 juin 2026

    Découverte

    Redwatch identifie le payload lors d'une veille — exactement un mois après. Le script tournait en silence depuis 31 jours.

Qu'est ce que le script fait ?

i HACKED my wife’s web browser (it’s SCARY easy!!)

Le script chargé est BeEF — Browser Exploitation Framework. Outil open-source utilisé légalement par des professionnels de la sécurité pour tester la résistance des navigateurs, il est ici détourné pour transformer le navigateur de chaque visiteur en agent silencieux sous contrôle distant.

Dès le chargement de la page, sans aucune interaction, BeEF collecte : le navigateur, l'OS, le GPU, la RAM, le CPU, la résolution d'écran, la langue, les plugins installés, les cookies non-protégés du site, et l'adresse IP locale du visiteur. Le keylogger démarre automatiquement :

beef.logger.start(); // actif dès le chargement

Toutes les frappes clavier effectuées sur la page sont enregistrées et transmises au C2.

Un opérateur connecté au panel peut ensuite déclencher manuellement : le scan du réseau local du visiteur, l'interception des identifiants saisis dans des formulaires, la géolocalisation, ou une redirection vers une page de phishing.

Le script embarque aussi WebGL fingerprinting pour extraire le modèle exact de carte graphique et identifier un navigateur de manière unique même sans cookie, et MobileEsp pour détecter le type d'appareil.

L'infrastructure

L'analyse des commentaires révèle deux serveurs de contrôle distincts.

Commentaire Frontières
Chargement JS automatique (onerror)
frntrs-analytics.dedyn.io
Google Cloud Run (europe-west1)
Collecte navigateur en temps réel

Serveur 1 — frntrs-analytics.dedyn.io : DNS dynamique, l'adresse IP peut changer à tout moment. Le serveur répond avec access-control-allow-origin: *, un WebSocket ouvert sur le port 61985, et un polling XHR.

Serveur 2 — Google Cloud Run frntrs-analytics-863060591218.europe-west1.run.app : Le second serveur tourne sur Google Cloud Run, région Europe Ouest — infrastructure scalable, difficile à identifier depuis l'extérieur mais associée à un compte Google et un moyen de paiement. La combinaison d'un DNS dynamique et d'une infrastructure cloud managée indique une opération préparée, pas improvisée.

Ni Privacy Badger, ni les 91 moteurs de VirusTotal ne détectent l'opération. Privacy Badger apprend par répétition — frntrs-analytics.dedyn.io n'apparaît nulle part ailleurs. Et CORS ne s'applique pas : les scripts chargés via <script src=""> s'exécutent avec les permissions du site hôte.

Les questions qui restent

Sources & références

  1. [1]Analyse du domaine frntrs-analytics.dedyn.io — VirusTotal
  2. [2]Analyse du domaine Google Cloud Run (second C2) — VirusTotal
  3. [3]Browser Exploitation Framework — documentation officielle — BeEF Project
  4. [4]Cross Site Scripting (XSS) — définition et classification — OWASP
  5. [5]evercookie — never forget — Samy Kamkar

0 € / 140 € sur les 30 derniers jours

Soutenir