Julio 16, 2020
El juego del escondite con el malware sin archivo.
El código malicioso llega a todas partes…
Es un poco como el gas, que siempre llena el espacio en el que se encuentra, solo que diferente: siempre atravesará los “agujeros” (vulnerabilidades) de un sistema informático. Por tanto, nuestro trabajo (más bien, uno de ellos) es encontrar esos agujeros y taponarlos. Nuestro objetivo es hacerlo de forma proactiva; es decir, antes de que el malware los haya descubierto. Y, si encuentra los agujeros, estaremos esperando, listos para eliminarlo.
De hecho, es la protección proactiva y la capacidad de prever las acciones de los atacantes y crear de antemano una barrera lo que distingue una ciberseguridad excelente y de alta tecnología del marketing de pacotilla.
Hoy quiero hablarte sobre otra de las formas que utiliza nuestra protección proactiva para protegerte contra otro tipo de malware particularmente astuto. Sí, quiero hablarte de algo que se llama código malicioso sin archivo (también conocido como sin cuerpo): una clase de malware fantasma muy peligrosa que ha aprendido a usar los inconvenientes en la arquitectura de Windows para infectar ordenadores. Y también sobre nuestra tecnología patentada que combate esta ciberenfermedad cibernética. Y lo voy a hacer como te gusta a ti: explicando cosas complejas de una forma simple, a la luz, como un apasionante ciberthriller con elementos de suspenso).
En primer lugar, ¿qué significa sin archivo?
Bueno, el código sin archivo, una vez que se introduce dentro de un sistema informático, no crea copias de sí mismo en forma de archivos en el disco, evitando así la detección por métodos tradicionales, por ejemplo, con un monitor antivirus.
Entonces, ¿cómo existe ese “malware fantasma” dentro de un sistema? En realidad, ¡reside en la memoria de procesos confiables! ¡Oh sí, oh no!
En Windows (bueno, en realidad, no solo en Windows), siempre ha existido la capacidad de ejecutar código dinámico, que, en particular, se utiliza para la compilación en tiempo de ejecución; es decir, convertir el código del programa en código máquina no de forma inmediata, sino cuando sea necesario. Este enfoque aumenta la velocidad de ejecución en algunas aplicaciones. Y, para disponer de esta funcionalidad, Windows permite que las aplicaciones ubiquen código en la memoria de proceso (o incluso en otra memoria de proceso confiable) y lo ejecuten.
Desde el punto de vista de la seguridad no es la panacea, pero ¿qué puedes hacer? Es la forma en la que millones de aplicaciones escritas en Java, .NET, PHP, Python y otros lenguajes y para otras plataformas han funcionado durante décadas.
Como era de esperar, los ciberdelincuentes aprovecharon la capacidad de usar código dinámico, inventando varios métodos para abusar de él. Y uno de los métodos más prácticos y, por lo tanto, más extendidos que usan es algo llamado inyección de PE con reflexión. ¡¿Un qué?! Déjame que te lo explique (en realidad es bastante interesante, así que ten paciencia conmigo) …
Para lanzar una aplicación simplemente hay que hacer clic en su icono: bastante simple y directo, ¿verdad? Parece sencillo, pero detrás de ese movimiento hay mucho más: se activa un cargador del sistema, que toma el archivo respectivo del disco, lo carga en la memoria y lo ejecuta. Y este proceso estándar es controlado por monitores antivirus, que comprueban la seguridad de la aplicación sobre la marcha.
Ahora, cuando se produce una “reflexión”, el código se carga sin pasar por el cargador del sistema (y, por lo tanto, sin pasar por el monitor antivirus). El código se coloca directamente en la memoria de un proceso confiable, creando una “reflexión” del módulo ejecutable original. Dicha reflexión puede ejecutarse como un módulo real cargado por un método estándar, pero no está registrado en la lista de módulos y, como ya he dicho antes, no tiene un archivo en el disco.
Además, a diferencia de otras técnicas para la inyección de código (por ejemplo, mediante una shellcode), una inyección de reflexión permite crear código funcionalmente avanzado en lenguajes de programación de alto nivel y marcos de desarrollo estándar sin apenas limitaciones. Entonces, lo que obtienes es: (i) cero archivos, (ii) ocultación detrás de un proceso confiable, (iii) invisibilidad frente a las tecnologías de protección tradicionales y (iv) vía libre para causar estragos.
Así que, evidentemente, las inyecciones de reflexión tuvieron un gran éxito entre los desarrolladores de códigos maliciosos: al principio aparecían en paquetes de exploits y, más tarde, los ciberespías entraron en el juego (por ejemplo, Lazarus y Turla), después los ciberdelincuentes avanzados (ya que es una forma útil y legítima de ejecutar código complejo) y, por último, los pequeños ciberdelincuentes.
Ahora, al otro lado de las barricadas, encontrar una infección sin archivo no es nada fácil en el mundo cibernético. Por lo tanto, no es de extrañar que la mayoría de las marcas de ciberseguridad no pongan solución a este problema. Algunas apenas pueden hacerlo.
Nuestro “paradigma” de protección multicapa tiene esta amenaza cubierta por varias tecnologías, que controlan todas las etapas y vectores del ataque: análisis de comportamiento, controles especiales para áreas críticas, protección automática contra exploits. Pero lo principal aquí son nuestras tecnologías patentadas (US 10691800, RU 2665910, RU 2659738) para el análisis de la memoria que descubren actividades sospechosas y que pueden utilizarse para los ataques de malware sin archivo.
Por ejemplo, nuestro System Watcher (que protegió proactivamente a los usuarios contra WannaCry y otros ciberataques), que monitorea constantemente la actividad de las aplicaciones en un ordenador, incluye un proceso confiable que ejecuta acciones inusuales o críticas para la seguridad. En este caso, analizamos el evento con detenimiento, prestando especial atención en la memoria en la que se encuentra el código que causó el evento. Si vemos una dirección sospechosa, la analizamos en profundidad para ver si hay algún código de reflexión presente. Por lo tanto, no buscamos una aguja en un pajar, sino que, en su lugar, realizamos un análisis deliberado dirigido de las direcciones sospechosas online con un conjunto de reglas. Y así es como descubrimos de una forma rápida y fiable el pequeño y astuto malware sin archivo.