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:
- G06F21/56 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 21/00 Disposiciones de seguridad para la protección de computadores, sus componentes, programas o datos contra actividades no autorizadas. › Detección de malware en ordenadores o manipulación, p. ej.: disposiciones para antivirus.
PDF original: ES-2524788_T3.pdf
![Generador de firmas de software malicioso y detección de código ejecutable.](https://patentados.com/img/2014/08/1276822/generador-firmas-software-malicioso-deteccion-codigo-ejecutable.08.jpg)
![Generador de firmas de software malicioso y detección de código ejecutable.](https://patentados.com/img/2014/08/1276822/generador-firmas-software-malicioso-deteccion-codigo-ejecutable.09.jpg)
![Generador de firmas de software malicioso y detección de código ejecutable.](https://patentados.com/img/2014/08/1276822/generador-firmas-software-malicioso-deteccion-codigo-ejecutable.10.jpg)
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 código de operación de ejecutable benigno para cada par de ejecutables maliciosos, es identificado por el comparador de cadenas. Todos los conjuntos de subcadenas de códigos de operación comunes son almacenados en una segunda base de datos como firmas candidatas.
El comparador de cadenas puede usarse para encontrar, para cada firma candidata, los malwares en los que aparece la firma candidata, así como el conjunto mínimo de firmas candidatas que identifican a todos los ejecutables maliciosos. Después, el conjunto mínimo es almacenado en la segunda base de datos.
Las secuencias de códigos de operación pueden convertirse en expresiones regulares, las cuales pueden emparejarse usando secuencias binarias.
Las firmas pueden convertirse en expresiones regulares extrayendo, mediante el convertidor de cadenas, subcadenas de códigos de operación (firmas) de la segunda base de datos y convirtiendo las subcadenas de códigos de operación en expresiones regulares... [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.
Patentes similares o relacionadas:
Gestión de software intrusivo, del 17 de Junio de 2020, de Google LLC: Un método, que comprende: dividir páginas de destino asociadas a anuncios en páginas de destino de entrenamiento y probar las páginas de […]
Sistemas y métodos para rastrear comportamiento malicioso a través de múltiples entidades de software, del 25 de Marzo de 2020, de Bitdefender IPR Management Ltd: Un sistema de servidor que comprende al menos un procesador de hardware y una unidad de memoria, configurado el al menos un procesador de hardware para ejecutar un gestor […]
Sistema y método para proporcionar un nodo de almacenamiento seguro conectado a la red aérea, del 18 de Marzo de 2020, de THE BOEING COMPANY: Un sistema de almacenamiento conectado a la red, que comprende: al menos un medio de almacenamiento extraíble, el al menos un medio de […]
Método, aparato y sistema para detectar condiciones de seguridad de un terminal, del 5 de Febrero de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un aparato para detectar un estado de seguridad del terminal, en donde el aparato está ubicado en una unión entre una red privada y una red pública, […]
Evaluación de procesos para la detección de programas malignos en máquinas virtuales, del 22 de Enero de 2020, de Bitdefender IPR Management Ltd: Un sistema [10] central que comprende al menos un procesador [12] hardware configurado para ejecutar: un hipervisor [30] configurado para […]
Defensa cibernética, del 15 de Enero de 2020, de Cybergym Control Ltd: Una instalación de simulación que comprende: una instalación modelo operativa de una instalación de infraestructura real que imita […]
Método y aparato de detección de amenazas y sistema de red, del 30 de Octubre de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de detección de amenazas que se aplica a un escenario de carga de retardo, el método comprende:
al cargar un localizador uniforme […]
Autoanálisis de memoria dual para asegurar múltiples puntos finales de red, del 2 de Octubre de 2019, de Bitdefender IPR Management Ltd: Un sistema informático que comprende un procesador de hardware y una memoria, configurado el procesador de hardware para ejecutar un hipervisor […]