¿Alguna vez te has preguntado por qué los virus de computadora reciben dicho nombre? Bueno, de hecho actualmente la palabra “virus” se usa de un modo un tanto impreciso para referirse a casi “cualquier tipo de programa malicioso, o se usa para describir al daño que un programa provoque a una computadora”. Por cierto, tomé esta definición de nuestra enciclopedia.
Sin embargo, (y todavía cito nuestra enciclopedia), “en rigor… un virus se define como un código de programación que se replica” y se disemina, del mismo modo que un virus biológico; por ejemplo, el de la gripe.
Lo curioso es que los virus, como tales, desaparecieron hace varios años. Actualmente, se trata de programas maliciosos que no se replican sino que tienen un funcionamiento sumamente desagradable que puede robar datos de una computadora o borrarlos totalmente: por ejemplo, un troyano. Pero, a la fecha, si le pides a quien sea que exprese en imágenes las “tecnologías de seguridad informática”, éstas con frecuencia mostrarán cosas como científicos en batas de laboratorio trajes NBQ llevando a cabo clausuras de cuarentena y tubos de ensayo en mano, pese a que esos solamente se necesitan cuando se enfrentan a patógenos virales.
Ya debe estar claro: los virus informáticos se han extinto. Pero los métodos de análisis que se usaban para su detección y desinfección (¡caray, otra falsa analogía con el mundo de la microbiología!) se han conservado, se siguen desarrollando y a la fecha prestan una enorme ayuda en la lucha contra los virus el malware actual. Una de dichas tecnología de la vieja guardia es el emulador.
De modo sucinto, 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 una computadora 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 su investigación adicional.
¿Puedes ver la analogía con la virología? ¿Cuál es el objeto de inyectarle a un paciente que tal vez presente cierta enfermedad un potente antídoto con varios efectos adversos, si puede que el paciente no tenga nada? Lo mejor sería emularlo primero in vitro y observar lo que pasa, y entonces administrar el medicamento adecuado.
El reto principal, sin embargo, es el mismo que en la microbiología: es vital que el entorno emulado se parezca lo más posible a uno real. De otro modo, los archivos maliciosos pueden distinguir que se trata de una trampa y entonces actúen de modo inofensivo. Pues bien, después de varios años varias décadas haciendo emulaciones, podemos decir, sin falsa modestia, que en verdad superamos a la competencia. ¡Lo tenemos bajo control!
El primer emulador del mundo lo desarrolló este humilde servidor allá en 1992, en la época de DOS. De inmediato, los expertos de todo el mundo empezaron a emitir críticas favorables sobre la tasa de detección de nuestro antivirus (en ese entonces, todavía era un “antivirus”), el cual 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 complejo: por lo general, los virus abandonaron la escena, dejando su lugar a los gusanos informáticos, los troyanos y otras amenazas sofisticadas. Mientras tanto, también se diversificó la variedad de tecnologías informáticas/móviles/de IdC y demás, lo mismo que nuestra habilidad con los emuladores, la cual adaptamos a nuestra nube de seguridad KSN, le enseñamos nuevos lenguajes de programación, le hicimos conocer nuevos navegadores y otros objetos del sistema operativo. Todo esto con el fin de ayudarnos a detectar automáticamente tipos de malware inéditos. Así que nada de habladurías sobre la IA, solamente montones de trabajo duro e inteligente, que es lo que se necesita para idear innovaciones reales de HuMachine.
Actualmente, pocos competidores pueden jactarse de tener dicha tecnología, y con razón: la emulación es una tarea muy difícil que requiere varios años de pericia, integración laboriosa en los productos “para el frente de batalla” y desarrollo constante. Sin embargo, mucho principiantes en la industria de la ciberseguridad prefieren invertir en el marketing sin sentido. A corto plazo, esta estrategia puede brindar un impulso significativo al desarrollo empresarial, pero no puedes engañar al usuario por mucho tiempo. Al final, ocurrirá un error colosal y eso será todo: la noticia irá directo a las portadas. Dicho de otro modo, si una empresa de ciberseguridad posee su propio emulador, sabes que los niveles de pericia y madurez del desarrollador son impresionantes. Y por el contrario: si no tiene emulador, esto equivale a poca pericia, una experiencia pobre y no durará mucho.
Pero estoy desviándome del tema.
Si bien siempre estamos mejorado nuestro emulador, del otro lado de las barricadas los cibercriminales no se han quedado cruzados de brazos, pues han estado protegiendo activamente sus asuntos y sus operaciones de ciberespionaje, lo cual incluye también las tentativas de protección frente a nuestro emulador.
Los autores de amenazas más sofisticadas emplean una variedad de estratagemas antiemulación 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, usan “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 matara ni una mosca.
Pero la cosa es que estamos bien al tanto de estas tácticas y les llevamos la delantera, pues 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, usamos 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 pueden interpretar objetos desconocidos! Hasta donde sé, ningún producto de la competencia cuenta con dicha característica: para protegerse de las estratagemas del malware antiemulador, la competencia tiene que retrabajar su emulador por completo, lo cual, naturalmente, es un proceso tardado. Nosotros, por el contrario, ¡le hemos enseñado al emulador a actualizarse sobre la marcha a partir de una base de datos local! Así que, en efecto, es una característica muy útil, y no hay razón para no hablarte de ella, porque el conocimiento sobre cómo te protegemos es poder.
Ahora bien, algunos archivos no se distribuyen en código máquina, sino directamente en código fuente. Para ejecutarlos en una computadora, se requiere un intérprete (por ejemplo, Java Script o VBA), el cual traduce en tiempo real este código a un lenguaje accesible para la máquina. Y con frecuencia, como seguro adivinaste, el malware habita 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: el retraso en el procesamiento de páginas web con scripts deja a varios usuarios de internet frustrados. 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 en el código desconocidos, 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 a revisar el archivo. En caso complicados, cuando aún se tiene que conseguir el código auxiliar, la tarea se transmite automáticamente a nuestros analistas, quienes desarrollan el código y los añaden rápidamente a la base de datos.
Como resultado, los usuarios tienen a su disposición no solamente una tecnología fuerte sino muy rápida que es capaz de responder con prontitud a las ciberamenazas, sin esperar al relanzamiento del emulador entero. ¡Lotería!
* “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 varios otras funciones de seguridad útiles: por ejemplo, un gestor de contraseñas, VPN, control parental, respaldo, y muchos otros. Así que, para ser precisos, un buen antivirus actual debe llamarse “anti-esto, lo otro y lo demás, que me protege a mí, mi familia y nuestros dispositivos, así como nuestros datos; y que viene totalmente equipado!” Mmm…nada fácil de pronunciar, ¿verdad?