martes, 13 de abril de 1999

Virus y troyanos indescifrables, a la búsqueda de objetivos desconocidos

Aunque hasta el momento la mayoría de los virus y troyanos que hacen uso
de técnicas criptográficas lo hacen con fines exclusivamente de "prueba
de concepto" o demostración, en el futuro es previsible que esas mismas
técnicas sean empleadas para ocultar el objetivo de esos programas, ya
no de los investigadores que intentan analizarlos, ¡¡sino también de sí
mismos!!.
Efectivamente, las claves necesarias para descifrar el virus, en la
actualidad, están accesibles en el propio código del programa, ya que
éste las necesita para descifrarse a sí mismo antes de ejecutar el
"payload". Aunque esas claves pueden estar protegidas mediante
intrincadas rutinas cuyo único fin es mantener alejados los ojos
curiosos, no pueden ocultarse indefinidamente contra un investigador
con medios y tiempo para afrontar la tediosa la tarea de analizar el
funcionamiento del espécimen.

No obstante el estado del arte, en el ámbito criptográfico, permitiría
desarrollar programas víricos, caballos de troya, gusanos, etc.,
protegidos mediante cifrado, pero cuya clave de apertura no aparece en
el código, sino en el entorno de ejecución del programa. Ello hace que
el código no sólo esté protegido contra miradas indiscretas, sino que ni
él mismo "sepa" cuál es su objetivo o qué está buscando... hasta que lo
encuentre.

Supongamos un gusano polimórfico. Una vez descifrado el polimorfismo
(algo que se puede hacer con conocimientos y experiencia) comprobamos
que el programa se dedica a recorrer el disco duro, leer los ficheros
que no haya chequeado en la ejecución anterior, dividirlos en porciones
de 21 bytes "solapados", y calcular una función HASH sobre ellos.

El resultado de ese HASH se usa como clave para descifra un segmento del
gusano. Para verificar si el descifrado es correcto, basta con mantener
algún tipo de control de integridad.

21 bytes nos dan 168 bits de entropía. ¡¡Eso es un número de 56
cifras!!.

¿Qué puede estar buscando?. Nunca lo sabremos... ¡¡hasta que lo
encuentre!!. Eso es así porque el descifrado solo será correcto cuando
dé con lo que busca.

Y como el gusano revisa todos los ficheros del disco duro,
independientemente de en qué directorio estén o qué extensión tengan, no
tenemos ninguna pista de por dónde empezar. ¿Qué busca?. ¿Un email?. ¿Un
programa concreto?. ¿Un número de licencia determinado?. No lo sabemos.

Y lo que es peor... Tampoco sabemos qué acciones hará cuando lo
encuentre.

Más información:
Counterpane



Jesús Cea Avión
jcea@argo.es
http://www.argo.es/~jcea



No hay comentarios:

Publicar un comentario en la entrada