Extraer características de archivos PE. Aprendizaje automático y malware

1

¿Las características que pueden extraerse de un archivo PE (información de encabezados, nombres de secciones, cadenas, importar, exportar secciones, etc.) son suficientes para usarlas para entrenar algoritmos de aprendizaje automático específicos para detectar si el archivo sospechoso es malicioso o no? ¿no?

Me he encontrado con dos opiniones diferentes:

La primera opción indica que estas características son suficientes para crear un sistema de detección básico. Además, para aumentar la eficiencia y la precisión, se pueden incluir los atributos de comportamiento (por ejemplo, llamadas a la API).

Pero la segunda opinión afirma que estos atributos son inútiles en muchos casos porque muchas de estas características son redundantes y las características redundantes pueden dañar la calidad de un modelo.

También me pregunto si es posible detectar si una muestra de malware es similar a otra muestra e insinuar que una es una variante de la otra. ¿Es este tipo de información útil en la detección de malware?

    
pregunta bielu000 29.08.2018 - 20:03
fuente

3 respuestas

0

mi experiencia con los sistemas de aprendizaje automático que detectan "cosas" en su caso es malware, es que estos sistemas necesitan tener muchas muestras para aprender qué es malware de lo que no es. Generan muchos falsos positivos a partir de mi experiencia y al final es mejor seguir un enfoque híbrido, es decir, analizar algunas partes del ejecutable, aplicar algunas reglas, luego aplicar otro tipo de heurística y luego el aprendizaje automático, esto depende de cada caso.

Por ejemplo, si alguien te envía un correo electrónico con un ejecutable, ¿cuál es la probabilidad de que el ejecutable sea malware? ¿Tomarás el riesgo de tu sistema? ¿Hacer un escaneo regular o un sha256sum y verificar con un tercero? o aplicar una estrategia de aprendizaje automático

    
respondido por el camp0 29.08.2018 - 21:17
fuente
0

Si encuentra un malware empaquetado, las funciones extraíbles del archivo PE y sus funciones de biblioteca importadas probablemente no lo llevarán a ningún lado. Esto se debe a que solo habrá pocas llamadas a funciones importadas y la información del encabezado se puede modificar para desorientar el modelo aprendido de un malware.

Tenga en cuenta que el hecho de que un ejecutable esté empaquetado no es suficiente para determinarlo como malware, ya que también los programas normales pueden hacerlo.

    
respondido por el Sebastian Walla 29.08.2018 - 21:17
fuente
0

Muchos de los atributos en los encabezados pueden cambiarse sin afectar en absoluto al ejecutable, e incluso aquellos que lo afectan, pueden cambiarse cambiando las partes del ejecutable que afectan (tamaño de imagen como ejemplo), así que al obtener eso Los datos pueden ser útiles para detectar algunas cosas, cualquier codificador decente hará que su pe sea inmune a esto.

Otra cosa son las firmas, ya que pueden detectar malware básico desnudo, pero cualquier cosa encriptada las evitará fácilmente.

Su mejor apuesta es detectar la entropía de las secciones y las características. Alta entropía significa que es probable que el ejecutable esté empaquetado / encriptado. La presencia de una sección con características de lectura, escritura y ejecución casi siempre significa que el ejecutable está empaquetado.

Pero adivina qué, hay formas de disminuir la entropía tanto como quieras, y también de empacar un pe sin una sección de lectura / escritura / ejecución.

Cuanto más agresivos sean sus heurísticos, es más probable que detecte malware, pero también encontrará muchos falsos positivos (no todos los ejecutables empaquetados son malware).

    
respondido por el Icaro10100 23.09.2018 - 16:28
fuente

Lea otras preguntas en las etiquetas