El ransomware es un tipo de troyano que, de vez en cuando, asoma al mundo del malware. Esta semana hemos visto un espécimen que nos ha llamado la atención porque utiliza criptografía asimétrica para cifrar los archivos del usuario y pedir así un rescate por ellos. Veamos cómo funciona exactamente y qué fallos y aciertos ha cometido su autor.
1.- El troyano (empaquetado con UPX) contiene en su interior una clave pública del atacante, un archivo BMP (el fondo de pantalla) y el texto del mensaje.
2.- Utilizando las APIs criptográficas de Windows, genera un par de claves públicas y privadas (las llamaremos A y B) usando el protocolo RSA.
3.- Cifra con su clave pública una de las claves (pongamos A) generadas en el paso 2, lo que daría A’. Este paso es interesante, porque así evita que alguien con conocimientos aplique el proceso inverso de cifrado.
4.- En este punto el troyano crea un hilo y comienza a realizar dos tareas en paralelo. Por un lado muestra el mensaje de texto (concatenando en el texto la clave A’) y cambia el fondo de pantalla y por otro comienza a cifrar. Esto es un grave error por parte del atacante, puesto que mientras muestra el mensaje de alerta, ya está cifrando entre bambalinas los archivos. La víctima, una vez visualizado el mensaje, solo tiene que identificar y matar el proceso. Así salvará la mayor parte de sus ficheros. Lo ideal (desde el punto de vista del atacante) hubiese sido primero cifrarlo todo y luego avisar a la víctima. El troyano no se ejecutará de nuevo en el sistema.
5.- El troyano busca en todas las unidades, ficheros con estas extensiones: jpg, .jpeg, .psd, .cdr, .dwg, .max, .mov, .m2v, .3gp, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .rar, .zip, .mdb, .mp3, .cer, .p12, .pfx, .kwm, .pwm, .txt, .pdf, .avi, .flv, .lnk, .bmp, .1cd, .md, .mdf, .dbf, .mdb, .odt, .vob, .ifo, .mpeg, .mpg, .doc, .docx, .xls, y.xlsx. Cifra con la otra clave B generada en el paso 2 y en bloques la mitad del tamaño de cada archivo. Suponemos que por eficiencia (es un proceso que consume recursos). Es interesante destacar que los archivos son sobrescritos (hace que los originales no puedan recuperarse). Antes de cifrar cada archivo, debe comprobar que no se llame HOW TO DECRYPT FILES.txt o el nombre aleatorio que pone al BMP que usa como fondo de pantalla. Si es así, no los cifra. Esta es una comprobación que se podía haber ahorrado si creara estos archivos después del cifrado y no antes, como hemos mencionado.
6.- Borra la clave B con la que ha cifrado los archivos. Ahora, será necesario que el atacante descifre A’ con su clave privada. Con esto el atacante obtendrá A, necesaria para descifrar lo que ha sido cifrado con B.
7.- El troyano crea un bat temporal para borrarse.
En el mensaje se advierte a la víctima de que después de un tiempo los ficheros cifrados serán borrados. Esto no es cierto, no está programado en el código.
Si alguien queda infectado y no cuenta con copia de seguridad de sus ficheros puede perderlos definitivamente. Solo queda, como hemos apuntado, detectar la infección (por el mensaje que aparece y el cambio de fondo de escritorio) y matar el proceso o apagar el sistema. Un usuario con conocimientos de ingeniería inversa podría depurar el proceso mientras está cifrando e intentar rescatar de la memoria la clave B, pero es complejo (y se debe ser rápido). Nunca se debe realizar el pago.
La primera muestra que tenemos en Virustotal data del 25 de noviembre. Era detectada por firmas por 5 motores. La última está siendo detectada por 24 motores. El país de donde provienen la mayoría de las muestras es Alemania.
agomez@hispasec.com
Sergio de los Santos
ssantos@hispasec.com
Más información:
una-al-dia (29/11/2010) Vídeo: ¿Vuelve el ransomware? Troyano utiliza criptografía asimétrica (I)
http://www.hispasec.com/unaaldia/4419/comentar
Deja una respuesta