CryptoTrooper: el primer ransomware 'white-box' con propósitos educativos para Linux

CryptoTrooper, de Maksym Zaitsev alias cryptolok, es el primer ransomware de tipo white-box o caja blanca para Linux del mundo, con propósitos educativos.

Requiere :

- Un SO de 32/64 bits basado en Debian con privilegios de root
- Apache/Nginx - para el cifrado de servicios web y para cambiar la página principal
- MySQL/PostgreSQL - para el cifrado de base de datos
- / y /home - para el cifrado de los datos personales, excepto el directorio .ssh

Cómo funciona :

- Infección - el servidor de la víctima es comprometido e infectado de alguna manera, obteniendo privilegios de root
- Cifrado - el ransomware genera una clave única de cifrado simétrico y cifra los datos
- White-box - la criptografía de caja blanca intenta proteger la clave secreta del cifrado en un entorno en que adversario tiene acceso completo a la implementación y al entorno de ejecución. El sistema de cifrado utiliza la clave de una sola dirección y cifra la clave utilizada para el cifrado de datos
- Descifrado - la víctima envía al atacante la clave de cifrado de caja blanca y su vector de inicialización (IV), esta clave se descifra por el atacante con su IV y la clave maestra que se utiliza para generar la clave white-box, la verdadera clave se envía a la víctima.

Pros:

- No se requiere conexión a Internet después de la infección (ya que no se utiliza el cifrado de clave pública en ningún C&C)
- Protección contra la extracción de clave
- Sólo AES
- Anti-forense
- Generación aleatoria de claves
- Random IV


Contras :

- la construcción del white-box de Chow ya está rota (no la implementación, pero si el algoritmo en sí), por lo tanto el ransomware NO PRESENTA EN ABSOLUTO UNA AMENAZA Y NO TIENE INTERÉS PARA UN FIN MALÉVOLO
- el modo CBC no es el mejor para datos aleatorios y tampoco el más rápido
- la clave de 128 bits de longitud debe ser más larga
- la misma clave se utiliza para cada archivo
- la misma clave codificada de caja blanca se utiliza para cada ejecución
- sin ofuscación de código (a excepción de caja blanca)

Propósitos:

- aprender implementaciones y conceptos de ransomware, con el fin de derrotarlo
- estudio de la criptografía
- ingeniería inversa práctica
- estar preparado para las amenazas nuevas y avanzadas
- demostrar el poder y el potencial del ransomware

Cómo:

¡No lo ejecutes en tu propio PC! USA UNA MÁQUINA VIRTUAL

- preparar el entorno

apt-get install apache2 postgresql mysql-server-nginx común

- preparar el ransomware

cd /
mv $CRYPTOTROOPER_SOURCE_DIRECTORY/* .


- cifrar

/cipher.sh &

Esto cifrará los datos con AES-128-CBC con una clave generada aleatoriamente y IV aleatorios para cada archivo. Luego se usará white-box para cifrar la clave de una sóla dirección y generar los archivos key.enc y key.iv.

La víctima ahora tiene que enviar dos archivos al atacante

Si visita el sitio web local, se obtendrá el mensaje

firefox localhost &

después del pago

mv key.enc key.iv $ YOUR_DIRECTORY
./whiteDecipher.sh


Descifrará la clave de la víctima para enviársela

- Descifrar:

mv key /
/decipher.sh

Todo debería volver a como estaba antes.

Notas:

El cifrado no es sólo la codificación, sino la codificación matemática
El cifrado de caja blanca no es sólo la ofuscación, sino la ofuscación matemática

La única manera de vencer al mal es llegar a ser su amo.

    "La investigación es para ver lo que todo el mundo ha visto y pensar lo que nadie más ha pensado".

Albert Szent-Györgyi

Github: https://github.com/cryptolok/CryptoTrooper

Comentarios