Las matemáticas detrás de la detección de malware

Los algoritmos de aprendizaje automático se entrenan con grandes cantidades de datos (ya resueltos) para después predecir ciertas características de datos nuevos.

 

Los virus informáticos conocidos como software malicioso (o malware) son una seria amenaza para usuarios, empresas u organizaciones gubernamentales. Generalmente, se comportan de manera similar a una persona perversa: puede parecer maravillosa, pero en realidad ser muy dañina; quedarse en silencio y arremeter poco a poco; unirse con otras para atacar a una persona concreta; u obtener información confidencial de la víctima (secretos personales) y usarla para estafarla. Hoy en día, para detectarlos y minimizar los daños ocasionados, se emplean algoritmos matemáticos de aprendizaje automático.

 

Los antivirus tradicionales se basaban en identificar cada virus con una cadena de caracteres de longitud fija (HASH), obtenida al aplicar un algoritmo de encriptación. El programa almacenaba estas cadenas en una lista negra y cuando analizaba un fichero nuevo, obtenía su HASH correspondiente y buscaba coincidencias en la lista; si se encontraba alguna, saltaba una alarma. Pero en la actualidad, el malware es más avanzado y es capaz de mutar evitando ser detectado, por lo que no basta con este método, sino que se hace uso de herramientas de aprendizaje automático.

 

Los algoritmos matemáticos de aprendizaje automático se entrenan con grandes cantidades de datos (ya resueltos) para después predecir ciertas características de datos nuevos, como se muestra en la Figura 1. Por ejemplo, un algoritmo de reconocimiento facial emplea millones de fotos en las que se ha identificado una cara para establecer un cierto patrón, de manera que cuando se introduzca una foto cualquiera, este podrá predecir dónde se encuentra una posible cara.

 

Figura 1. Proceso de aprendizaje automático

 

El proceso automático de detección de malware se basa en extraer ciertas características de un tipo de virus, como el número de registros, tamaño, instrucciones o entropía (el grado de desorden), y también de su comportamiento (las conexiones que realiza, accesos a ficheros, procesos que ejecuta…). Una vez obtenidas, se aplica un algoritmo matemático que aprende el comportamiento de estas características, y crea un modelo general para detectar los virus.

 

Entre los algoritmos más conocidos se encuentra el llamado clasificador Bayesiano ingenuo. Se basa en el teorema de Bayes, que expresa la probabilidad de que suceda un evento aleatorio (A), condicionado a que haya sucedido otro (B). En el caso de la detección de malware, el algoritmo crea un modelo a partir de archivos clasificados como malware e inofensivos. Para ello, se extraen las características de los archivos (B), y se calculan las probabilidades de que aparezcan cuando un fichero es malware (A) y cuando es inofensivo (A’). Para clasificar un fichero nuevo, se calcula la probabilidad de que este pueda ser malware (A) e inofensivo (A´), dependiendo de las características que muestre (B); si la primera probabilidad es mayor que la segunda, el fichero se considera malware.

 

Figura 2. Árbol de decisión aleatorio de personas que les gusta conducir

 

También se utilizan los algoritmos basados en árboles de decisión, diagramas que representan condiciones lógicas que ocurren de manera sucesiva, llevando a una u otra solución dependiendo de las reglas aplicadas. Un ejemplo se puede ver en la Figura 2.

 

Un algoritmo popular en ciberseguridad  es el de Bosques Aleatorios  (Random Forest). Éste crea árboles de decisión seleccionando un subgrupo de características del malware de manera aleatoria. Cada árbol contiene unas características específicas; si estas son más frecuentes en ficheros maliciosos, se etiqueta como tal, y como inofensivo en caso contrario. Cuando se analiza un fichero nuevo, cada árbol expresa su preferencia (o voto), es decir, cómo lo clasificaría dependiendo de sus características. Por ejemplo, si el fichero nuevo presenta las características del árbol 1 y éste se encuentra etiquetado como inofensivo, el árbol 1 clasificará el fichero nuevo cómo inofensivo. Finalmente, se toma la decisión que ha obtenido mayoría de votos, cómo se puede apreciar en la Figura 3.

Figura 3. Algoritmo de bosques aleatorios

En la actualidad aparece otro inconveniente: la presencia de uno o varios adversarios que pueden pasar desapercibidos y hacer que los algoritmos de detección fallen. Los adversarios pueden atacar de diferentes formas: “envenenando” los datos para introducir información errónea, por ejemplo, afirmar que un malware es inofensivo; realizando ataques de evasión, modificando el malware de manera intencionada para confundir al algoritmo; o ataques de inferencia, basados en producir malware que trata de encontrar los límites de detección del algoritmo.

 

Como contramedida, los modelos avanzados de Análisis de Riesgos Adversarios (ARA) buscan modelizar la incertidumbre de los atacantes haciendo uso de análisis de riesgos y teoría de juegos, teniendo en cuenta que los adversarios son racionales, aunque en ciertas ocasiones no tienen por qué actuar de forma racional. Hoy en día, grupos de investigación de todo el mundo, y proyectos como CYBECO, trabajan para mejorar estas herramientas y con ellas aumentar la seguridad de los sistemas informáticos.

 

 

 

 

Fuente: El País

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.