¿Me prestas tu CPU? Quiero Bitcoins

Bitcoin, criptomonedas, Blockchain, minar y demás vocabulario… Seguramente sabes a que se refiere o a lo mejor has oído hablar de ello pero no sabes muy bien que es o como funciona… Con este artículo (no técnico) vamos a intentar dar un poco de conocimiento sobre este tema, cómo funciona y cómo nos utilizan.

¿QUÉ SON LAS CRIPTOMONEDAS?

Las criptomonedas son monedas digitales cuyas transacciones se realizan de forma anónima y no dejan rastro alguno. Todos los movimientos realizados se anotan en ficheros en cada uno de los ordenadores que forman la red. Así, se consigue garantizar que las transacciones son legítimas ya que el documento es idéntido en todos ellos y no ha sido alterado. Existen muchos tipos de criptomonedas, aunque las más sonadas son: Bitcoin, Litecoin, Ether, Monero, etc…

¿QUÉ ES BITCOIN?

La palabra Bitcoin engloba tres elementos a los cuales identifica:

  • Bitcoin es una criptomoneda o moneda digital, con unas características muy peculiares: no dejan rastro y las transacciones se realizan de forma anónima.
  • Bitcoin es una red de pagos peer-to-peer (P2P) descentralizada en la que no existen intermediarios y donde cualquiera puede crearse cuentas o direcciones Bitcoin.  Un ejemplo de cuenta Bitcoin sería 120G72XcRP6odG4jykzHiG5p2tQQtZsec1. Estas direcciones están vinculadas a una contraseña o clave privada con el objetivo de proporcionar la seguridad correspondiente. La clave privada se almacena en el monedero o wallet y son la única forma de acceder al dinero de las direcciones Bitcoin que tengamos. El extravío de la clave privada sería la pérdida del dinero de nuestra dirección Bitcoin.
  • Bitcoin es un protocolo que utiliza los protocolos TCP/IP.

¿QUE ES BLOCKCHAIN?

Blockchain es como un gran libro de contabilidad en el que se asocian las direcciones Bitcoin con el saldo. Cada 10 minutos, se crea un nuevo fichero en el que se anotan los movimientos realizados y se encadenan a los anteriores. Todas las transacciones que van teniendo lugar, y una vez que son confirmadas, se van almacenando en bloques. Una vez que se dispone de un nuevo bloque, se distribuye por todos los ordenadores de la red y se añade a la cadena de bloques, que hoy en día ocupa más de 40 G. En la propia página de Blockchain se puede ver un detalle de los últimos bloques existentes, quién los ha resuelto y demás información:

Para verlo de una forma más clara, en el siguiente gráfico se pueden observar los bloques encadenados hasta el último, en el que los mineros se encuentran verificando las transacciones:

Cada uno de estos bloques está formado por hashes de resúmen de bloques anteriores y transacciones. Al igual que antes, en la propia página de Blockchain, se pueden observar dichos hashes, así como información más detallada:

Los hashes marcados y numerados se detallan a continuación:

  1. Hash: resúmen del bloque en sí, el cual lo identifica y engloba hash de bloque anterior, hash de bloque siguiente y transacciones verificadas.
  2. Hash de Bloque Anterior: resúmen del bloque anterior.
  3. Hash de Bloque Siguiente: resúmen del bloque contiguo.

Cada vez que se descubre un bloque y se añade a la cadena de bloques, son los mineros los encargados de, a través de complejas operaciones matemáticas, intentar descubrir el hash del siguiente bloque. Para ello, es necesario la verificación de transacciones, cuantas más mejor, ya que si durante la verificación de una transacción se obtiene como resultado un hash que cumple los requisitos establecidos por la red Bitcoin, se crea el bloque y se obtiene una recompensa en Bitcoins.

ATACANDO A BLOCKCHAIN

Atacar a Blockchain es una tarea casi imposible hoy en día debido a la gran capacidad computacional que se necesita, pues sería necesario más del 50% del poder de toda la red. Si se consiguiese, sería posible revertir transacciones, no validarlas o hacer que los mineros no minen bloques válidos, etc… . Aún así, el hecho de modificar un bloque implica volver a realizar los cálculos correspondientes y que los hashes resultantes coincidan con los bloques inmediatamente anteriores y así sucesivamente, por lo que las probabilidades de corromper Blockchain aumentan exponencialmente.

MINANDO BITCOINS

Existen muchas páginas web que utilizan nuestra visita para utilizar nuestra CPU y minar bitcoins sin que nosotros los sepamos. Uno de los últimos casos es el de la página de descarga de torrents ThePirateBay, que implementaba código Javascript de CoinHive para utilizar nuestros recursos:

Otro caso reciente es el de la página Plusdede.com, utilizada para ver series y películas de forma online. Revisando su código fuente, observamos un fichero javascript, https://cdn.plusdede.com/js/all.js , en cuyo interior identificamos una instancia de CoinHive para minar Monero:

Pero estos no son los únicos casos, ya que buscando por internet, nos encontramos más páginas que implementan este código Javascript. Utilizando por ejemplo el servicio URLQuery.net, basado en el escaneo de direcciones URL y la detección de malware, descubrimos más páginas que implementan el código de CoinHive para utilizar a los visitantes con este fin:

De entre todos los resultados mostrados, observamos la página para hacer pedidos de pizzas a domicilio dominos.com.mx de la que nos advierten que implementa un script para realizar minado:

Con el fin de verificarlo, visitamos la página, en la que nos encontramos con el código de CoinHive, utilizando así a sus clientes para minar mientras realizan un pedido:

De esta manera se consigue utilizar toda la potencia de la CPU de cada uno de los clientes para minar Monero en segundo plano. Así que, cuantos más clientes, mucho mejor 😉 .

Cada vez más, las técnicas para utilizarnos en el minado de Bitcoin van evolucionando. Se han detectado páginas que se las ingenian para que, de forma indirecta, aceptemos que utilicen nuestra potencia computacional para minar monedas “con nuestro consentimiento”. ¿Y cómo consiguen nuestro permiso sin que lo sepamos?. Pues simplemente añadiendo un código Javascript (Cookie Consent) en el mensaje en la política de las cookies de la página que visitamos (https://es.cookiescript.info/).

Aparte de minar criptomonedas a través de páginas web, también existen actividades ilegales que se basan en utilizar malware para atacar servidores mediante la explotación de vulnerabilidades existentes, muchas veces por no actualizar el software, e instalar software malicioso que aprovecha los recursos para minar. Si este software logra instalarse en numerosos equipos, se podría tener una bonet enfocadada a la minería de criptomonedas.

EVITANDO QUE NOS UTILICEN

Con el fin de evitar que nos utilicen para minar Bitcoins, muchos sitios nos recomiendan utilizar extensiones del navegador y añadir la url https://coin-hive.com/lib/coinhive.min.js en la lista negra, aunque se ha demostrado que esta opción no es totalmente efectiva. Una extensión que nos intenta ayudar con esto es https://github.com/keraf/NoCoin .

Otra opción, más sencilla y efectiva, es añadir una entrada DNS del dominio coin-hive.com para que la petición no resuelva en una ip. En nuestro caso, para Linux, hemos añadido una entrada en el fichero hosts:

En el caso de Windows, haríamos lo mismo para el fichero C:\Windows\System32\drivers\etc\hosts :

El único inconveniente que tiene esto, es que habría que introducir todos y cada uno de los subdominios del dominio coin-hive.com, ya que estos no se bloquearían al no tener una entrada en el fichero.

La última opción es desactivar el Javascript, aunque si la página requiere de ello para su funcionalidad, nos veremos obligados a activarlo.

Esperamos que os haya gustado.

Don’t give up, great things take time“.

Un comentario sobre “¿Me prestas tu CPU? Quiero Bitcoins

Deja una respuesta

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