Santiago Pontiroli
Hace algunos meses escribimos una entrada del blog sobre CoinVault. Allí explicamos cómo despedazamos el programa malicioso para llegar a su código original en vez del ofuscado.
Por eso, cuando la Unidad Nacional de Altos Crímenes Tecnológicos (NHTCU) de la policía de Holanda y la Oficina de la Procuraduría Nacional de Holanda se pusieron en contacto con nosotros porque habían conseguido una base de datos del servidor de comando y control de CoinVault (con IVs, llaves y billeteras privadas de Bitcoin), tuvimos la oportunidad de darle un buen uso a los conocimientos que habíamos acumulado y acelerar la creación de una herramienta de descifrado.
También creamos un sitio web y comenzamos una campaña de comunicación para decirle a las víctimas que podían recuperar sus datos sin pagar el rescate.
Necesitábamos saber lo siguiente para construir la herramienta de descifrado:
- ¿Qué algoritmo de cifrado se usó?
- ¿Qué modo de cifrado por bloques empleó?
- Y, lo más importante, ¿con qué programa malicioso estamos lidiando?
Por supuesto, no teníamos tiempo para hacer un estudio profundo de ingeniería inversa, así que lo primero que hicimos fue ejecutar el ejemplar del programa para ver lo que estaba haciendo. Tal como imaginamos, era otro ejemplar de CoinVault. Lo siguiente que hicimos fue abrir el ejecutable en un decompilador, donde vimos que se usó el mismo método de ofuscación que se describió en la entrada. Entonces confirmamos que se estaba usando CoinVault. Pero todavía no sabíamos qué algoritmo de cifrado y modo de cifrado por bloques estaba usando.
¡Por suerte tenemos una caja de arena! Lo bueno de la caja de arena es que, además de ejecutar el programa malicioso, puede rastrear casi cualquier cosa. Podemos volcar ficheros y cambios en el registro pero, en este caso, los vaciados de memoria fueron lo más interesante. Sabíamos por los anteriores ejemplares de CoinVault que el programa malicioso empleaba la clase RijndaelManaged, así sólo tuvimos que buscar esta cadena en el vaciado de memoria.
Y aquí la tienes. Podemos ver que sigue usando AES, pero no el bloque de 128 bits de tamaño, sino el de 256 bits. El modo de cifrado por bloques también se cambió de CBC a CFB. Esa es toda la información que necesitábamos para escribir nuestra herramienta de descifrado.
Para ver si puedes descifrar tus ficheros, visita https://noransom.kaspersky.com.
Haciendo frente a CoinVault: la hora de liberar los ficheros ha llegado