Extensiones espía del navegador: cómo los ciberdelincuentes roban cookies y tokens de acceso

Extensiones espía del navegador: cómo los ciberdelincuentes roban cookies y tokens de acceso

Ningún programa moderno recopila tantos detalles privados de la vida cotidiana como el navegador web. Credenciales para servicios corporativos, tokens JWT de paneles en la nube, marcadores de autorización para el correo, historial de pagos en el banco: todo está literalmente a un par de llamadas JavaScript. Las extensiones prometen «tema oscuro», «bloqueo de anuncios», «ahorro de batería», y solemos hacer clic en «Instalar». Ese mismo clic abre al atacante un túnel silencioso hacia la sesión del usuario. Ya en el verano de 2025, especialistas de Malwarebytes detectaron dieciocho de esos complementos en las tiendas oficiales de Chrome y Edge; en total los descargaron más de dos millones de personas que no sospechaban que cada ventana abierta reenviaba datos a un servidor remoto.

La clase de ataque en la que un complemento intercepta cookies y tokens no es nueva: los primeros brotes se registraron en la era de Manifest V1. Sin embargo, este año ha mostrado que la escala puede crecer de forma exponencial: otra campaña afectó ya a 36 extensiones populares, poniendo en riesgo 2,6 millones de cuentas. Además, la mitad de las víctimas trabajaban en dominios corporativos, lo que implica acceso directo al correo corporativo, Google Workspace, la consola de AWS y otras «fuentes de oro» de cualquier infraestructura interna.

¿Por qué una extensión de navegador tiene tanto poder? La respuesta está en la arquitectura del sandbox web. Tras la instalación, la extensión recibe un manifiesto donde enumera permisos: acceso a la API chrome.cookies, webRequest, tabs y, en casos concretos, a devtools. Es precisamente chrome.cookies.getAll() o browser.cookies.getAll() lo que devuelve una lista JSON con nombres, dominios y banderas Secure/HttpOnly. Si el complemento además solicita storage, puede guardar esas cookies en el almacenamiento local y luego enviarlas discretamente mediante XMLHttpRequest o fetch al servidor C2. A partir de ahí es cuestión de técnica: el atacante importa la cookie en su perfil, falsifica el User-Agent y el servidor acepta al intruso como usuario legítimo.

En el caso de los tokens la situación es aún más compleja. Los marcadores OAuth que renuevan sesiones de 90 días para GitLab o Jira en la nube suelen estar en localStorage o en IndexedDB. A la extensión le basta el permiso "*://*/" en el manifiesto para abrir un iframe arbitario con el dominio de la víctima y ejecutar un script desde el content script que lea el token y lo pase a la página de fondo. Esta técnica fue la base del ataque «GreedyBear» en Firefox: 150 carteras falsas de MetaMask y TronLink inyectaban código exactamente con ese método y, tras actualizar la versión, añadían un mecanismo sigiloso para extraer fondos.

Algunos podrán objetar: «Pero Chrome trasladó la ecosistema a Manifest V3, donde está prohibida la página persistente de fondo». Lamentablemente, la transición no fue tan lineal. La política ExtensionManifestV2Availability permite a los administradores prolongar la vida de los complementos del formato antiguo hasta junio de 2025, y muchos parques corporativos la han aprovechado. Mientras la extensión permanezca en V2, mantiene tranquilamente un background duradero que escucha eventos de cookies y sincroniza registros en cada actualización.

La práctica demuestra que al atacante no le hace falta ocultar el código malicioso en el código fuente. Un estudio en arXiv (2503.04292) mostró que basta subir una versión inocua, esperar reseñas positivas y, pasadas unas semanas, sustituir el paquete en la tienda. Los algoritmos de moderación responden a la reputación de la cuenta, por lo que las funciones troyanas pasan desapercibidas.

A continuación entra en juego la clásica cadena de ataque del espía del navegador: instalación → recolección de artefactos de sesión → compresión → exfiltración. La última etapa a menudo se disfraza de transporte legítimo: el C2 se publica en un objeto de almacenamiento en la nube visible solo con una clave autorizada, o más simplemente los archivos se envían a un bot de Telegram haciéndose pasar por imágenes. En la campaña de Cyberhaven, descrita por Darktrace, el complemento enviaba tokens a una base en Firebase donde las reglas de acceso habían debilitado deliberadamente el control CORS.

¿De dónde saca el usuario esa «mina de regalo»? Hay varios canales. Con más frecuencia la extensión está en la tienda oficial, pero tiene reseñas falsas compradas a una granja de bots y el distintivo «Funciona sin conexión». Otra vía es la instalación forzada mediante políticas de grupo: el atacante compromete previamente un nodo AD o el pipeline CI/CD y sustituye el archivo Registry.pol. Un tercer formato, especialmente popular en fintech, es que empleados descargan compilaciones locales de desarrollo para probar y dentro del archivo se oculta un script PowerShell que, al ejecutarse, abre el navegador en modo --load-extension.

Las empresas que han sufrido filtraciones indican que la investigación se complica por la portabilidad de las cookies. El equipo de respuesta ve solo la huella de red hacia el C2 en la nube y un par de decenas de solicitudes POST, tras lo cual los ciberdelincuentes se autentican en la VPN ya con la IP real del empleado. ES-Tire informó en junio que el equipo de explotación tardó tres minutos en pasar de la cookie robada a la imitación de solicitudes laborales, eludiendo la autenticación multifactor porque el marcador Refresh seguía vigente.

¿Qué ayuda a no caer en esta trampa? En primer lugar, el principio de mínimos privilegios: cualquier extensión que solicite cookies y una máscara de URL universal merece desconfianza. En segundo lugar, un repositorio propio de complementos: recompilen las extensiones de código abierto, fírmelas con la clave V3 y desplíguenlas mediante MDM. En tercer lugar, control en la nube de las sesiones SaaS: Security Command Center u otra herramienta equivalente detectará si un token se ha autenticado desde un ASN nuevo minutos después de hacer clic en un anuncio.

La modernización de los navegadores también avanza en la dirección correcta. Manifest V3 ya prohíbe cookies.getAll sin interactividad, y los permisos host_permissions se han trasladado a un diálogo en tiempo de ejecución. Firefox sigue una senda similar, añadiendo optional_permissions y cuotas para las solicitudes de red. Pero mientras la migración no concluya, las corporaciones tendrán que «apretar tuercas» por su cuenta y desactivar extensiones desconocidas mediante ExtensionInstallBlocklist.

Finalmente, una de las recomendaciones más subestimadas es la rotación de tokens. Si el backend está configurado para que los marcadores Refresh vivan 30 días y la cookie solo una hora, el ladrón tendrá que actuar de forma inmediata tras la subida, lo que aumenta de forma notable las posibilidades de detectar anomalías en la SIEM.

Conclusión. Las extensiones que embellecen la interfaz o «aceleran la VPN» siguen siendo la puerta más cómoda hacia cualquier perfil. Mientras las tiendas de extensiones persigan volumen, los atacantes ocultarán código espía tras editores de fotos y generadores de cupones. Para el usuario ese «parche» cuesta más que cualquier zero-day: aquí no hace falta una RCE — basta una cookie robada para mudarse inmediatamente al panel en la nube de otra persona. Por tanto, la principal conclusión es simple: enumeren los accesos, contabilicen las llamadas al API y no confíen en complementos que dicen «solo quiero mirar un poquito» sus datos.

Alt text