A lo largo de la historia los códigos maliciosos han ido cambiando la forma de propagarse y afectar a los usuarios, lo que ha llevado a que, en el otro extremo, las soluciones antivirus fueran evolucionando y desarrollando diferentes técnicas para detectar y prevenir estas amenazas. Al final, esta dinámica pareciera ser la de un juego del gato y el ratón constante, en el que luego de la aparición de nuevas formas de detección, de inmediato surge una estrategia para evitarlas. Después de todo, como sugería el refrán "hecha la ley, hecha la trampa", al crearse una norma las personas piensan inmediatamente la manera de evitarla.
Veamos a continuación cuatro diferentes metodologías que pueden ser implementadas por una solución de seguridad, y cómo a partir de entender su funcionamiento los atacantes buscan la forma de evadirlas.
Detección reactiva (o basada en firmas)
pareciera un juego constante en el que luego de la aparición de nuevas formas de detección, surge una estrategia para evitarlas
Es el enfoque clásico en el que se basaron los productos antivirus cuando surgieron. Funciona comparando los archivos almacenados o descargados en el equipo contra una lista de códigos maliciosos conocidos y sus formas de reconocerlos (las llamadas firmas).
Para que una amenaza sea detectada por este método, el laboratorio antivirus debe obtener primero una muestra para luego generar la firma. Esto significa que no funciona con nuevos malware o amenazas conocidas como 0-day.
Siguiendo este principio, los cibercriminales utilizan diferentes técnicas para modificar los códigos maliciosos de forma tal que no coincidan con la firma del antivirus, ya sea modificando el código o desplazándolo dentro del mismo archivo. Es decir, generan, en cierta forma, una nueva versión del código.
Aun así, esta forma de detección sigue siendo una metodología válida para detectar amenazas, ya que consume pocos recursos del sistema y ofrece información precisa que resulta muy útil para eliminarlas o elaborar informes. Sin embargo, en un mundo donde surgen nuevos riesgos todos los días, resulta escaso valerse solo de este método.
La mayoría de las soluciones antimalware actuales incorporan funciones de detección proactiva, que no se basan en una lista de malware conocido, sino que analizan el comportamiento de los archivos o comunicaciones para detectar cuáles son potencialmente dañinas para el usuario, con técnicas conocidas como heurísticas.
Heurística genérica
Este tipo de métodos heurísticos son una variante avanzada de la detección por firmas, cuyo principal objetivo es detectar aquellas amenazas que son modificaciones o alteraciones de amenazas ya conocidas, es decir que su código es muy similar, por lo que son detectadas como “una variante de… “.
Con este enfoque es posible reconocer diferentes muestras de códigos maliciosos que pertenecen a una misma familia a través de una única firma genérica. Esto permite que, al momento de aparecer una nueva versión de una amenaza conocida, la solución de seguridad pueda detectarla sin la necesidad de una actualización.
Dado lo anterior, muchos cibercriminales utilizan técnicas de ofuscación de código o de empaquetamiento para evadir la detección por firmas (tanto específicas como genéricas), aprovechando que estas técnicas cambian sustancialmente el código del archivo. Sin embargo, este comportamiento resulta sospechoso, lo cual puede ser aprovechado para implementar otras formas de detección.
Heurística pasiva
Esta técnica explora de forma pasiva el contenido del archivo en busca de condiciones que indiquen una conducta sospechosa o maliciosa, lo cual se logra analizando el código y las acciones que este realizaría, pero no ejecuta el archivo.
En este caso se utiliza una base de reglas para determinar comportamientos sospechosos como código empaquetado, cifrado u ofuscado, entry points inusuales, uso de librerías sospechosas y otras acciones realizadas comúnmente por malware. Al detectarlas, avisa al usuario que se trata de un archivo malicioso.
Al igual que en los casos anteriores, los autores de malware intentan aplicar diferentes métodos para esconder las intenciones de sus archivos. Las técnicas anti-debugging, cargar librerías en tiempo de ejecución o utilizar lenguajes como Autoit (que al llevar consigo todas las librerías no necesita hacer llamadas externas sospechosas) son solo algunas de las maneras en las que intentan evadir la heurística pasiva.
Heurística activa
También conocido como sandbox, consiste en ejecutar el archivo en un entorno virtualizado, en el cual se puede determinar con precisión los comportamientos del mismo.
El usuario recibirá una alerta cuando se lleve a cabo una o varias acciones sospechosas, como acceder al SAM, inyectarse en un proceso, borrar DLLs o OCX; en tanto, otras acciones como establecer conexiones remotas, copiarse al inicio, auto borrarse, modificar el registro o archivos críticos del sistema deberían darse en conjunto para que generen la alerta.
Pareciera que con esta última herramienta el equipo puede estar protegido por completo, pero la realidad es que no todas las soluciones de seguridad la implementan adecuadamente, dejando que se consuman muchos recursos del sistema; por lo tanto, no viene habilitado por default.
Incluso activándola, ¿qué pasa si un atacante distribuye los comportamientos de su malware? Por ejemplo, utilizando un instalador en modo silencioso que escriba en el registro (acción que resulta normal en un instalador), luego ejecutando un script que copie el archivo a System32 y por último ejecutando el malware que, en sí, solo realiza una conexión remota a la que le envía información. De esta manera, cada archivo realiza una o un conjunto de acciones que no generan ninguna alerta, pero, en conjunto, podrían estar robando información sensible sin ser detectados.
Por lo tanto, en estos casos resulta útil agregar la protección de un buen firewall e IDS que controle las conexiones entrantes y también salientes del equipo, para evitar no solo que las amenazas lleguen, sino también que si infectan el sistema, no puedan enviar información robada o convertir el equipo en un zombi.
Lo anterior debería complementarse con módulos adicionales como el antispam, que protege de las amenazas enviadas por mail; o el antiphishing, para reducir la posibilidad de ser víctimas de páginas fraudulentas que roban credenciales.
Las soluciones integrales de seguridad no solo ofrecen una suite completa de herramientas para detectar y eliminar cada tipo de amenaza, sino que están en constante evolución para estar al día con las últimas amenazas. Sin embargo, a pesar de todos los esfuerzos, a veces pareciera que los cibercriminales encuentran alguna forma para salirse con la suya y estar un paso adelante.
Es por esto que no basta con una sola herramienta, sino que todas deben trabajar en conjunto. Además, no olvidemos que siempre debemos estar atentos y actualizados sobre el panorama de amenazas para evitar ser víctima del malware.