Nuestra nueva tecnología de emulador: la peor pesadilla del malware más escurridizo

28 May 2019

¿Alguna vez te has preguntado por qué los virus de los ordenadores se conocen como virus? Bueno, lo cierto es que hoy en día la palabra “virus” se utiliza de un modo un tanto impreciso para referirse a casi “cualquier tipo de programa malicioso o para describir el daño que genera un programa en un ordenador”. Por cierto, he cogido esta definición de nuestra enciclopedia.

Sin embargo (y sigo citando nuestra enciclopedia), “en el sentido más estricto… un virus se define como un código de programación que se reproduce” y expande del mismo modo que un virus biológico, como, por ejemplo, la gripe.

Lo curioso es que los virus, como tales, desaparecieron hace varios años. Actualmente, se trata de programas maliciosos que no se reproducen, ya que cuentan con una función sumamente desagradable que puede robar datos de un ordenador o, incluso, borrar por completo estos datos; un ejemplo: los troyanos. Pero, hasta la fecha, si le pides a alguien que ilustre las “tecnologías de seguridad informática”, lo más habitual es que se imaginen a científicos con batas de laboratorio trajes NBQ poniendo casos en cuarentena y con tubos de ensayo en la mano, aunque, realmente todo esto solo es necesario cuando te enfrentas a virus biológicos.

Es decir, los virus informáticos se han extinguido. Pero los métodos de análisis que se han utilizado para su detección y desinfección (¡vaya, otra falsa analogía con el mundo de la microbiología!) continúan, se siguen desarrollando y, hasta la fecha, prestan una enorme ayuda en la lucha contra los virus el malware actual. Una de estas tecnologías de la vieja escuela es el emulador.

El emulador en los productos de Kaspersky Lab: qué es y por qué es importante que los antivirus tengan uno

En resumen, la emulación es un método para descubrir amenazas anteriormente desconocidas por medio del cual se ejecuta un archivo de comportamiento sospechoso en un entorno virtual (entorno “simulado”) que imita a un ordenador real. Una vez allí, el antivirus* observa el comportamiento del archivo (ya sobre la marcha; más adelante detallaremos esto) y, si halla actividad peligrosa, lo aísla para una investigación adicional.

¿Te has percatado de la analogía con la rama de la microbiología? ¿Por qué inyectarle a un paciente que tal vez presente cierta enfermedad un potente antídoto con varios efectos adversos, si es posible que el paciente no tenga nada? Lo mejor sería emularlo primero in vitro para observar lo que pasa y, entonces, administrar el medicamento adecuado.

Sin embargo, el desafío principal es el mismo que en la microbiología: es esencial que el entorno emulado se parezca lo más posible a uno real. Si no, los archivos maliciosos pueden percatarse de que se trata de una trampa y comenzar a actuar de modo inofensivo. Pues bien, después de varios años varias décadas haciendo emulaciones podemos decir, sin falsa modestia, que estamos por encima de la competencia. ¡Lo tenemos todo bajo control!

El primer emulador del mundo lo desarrollé yo mismo en 1992, en la época de DOS. Pronto, los expertos de todo el mundo empezaron a emitir críticas favorables sobre la tasa de detección de nuestro antivirus (por aquel entonces todavía era un “antivirus”), que destrozó a la competencia en pruebas independientes, en parte gracias a su emulador.

Los años pasaron y el panorama de amenazas comenzó a hacerse cada vez más complejo: por lo general, los virus abandonaron la escena, dejando paso a los gusanos informáticos, los troyanos y otras amenazas sofisticadas. Mientras tanto, las tecnologías digitales crecieron en ordenadores, móviles, IdC y demás, al igual que nuestra habilidad con los emuladores, que adaptamos a nuestra nube de seguridad KSN y le enseñamos nuevos lenguajes de programación, le dimos a conocer nuevos navegadores y otros objetos del sistema operativo con el objetivo de ayudarnos a detectar automáticamente tipos de malware desconocidos. Nada de habladurías sobre la IA, solamente mucho trabajo duro e inteligente, que es lo que se necesita para idear innovaciones reales de HuMachine.

Qué es HuMachine: aprendizaje automático combinado con big data, inteligencia de amenazas y análisis experto

Actualmente, pocos competidores cuentan con dicha tecnología y no es de extrañar: la emulación es una tarea muy compleja que requiere años de experiencia, una integración en productos para “el frente de batalla” que lleva mucho tiempo y un desarrollo constante. Sin embargo, mucho principiantes en la industria de la ciberseguridad prefieren invertir en un marketing sin sentido. A corto plazo, esta estrategia puede brindar un gran impulso al desarrollo empresarial, pero no puedes engañar al usuario durante mucho tiempo. Al final, tendrá lugar un error colosal y eso será todo: la noticia irá directa a los titulares. Es decir, si una empresa de ciberseguridad posee su propio emulador, puedes deducir que los niveles de experiencia y madurez del desarrollador son impresionantes. Y, por el contrario, si no tiene emulador, esto equivale a poca pericia y una experiencia pobre, por lo que no durará mucho.

Pero estoy desviándome del tema.

Siempre estamos mejorando nuestro emulador, pero los ciberdelincuentes no se han quedado de brazos cruzados, pues han estado protegiendo activamente sus asuntos y sus operaciones de ciberespionaje, lo que incluye la protección frente a nuestra herramienta de emulación.

Los autores de las amenazas más sofisticadas emplean una variedad de estratagemas contra el emulador para reconocer los entornos de “prueba”; por ejemplo, lanzan una función no documentada, verifican la autenticidad de las solicitudes para modificar los registros del procesador, analizan los códigos de error, buscan códigos específicos en la memoria, utilizan “bombas lógicas” que ponen al emulador en un bucle infinito, entre otras. Si el malware detecta algo sospechoso, detiene las funciones maliciosas en seco y se comporta como si no hubiera roto un plato.

Pero conocemos estas tácticas y les llevamos la delantera, ya que siempre estamos afinando nuestro emulador frente a estas estratagemas y mejorándolo en otros aspectos (principalmente, reduciendo la intensidad de los recursos). Por ejemplo, para acelerarlo, utilizamos diferentes limitadores, optimizadores y perfiles de configuración, lo cual puede incluso deshabilitar por completo el emulador en ciertas condiciones, cuando el retraso es tan severo como un BSoD (error de detención o pantallazo azul).

Mientras, el otro día nuestros guerreros de patentes nos trajeron buenas noticias desde el frente de la emulación: ¡obtuvimos la patente (US10275597) para un emulador de código de programa que puede interpretar objetos desconocidos! Hasta donde sé, ningún producto de la competencia cuenta con dicha característica: para protegerse de las estratagemas contra el emulador del malware, la competencia tiene que revisar su emulador por completo, lo que, naturalmente, es un proceso tedioso. Nosotros, por el contrario, ¡le hemos enseñado al emulador a actualizarse sobre la marcha a partir de una base de datos local! Por tanto, se trata de una característica muy útil y no hay razón para no hablarte de ella, ya que es esencial que conozcas cómo te protegemos.

Ahora bien, algunos archivos no se distribuyen en código máquina, sino directamente en código fuente. Para ejecutarlos en un ordenador, es necesario un intérprete (por ejemplo, Java Script o VBA) que traduzca en tiempo real este código a un lenguaje adaptado para la máquina. Y, como habrás podido adivinar, es muy habitual que el malware habite también en dichos archivos.

Con el fin de detectar las amenazas desconocidas de este tipo, hace muchos años diseñamos un emulador de código de programación que verifica los archivos en un “tubo de ensayo” antes de ejecutarlos. Sin embargo, emular un intérprete en su totalidad exige muchísimos recursos y el retraso en el procesamiento de páginas web con scripts frustra a muchos usuarios de Internet. Por lo tanto, los emuladores normalmente recrean una versión vulnerable del espacio virtual, lo cual es aceptable tanto en términos de funcionamiento como de calidad de protección. Pero ¿qué pasa cuando el emulador se encuentra con un objeto, método o función desconocidos en el código, cuya interpretación es absolutamente crucial para ejecutar el análisis total del archivo?

Resolvimos este problema de otro modo: con la ayuda de un pequeño intérprete “inteligente” capaz de aprender rápidamente cómo emular dichos objetos. Durante una actualización por medio de la nube de KSN, el producto recibe código auxiliar en el lenguaje del objeto sometido a análisis (JavaScript, VBA, VB Script, AutoIt…) y, una vez armado con el nuevo conocimiento, regresa para comprobar el archivo. En los casos más complicados, cuando aún se tiene que conseguir el código auxiliar, esta tarea pasa automáticamente a nuestros analistas, quienes desarrollan el código y lo añaden rápidamente a la base de datos.

Como resultado, los usuarios tienen a su disposición una tecnología fuerte y veloz capaz de responder rápidamente a las ciberamenazas y sin tener que esperar a la reedición del emulador entero. ¡Bingo!

* “Antivirus” es otro arcaísmo de la era de los virus informáticos. Los antivirus modernos protegen no solamente de virus sino de todo tipo de malware. También presentan otras funciones de seguridad útiles: por ejemplo, un gestor de contraseñas, VPN, control parental, copias de seguridad y muchos otras funciones. Así que, para ser precisos, hoy en día un buen antivirus debería llamarse “anti-esto, lo otro y lo demás, que me protege a mí, mi familia, nuestros dispositivos y nuestros datos y que viene totalmente equipado”. No suena bien, ¿verdad?