BitCrypt y el malware fácil de descifrar (I): El qué

ElevenPaths    12 marzo, 2014
El ransomware ha venido para quedarse. Existen fundamentalmente dos tipos: los que bloquean el acceso al sistema (que populariza todavía el «virus de la policía») y los que (incluso adicionalmente) cifran los contenidos. En ambos casos, el negocio se basa en pedir un «rescate» (bien por el control, bien por el contenido). En esta entrada se relatará técnica y matemáticamente el funcionamiento de uno de ellos, bitCrypt y cómo (y por qué) un error de cálculo permite descifrar el contenido de los archivos que «secuestra».
El ransomware está de moda por varias razones.
  • Es relativamente sencillo de programar para los atacantes. No requiere de grandes privilegios en el sistema (principal problema para muchos creadores de malware gracias a la popularidad de Windows 7 y 8) y permite «tener el control» aunque no sea a bajo nivel del sistema operativo. Porque aun sin ser administrador de la máquina, el usuario infectado siempre tendrá acceso a lo que más le duele: sus documentos, fotografías y archivos personales.
  • Ha demostrado ser muy eficaz. Mucho ransomware apela a un potencial sentimiento de culpa del usuario («en este ordenador se han encontrado archivos pirata», o «se han detectado actividad ilegal»…) y con ello han conseguido que muchas víctimas prefieran pagar, antes de (quizás) reconocer ciertas acusaciones como verdaderas. 
Además existen decenas de variantes y características. Como ejemplo reciente de malware que se puede considerar ransomware, (pero que ni cifra ni bloquea) en febrero de 2014 surgió Linkup. Se reconoce como el primer troyano ransomware basado en la modificación de la configuración del DNS, bloqueando así la conexión a Internet. Se pedía un rescate simbólico de 1 céntimo a través de una tarjeta de crédito, cuyos datos seguramente serían usados posteriormente para hacer fraude bancario. Para colmo, se ponía a minar bitcoins. Aunque ya se conocen de sobra los DNSchangers (que en vez de secuestrar desviaban el tráfico), esta variante toma «lo mejor de los dos mundos».

BitCrypt

Mensaje que aparece prometiendo una solución una vez se ha pagado el rescate
BitCrypt no resulta en esencia una gran novedad. Hablamos de él como excusa para repasar la criptografía. Surgido también en febrero de 2014, cifra los archivos del sistema infectado y abre un fichero de texto (bitcrypt.txt) que contiene las instrucciones para recuperar la información. Acepta solo bitcoins y la página de rescate se muestra como una empresa «salvadora» del desastre que sufre la víctima (obviando el pequeño detalle de que el problema lo ha generado ella misma). Si llama la atención este malware no es por su modo de operar (clásico) sino por un error criptográfico interesante.

Cómo funciona

El mensaje que abre bitCrypt. En él se observa que habla de claves de 1024 bits, y ofrece un ID
En el fichero de instrucciones se alerta de que los archivos están cifrados mediante RSA con clave de 1024 bits y los pasos que hay que seguir para recuperarlos. También, el identificador necesario para pagar, porque cada usuario afectado generará una clave de cifrado diferente.
Nos proponen acceder a la dirección www.bitcrypt.info o alternativamente a unas direcciones de la red TOR, (por si dejaran de tener acceso a ese dominio, cosa que ya ha ocurrido). En esta página se introduce el identificador proporcionado y después el «wallet» para transferir el importe en bitcoins del rescate (0,4 bitcoins, aproximadamente 260 euros en esas fechas).
Una página muy «profesional» que ofrece la solución a «BitCrypt software»
Incluso cuenta con soporte online
Una vez finalizados estos pasos y verificado el pago, se supone que se facilita un programa encargado de recuperarlos. En el equipo, el malware crea un fichero de configuración (bitcrypt.ccw), evita la ejecución del administrador de tareas y el editor de registro de Windows y cifra todos los archivos con extensiones consideradas interesantes para la mayoría de usuarios (documentos de Word, Excel, bases de datos, comprimidos, imágenes… incluso los javascript….) utilizando para ello los datos del identificador como módulo de la clave pública de RSA.
El malware cifra usando una combinación de criptografía simétrica y asimétrica. Entraremos en los detalles matemáticos en la próxima entrada. Lo interesante es que observando un fichero cifrado cualquiera, lo primero que llama la atención es que aunque en el mensaje de advertencia se habla de un cifrado RSA con clave 1024 bits… esto no parece del todo cierto. Cassidian Cibersecurity, descubrió el problema.
Solo hay que observar detenidamente la longitud para comprobarlo. Veamos este ejemplo real de clave pública, extraída de un fichero infectado:
Ejemplos de ficheros cifrados a la izquierda, y uno de ellos abierto a la derecha, con detalle de clave pública

Fow7VwXer4QLrVghntG8qHlM+21u7KgS1291XY8akfjQ4lsVAojqBeW+mh3Bwk12hsGtkFU 

Aunque parece base64, no lo es. Acudimos a este script en python realizado para la ocasión, que traduce la clave a bits (6 bits por cada «letra» de su alfabeto), lo que hace un total de 71 * 6 = 426 bits.

Si modificamos un poco el script para que muestre la clave decodificada en binario, se observa perfectamente.
Script ligeramente modificado para que muestre la clave en bits, y se compruebe su tamaño real (426 bits)
Así que parece que la clave no es de 1024 bits, como afirmaban los atacantes, sino de 426. ¿Qué supone esto y cuál es el problema exactamente? Lo veremos en la siguiente entrada.

BitCrypt y el malware fácil de descifrar (II): El porqué

Julia Llanos
julia.llanos@11paths.com
Sergio de los Santos
ssantos@11paths.com

Comentarios

  1. Hola amigos, muy interesante la información. Este virus atacó mi computadora el 1 de marzo y deseo preguntar si existe alguna forma de recuperar los archivos encriptados -que no sea pagando a los chantajistas, por supuesto. Gracias y hasta la próxima.

Deja una respuesta

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