Member of The Internet Defense League Últimos cambios
Últimos Cambios
Blog personal: El hilo del laberinto Geocaching

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

Última Actualización: 15 de Abril de 1.999 - Jueves

Artículo publicado en el boletín Una-Al-Día de Hispasec, el 13 de Abril de 1.999.

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 descifrar 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:
http://www.counterpane.com/clueless-agents.html



Python Zope ©1999 jcea@jcea.es

Más información sobre los OpenBadges

Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS