Detección de malware utilizando machine learning

Detección de malware utilizando machine learning

Tiempo de lectura estimado: 11 minutos


Esta conferencia magistral pertenece al Módulo 10 “Análisis forense. Malware y técnicas de ocultación” de C1b3rWall Academy 2021/2022. El objetivo de la misma es tratar de reducir lo máximo posible la ventaja con la que parten los cibercriminales a través de la capacidad de análisis de malware.

Introducción a la detección de amenazas

En la detección de amenazas hay varias categorías como el análisis de la configuración, el modelado de la amenaza, los indicadores de compromiso y el comportamiento de la propia amenaza. Estas categorías se relacionan con las siguientes variables:

  • Transparencia. Visibilidad de una alerta que la analítica aporta al analista (qué ocurrió y qué significa).
  • Durabilidad. Bondad con la que la aproximación analítica resiste el cambio del adversario.
  • Facilidad de implementación. Cantidad de tiempo, esfuerzo y datos necesarios para su implementación.
  • Cobertura. Número de analíticas necesarias para aportar un máximo de cobertura de investigación.
  • Adaptabilidad. Bondad con la que una organización afina la aproximación a su entorno específico para mejorar la tasa de falsos positivos/negativos. 

Atendiendo a la tabla mostrada anteriormente, observamos que, de forma ponderada, la categoría más evolucionada es la del comportamiento de la amenaza, que se basa en los anteriores y es más compleja. La alta adaptabilidad resulta muy positiva para entornos grandes o corporativos. 

También pueden compararse en torno a las siguientes variables:

  • Investigación. Descubrir todo lo relacionado con la actividad, exponiendo todas las fases de la CKC.
  • Ataque novedoso. Descubrir actividad maliciosa nunca vista con antelación.
  • Ataque similar. Detectar actividad maliciosa similar a otra previamente descubierta.
  • Alcance. Identificar el origen de un incidente de seguridad.

Nuevamente, vemos que el comportamiento de la amenaza es el mejor de los cuatro modelos, con lo cual, la tendencia debería ser implementar en las organizaciones de mediano y gran tamaño sistemas que permitan detectar el comportamiento de la amenaza.

En las campañas operadas manualmente resultará crítico tanto detectar el ataque lo más rápidamente posible como determinar su alcance y predecir su evolución. El modo de operar de un atacante depende de sus objetivos y las TTP empleadas para alcanzarlos, por tanto, resulta vital asociar las características y comportamientos observados a actores conocidos para mejorar la capacidad de respuesta frente a un ciberataque. El empleo de métodos estadísticos permite el seguimiento de actores conocidos y de las TTP que se les atribuyen.

Detección basada en machine learning

Este apartado se basa, principalmente, en la interpretación de datos disponibles. Partimos del hecho de que todo lo que tiene que ver con machine learning tiene su origen en el big data. El objetivo es que el sistema sea capaz de detectar los agentes perjudiciales a partir de los criterios establecidos en el algoritmo. La creación de algoritmos personales permite ajustarlos a necesidades especiales, consiguiendo un producto mejor o más específico que un producto comercial, permitiendo reducir los falsos positivos/negativos.

Cuando se dispone de acceso a muestras maliciosas de un grupo de la amenaza con interés en la organización, la elaboración de tecnologías de detección basadas en machine learning puede ayudar en la detección de nuevas muestras de esas amenazas.

La diferencia entre un algoritmo de machine learning y uno tradicional es que este último le indica al sistema de forma secuencial cómo debe operar paso por paso, mientras que los sistemas de machine learning aprenden a partir de los ejemplos para diferenciar por sí mismos lo bueno y lo malo conforme al umbral definido. Esto va a permitir automatizar el trabajo de creación de firmas.

Pasos para la creación de un detector basado en machine learning

  1. Recopilación de ejemplos de malware y de software legítimo para entrenar al sistema. Cuantos más se recojan, mejor será el proceso de entrenamiento (aunque también será más tediosa la implementación).
  2. Una vez se tiene esa "bolsa" de muestras, hay que extraer características de cada uno de los ejemplos de entrenamiento que permitan representar ese ejemplo como una matriz numérica. Este paso requiere investigar qué características permitirán al sistema de machine learning inferir correctamente si un ejecutable es malicioso.
  3. Entrenar el sistema de machine learning para que reconozca muestras de malware empleando las características extraídas en el paso anterior. Los algoritmos más efectivos para detectar malware son los de tipo supervisado.
  4. Comprobar la aproximación empleando datos diferentes a los de los ejemplos utilizados para entrenar el sistema de machine learning. Lo ideal es entrenarlo con muestras anteriores a una fecha y comprobar la eficacia con muestras posteriores a dicha fecha para inferir si sería capaz de detectar una nueva muestra de malware.

Ejemplos aplicados

En ocasiones, los algoritmos de machine learning ofrecen malos resultados. Las principales causas son underfitting y overfitting (el algoritmo solo se ajustará a aprender los casos particulares proporcionados, siendo incapaz de reconocer nuevos datos de entrada). Estos términos hacen referencia al fallo del modelo al generalizar el conocimiento que se pretende que adquieran.

Cuando entrenamos un algoritmo machine learning con un conjunto de datos de entrada estamos haciendo que el algoritmo sea capaz de generalizar un concepto para que, al consultarle por un nuevo conjunto de datos desconocido, este sea capaz de sintetizarlo, comprenderlo y devolvernos un resultado fiable dada su capacidad de generalización. Si los datos de entrenamiento son insuficientes, el algoritmo machine learning no será capaz de generalizar el conocimiento e incurrirá en underfitting. Para reconocer estos problemas, los datos de entrada deben dividirse en entrenamiento y en validación.


¿Todavía no formas parte de C1b3rWall Academy? El contenido es gratuito, únete a otras 30.000 personas desde este enlace.

                   

Si te interesa este tema, puedes consultar la información y cursar el Máster en Ciberseguridad o ver la oferta de másteres desde aquí.


Ponente: Mario Guerra Soto

Mario es ingeniero de Telecomunicación por la Universidad de Cantabria. Durante siete años trabajó en el Mando Conjunto de Ciberdefensa como DFIR, threat hunter, analista de ciberinteligencia y analista de malware. Es máster en Seguridad de Tecnologías de Información y Comunicación por la UOC y máster en Análisis de Evidencias Digitales y Lucha contra el Cibercrimen por la UAM. Ha colaborado como ponente en diferentes congresos y eventos como RootedCON, Cybercamp, IntelCon, Hackron y TACS, además, colabora como docente en la UAM y en la USAL.

¿Cuál es tu reacción?

like

dislike

love

funny

angry

sad

wow

Acción formativa gratuita en ciberseguridad. Web: https://c1b3rwallacademy.usal.es/