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 linea, etc. Tambien hay algunas que son indeseables: las que nos muestran publicidad o recopilan informacion sobre nuestras acciones. Pero hasta estas parecen inofensivas si se las compara con aquellas cuyo fin es robar dinero. En Kaspersky, para proteger a nuestros clientes, procesamos automaticamente muchos tipos de extensiones provenientes de diversas fuentes. Por ejemplo, descargamos extensiones sospechosas de la tienda Chrome Web y las sometemos a analisis. Hace poco descubrimos una que se conectaba a un dominio sospechoso, lo que nos puso en guardia.

La extension denominada “Desbloquear Conteudo” (del portugues “Desbloquear contenido”) para Google Chrome, estaba destinada a los usuarios brasilenos de banca en linea. Llegamos a esta conclusion porque todos los intentos de instalacion que registramos ocurrieron en Brasil. La tarea de este malware es recopilar los datos de autenticacion de las victimas (por ejemplo, nombres de usuario y contrasenas) para robarles dinero. Los productos de Kaspersky Lab detectan esta extension como HEUR:Trojan-Banker.Script.Generic.

Geografia de detecciones del script fundo.js, uno de los componentes de la extension

Al momento de esta publicacion, la extension maliciosa ya se habia eliminado de Chrome Web Store.

La extension maliciosa en Chrome Web Store

Analisis de la extension maliciosa

Las extensiones maliciosas para navegadores suelen emplear diferentes tecnicas para burlar la deteccion antivirus (por ejemplo, tecnicas de enmaranamiento u ofuscacion). Los desarrolladores de la extension investigada decidieron no ofuscar su codigo fuente y eligieron otra via. Para recibir y transmitir datos el malware utiliza el protocolo WebSocket, que permite intercambiar mensajes con el servidor de administracion en tiempo real. De esta manera, el servidor administrador desempena el papel de servidor proxy; cuando la victima se encuentra en la pagina de algun banco brasileno, la extension redirige el trafico a este servidor proxy. Y de hecho, la extension lleva a cabo un ataque Man-in-The-Middle.

La extension “Desbloquear Conteudo” se compone de dos scripts JS, que a continuacion analizamos en detalle.

fundo.js

Lo primero que llama la atencion en el codigo del script es la funcion 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 traves de WebSocket

Datos descargados y almacenados por la extension

Como respuesta a la peticion enviada a hxxp://exalpha2018[.]tk/contact-server/?modulo=get, la extension recibe una direccion IP, a la que se dirigira el trafico de usuarios.

Recepcion de la direccion IP desde un servidor

Direccion IP del servidor adonde se redirige todo el trafico de los usuarios

En este punto hay que mencionar la tecnologia Proxy Auto Configuration (configuracion automatica de servidor proxy). Los navegadores modernos utilizan un archivo especial escrito en lenguaje JavaScript, en el que solo se define una funcion: FindProxyForURL. Mediante esta funcion, el navegador determina que servidor proxy utilizar para establecer conexiones con diferentes dominios.

El script fundo.js utiliza la tecnologia Proxy Auto Configuration cuando invoca la funcion implement_pac_script. Como resultado, la funcion FindProxyForURL se sustituye por otra, que remite el trafico al servidor del atacante, pero solo si este se encuentra en la pagina de un banco.

Cambios en la configuracion del explorador para redirigir el trafico de usuarios

pages.js

En este script, el siguiente fragmento del codigo es el mas importante:

Ejecucion (en las paginas de los bancos) del codigo 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 brasilenos y el codigo 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.

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

Todas las secuencias de comandos enumeradas tienen funciones similares y estan disenadas para robar los datos de autentificacion del usuario. Procedamos al analisis de una de ellas.

cef.js

Una de las funciones de este script es anadir un codigo HTML a la pagina de inicio del sistema bancario en linea.

Como se agrega el codigo malicioso a una pagina

Al observar con mas detenimiento el codigo que el servidor envia como respuesta, queda claro que su funcion es capturar las contrasenas de un solo uso destinadas a la autenticacion en el sitio web del banco.

Intercepcion de contrasenas de usuario de un solo uso

Si el usuario esta en la pagina donde se ingresa el inicio de sesion y contrasena, el script clona el boton “Iniciar sesion”. Tambien crea una funcion que controla las pulsaciones sobre el mismo. Asimismo, permite que la contrasena se almacene en archivos cookies para despues transmitirla al servidor de administracion a fin de pulsar el verdadero boton, que esta oculto a la victima.

Creacion de una copia del boton de inicio de sesion e intercepcion del nombre de usuario y la contrasena para acceder al banco en Internet

Como resultado, no solo se envia la contrasena de la cuenta al sistema bancario en linea, sino tambien al servidor de los ciberpiratas.

Envio de todos los datos interceptados al servidor de administracion

El analisis adicional de los recursos utilizados en el ataque, realizado en KL Threat Intelligence Portal, permite obtener informacion relevante. Por ejemplo, el script ganalytics[.]ga, mencionado anteriormente, esta registrado en un area de dominio relacionada con Gabon, por lo cual los servicios Whois proporcionan relativamente poca informacion al respecto:

Informacion WHOIS sobre ganalytics[.]ga

Sin embargo, la direccion IP en la que se hospeda esta asociada a varios otros dominios curiosos.

Un fragmento de datos DNS proporcionados por KSN

Se puede observar ver que en la misma direccion IP se encuentran (o se encontraban) otros dominios con nombres caracteristicos, que contienen las palabras advert, stat, analytic, que tambien estan registrados en la zona de dominio de Brasil, .br. Vale decir que muchos de ellos estuvieron vinculados con la distribucion de scripts de mineros web durante la pasada primavera, cuya descarga se realizaba al visitar sitios legitimos de bancos brasilenos.

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

La descarga de software malicioso al visitar un recurso legitimo suele indicar que la modificacion del trafico ocurre localmente, en los equipos de los usuarios. Y algunos otros datos, como el centrarse en los usuarios brasilenos y el uso de la misma direccion IP, sugieren que la extension descrita (u otras similares) tenia la posibilidad de agregar scripts de extraccion de criptomonedas en los sitios web visitados por los usuarios del banco en el momento de la descarga.

Conclusion

Las extensiones para navegador destinadas a robar nombres de usuario y contrasenas son bastante raras. Pero dado el posible dano que pueden infringir, hay que tomarlas en serio. Le recomendamos que elija extensiones verificadas, que tengan un gran numero de instalaciones y comentarios en Chrome Web Store u otro servicio oficial. Despues de todo, a pesar de las medidas de proteccion adoptadas por los propietarios de esos servicios, las extensiones maliciosas todavia pueden penetrarlas, como en uno de los casos que tuvimos la oportunidad de analizar. Tampoco esta demas contar con una solucion de seguridad que lance una advertencia cuando una extension instalada empiece a comportarse de forma sospechosa.

Publicaciones relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *