No he visto la sexta entrega de la película Misión Imposible, ni creo que la vea. Vi la quinta entrega (en estado zombi durante un largo vuelo a casa después de una semana dura de trabajo) solamente porque una escena se había filmado en nuestra nueva y flamante oficina de Londres. Se trataba de otra entrega más de Misión Imposible, una película que no es para nada de mi estilo. Bofetadas, disparos, golpes, choques, explosiones, conmoción. Uf. Yo prefiero algo más desafiante, intelectualmente estimulante y sencillamente interesante. Después de todo, mi tiempo es escaso y valioso.
Parece que estoy despotricando contra Tom Cruise y compañía, ¿verdad? Pero no es así. De hecho, tengo que reconocer el mérito de al menos una escena que está muy bien hecha (es decir, que resulta intelectualmente estimulante y sencillamente interesante). Se trata de la parte en la que los buenos necesitan que uno de los malos delate a sus secuaces, o algo parecido. Para ello, instalaron un ambiente falso en un “hospital” con la “CNN” en la “televisión” informando sobre el Armagedón nuclear. Satisfecho por la transmisión mundial de su manifiesto apocalíptico, el villano entrega a sus secuaces (¿o era un código de inicio de sesión?) como parte del trato realizado con sus interrogadores. Disculpad, aquí está la secuencia.
¿Por qué me gusta tanto esta escena? ¡Pues porque ilustra muy bien uno de los métodos para detectar ciberamenazas desconocidas! De hecho, existen muchos métodos, que varían según el área de aplicación, la efectividad, el uso de recursos y otros parámetros (escribo mucho sobre esto aquí). Pero hay uno que siempre destaca: la emulación (también he hablado mucho de ella aquí).
Al igual que en la película MI, un emulador inicia el objeto investigado en un ambiente artificial aislado, de esta forma lo anima a revelar su carácter malicioso.
Pero esta estrategia presenta una gran desventaja: el hecho de que el ambiente sea artificial. El emulador se esfuerza para que ese entorno artificial parezca un sistema operativo real, pero el malware, cada vez más inteligente, consigue diferenciarlo de un entorno real. Cuando el emulador se percata de que el malware lo ha reconocido, se reagrupa y mejora su emulación, y así sucesivamente en un ciclo interminable que a menudo abre la ventana a una posible vulnerabilidad en un ordenador protegido. El problema principal es que ningún emulador ha podido retratar la viva imagen de un sistema operativo real.
Por otra parte, existe otra opción para abordar el análisis de comportamiento de los objetos sospechosos: analizarlo (en un sistema operativo real) dentro de una máquina virtual. Y bueno, ¿por qué no? Si el emulador no lo detiene por completo, ¡deja que lo intente una máquina (real) virtual! Sería el “interrogatorio” ideal: se lleva a cabo en un ambiente real, no artificial, pero sin las consecuencias negativas.
Al escuchar este concepto, es posible que algunos se pregunten por qué no lo había pensado nadie antes. Después de todo, la virtualización ha sido una de las tendencias dominantes de la tecnología desde 1992. Pues, bueno, por lo visto no es tan sencillo.
Primero, el análisis de los objetos sospechosos en una máquina virtual es un proceso que consume muchos recursos, lo cual resulta idóneo solamente para las soluciones de seguridad de empresas de gran tamaño, donde el análisis necesita ser sumamente intenso de modo que absolutamente ningún objeto malicioso penetre entre las defensas. Por desgracia, esta tecnología no es adecuada para los ordenadores domésticos, por no hablar de los smartphones… al menos por ahora.
En segundo lugar, estas cosas existen realmente. De hecho, nosotros ya utilizamos esta tecnología (de modo interno, en la Kompañía) para investigaciones internas. Pero si hablamos de los productos listos para la venta, todavía no hay muchos disponibles. La competencia ha lanzado productos similares, pero su eficacia aún deja mucho que desear. En general, dichos productos se limitan a recopilar registros y análisis básicos.
Tercero, iniciar un archivo en una máquina virtual es apenas el principio de un proceso muy largo y difícil. Después de todo, el objetivo del ejercicio es hacer que el carácter malicioso de un objeto se revele; para ello, es necesario un hipervisor inteligente, el análisis y el registro de comportamiento, el ajuste cuidadoso de las plantillas de acciones peligrosas, la protección contra trucos antiemulación, la optimización de ejecución, entre muchos otros.
¡Puedo afirmar sin falsa modestia que estamos muy adelantados con respecto al resto del mundo!
Recientemente, obtuvimos una patente estadounidense (US10339301) que comprende la creación de un ambiente adecuado para que una máquina virtual realice análisis rápidos y profundos de objetos sospechosos. Así es cómo funciona:
- Las máquinas virtuales se diseñaron (para diversos tipos de objetos) con ajustes que aseguran su ejecución óptima y una tasa de detección máxima.
- El hipervisor de la máquina virtual funciona junto con el registro del sistema de comportamiento de un objeto y del análisis del sistema de este, apoyado por las bases de datos actualizables de las plantillas de comportamiento sospechoso, la heurística y la lógica de reacciones frente a acciones, entre otros.
- Si se detectan acciones sospechosas, el sistema de análisis incorpora en la marcha cambios en el proceso de ejecución del objeto en una máquina virtual con el fin de estimular al objeto para que revele sus intenciones maliciosas. Por ejemplo, el sistema puede crear archivos, modificar el registro, acelerar el tiempo y demás.
El tercer punto es la característica más exquisita y única de nuestra tecnología. Déjame darte un ejemplo de su funcionamiento.
El sistema detecta que un archivo lanzado “se ha quedado dormido” y ya no da muestras de actividad. Eso se debe a que el objeto pudo haberse programado para permanecer inactivo durante varios minutos (o docenas de ellos; incluso horas) antes de comenzar su actividad maliciosa. Cuando empieza su falsa inactividad, aceleramos el tiempo en la marcha al interior de la máquina virtual, de modo que pasen uno, tres, cinco y hasta un millar de minutos por segundo. La funcionalidad del archivo sujeto a análisis no cambia, mientras que el tiempo de espera se reduce cientos (hasta miles) de veces. Y, si después de su “siesta,” el malware decide verificar el reloj del sistema (¿ha seguido su curso?), se le hará creer que así fue, con lo cual seguirá con su misión maliciosa y, en consecuencia, se expondrá en el proceso.
Otro ejemplo:
El objeto aprovecha una vulnerabilidad en una biblioteca específica o intenta cambiar el contenido de un archivo o de un registro. Al principio, con ayuda de la función común fopen(), tratará de abrir la biblioteca (o archivo o registro) y, si fracasa (no existe esa biblioteca ni esos derechos de acceso), simplemente se dará por vencido. En dicho escenario, cambiamos (en la marcha) el valor de retorno de la función fopen() de “archivo inexistente” a “archivo existente” (o, de ser necesario, creamos el propio archivo y le introducimos el contenido correspondiente); luego, simplemente observamos qué hace el objeto.
Dicha estrategia también funciona muy bien en condiciones de árboles lógicos sobre el comportamiento del objeto. Por ejemplo: si existe el archivo A y el archivo B, entonces se modifica el archivo C, y listo. Sin embargo, se desconoce lo que hará el programa sujeto a investigación si existe solamente el archivo A o el archivo B. Por lo tanto, lanzamos una iteración en paralelo y le decimos al programa sospechoso que el archivo A existe, pero no el B; después, analizamos con detenimiento la actividad del árbol lógico.
Es importante señalar que las bases de datos externas, fáciles de actualizar, configuran las reglas de reacción a la ejecución del archivo. No necesitas rediseñar el motor por completo para añadir una nueva lógica, basta con describir la multitud de posibles escenarios de comportamiento malicioso y actualizar con un clic.
Así es, en resumen, el funcionamiento de la tecnología. Pronto se le añadirá a KATA y se comercializará como una solución independiente para empresas: Kaspersky Sandbox.