A veces es mejor callar
viernes 21 de julio de 2017
Como Vd. ya habrá leído en nuestras ediciones anteriores, muchas veces el descifrado correcto de archivos dañados por los troyanos encoders es posible por causa de errores de los desarrolladores de programas nocivos. No podemos decir muchas cosas sobre el asunto: cualquier análisis de errores de este tipo es un regalo a los autores de troyanos usando el cual los mismos podrían crear una versión más “avanzada”.
Lamentablemente, no todos se percatan de esto, y por lo tanto algunas pistas para los creadores de virus pueden consultarse en Internet. Por ejemplo:
Como resultó, los autores de NotPetya (también conocido bajo muchos otros nombres — Petya, Petya.A, ExPetr etc.) hicieron un error en el algoritmo Salsa20, y, como resultado, la mitad de bytes de la clave de cifrado no se usaba. La longitud de la clave que se redujo de 256 a 128 bits, lamentablemente, no deja esperanzas de encontrarla en breve.
Pero gracias a algunas peculiaridades de aplicación del algoritmo Salsa20 es posible recuperar los datos sin conocer la clave.
El artículo es muy interesante, pero abundan los términos especiales, por lo tanto, no vamos a citarlo con mucho detalles, solo destacamos algunos momentos.
Aquí, por ejemplo, se analiza el uso del tipo de datos insuficiente para la ubicación de la longitud del índice necesaria:
Vamos a ver el prototipo de la función s20_crypt32(), a través de las llamadas de la cual se cifran los sectores de la unidad.
enum s20_status_t s20_crypt32(uint8_t *key,
uint8_t nonce[static 8],
uint32_t si,
uint8_t *buf,
uint32_t buflen)
Con el argumento si (probablemente, Stream Index) se transfiere el desplazamiento de bytes en el flujo. Y por tipo del argumento se entiende que no son 64, sino solo 32 bits. Este valor entra en keystream una vez dividido por 64, es decir, quedan 26 bits como máximo.
// Set the second-to-highest 4 bytes of n to the block number
s20_rev_littleendian(n+8, si / 64);
Los errores de realización del algoritmo por cuya causa varios datos se cifran con opciones similares:
De 26 bits del número del bloque, solo 16 bits (bytes por desplazamiento 0x20-0x21) influirán en keystream. Por lo tanto, el periodo de la gama máximo es de 2^16=65536 bloques de 64 bytes, o 4 MB.
El volumen de los datos cifrados por supuesto supera bastante 4 MB, por lo tanto, muchas partes de datos distintas se verán cifradas en los mismos fragmentos de la gama. Y es lo que permite realizar un ataque trivial a base del texto abierto conocido.
Hay errores de la lógica:
Posibilidad de recuperar las opciones del cifradoо:
Lamentablemente, los errores mencionados de los autores del troyano se refieren al módulo de cifrado que funciona si el encoder consigue obtener los privilegios administrativos y cifra el disco duro completamente o con el algoritmo Salsa20. Y si el troyano no puedo obtener privilegios administrativos, usaba otro algoritmo– AES – y cifraba solo los archivos del usuario. Y para recuperar los datos cifrados de esta forma es necesario conocer la clave secreta RSA.
#cifrador #troyano #Trojan.EncoderEl mundo de antivirus recomienda
- A veces, si indicamos el error a los malintencionados, les ayudamos. Nadie puede ser encarcelado por consultas gratuitas, pero a veces por causa de estas pistas sus autores se consideran cómplices de los creadores de virus.
- Los archivos cifrados no siempre es una condena.
- Si sus archivos están cifrados y no hay utilidad para descifrarlos, no los borre. A veces el algoritmo de descifrado se desarrolla más tarde.
Nos importa su opinión
Para redactar un comentario, debe iniciar sesión para entrar en su cuenta del sitio web Doctor Web. - Si aún no tiene la cuenta, puede crearla.
Comentarios de usuarios
vasvet
14:17:50 2018-08-15
Неуёмный Обыватель
01:00:47 2018-07-14