La criptografía viene empleándose en el diseño de Malware casi desde antes que se empleara en el diseño de SOFTWARE legitimo 🙂
Inicialmente se utilizó como una protección frente a la ingenieria inversa y contra la detección mediante cadenas y patrones: El virus cifraba su código mediante una clave y una operación sencilla, reversible, como puede ser un simple cifrado XOR con clave aleatoria.
Seguidamente se construía una rutina de descifrado, que recibía el control al ejecutar el programa infectado, y que descifraba el cuerpo del virus en tiempo de ejecución para, posteriormente, pasarle el control. La rutina de descifrado se generaba de manera que las instrucciones que la componen son diferentes cada vez, pese a realizar la misma tarea.
Al emplearse una rutina de descifrado variable y encontrarse el resto del virus cifrado con una clave también variable se lograba evitar que los investigadores pudieran crear una firma, un patrón, que pudiera emplearse para buscar y detectar el virus en todos los ficheros del disco. A esto se le denominó polimorfismo.
Remontándonos en el pasado en busca de otros ejemplos de la utilización de la criptografía en el diseño de MALWARE nos encontramos con el virus [1] ONE HALF.
ONE HALF llamó la atención de los investigadores por su manera de operar en un sistema infectado: Un HOOK en la interrupción 13h permitía al virus monitorizar la lectura y escritura de sectores a disco. En cada arranque ONE HALF cifraba ciertos sectores empleando una clave aleatoria almacenada en el propio cuerpo del virus. La información en disco, cifrada, era descifrada por el virus “al vuelo” empleando este HOOK y sin que el usuario pudiera notarlo.
A la hora de eliminar el virus ONE HALF de un disco infectado no se podía recurrir a la restauración del MBR sin más: El contenido del disco quedaría cifrado, las claves y el código del virus que permitían descifrar el contenido del disco se perderían, y con ellas toda la información almacenada.
Si bien se trata de una de las primeras muestras de lo que la criptografía podía dar de si en el desarrollo de MALWARE, ONE HALF no suponía un problema para las técnicas de detección y desinfección que vinieron mas tarde y que ya eran capaces de manejar la situación.
El cifrado empleado por los virus polimórficos o por el virus ONE HALF era débil, lo que permitía romperlo para desentrañar aquello que el autor pretendía ocultar. Se trataba de sistemas de cifrado de clave simétrica, reversible, muy básicos y simples: Una vez conocida la clave, que en la mayoría de las ocasiones se encontraba oculta en alguna parte del cuerpo del virus, era ya posible recuperar la información.
La criptografía de clave pública vendría a solucionar este problema, pues pronto los autores de MALWARE empezarían a usarla para romper la simetría entre lo que el usuario o el investigador ve del MALWARE y lo que el autor puede ver. Su utilización en el desarrollo de MALWARE daría pie a la aparición de un campo de estudio que se denominó CRYPTOVIROLOGY.
Algunos de los primeros ataques en esta dirección, como RANSOM o GPCODE, darían lugar a lo que se denominó [2] CRYPTOVIRAL EXTORSION: El MALWARE emplea criptografía de clave pública para cifrar la información que el usuario guarda en su disco, solicitando el pago de una cantidad de dinero a cambio de la clave que permite su recuperación.
La criptovirología estudia la manera en que la criptografía moderna y sus paradigmas pueden explotarse para diseñar MALWARE más potente y eficaz, ofreciendo una mayor privacidad al autor, dando lugar a nuevos ataques, permitiendo la utilización de canales para la fuga de información que no se habían considerado hasta el momento, etc.
Pero no sólo el uso de la criptografía puede ser explotado con fines maléficos, si no también los propios mecanismos criptográficos en si mismos: En [3] PRACTICAL RSA TRAPDOOR, publicado en 1993, Ross Anderson mostraba la creación de una puerta trasera en la generación de claves RSA.
En el escenario propuesto por Anderson se emplea un dispositivo HARDWARE para la generación de claves RSA. Dicho dispositivo se encuentra modificado de manera que las claves RSA generadas funcionan correctamente, pero contienen oculta la información necesaria para recuperar la clave privada.
Más adelante el esquema propuesto por Anderson para la creación de su TRAPDOOR se mostró inseguro, pues resultaba posible detectar la presencia de la puerta trasera a partir de la salida de la caja negra criptográfica (el dispositivo HARDWARE) sin necesidad de entrar a estudiarla internamente. Además se encontró que se trataba de una puerta trasera simétrica: Cualquier investigador que descubriese su existencia podría hacer uso de ella, como se describe en [4] ANDERSON’S RSA TRAPDOOR CAN BE BROKEN.
En 1996 los investigadores A. Young y Moti Yung presentaron una nueva puerta trasera sobre la generación de claves RSA que denominaron SETUP: SECRETLY EMBEDDED TRAPDOOR WITH UNIVERSAL PROTECTION.
Al igual que en el esquema de Anderson la puerta trasera propuesta por Young y Yung permitiría al atacante obtener la clave privada, pero con importantes diferencias: La presencia de la puerta trasera no podía detectarse mediante el simple análisis de las claves generadas. Además se trataba de una puerta trasera asimétrica, pues explotarla para obtener las claves privadas estaba solo en manos del atacante, aún en el caso de que se descubriese su presencia y se realizase ingeniería inversa de ella.
Se introducen así los principios de la kleptografía, que saca partido de la existencia de canales subliminales en los sistemas criptográficos en combinación con la criptografía de clave pública: Los canales subliminales se emplean para logar la fuga imperceptible de la información necesaria para la posterior recuperación de la clave privada. La criptografía de clave pública permite proteger el uso del canal, convirtiéndose así en una puerta trasera asimétrica explotable solo por su autor.
Un ataque kleptográficosupone la modificación de un sistema o un protocolo criptográfico de manera imperceptible e indetectable: La salida que obtenemos de un sistema criptográfico infectado no se puede distinguir mediante cálculo alguno de la salida obtenida a partir de un sistema criptográfico no infectado.
La puerta trasera permanecerá totalmente oculta si no se recurre a la ingeniería inversa y el análisis en profundidad de la caja negra, del sistema criptográfico en si mismo… Y aun en ese caso el investigador tan solo podría llegar a conocer su presencia, pero no podría hacer nunca uso de ella.
Un escenario hipotético para un ataque de estas características podría ser la instalación de una puerta trasera en las librerías criptográficas de algún sistema operativo ampliamente difundido. Ciertas agencias gubernamentales podrían acceder a la información cifrada, de manera segura, en caso de considerarla sospechosa.
Referencias
Via blog.s21sec.com
Ataque Kleptografico: Un ataque kleptográfico es un backdoor asimétrico que se puede utilizar solamente por el diseñador que realiza el ataque. Este tema de la investigación se llama Kleptografía: el estudio de la información al robar con seguridad y subliminalmente.