Script de Coinhive en mas de 4000 sitios web.



Mas de 4000 sitios se han detectado con malware para realizar criptominado, incluyendo agencias gubernamentales  de Estados Unidos y de Inglaterra.


El investigador de Seguridad, Scott Helme fue unos de los primeros en investigar este caso, y uno de los comentarios mas interesantes que dijo, fue que: si deseas cargar malware dentro de 4000 sitios, no hackearas los 4000 sitios, si no que hackeas uno al cual todos van a cargar contenido de este. En este caso se hackeo un portal de almacenamiento de script, en el cual ciertos de portales hacian uso para la carga de Script.

Los script que fueron comprometidos, se le añadió una linea para llamar a los script de minado de la moneda coinhive. Algunos de los sitios afectados con este código fueron las cortes de Estados Unidos, el concilio general de médicos , entre otros.

Particularmente el modo de operación de este método es bastante inteligente. La mayoría de las personas que realizan programación de sus portales, para ahorrar código o hacerlo mas simple, hacen llamadas a servidores u otros portales de almacenamiento de javascript, los cuales pueden ser alterados sin que el administrador del portal tome conocimiento al respecto, dando un punto de vulnerabilidad en este tipo de servicios, claramente utilizando a su favor las relaciones de confianza, que existen entre algunos dominios.

Así que aunque tu portal no sea directamente hackeado, pueden por medio de la edicion de javascript, ser victima de otro que sacará provecho de tu esfuerzo en el minado de criptomonedas.



Métodos de protección


Este no es el primer ataque de este tipo, de hecho han habido veces que han logrado hackear Script de sitios web logrando afectar a un centenar de dominios.

La mayoria de los programadores cuando utilizan CDN para llamar javascritp lo realiza de la siguiente manera..

<script src="//www.browsealoud.com/plus/scripts/ba.js"></script>


Pero la manera mas optima de realizar una verificación del Script que se está llamando es mediante el uso de HASH de la siguiente manera

<script src="//www.browsealoud.com/plus/scripts/ba.js"  integrity="sha256-Abhisa/nS9WMne/YX+dqiFINl+JiE15MCWvASJvVtIk=" crossorigin="anonymous"></script>


Con esto, si el hash no corresponde al hash del archivo js, el archivo es rechazado.


Fuente: https://scotthelme.co.uk/protect-site-from-cryptojacking-csp-sri/