Linux.Encoder.1 : El primer "ransomware" contra Linux ha muerto (ya)

[h]Linux.Encoder.1 :
Nacimiento y muerte del primer ransomware diseñado contra sistemas basados en Linux que usan Magento
(un gestor de contenidos web opensource para comercio electrónico) [/h]

https://www.wifi-libre.com/img/members/3/ransom_1.jpg

[h]¿Que es un ransomware?[/h]

Un ransomware es un malware que va a secuestrar datos privados en su disco y pedir dinero a cambio de la llave para volver a descifrarlos.
Dicho de otro modo :
Una vez que tienes un ransomware en tu sistema; pagas o pierdes los datos secuestrados.
Es una amenaza corriente bajo Windows.
En España tuvimos al famoso “Virus de la policía”,
Un ransomware que secuestraba su computadora haciéndose pasar por un tipo de “multa digital”.
https://www.wifi-libre.com/img/members/3/ransom_2.jpg
El hilo puede parecer gordo y el gancho grosero… no impide que este ransomware ha hecho bastantes daños y mas de uno ha picado.
La receta para un chantaje es tener presa sobre su victima para que se mantenga callada : Infectando ficheros que infringen derechos de autores es un buen medio para tener presa sobre su victima y comprar su silencio.
Otro ransomware que ha hecho mucho hablar de el ha sido cryptolocker
https://www.wifi-libre.com/img/members/3/ransom_3.jpg
Con descuento si se usaba bitcoins :lol:

[h]Linux.encoder.1 : Como funciona el primer ransomware “contra Linux”[/h]

El ransomware Linux.Encoder.1 no ha sido diseñado contra las distribuciones GNU-Linux que usamos.
Ha sido diseñado contra servidores que usan la plataforma Magento.
Secuestrar un negocio es mucho mas rentable que secuestras las fotos de la boda de tu prima. :smiley:
¿Como funciona** Linux.Encoder.1**?

El malware tiene por objetivo cifrar los directorios /home (documentos personales), /root (sistema) y /var/lib/mysql (base de datos del negocio)
Dejaba unos ficheros de root sin cifrar, lo justo para que funcione el sistema para poder pedir dinero en contra del rescate de datos.
Primero cifrá con un llave AES. Es decir un cifrado simétrico (una llave).
El cifrado simétrico no es seguro
Asi que el malware añade una a capa de RSA (cifrado asimétrico, una lave publica para encriptar… y una llave privada para desencriptar) para proteger la llave AES

A estas alturas, para tener la llave AES, es necesario obtener la llave privada empleada en el RSA.
Esto es en teoría imposible y el administrador tiene que pegar el rescate para tener la llave privada.

[h]La brecha en la brecha que mata a Linux.Encoder.1[/h]

El “problema” si se diseña un virus para linux es que va a ser muy fácil rastrear-lo. ( hacer un “reverse”)
Es lo que han hecho desde los laboratorios “Bitdefender
fuente de este tema
[list=*]
]Linux Ransomware Debut Fails on Predictable Encryption Key de Radu CARAGEA @ Bitdefenderlab/]
[/list]
Se dieron cuenta de que el malware hace una llamada a una función externa :

 libc rand() 

Así encontraron el talón de aquileas del malware
No es necesario romper la llave RSA para obtener la lave AES… si podemos obtener la lave AES directamente. :wink:
¿Como se forma la llave AES empleada por linux encoder?
[list=1]
]Primero pilla cadenas obtenidas con la llamada a la función libc rand()/]
]Luego “saltea” el resultado utilizando como semilla el tiempo del reloj del sistema (la hora de la infección)/]
[/list]
Sabiendo esto no es complicado obtener esta información examinando los ficheros para deducir la llave AES y volver a descifrar los directorios rehenes.
Los de BitDefender han librado un script en python para automatizar los pasos a seguir : Decrypter_0.2.zip
En el peor de los casos se puede ejecutar el script desde una live (cualquiera que tenga python 2.7 o superior) y recuperar el sistema de fichero.