Saltar al contenido

Detectar y bloquear el minado de criptomoneda en el navegador (cryptojacking)

Las criptomonedas llevan ya un tiempo entre todos nosotros y, como seguramente ya sepas. Permiten ganar bastante dinero y con su auge ha llegado también una nueva costumbre, la de realizar minería de criptomonedas desde el navegador que visita determinadas páginas web.

Criptomonedas (Wikipedia) – se trata de monedas virtuales que hacen uso del cifrado para garantizar su seguridad (más información sobre la criptomoneda) cuya gran baza es el «no repudio», que garantizan al tratarse de transacciones verificables por cualquier miembro de la cadena y que mantienen un histórico inalterable de sus cambios. Se han hecho muy populares al garantizar el anonimato y escapar al control directo de los gobiernos. También son muy populares entre los ciberdelincuentes que, por ejemplo, piden rescate tras un ataque por ransomware.

Minería de moneda virtual como pago por servicio

Hay un problema latente en los últimos tiempos y que todas las webs importantes están padeciendo: el auge de los bloqueadores de publicidad (pop-up blockers). Cada vez son más y cada vez más efectivos, lo que significa que esta forma tradicional de financiación para los sitios web ya casi no sirve de nada.

Cualquier cosa que consumas de forma gratuita: series/películas online, descarga de programas o torrents, etcétera es susceptible de cargar uno de estos scripts en tu navegador, para así intentar monetizar tu visita.

Y ya sabemos…nadie vive del aire, aunque claro está hay excepciones -como esta web, por ejemplo- donde hemos decidido desde un principio no recurrir a los anuncios para financiarnos, sino a los donativos voluntarios de los usuarios.

Uno de los casos más conocidos

Por ejemplo, la web The Pirate Bay ha sido pillada in fraganti varias veces (la última esta pasada semana) utilizando los recursos del equipo cliente (el visitante) para realizar minado de monedas virtuales durante el tiempo que duraba la visita a su servidor.

Han reconocido recientemente que en el futuro, quizá, -aunque lo estaban haciendo de facto- empezarían a utilizar esta metodología como medio de financiación.

No se trata de una práctica nueva, pero The Pirate Bay fue la primera de las webs realmente populares en ponerla en marcha. Esto a su vez llevó a debate sobre si es ético o no financiarse así y, sobre todo, sin previo consentimiento del usuario.

Tablas de minería de criptomoneda

Desde los comienzos de este tipo de prácticas, no son pocos los desarrolladores que se han preocupado por hacer justamente lo contrario, crear medios para detectar y bloquear la minería en el navegador del usuario. Actualmente, el minado de criptomonedas en navegadores se ha convertido en un problema de primer orden.

Realizar minería es sencillo pero, ¿es ético?

Coinhive, Coinbase, CryptoLoot… los servicios más populares de este tipo nos venden formas extremadamente fáciles para poner a trabajar los equipos de nuestros visitantes y así conseguir el máximo ROI (retorno de la inversión). Basta con poner algo de Javascript en la web:

https://coin-hive.com/lib/coinhive.min.js

    var miner = new CoinHive.User('', 'john-doe');
    miner.start();

En la siguiente imagen podemos ver como el código Javascript es a menudo ofuscado para no ser reconocible a simple vista:

Javascript ofuscado

En resumidas cuentas, a cambio de una comisión que oscila entre un 15 y un 30%, los webmasters pueden hacer dinero fácil a nuestra costa, de nuestra factura de la luz y vida de los componentes.

Tampoco es cuestión de negar esta posible vía de financiación para no tener que soportar anuncios, pero en 9 de cada 10 casos el usuario no está siendo informado de ello, así que hablamos de una mala práctica.

¿Está sufriendo mi equipo crytojacking?

Tan popular se ha vuelto la minería desde el navegador que debemos preguntarnos si nos están utilizando para ello, llegado el caso de que experimentemos síntomas como:

  • Elevada temperatura de componentes
  • Aumento inusitado de rotación de ventiladores
  • Carga excesiva del equipo teniendo en cuenta nuestra actividad

Los síntomas anteriores, además de otros peores como podrían ser cuelgues o falta de respuesta, nos deberían llevar a sospechar y por lo menos verificar que no tenemos un proceso no deseado minando criptomoneda en segundo plano.

Volviendo al ejemplo The Pirate Bay, los usuarios se dieron cuenta de que había un proceso minando porque la carga de su CPU se disparaba en cuanto visitaban dicha web. En ese caso se trataba de un script cargado junto con el contenido de la pestaña donde se abría la página.

Las técnicas empleadas son diversas. Es posible que carguen un script directamente en la pestaña donde se nos sirve el contenido, aunque quizá más probable que se cargue en un iframe (una página insertada dentro de otra) o que se abra una ventana emergente (pop-up) con un tamaño tan pequeño que ni la veamos a simple vista.

Usando el administrador de tareas

Aunque podemos abrir y cerrar pestañas hasta localizar al culpable, la manera más inequívoca y rápida de hacer esto es abrir el administrador de tareas. Existen diferentes administradores de tareas que podemos usar, dependiendo del sistema operativo y navegador que utilicemos (aquí solo mencionaré unos cuantos). Veamos como abrirlo en cada caso.

Como abrir los diferentes administradores de recursos

  1. En equipos Windows podemos abrir el administrador de tareas presionando CTRL + SHIFT + ESC.
  2. En equipos Mac OS X podemos pulsar Command + Espacio y luego abrir el Monitor de Actividad.
  3. En equipos basados en Linux podemos abrir la barra de búsqueda del cajón de aplicaciones y buscar el «Monitor de sistema». O mejor aún, podemos abrir la terminal y utilizar alguna de las herramientas de medición de recursos como GoTop, o las tradicionales top y htop.
  4. Para abrir el administrador de tareas de Chrome, pulsaremos el botón superior derecho (menú) > Más herramientas > Administrador de tareas.

Resulta especialmente útil el administrador de procesos de Google Chrome, ya que nos mostrará el uso de recursos, tiempo de ejecución, etcétera, sobre cualquier proceso abierto en una pestaña o submarco. Es posible personalizar sus columnas.

Administrador de tareas de Google Chrome

Aún así, nos aseguraremos de que no tenemos ninguna aplicación corriendo y haciendo un uso intensivo de recursos. Así no tendremos dudas acerca del comportamiento sospechoso de nuestro polizón minero del navegador.

Identificando un comportamiento sospechoso

Tomando como ejemplo Windows (es lo que me viene más a mano ahora, sorry guys) resulta muy sencillo identificar la actividad de minado de criptomoneda en nuestro navegador. Para el ejemplo, he visitado la citada web ThePirateBay.org y realizado una búsqueda de una película al azar.

Para ilustrar el ejemplo he desactivado temporalmente cualquier protección anti-minería en esta página.

Administrador de tareas de Windows - criptomoneda

En la primera imagen se puede observar un patrón de consumo de recursos bastante elevado, aunque no total. Los desarrolladores de este tipo de minado han descubierto que es mejor no hacer saltar las alarmas dejando el equipo «a los pies de los caballos». El uso de CPU asciende de un 10% a un 65% aproximadamente.

Administrador de tareas de Windows - criptomoneda

En la segunda imagen podemos ver como, tras reanudar las medidas de protección (sucedería lo mismo si matamos el proceso responsable a mano) el consumo de recursos del equipo vuelve a sus valores normales.

Bloquear el minado de criptomoneda en el navegador

Suficiente charla, vamos a hablar por fin de cuales son las mejores herramientas para bloquear la minería de criptomonedas en nuestro navegador.

1. MINERBLOCK

Algunas extensiones para los principales navegadores se han diseñado con el propósito específico de bloquear la minería (y nada más, no son pop-up blockers) y algunas funcionan realmente bien. La primera que recomendaría es MinerBlock, que nos informa del número de mineros bloqueados (ejemplo anterior en thepiratebay.org):

Minerblock

Esta extensión reconoce actualmente en torno a un centenar de estos algoritmos y lo bloquea rápidamente. Además, nos permite añadir dominios a una lista blanca (en caso de que deseemos permitir el minado en alguna web).

Minerblock ajustes

Descarga la extensión MinerBlock desde Chrome Web Store, en la tienda de Mozilla, o entre los addons de Opera.

2. NO COIN

No Coin es otra de las extensiones para bloquear minado que podemos instalar en los principales navegadores de forma gratuita, siendo bastante efectiva, aunque no tanto como la anterior. También se trata de software opensource, así que podemos confiar en su funcionamiento.

No Coin

Con una interfaz reducida similar a MinerBlock, No Coin nos permite además añadir a lista blanca o suspender la protección durante un tiempo de forma rápida.

Extensión No Coin Google Chrome

Descarga No Coin para Google Chrome, Mozilla Firefox o para Opera.

3. ADBLOCK PLUS

Si utilizas el popular bloqueador de ventanas emergentes Adblock Plus también puedes usar este para bloquear el minado de criptomonedas en tu navegador, aunque tendrás que añadir una lista negra manualmente.

Adblock Plus

Empezaremos por descargar AdBlockPlus para nuestro navegador:

Los componentes de minería son bloqueados mediante una lista llamada EasyPrivacy, así que solo tendremos que importarla. Es muy sencillo, tras instalar AdBlockPlus abriremos sus ajustes > Avanzado > Añadir una nueva lista de filtros.

Nueva lista de bloqueo Adblock plus

Daremos un nombre a nuestra lista y escribiremos la URL apropiada:

Easyprivacy.txt

 Comprobado, tras una nueva visita a thepiratebay.org no se nota ningún consumo adicional de recursos de sistema.

4. NOSCRIPTS EN FIREFOX

La extensión NoScript nos permite hacer algo similar en Firefox, aunque hay que dejar claro es más agresiva y podría dañar el contenido de otras páginas legítimas, dado que se carga los scripts de los sitios web.

NoScript Firefox

5. BLOQUEAR COINHIVE EN OPERA

Tras el lanzamiento del navegador Opera versión 50, la empresa ha incluido una funcionalidad que permite bloquear los scripts Coinhive (los más populares hoy en día) y las técnicas de minado de criptomoneda más comunes.

Bloquear minería de criptomonedas

Para habilitar la característica bastará con abrir el menú de configuración > Básico > Bloquear anuncios y escoger la opción NoCoin. (imagen: Fossbytes).

6. BLOQUEAR DOMINIOS EN ARCHIVO HOSTS

Cambiando un poco de método, existe una forma manual de bloquear estas actividades tan molestas: usar el archivo hosts del sistema operativo. Es posible hacerlo en cualquier sistema o distribución Linux y, tras configurarlo, el navegador no será capaz de resolver el dominio culpable de la minería cuando tenga lugar.

Podemos hacer una redirección de este tipo de dominios, por ejemplo, a la dirección 0.0.0.0.

Modificar archivo hosts en Linux

El archivo hosts de Linux está ubicado en /etc/hosts para las distribuciones basadas en Debian/Ubuntu/Fedora/CentOS. Editaremos el archivo con nuestro programa favorito.

sudo nano /etc/hosts

O bien:

sudo nano /private/etc/hosts

Añadiremos al final la siguiente línea:

0.0.0.0 coin-hive.com

Y salvaremos los cambios. Nótese que entre ambos bloques lo que hay es un espacio.

Modificar archivo hosts en Windows

En Windows nos moveremos hasta la ruta

 C:\Windows\System32\drivers\etc

Editaremos el archivo hosts para añadir lo mismo (0.0.0.0 coin-hive.com) al final.

Estos ejemplos se han usado para bloquear los mineros de Coin-Hive, pero si encontráis otros nuevos podéis añadir las líneas manualmente como ya hicimos.

7. USAR UN ANTIVIRUS / ANTIMALWARE

Por último, para impedir que minen con nuestro navegador también podemos confiar en un buen antivirus. Malwarebytes es conocido por ser bastante efectivo en este aspecto, aunque hay otros. Como este apartado es un tanto más complejo (y no todos los antivirus serán capaces) dejaré que investigues esto por ti mismo si te interesa.

Conclusiones

Hasta aquí ha llegado la guía de hoy, donde hemos visto las diferentes maneras de impedir la minería mediante el navegador que existen. No son pocas, y casi todas son gratis. Como no quiero matar al «developer» medio, me gustaría despedirme diciendo que no hay problema en que permitas el minado en esta o aquella página web… ¡siempre y cuando te avisen antes!

Alejandro Ver todo

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

5 comentarios sobre “Detectar y bloquear el minado de criptomoneda en el navegador (cryptojacking) Deja un comentario

  1. Hola Alejandro,

    Lo primero felicitarte y agradecerte una explicación tan detallada y bien presentada, además de útil. Por desgracia estos días no se ven muchos posts ni periodismo de calidad, y este es la excepción que confirma la regla.

    Me gustaría comentarte una duda; buscando información sobre el tema, concretamente en esta web (https://www.profesionalreview.com/2018/02/25/maneras-bloquear-minado-criptomonedas-navegador/#Bloquea_dominios_en_AdBlocker)
    he visto que sugieren añadir la siguiente lista de filtros al AdBlocker:
    https://coin-hive.com/lib/coinhive.min.js.

    Estoy indeciso. ¿Debería añadir esta además de la de EasyPrivacy que señalas tú? ¿O quizás consigo justo lo contrario y al añadir las 2 sería contraproducente?

    Un saludo y muchas gracias de nuevo!
    Que tengas un gran día

    Me gusta

    • Hola Alejandro, gracias lo primero por apreciar mi labor. Lo que comentan que professionalreview -que por cierto es una web bastante solvente- es correcto y si lo pones en práctica no vas a tener ningún problema aunque sigas mis recomendaciones. Sin embargo necesario no es porque los recursos que apunto ya bloquean ese tipo de recurso.
      Saludos.

      Me gusta

Deja tu comentario (puedes hacerlo de forma anónima)

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.