by Rubén Jiménez, Chief Architect at RANDED.

Qué es el Cryptojacking

Las criptomonedas están revolucionando el mundo y ofrecen nuevas oportunidades de mercado que, hasta hace poco, eran impensables.

La minería de criptomoneda es un proceso asociado a los sistemas basados en tecnología de tipo “Blockchain”[1]. Es necesario para la correcta validación de todas las transacciones realizadas. Cada validación requiere de un alto coste computacional. Para compensar el esfuerzo de cálculo, aquellas entidades participantes son recompensadas con nuevas criptomonedas. Así, se genera un inocente equilibro en el ecosistema monetario digital sobre el que se está operando.

Cuando el proceso de minería es realizado utilizando los recursos del dispositivo del usuario, sin su consentimiento ni conocimiento, hablamos de “Cryptojacking”[2].

Para realizar este tipo de minería fraudulenta, es necesario software especial. Este debe ser instalado en el equipo del usuario, ya sea móvil o desktop. Hasta hace poco tiempo, estos frameworks se han apoyado en el malware tradicional  ( Ransomware, Adware, etc ) para alcanzar el mayor numero posible de usuarios y desplegar campañas masivas de minería.

El juego en la industria ha cambiado por completo. Con la reciente aparición de empresas y grupos que han creado sencillos scripts de minería de criptomoneda, capaces de operar de forma trasparente en cualquier navegador: “Browser-based cryptojacking” o “In-Browser mining of cryptocurrencies” [3].

El lenguaje utilizado para desarrollar este código de minería, en su mayoría, es JavaScript. Algo fácilmente comprensible, puesto que es soportado en todos los navegadores modernos. Además, cuenta con total capacidad de integración en cualquier aplicación web.

Uno de los puntos clave para el éxito de la minería en navegadores es la distribución de los scripts durante la navegación del usuario. Hay muchos escenarios, dependiendo del tipo de distribución: directa o indirecta. O bien, de si hay complicidad por medio de los dueños de los sitios web o no. En general, el método mas utilizado es la distribución mediante publicidad. Cabe destacar que, aunque las extensiones de navegador también han sido utilizadas como otro medio de distribución, los fabricantes de navegadores están elevando sus criterios de aceptación y análisis [4].

Uno de los puntos  débiles de estos scripts de minería es la persistencia. Su tiempo de vida está limitado al tiempo de ejecución del navegador, o ejecución de ventana. Podemos afirmar que, la ventaja que obtienen al ejecutarse en el navegador, se convierte en desventaja con respecto al tiempo de persistencia. A pesar de esta evidente debilidad, y como ocurre con el malware tradicional, aparecen nuevas técnicas para prolongar la ejecución sin conocimiento del usuario [5].

La respuesta del mercado

En general, las nuevas amenazas derivadas del Cryptojacking han cogido al mercado y a los fabricantes de productos de seguridad ligeramente desprevenidos. Lo que ha provocado una lenta reacción. La decisión de utilizar procedimientos correspondientes a otras amenazas y su dificultad de integración con entornos para los que no fueron diseñados, ralentizan una respuesta a los clientes. Esta situación facilita la proliferación de nuevas variantes de scripts de minería [3] y permite campañas de distribución más prolongadas.

Algunos navegadores [6] han añadido características de protección de minería de criptomonedas en sus nuevas versiones. Si bien son buenas noticias para los usuarios, el campo de batalla principal continua dándose en sus dispositivos, manteniendo elevado el riesgo de exposición.

La aparición de plataformas de virtualización de navegadores supone un paso adelante. Estos crean una separación real entre el dispositivo del usuario y la web navegada. Se dispone de sesiones temporales y se garantiza la continuidad del servicio en caso de amenaza. Los requerimientos de tecnología de virtualización de terceros, el uso de protocolos de aplicación remota propietarios y el poco control sobre el proceso de navegación, hacen de esta aproximación, una opción atractiva pero poco efectiva contra ataques de “Cryptojacking.

Las empresas que exponen servicios web tienen la responsabilidad de proteger a sus clientes ante cualquier código malicioso que puedan distribuir. Adicionalmente, las empresas, también tienen la responsabilidad de mantener protegidos los dispositivos desde los que navegan sus trabajadores. Sin afectar a su rendimiento ni usabilidad. Es necesario buscar alternativas que permitan adaptarse en estos escenarios y adelantarse a futuras evoluciones de Cryptjacking.

El aislamiento como defensa natural

Las tecnologías de aislamiento web o navegación aislada actúan como un sistema de protección implícito contra la minería de criptomoneda, basada en navegador. Los usuarios no están expuestos en ningún momento y no se ven afectados por procesos de mitigación. La navegación es realizada en una plataforma remota. La cual se encarga de toda la lógica de detección y bloqueo, fuera del dispositivo del usuario.

Es importante tener en cuenta que no todas las tecnologías de aislamiento son igual de efectivas.

El aislamiento parcial de navegación, con o sin control del contexto de navegación, puede ser afectado por variaciones en las técnicas de ocultación/persistencia de los scripts de minería. Esto incrementa la dificultad del proceso de análisis e impacta directamente en la experiencia de usuario. El porcentaje de riesgo de dejar pasar código malicioso es elevado y el precio a pagar puede ser muy alto.

El aislamiento total con control del contexto de navegación, constituye el mejor escenario de defensa disponible en la actualidad ante los scripts de minería en ejecución de navegador.

Protección implícita- IC Tech

En Randed hemos confiado, desde el inicio, en la tecnología de aislamiento completa como la única garantía para adelantarnos a las amenazas futuras. Esa visión nos ha permitido crear IC Tech [7] .Y dotar a todos nuestros productos de los mecanismos necesarios para detectar y bloquear scripts de minería.

ICTech es el resultado de varios años de investigación y desarrollo en los que se ha logrado implementar e integrar de forma eficiente dos potentes componentes de software, un sistema de gestión de navegación y un sistema de transmisión de contenido, dando lugar a la primera tecnología de su naturaleza en el mercado.

La detección es el primer paso para derrotar cualquier script de minería. Cuanto más temprana sea la detección, más fácil será el bloqueo. Entre todos los mecanismos de detección que incorpora ICTech, destacan:

Monitorización de ``DOM Events``

Escuchar eventos del DOM generados [8] por el motor de render en el contexto de navegación. Algunos de estos eventos son usados por los scripts de minería para actuar en función de las acciones del usuario, activando o suspendiendo el proceso de minería.

Análisis de recursos

Una de las técnicas más usadas y fáciles de implementar. Cualquier recurso WEB ( html/js/css ) que sea pedido, puede ser bloqueado si hace coincidencia en una “lista negra”. La mayor parte de los scripts de minería se incluyen como librería JavaScript. El filtrado se aplica al nombre del recurso y el dominio al que se pide.

Análisis de contenido

Es una de las técnicas más comunes en análisis de malware tradicional. Se analiza del contenido (código ) de los recursos para detectar comportamientos específicos de minería: funciones utilizadas, nombres de variables, etc. Adicionalmente, posibilita la detección de scripts embebidos en HTML.

Monitorización de CPU/Memoria

Controlar el consumo de CPU y memoria por cada TAB de sesión de navegación. Consumos elevados pueden activar otros mecanismos para analizar la actividad. También puede alertar de otro tipo de ataques como browser-side DoS o intentos de explotación remota.

Análisis de apertura de PopUps

Se analizan los atributos y parámetros utilizados en las peticiones de creación de nuevas ventanas de navegación. Algunos scripts de minería intentan mantener la persistencia usando estos trucos en la apertura de PopUps [9].

Análisis de API gráfica

Los navegadores modernos incorporan soporte de WebGL. Este permite realizar operaciones matemáticas complejas a nivel de GPU. Un recurso que pueden aprovechar los scripts de minería [10] para acelerar las operaciones y no afectar el consumo de CPU.

Cuando se ha detectado que una sesión de navegación está afectada por un script de minería, se puede optar por dos escenarios distintos. El primero consiste en degradar la funcionalidad del script, en la medida de lo posible, haciendo uso de técnicas especiales, pero manteniendo operativa la sesión de navegación:

CPU adaptativa

Decrementar el uso de CPU asignado a la sesión de navegación. Lo necesario como para permitir la correcta usabilidad para el usuario, pero entorpeciendo las operaciones de minería.

Bloqueo API gráfica

Denegar el uso de WebGL. Si la pagina que se navega no requiere el uso de estos recursos, carece de sentido el tenerlos activados.

Filtrado de conexiones AJAX/WebSockets

Filtrar el acceso a las APIs de conectividad y denegar las conexiones a los paneles de recolección de datos minados.

El segundo escenario por el que se puede optar es la finalización completa de la sesión de navegación o del tab de navegación afectado.

Todo este proceso debe estar apoyado en un sistema de alertas y notificaciones. El cual informe al administrador de la plataforma de aislamiento, qué paginas webs han distribuido software de cryptojacking.

Conclusión

Mientras que el malware tradicional lucha por conquistar los sistemas operativos de los dispositivos para aprovecharse de sus recursos, los scripts de minería de criptomoneda pueden acceder a ellos de forma gratuita. Esto se produce a través de los contextos de ejecución de los motores de navegación. Su éxito radica en la sencillez de sus operaciones. Cálculos matemáticos y pequeñas transacciones que se ocultan en la inmensidad y complejidad de las aplicaciones web actuales.

No podemos evitar que los scripts de minería continúen evolucionando en sus formas de distribución, persistencia, ejecución y comunicación. Así pues, la seguridad de las aplicaciones y de los usuarios, no puede estar fundamentada íntegramente en las técnicas de protección tradicionales. El mercado debe proveer soluciones modernas, con capacidad para derrotar estas amenazas desde el inicio. Es necesario aplicar un cambio de paradigma.

Referencias

[1] “Blockchain”

https://www.enisa.europa.eu/topics/csirts-in-europe/glossary/blockchain

[2] “Cryptojacking – Cryptomining in the browser”

https://www.enisa.europa.eu/publications/info-notes/cryptojacking-cryptomining-in-the-browser

[3] “A first look at browser-based Cryptojacking”

https://arxiv.org/abs/1803.02887

[4] “rotecting users from extension cryptojacking”

https://blog.chromium.org/2018/04/protecting-users-from-extension-cryptojacking.html

[5] “Cryptocurrency Miners hidden in websites now run even after users close the browser”

http://securityaffairs.co/wordpress/66204/hacking/cryptocurrency-miners-browser.html

[6] “Opera introduces bitcoin mining protection in all mobile browsers – here’s how we did it”

https://blogs.opera.com/mobile/2018/01/opera-introduces-bitcoin-mining-protection-mobile-browsers/

[7] “Isolation Cloud Technology”

https://randed.com/isolation-cloud-technology/

[8] “Web Events Reference”

https://developer.mozilla.org/en-US/docs/Web/Events

[9] “Pop-up Ads”

https://en.wikipedia.org/wiki/Pop-up_ad#Pop-under_ad_technology

[10] “A Bitcoin miner that supports pure Javscript, WebWorker and WebGL mining”

https://github.com/derjanb/hamiyoca

Ruben Jiménez

Chief Architect at Randed