Técnicas de evasión de los malware


Técnicas de evasión de los malware

Para que un programa maligno pueda completar sus objetivos, es esencial que permanezca oculto, ya que si es detectado sería eliminado tanto el proceso como el propio malware, pudiéndose no haber completado sus objetivos. Las principales técnicas de evasión, algunas de ellas calificadas como técnicas de evasión avanzadas (AET),​ son:

  • Estrategias orientadas a evadir la detección haciendo que el código del malware en las distintas infecciones sea lo menos identificable posible por patrones de código o basado en hash. Para implementar este tipo de estrategias se usan técnicas de cifrado y ofuscación. Las estrategias más importantes son las siguientes:
    • El Cifrado base, o simplemente malware cifrado,​ consiste en cifrar una parte significativa del programa malicioso y tener un descifrador/cargador. El descifrador carga en memoria el texto cifrado, los descifra en memoria y lo ejecuta. La clave para descifrar está explícita o implícitamente en el descifrador/cargador. Es habitual que cada instancia use una clave distinta. Incluso la clave puede cambiar cada cierto tiempo, teniendo que recifrar el texto cifrado y actualizar el cargador en consecuencia. El descifrador/cargador queda invariante, excepto quizá la clave​ Hacer detecciones confiables basadas en los componentes no cifrados es difícil, dado que los elementos que residen en el disco no exponen comportamientos maliciosos. A las herramientas que a partir de un programa automáticamente generan otro que realizan el cifrado base se les llama crypters.
    • Oligomórfico. Es una forma avanzada de uso del cifrado en el malware que consiste en tener una colección de diferentes descifrador/cargador y se elige para cada nueva víctima uno al azar. De esta forma el código del descifrador/cargador no es el mismo en todos los casos. Esto dificulta un poco la detección del descifrador/cargador ya que en lugar de comprobar un solo descifrador/cargador, se tiene que comprobar todas las posibles formas que puede tener. El número de posibilidades suele ser como mucho varios centenares​).
    • Polimórfico. Es una forma avanzada de uso del cifrado en el malware que consiste en generar diferentes descifrador/cargador a partir de un motor polimórfico incorporado. El motor polimórfico es un software que permite automáticamente generar un gran número de descifrador/cargador, del orden de millones. Para ello usa distintas técnicas de ofuscación​ En 1990 se creó el primer virus polimórfico V2PX, también llamado 1260. En 1992 se creó el primer toolkit polimórfico, Mutation Engine (MtE), el cual permitía crear malware polimórfico.
    • Metamórfico. Esta técnica se creó debido a que las herramientas antimalware aprovechaban que era fácil detectar código malicioso una vez que la parte cifrada había sido descifrada.​ Este tipo de software se basa en el uso de un motor metamórfico integrado dentro del mismo que muta su código. El cuerpo completo del malware cambia, incluido el propio motor de mutación. El malware metamórfico no tiene parte cifrada y, por lo tanto, no necesita descifrador. Se trata de malware polimórfico que emplea un motor de mutación para mutar todo su cuerpo en lugar de modificar solo el descifrador.​ De esta forma, el malware nunca revela su contenido común en memoria, lo que hace que sea más difícil de detectar por sistemas antimalware.
De esta manera, cada vez que se propaga un malware metamórfico bien construido, se genera una nueva versión que mantendrá el mismo efecto y comportamiento general. Se supone que un buen motor metamórfico crea un número infinito de versiones sin patrones de cadena identificables comunes, lo que hace que su detección mediante firmas sea prácticamente imposible. Para detectar este tipo de malware se han de emplear técnicas basadas en el análisis de comportamiento y heurísticas.
  • El cifrado de los datos transferidos.​ Lo habitual es usar cifrado simétrico debido a que el cifrado asimétrico tiene un coste computacional alto.
  • Uso de protectores de software para dificultar la detección del malware. Pueden usar técnicas de empaquetamiento de ejecutables, cifrado y ofuscación.
  • Infección sin afectar a ficheros (en inglés fileless infections). Infecciones que no tocan el disco y solo residen en memoria para evitar la detección. Por ejemplo, el kit de exploit Angler hacía este tipo de infecciones.
  • Uso de protocolo de Diffie-Hellman de intercambio de claves para ocultar el tráfico a herramientas de detección de tráfico de red malicioso. Este sistema es usando por los kits de exploit web Angler y Nuclear.
  • Uso de técnicas de DNS Fluxing destinadas a ocultar la ubicación real de determinados recursos (servidores) dentro de una red.
  • Uso de Algoritmos de generación de dominio. Estos algoritmos generan automáticamente dominios nuevos que son usados para alojar servidores usados en el ciberataque. Típicamente se usan para alojar servidores de mando y control.
  • Uso de técnicas de Blind proxy redirection. Consiste en usar equipos intermedios como proxy inverso con el propósito de dificultar los intentos de descubrir los servidores desde donde se controla el ataque. Estos nodos actúan como intermediarios entre nodos esclavos y servidores de C&C, así como entre sí. Agentes bot actúan como redireccionadores que canalizan las solicitudes y los datos hacia y desde otros servidores bajo el control del operador del ataque.
  • Ocultar el tráfico en el tráfico habitual. Es habitual aprovechar comunicaciones IRC, programas de mensajería (p. ej. Skype), Blogs, webs de compartición de video, redes sociales o, en general, cualquier servicio como Google Groups, Google Calendar o Reddit. Por ejemplo, estos servidores se pueden utilizar para dejar la localización de los servidores C&C (ej. Casbaneiro y Stantinko usan descripciones de vídeos YouTube para dejar direcciones de máquinas involucradas en el ataque​) o para dejar los comandos que son leídos por el malware. A veces (p. ej. Stego) se usan técnicas esteganográficas, pasando del todo inadvertidas para cualquier que acceda.
  • Establecer comunicaciones y tráficos aleatorios entre servidores comprometidos y servidores de C&C.
  • Domain shadowing. Consiste en tomar el control de un dominio registrado consiguiendo las credenciales de administración de modo que sea posible crear registros DNS para nuevos subdominios. Creando multitud de subdominios, el atacante configura una lista lo más amplia posible. Este comportamiento ha demostrado ser altamente efectivo para evitar técnicas de bloqueo típicas como el blacklisting o sinkholing de sitios o direcciones IP. A diferencia de fast-flux, donde se cambia rápidamente la IP asignada a un único dominio, domain shadowing rota subdominios asociados a un dominio. Esos subdominios pueden apuntar bien a una única IP, o a un conjunto de ellas según las necesidades y circunstancias.
  • Abuso de servicios de DNS gratuitos y dinámicos para generar dominios y subdominios maliciosos. Eso les permite a los atacantes entregar cargas maliciosas que cambian constantemente las IP de alojamiento, ya sea las computadoras de usuarios infectados o los sitios web públicos comprometidos.
  • Fragmentar los payloads maliciosos y enviarlos a través de diferentes protocolos, normalmente poco habituales, con el fin de que una vez que hayan sorteado las protecciones del sistema atacado se vuelvan a unir para poder así continuar con el proceso de comprometer el sistema. Cambiar de una inspección basada en paquetes a una inspección basada en el flujo completo no es fácil. Hacerlo requiere grandes cambios en el manejo de paquetes de bajo nivel y diferencias fundamentales en la arquitectura de los dispositivos de seguridad de red. La inspección basada en el flujo completo usa más memoria y afecta al rendimiento del dispositivo.
  • Canales encubiertos. Por ejemplo, a veces se envía información empleando para ello las cabeceras de los protocolos de comunicación. Al llegar los paquetes a su correspondiente destino, se procesan los valores de las cabeceras, de modo que se obtiene la información.
  • Utilización de campos poco habituales de algunos protocolos.
  • Realizar ataques de denegación de servicio. Por ejemplo, para provocar la ralentización del procesamiento de datos por parte de un dispositivo de red, de modo que se imposibilite la capacidad de gestionar correctamente todo el tráfico. Este hecho puede provocar que el dispositivo funcione en modo de error y que bloquee o permita todo el tráfico.
  • Técnicas para evitar la identificación de todos los nodos pertenecientes a una botnet. Para ello los nodos de las botnets se envían únicamente listas parciales del resto de nodos de la botnet, es decir, envían únicamente el listado de nodos que conocen (peerlist), e incluso lo hacen de manera fragmentada. Además, algunas, como es el caso de Zeus, implementan mecanismos mediante los cuales bloquean los nodos que solicitan frecuentemente peerlist.
  • Técnicas para evitar infiltraciones en la botnet que puedan tomar el control de esta. Para ello incorporan esquemas de reputación para determinar qué nodos dentro de la botnet son confiables y cuáles no, y bloquean los nodos que identifican que consideran sospechosos.
  • Comprobación del entorno en el que se ejecutan, con el fin de determinar si lo están haciendo en sandboxes o entornos de análisis de malware. En el caso de identificar estos entornos, su comportamiento es distinto con el fin de parecer software confiable. Incluso, en ocasiones, generan blacklists con las IPs de las sandboxes y entornos de análisis de malware con el fin de que otros malware utilicen ese conocimiento para evitar ser detectados.
  • Dividir la funcionalidad en distintos malware con diferentes funcionalidades. Por ejemplo, los droppers encargados de introducir el payload en el sistema, que es el que contiene realmente la funcionalidad. De este modo, puede ocurrir que se detecten los droppers y downloaders, y no el payload, o al revés.
  • Descentralización de la estructura de una botnet. La utilización de botnets con estructura descentralizada, como es el caso de las P2P, dificulta significativamente su desmantelamiento. En algunos casos, utilizan múltiples servidores C&C con distintas versiones del malware. Así mismo, la utilización de servicios alojados en la red Tor, permite enmascarar la localización real de los servidores C&C.
  • En sistemas Windows, esconder el código malicioso en el registro de Windows. De esta forma, el programa no parece malware si es que no tenemos acceso al contenido de la clave de registro.

Fuente: Wikipedia​

Deja un comentario