Generador de firmas de software malicioso y detección de código ejecutable.

Procedimiento para implementar un generador de firmas de malware y detectar códigos ejecutables, que comprende:

a) desensamblar ejecutables benignos mediante un desensamblador

(200) en una secuencia de códigos de operación de instrucciones en lenguaje máquina descartando al mismo tiempo otros parámetros;

b) almacenar (21, 31) secuencias de códigos de operación de cada uno de dichos ejecutables benignos en una primera base de datos (10);

c) desensamblar (22, 32) cada ejecutable malicioso de una familia de malware dada mediante dicho desensamblador en una secuencia de códigos de operación de instrucciones en lenguaje máquina descartando al mismo tiempo otros parámetros;

d) para cada par de ejecutables maliciosos, encontrar (23, 33) todas las subcadenas de códigos de operación comunes mediante un comparador de cadenas (300);

e) componer un conjunto de subcadenas de códigos de operación comunes entre dos códigos ejecutables maliciosos cualesquiera mediante dicho comparador de cadenas;

f) comprobar mediante dicho comparador de cadenas cuál de dichas subcadenas de códigos de operación comunes aparecen en al menos una secuencia de códigos de operación de un ejecutable benigno almacenado en dicha primera base de datos;

g) ignorar dichas subcadenas de códigos de operación comunes que aparecen en al menos una secuencia de códigos de operación de un ejecutable benigno;

h) para cada par de ejecutables maliciosos, identificar (23, 33), mediante dicho comparador de cadenas, un conjunto de subcadenas de códigos de operación comunes que no aparezcan en ninguna secuencia de códigos de operación de un ejecutable benigno; e

i) almacenar mediante dicho comparador de cadenas en una segunda base de datos (20) todos los conjuntos de subcadenas de códigos de operación comunes que no aparecen en ninguna secuencia de códigos de operación de un ejecutable benigno, como firmas candidatas.

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E09014289.

Solicitante: DEUTSCHE TELEKOM AG.

Nacionalidad solicitante: Alemania.

Dirección: FRIEDRICH-EBERT-ALLEE 140 53113 BONN ALEMANIA.

Inventor/es: DOLEV SHLOMO, TZACHAR NIR.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Disposiciones de seguridad para la protección de... > G06F21/56 (Detección de malware en ordenadores o manipulación, p. ej.: disposiciones para antivirus)

PDF original: ES-2524788_T3.pdf

 

google+ twitter facebookPin it
Generador de firmas de software malicioso y detección de código ejecutable.
Generador de firmas de software malicioso y detección de código ejecutable.
Generador de firmas de software malicioso y detección de código ejecutable.

Fragmento de la descripción:

Generador de firmas de software malicioso y detección de código ejecutable Campo de la invención

La presente invención se refiere al campo de la detección de software malicioso. Más en particular, la Invención se refiere a la generación y detección de firmas de software malicioso.

Antecedentes de la invención

La detección de software malicioso (en lo sucesivo malware", que es cualquier programa o archivo que es dañino para un ordenador) mediante una firma es una práctica habitual en cualquier herramienta de seguridad de software. Generando una firma que Identifica de manera unívoca a un malware, puede evitarse la propagación de este malware a través de las redes e Impedir que llegue a otros ordenadores.

Una firma de un ejecutable (un archivo que contiene un programa y que puede ejecutarse o hacerse funcionar como un programa en el ordenador) puede generarse mediante diversas técnicas. Por ejemplo, puede usarse una secuencia binaria intrínseca en el ejecutable y aplicar un algoritmo hash a esta secuencia usando una función hash criptográfica, tal como MD5 (un algoritmo que se usa para verificar la integridad de los datos a través de la creación de un compendio de mensajes de 128 bits a partir de datos únicos introducidos, como la huella dactilar de una persona) o SHA1 (una función hash criptográfica). Los datos hash generados pueden usarse como una firma. Otra técnica habitual es incluir detalles que residen en las cabeceras de los ejecutables. Por ejemplo, las librerías con las que están relacionados.

La firma generada debe ser lo más fiable posible. La tasa de falsos positivos y de falsos negativos debe ser igual a cero (o ser lo más próxima posible a cero). Para conseguir este objetivo, la generación de firmas es llevada a cabo habitualmente por expertos e implica la inspección rigurosa del código sospechoso. Sólo tras identificar un código común (un código generado por compiladores, librerías relacionadas, etc.) el experto puede extraer los fragmentos de código que identifican de manera unívoca al propio malware.

Una de las desventajas más evidentes de la detección basada en firmas es el hacer frente a nuevo malware aún sin tratar. Una firma específicamente vinculada a un ejecutable dado no está diseñada para adecuarse a otros ejecutables, lo cual deja una puerta abierta a malware que se haya generado recientemente.

Otro problema evidente es la gran cantidad de firmas que deben mantenerse y comprobarse cuando se inspeccionan ejecutables sospechosos.

Las técnicas actuales para la generación de firmas son o bien manuales (llevadas a cabos por expertos) o automáticas. Los expertos confían en su capacidad de desensamblar el ejecutable sospechoso, analizar el flujo del código e identificar secciones de código que son únicas del ejecutable sospechoso. Los sistemas automatizados no pueden basarse en el análisis de los flujos y utilizan técnicas de extracción de datos (o similares). Por ejemplo, el sistema del polígrafo ("Polygraph: Automatically Generating Signatures for Polymorphic Worms," de James Newsome, Brad Karp, Dawn Song, S&P05, páginas 226 a 241, 2005) trata de encontrar patrones coincidentes en un flujo de tráfico de red sospechoso. Tales patrones comunes son convertidos después en firmas.

El documento US 5.452.442 da a conocer un procedimiento estadístico para extraer y/o evaluar automáticamente firmas de un virus informático. Una firma candidata es aceptada como una firma válida si la probabilidad estimada de la aparición de la firma de virus candidata es menor que una probabilidad umbral.

El documento US 2007/0094734 da a conocer un procedimiento para clasificar software informático polimórfico extrayendo características de un archivo sospechoso y comparando las características extraídas con características de tipos de software conocidos.

El documento EP 0 896 285 da a conocer un procedimiento para la detección eficaz de virus informáticos aplicando un primer mapeo para obtener un subconjunto de firmas estándar y aplicando un segundo mapeo para identificar un conjunto de virus informáticos que podrían estar presentes en una cadena de datos.

El documento US 2007/0152854 da a conocer un procedimiento para determinar si un archivo informático sospechoso es malicioso modelando una secuencia de código de octetos extraída usando al menos una prueba de modelación de entropía, comparando cada resultado de entropía con una tabla para determinar un valor de probabilidad y sumando los valores de probabilidad para determinar la probabilidad de que la secuencia de código de octetos sea maliciosa.

El documento US 2007/0240221 da a conocer un sistema y un procedimiento para detectar malware en una plataforma móvil. Se calcula una suma de control y esa suma de control se compara con una suma de control obtenida a partir de una copia libre de malware del ejecutable.

El documento WO 01/69356 da a conocer un sistema de detección de virus basado en histogramas que presenta un archivo de datos de código P, un archivo de definiciones de virus para guardar firmas de virus conocidos, y un motor que contiene un intérprete de código P, un módulo de exploración para explorar regiones del archivo de definiciones de virus y un módulo de emulación para emular instrucciones del archivo.

El documento US 2006/0053295 da a conocer un procedimiento y un sistema para detectar una firma de gusano en un tráfico de red. Se calcula una función hash para al menos una parte del flujo de datos. Al menos un contador se incrementa en respuesta al resultado calculado de la función hash. Cada contador corresponde a un resultado respectivo calculado de una función hash. El contenido repetido se identifica cuando al menos un contador supera un valor de cómputo. Después se comprueba si el contenido repetido identificado no es una cadena benigna.

Por lo tanto, un objeto de la presente invención es reducir el número de firmas usadas para detectar malware, acelerando así el proceso de detección de malware.

Otro objeto de la presente invención es poder detectar nuevo malware desconocido.

Otros objetos y ventajas de la invención resultarán evidentes a medida que se avance en la descripción.

Resumen de la invención

La presente invención se refiere a un procedimiento para implementar un generador de firmas de malware y detectar códigos ejecutables, según el cual se inspeccionan los códigos de operación de los ejecutables, descartándose al mismo tiempo otros parámetros de los ejecutables. Las firmas se generan a partir de motores comunes de códigos ejecutables, y una gran variedad de malware de la misma familia se representa mediante un pequeño número de firmas. De este modo se identifica malware conocido y desconocido usando el pequeño número de firmas.

En una realización, los ejecutables benignos son desensamblados por un desensamblador, y las secuencias de código de operación del ejecutable benigno son almacenadas en una primera base de datos y cada ejecutable malicioso es desensamblado por el desensamblador en una secuencia de códigos de operación. Un comparador de cadenas obtiene todas las subcadenas de códigos de operación comunes (por ejemplo, usando un proceso LCS) para cada par de ejecutables maliciosos. Un conjunto de subcadenas de códigos de operación comunes entre dos ejecutables maliciosos cualesquiera está compuesto por el comparador de cadenas, que también comprueba cuál de las subcadenas de códigos de operación aparece en al menos una secuencia de códigos de operación de ejecutable benigno almacenada en la primera base de datos. Las subcadenas de códigos de operación comunes son ignoradas y un conjunto de subcadenas de códigos de operación comunes, que no aparecen en ningún... [Seguir leyendo]

 


Reivindicaciones:

1Procedimiento para implementar un generador de firmas de malware y detectar códigos ejecutables, que comprende:

a) desensamblar ejecutables benignos mediante un desensamblador (200) en una secuencia de códigos de operación de instrucciones en lenguaje máquina descartando al mismo tiempo otros parámetros;

b) almacenar (21, 31) secuencias de códigos de operación de cada uno de dichos ejecutables benignos en una primera base de datos (10);

c) desensamblar (22, 32) cada ejecutable malicioso de una familia de malware dada mediante dicho desensamblador en una secuencia de códigos de operación de instrucciones en lenguaje máquina descartando al mismo tiempo otros parámetros;

d) para cada par de ejecutables maliciosos, encontrar (23, 33) todas las subcadenas de códigos de operación comunes mediante un comparador de cadenas (300);

e) componer un conjunto de subcadenas de códigos de operación comunes entre dos códigos ejecutables maliciosos cualesquiera mediante dicho comparador de cadenas;

f) comprobar mediante dicho comparador de cadenas cuál de dichas subcadenas de códigos de operación comunes aparecen en al menos una secuencia de códigos de operación de un ejecutable benigno almacenado en dicha primera base de datos;

g) ignorar dichas subcadenas de códigos de operación comunes que aparecen en al menos una secuencia de códigos de operación de un ejecutable benigno;

h) para cada par de ejecutables maliciosos, identificar (23, 33), mediante dicho comparador de cadenas, un conjunto de subcadenas de códigos de operación comunes que no aparezcan en ninguna secuencia de códigos de operación de un ejecutable benigno; e

i) almacenar mediante dicho comparador de cadenas en una segunda base de datos (20) todos los conjuntos de subcadenas de códigos de operación comunes que no aparecen en ninguna secuencia de códigos de operación de un ejecutable benigno, como firmas candidatas.

2.- Procedimiento según la reivindicación 1, en el que el comparador de cadenas obtiene todas las subcadenas de

códigos de operación comunes utilizando un proceso de subcadena común más grande.

3 - Procedimiento según la reivindicación 1, que comprende además:

a) encontrar, para cada firma candidata, mediante el comparador de cadenas, malware en el que aparece dicha firma candidata;

b) encontrar (34), mediante el comparador de cadenas y un algoritmo voraz, el conjunto mínimo de firmas candidatas que identifican a todos los ejecutables maliciosos; y

c) almacenar dicho conjunto mínimo en la segunda base de datos (20).

4.- Procedimiento según la reivindicación 3, que comprende además convertir las secuencias de códigos de operación

en expresiones regulares que pueden emparejarse usando secuencias binarias.

5.- Procedimiento según la reivindicación 4, en el que las firmas se convierten en expresiones regulares:

a) extrayendo mediante un convertidor de cadenas (400) subcadenas de códigos de operación de la segunda base de datos (20) y convirtiendo dichas subcadenas de códigos de operación extraídas en expresiones regulares usando una tabla de consulta;

b) reduciendo la longitud de las expresiones regulares resultantes convertidas por dicho convertidor de cadenas añadiendo máscaras binarias como elementos emparejables; y

c) almacenando dichas expresiones regulares en la segunda base de datos.

6.- Sistema para reducir el número de firmas usadas para detectar malware, que comprende:

a) un ordenador (100);

b) una primera base de datos (10) y una segunda base de datos (20) conectadas a dicho ordenador;

c) un desensamblador (200) incluido en dicho ordenador; y

d) un comparador de cadenas (300) incluido en dicho ordenador,

caracterizado porque

dicho desensamblador puede hacerse funcionar para desensamblar ejecutables benignos mediante una secuencia de códigos de operación de instrucciones en lenguaje máquina descartando al mismo tiempo otros parámetros, almacenar secuencias de código de operación de cada uno de dichos ejecutables benignos en dicha primera base de datos, y desensamblar cada ejecutable malicioso de una familia de malware dada en una secuencia de códigos de operación de instrucciones en lenguaje máquina descartando al mismo tiempo otros parámetros,

dicho comparador de cadenas puede hacerse funcionar para encontrar todas las subcadenas de códigos de operación comunes para cada par de ejecutables maliciosos, componer un conjunto de subcadenas de códigos de operación comunes entre dos códigos ejecutables maliciosos cualesquiera, comprobar cuál de dichas subcadenas de códigos de operación comunes aparecen en al menos una secuencia de códigos de operación 5 de un ejecutable benigno almacenado en dicha primera base de datos, ignorar dichas subcadenas de códigos

de operación comunes que aparecen en al menos una secuencia de códigos de operación de un ejecutable benigno, identificar para cada par de ejecutables maliciosos un conjunto de subcadenas de códigos de operación comunes que no aparezcan en ninguna secuencia de códigos de operación de un ejecutable benigno, y almacenar en dicha segunda base de datos todos los conjuntos de subcadenas de códigos de 10 operación comunes que no aparecen en ninguna secuencia de códigos de operación de un ejecutable benigno,

como firmas candidatas.