Una extensión “Man-in-the-middle” para Chrome

Las extensiones para navegador nos facilitan la vida: ocultan anuncios molestos, traducen textos, ayudan en las compras en línea, etc. También hay algunas que son indeseables: las que nos muestran publicidad o recopilan información sobre nuestras acciones. Pero hasta éstas parecen inofensivas si se las compara con aquellas cuyo fin es robar dinero. En Kaspersky, para proteger a nuestros clientes, procesamos automáticamente muchos tipos de extensiones provenientes de diversas fuentes. Por ejemplo, descargamos extensiones sospechosas de la tienda Chrome Web y las sometemos a análisis. Hace poco descubrimos una que se conectaba a un dominio sospechoso, lo que nos puso en guardia.

La extensión denominada “Desbloquear Conteúdo” (del portugués “Desbloquear contenido”) para Google Chrome, estaba destinada a los usuarios brasileños de banca en línea. Llegamos a esta conclusión porque todos los intentos de instalación que registramos ocurrieron en Brasil. La tarea de este malware es recopilar los datos de autenticación de las víctimas (por ejemplo, nombres de usuario y contraseñas) para robarles dinero. Los productos de Kaspersky Lab detectan esta extensión como HEUR:Trojan-Banker.Script.Generic.

Geografía de detecciones del script fundo.js, uno de los componentes de la extensión

Al momento de esta publicación, la extensión maliciosa ya se había eliminado de Chrome Web Store.

La extensión maliciosa en Chrome Web Store

Análisis de la extensión maliciosa

Las extensiones maliciosas para navegadores suelen emplear diferentes técnicas para burlar la detección antivirus (por ejemplo, técnicas de enmarañamiento u ofuscación). Los desarrolladores de la extensión investigada decidieron no ofuscar su código fuente y eligieron otra vía. Para recibir y transmitir datos el malware utiliza el protocolo WebSocket, que permite intercambiar mensajes con el servidor de administración en tiempo real. De esta manera, el servidor administrador desempeña el papel de servidor proxy; cuando la víctima se encuentra en la página de algún banco brasileño, la extensión redirige el tráfico a este servidor proxy. Y de hecho, la extensión lleva a cabo un ataque Man-in-The-Middle.

La extensión “Desbloquear Conteúdo” se compone de dos scripts JS, que a continuación analizamos en detalle.

fundo.js

Lo primero que llama la atención en el código del script es la función Websocket_init(). Dentro de la misma se crea un WebSocket, y desde el servidor (ws://exalpha2018[.]tk:2018) se descargan datos que se almacenan en chrome.storage, en la clave “manualRemovalStorage”.

Descarga de datos desde el servidor a través de WebSocket

Datos descargados y almacenados por la extensión

Como respuesta a la petición enviada a hxxp://exalpha2018[.]tk/contact-server/?modulo=get, la extensión recibe una dirección IP, a la que se dirigirá el tráfico de usuarios.

Recepción de la dirección IP desde un servidor

Dirección IP del servidor adonde se redirige todo el tráfico de los usuarios

En este punto hay que mencionar la tecnología Proxy Auto Configuration (configuración automática de servidor proxy). Los navegadores modernos utilizan un archivo especial escrito en lenguaje JavaScript, en el que sólo se define una función: FindProxyForURL. Mediante esta función, el navegador determina qué servidor proxy utilizar para establecer conexiones con diferentes dominios.

El script fundo.js utiliza la tecnología Proxy Auto Configuration cuando invoca la función implement_pac_script. Como resultado, la función FindProxyForURL se sustituye por otra, que remite el tráfico al servidor del atacante, pero sólo si éste se encuentra en la página de un banco.

Cambios en la configuración del explorador para redirigir el tráfico de usuarios

pages.js

En este script, el siguiente fragmento del código es el más importante:

Ejecución (en las páginas de los bancos) del código malicioso descargado

En la clave “manualRemovalStorage”, al igual que en el caso del script fundo.js, se almacenan los datos descargados del servidor: los dominios de algunos bancos brasileños y el código que el navegador debe ejecutar si el usuario entra al sitio correspondiente.

El script pages.js descarga desde el dominio ganalytics[.]ga y ejecuta los siguientes scripts en los sitios web de los bancos:

  • ganalytics[.]ga/bbf.js,
  • ganalytics[.]ga/bbj.js,
  • ganalytics[.]ga/cef.js,
  • ganalytics[.]ga/itf.js,
  • ganalytics[.]ga/itf_new.js.

Estadística de las reacciones del Antivirus web a las peticiones enviadas al dominio ganalytics[.]ga

Todas las secuencias de comandos enumeradas tienen funciones similares y están diseñadas para robar los datos de autentificación del usuario. Procedamos al análisis de una de ellas.

cef.js

Una de las funciones de este script es añadir un código HTML a la página de inicio del sistema bancario en línea.

Cómo se agrega el código malicioso a una página

Al observar con más detenimiento el código que el servidor envía como respuesta, queda claro que su función es capturar las contraseñas de un solo uso destinadas a la autenticación en el sitio web del banco.

Intercepción de contraseñas de usuario de un solo uso

Si el usuario está en la página donde se ingresa el inicio de sesión y contraseña, el script clona el botón “Iniciar sesión”. También crea una función que controla las pulsaciones sobre el mismo. Asimismo, permite que la contraseña se almacene en archivos cookies para después transmitirla al servidor de administración a fin de pulsar el verdadero botón, que está oculto a la víctima.

Creación de una copia del botón de inicio de sesión e intercepción del nombre de usuario y la contraseña para acceder al banco en Internet

Como resultado, no solo se envía la contraseña de la cuenta al sistema bancario en línea, sino también al servidor de los ciberpiratas.

Envío de todos los datos interceptados al servidor de administración

El análisis adicional de los recursos utilizados en el ataque, realizado en KL Threat Intelligence Portal, permite obtener información relevante. Por ejemplo, el script ganalytics[.]ga, mencionado anteriormente, está registrado en un área de dominio relacionada con Gabón, por lo cual los servicios Whois proporcionan relativamente poca información al respecto:

Información WHOIS sobre ganalytics[.]ga

Sin embargo, la dirección IP en la que se hospeda está asociada a varios otros dominios curiosos.

Un fragmento de datos DNS proporcionados por KSN

Se puede observar ver que en la misma dirección IP se encuentran (o se encontraban) otros dominios con nombres característicos, que contienen las palabras advert, stat, analytic, que también están registrados en la zona de dominio de Brasil, .br. Vale decir que muchos de ellos estuvieron vinculados con la distribución de scripts de mineros web durante la pasada primavera, cuya descarga se realizaba al visitar sitios legítimos de bancos brasileños.

Fragmentos de datos de KSN relacionados con el recurso advstatistics.com[.]br

La descarga de software malicioso al visitar un recurso legítimo suele indicar que la modificación del tráfico ocurre localmente, en los equipos de los usuarios. Y algunos otros datos, como el centrarse en los usuarios brasileños y el uso de la misma dirección IP, sugieren que la extensión descrita (u otras similares) tenía la posibilidad de agregar scripts de extracción de criptomonedas en los sitios web visitados por los usuarios del banco en el momento de la descarga.

Conclusión

Las extensiones para navegador destinadas a robar nombres de usuario y contraseñas son bastante raras. Pero dado el posible daño que pueden infringir, hay que tomarlas en serio. Le recomendamos que elija extensiones verificadas, que tengan un gran número de instalaciones y comentarios en Chrome Web Store u otro servicio oficial. Después de todo, a pesar de las medidas de protección adoptadas por los propietarios de esos servicios, las extensiones maliciosas todavía pueden penetrarlas, como en uno de los casos que tuvimos la oportunidad de analizar. Tampoco está demás contar con una solución de seguridad que lance una advertencia cuando una extensión instalada empiece a comportarse de forma sospechosa.

Publicaciones relacionadas

Leave a Reply

Your email address will not be published. Required fields are marked *