Análisis heurístico
El análisis heurístico identifica amenazas por lo que hace un programa y no por su parecido con una firma conocida, que es lo que le permite cazar algo que nadie ha visto antes y también lo que le hace producir falsos positivos.
El análisis heurístico es una técnica de evaluación que usa reglas generales y métodos de aproximación para identificar posibles amenazas o comportamientos maliciosos en un sistema.
A diferencia del enfoque tradicional, que compara un archivo con la firma de una pieza de malware concreta y ya conocida, el análisis heurístico se fija en el comportamiento y en las características sospechosas, lo que le permite señalar algo aunque todavía no exista una firma para ello.
Eso es lo que lo hace útil frente a nuevas variantes de malware y frente a ataques escritos expresamente para eludir la comparación con firmas, que son la mayoría.
Se puede aplicar a varios niveles, desde evaluar un archivo o un programa concreto hasta vigilar el comportamiento de un sistema entero mientras se ejecuta.
Qué busca
Comportamiento anómalo. Cualquier cosa que se aparte de la norma establecida: comandos inusuales, modificación de archivos críticos o comunicación inesperada con servidores externos.
Uso inusual de recursos. Consumo de CPU y de memoria que no encaja con lo que ese proceso debería estar haciendo, que a menudo es el primer signo visible de algo como el cryptojacking.
Manipulación de archivos y del registro. Creación, modificación o borrado de archivos del sistema y de entradas del registro que nada legítimo debería estar tocando.
Patrones de comunicación. Tráfico de red que no tiene la forma habitual: conexiones a direcciones sospechosas, beaconing a intervalos regulares o protocolos que nada en ese host debería estar hablando.
Un ejemplo
Un producto de endpoint usa análisis heurístico contra una pieza de malware nueva para la que no existe firma.
Durante el análisis observa un programa que intenta cifrar archivos del sistema una y otra vez y que abre conexiones de red hacia direcciones sin reputación.
El malware concreto es desconocido, pero el comportamiento no lo es: el producto levanta una alerta por el patrón, pone el proceso en cuarentena y avisa al usuario.
Lo que ha hecho esto posible es que nada en la decisión dependía de haber visto antes ese archivo exacto.
La contrapartida, dicha claramente
El análisis heurístico compra cobertura de lo desconocido y la paga en falsos positivos, y eso no es un defecto que se pueda afinar hasta hacerlo desaparecer: es la forma misma de la técnica.
Una firma es una afirmación sobre un artefacto concreto, y es correcta o incorrecta. Una heurística es una afirmación sobre parecidos, y el software legítimo se parece con frecuencia al software malicioso: los instaladores escriben en directorios del sistema, los agentes de copia de seguridad leen todos los archivos y las herramientas de administración hacen por diseño lo que un atacante hace con intención.
Por eso la misma idea, llevada más lejos, acaba siendo detección y respuesta en el endpoint: registrar el comportamiento, alertar sobre lo que importa y guardar suficiente contexto para que una persona pueda decidir rápido si la alerta merecía la pena. Y por eso el detection engineering trata una regla de detección como software con un responsable, porque una heurística que nadie afina acaba siendo o ruido que todo el mundo ignora o una regla tan estrecha que no caza nada.
Es también la razón por la que importan las técnicas fileless: sin archivo que firmar, el análisis de comportamiento no es una opción entre varias, es la única que queda.