ES2423491T3 - Aparato, procedimiento y medio para detectar una anomalía de carga útil usando la distribución en n-gramas de datos normales - Google Patents

Aparato, procedimiento y medio para detectar una anomalía de carga útil usando la distribución en n-gramas de datos normales Download PDF

Info

Publication number
ES2423491T3
ES2423491T3 ES04810752T ES04810752T ES2423491T3 ES 2423491 T3 ES2423491 T3 ES 2423491T3 ES 04810752 T ES04810752 T ES 04810752T ES 04810752 T ES04810752 T ES 04810752T ES 2423491 T3 ES2423491 T3 ES 2423491T3
Authority
ES
Spain
Prior art keywords
payload
statistical distribution
octet
model
octet values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES04810752T
Other languages
English (en)
Inventor
Salvatore J. Stolfo
Ke Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Columbia University of New York
Original Assignee
Columbia University of New York
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Columbia University of New York filed Critical Columbia University of New York
Application granted granted Critical
Publication of ES2423491T3 publication Critical patent/ES2423491T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Abstract

Un procedimiento, llevado a cabo por un ordenador, de detección de cargas útiles anómalas transmitidas a través deuna red, que comprende las etapas de: recibir al menos una carga útil dentro de la red (S250; S350); determinar una longitud para los datos contenidos en la al menos una carga útil (S252; S352); generar una distribución estadística de valores de octeto de los datos contenidos en la al menos una carga útil recibidadentro de la red (S256; S354); seleccionar, de entre una pluralidad de distribuciones estadísticas modelo de valores de octeto, una distribuciónestadística modelo de valores de octeto representativa de las cargas útiles normales transmitidas a través de la red, enbase, al menos en parte, a la longitud determinada, en donde la distribución estadística modelo de valores de octeto tieneuna gama de longitudes predeterminada y se selecciona de modo que la longitud determinada para los datos contenidosen la al menos una carga útil esté incluida dentro de la gama de longitudes predeterminada; comparar al menos una parte de la distribución estadística generada de valores de octeto con una parte correspondientede la distribución estadística modelo seleccionada de valores de octeto (S356); e identificar si la al menos una carga útil es una carga útil anómala (S358), en base, al menos en parte, a las diferenciasdetectadas entre la al menos una parte de la distribución estadística generada de valores de octeto para la al menos unacarga útil y la parte correspondiente de la distribución estadística modelo seleccionada de valores de octeto.

Description

Aparato, procedimiento y medio para detectar una anomalía de carga útil usando la distribución en n-gramas de datos normales
Información de prioridad y referencia cruzada con aplicaciones relacionadas
5 Esta solicitud reivindica prioridad de la solicitud provisional de Estados Unidos Nº 60 / 518.742 presentada el 12 de noviembre de 2003, y de la solicitud provisional de Estados Unidos Nº 60 / 613.637 presentada el 28 de septiembre de 2004.
Declaración con respecto a investigación patrocinada federalmente
Esta invención se realizó con el apoyo del Gobierno de los Estados Unidos, según el acuerdo número F30602-02-2-0209 10 concedido por DARPA. El Gobierno de los Estados Unidos tiene ciertos derechos en esta invención.
Trasfondo de la invención
Campo técnico
La presente invención se refiere al análisis de datos y, más específicamente, a la detección de transmisiones de datos anómalos.
15 Descripción de la técnica relacionada
Los sistemas de ordenadores en red consisten en sedes de procesamiento (p. ej., ordenadores anfitriones) que intercambian datos entre sí. Hay varios protocolos usados por los ordenadores para intercambiar datos. Por ejemplo, TCP / IP es un protocolo de red que proporciona el transporte de datos entre ordenadores que están conectados por una red. A cada ordenador anfitrión se asigna una única dirección del protocolo de Internet (IP), y los datos son intercambiados entre 20 direcciones de IP de origen y direcciones de IP de destino, a un puerto de destino en el anfitrión de destino y desde un puerto de origen en el anfitrión de origen. Un número de puerto corresponde a un servicio o aplicación específica que “está a la escucha” de datos enviados al mismo en ese puerto, desde algún anfitrión remoto de origen. Algunos puertos están estandarizados y tienen asignado un servicio habitual bien conocido. Por ejemplo, los servidores basados en la Red tienen habitualmente asignado el puerto 80 para la transmisión de solicitudes de la Red, entregadas mediante paquetes de TCP /
25 IP, con información de control según los comandos del protocolo de transferencia de hipertexto (HTTP) que espera el servidor de la Red. El TCP / IP transfiere tales datos en forma de “paquetes de red” que consisten en la identificación de la dirección de IP, los números de puertos, la información de control y la carga útil. La carga útil son los datos efectivos esperados por el servicio o la aplicación. En el caso del tráfico de la Red, la carga útil puede consistir, por ejemplo, en solicitudes GET para páginas de la Red representadas por los URL.
30 Según las redes, tal como Internet, se tornan más accesibles para los usuarios, aumenta significativamente la cantidad de datos transmitidos. Esto presenta una oportunidad para que los individuos causen daño a los ordenadores de usuarios desprevenidos. Los gusanos y los virus, en particular, son causas bien conocidas de grietas de seguridad en sistemas de ordenadores. Estos están constituidos por datos maliciosos enviados a un servicio o aplicación, que se aprovechan de una vulnerabilidad (tal como un desborde de un almacén temporal que proporciona acceso como usuario privilegiado al
35 programa ejecutable del gusano) que provoca que el servicio o aplicación quede inhabilitado, casque o brinde privilegios no autorizados a un atacante. Algunos ejemplos comunes incluyen los recientes gusanos y virus Código Rojo, Nimda y Sobig. Los sistemas convencionales diseñados para detectar y defender los sistemas ante estos sucesos maliciosos e intrusivos dependen de “rúbricas” o “huellas dactilares” que son desarrolladas por seres humanos, o por medios semiautomatizados provenientes de gusanos o virus malignos anteriormente conocidos. Actualmente, los sistemas son
40 protegidos después de que ha sido detectado un gusano, y que ha sido desarrollada y distribuida una rúbrica a los detectores basados en rúbricas, tal como un detector de virus o una regla de cortafuegos.
A fin de reducir la potencial amenaza de los ataques, se establece un cortafuegos para proteger los ordenadores dentro de una red. Los cortafuegos con sistemas de ordenadores que habitualmente permanecen en la pasarela de una red de ordenadores, o que residen en una red, enfrente de un anfitrión u ordenador servidor crítico, y que inspeccionan el tráfico a 45 y desde la red o servidor, y determinan qué tráfico puede avanzar, y qué tráfico será filtrado. Los cortafuegos también pueden ser implementados en forma de software en ordenadores individuales. Como ejemplo, los gusanos que se propagan son habitualmente filtrados por cortafuegos que han sido pre-cargados con una “regla de rúbrica” que detecta la apariencia de un gusano específico. Cuando un paquete y su carga útil “coinciden” con una cadena de rúbrica conocida asociada a un gusano, el cortafuegos bloqueará los paquetes de TCP / IP que el gusano entregó, impidiendo que el
50 servidor sea atacado por ese gusano.
Este enfoque padece de dos problemas fundamentales. En primer lugar, las cadenas de rúbrica asociadas a los gusanos solamente pueden ser construidas después de que el gusano ha sido detectado. Esto significa que el gusano no fue
efectivamente detectado en su primera aparición y, lógicamente, atacó al menos a un servidor, causando daño al servidor. La protección no es posible hasta que un tercero haya construido una cadena de rúbrica y la haya desplegado extensamente en todas las sedes y cortafuegos de la red. Puede perderse un tiempo precioso durante este proceso, que habitualmente puede requerir muchos días. Durante este tiempo, el gusano se habrá extendido con éxito ampliamente por 5 Internet, dañando a muchos miles, si no millones, de anfitriones. Esto es porque los gusanos, en particular, se propagan rápidamente en Internet e infectan y destruyen sistemas a velocidades muy altas. En segundo lugar, hay muchísimos gusanos que han aparecido en Internet, y cada uno de estos ha tenido diversas cadenas de rúbrica construidas para su detección, que están cargadas en todos los cortafuegos. Esto implica que, a lo largo del tiempo, los cortafuegos deben crecer en complejidad a fin de almacenar, procesar y correlacionar muchas cadenas de rúbrica con cada carga útil de
10 paquete entregada a la pasarela o al servidor.
Se han hecho varios intentos para detectar gusanos analizando la velocidad de escaneo y sondeando desde orígenes externos que indicarían que una propagación de gusano está en marcha. Desafortunadamente, este enfoque detecta el comienzo temprano de una propagación y, por definición, el gusano ya ha penetrado con éxito en un sistema, lo ha infectado y ha iniciado su daño y propagación.
15 En base a lo precedente, sería beneficioso proporcionar un sistema capaz de detectar datos potencialmente dañinos transmitiéndose a través de una red. También sería beneficioso proporcionar un sistema capaz de determinar si datos potencialmente dañinos son o no un programa malicioso. Sería adicionalmente beneficioso proporcionar rúbricas para filtrar programas maliciosos, tales como gusanos y virus, tras una aparición inicial de tales programas.
C. Krügel, T. Toth y E. Kirda describen un Procedimiento Específico de Servicios de Detección de Anomalías para la 20 Detección de Intrusiones por Red, el 30 de abril de 2002 (2002-04030).
Matthew V. Mahoney describe un Procedimiento de Detección de Anomalías de Tráfico en Red en base a Octetos de Paquetes, el 12 de marzo de 2003 (2003-03-12).
Matthew V. Mahoney y Philip K. Chan describen Modelos de Aprendizaje del Tráfico en Red para Detectar Ataques Noveles, en agosto de 2002 (2002-08).
25 Carol Taylor y Jim Alves-Foss describen el NATE: Análisis en Red de Sucesos Anómalos de Tráfico, un Enfoque de Bajo Coste, el 13 de septiembre de 2001 (2001-09-13).
Sumario de la invención
Estas y otras necesidades son abordadas por la presente invención, en la cual pueden ser detectados datos potencialmente dañinos transmitiéndose a través de una red. Una o más realizaciones de la presente invención utilizan el 30 análisis estadístico de los datos contenidos en una carga útil a fin de determinar si la carga útil es o no potencialmente dañina. El análisis estadístico puede tener la forma de una distribución de valores de octetos de los datos contenidos en la carga útil. Los datos transmitidos a través de la red son comparados con un modelo de datos “normales” previamente recibidos por la red, a fin de determinar su probabilidad de ser dañinos. Los datos normales recibidos por la red pueden ser determinados modelando el tráfico recibido durante un periodo de tiempo fijado. De tal modo, los datos normales
35 representan el flujo regular del tráfico a través de la red y, por lo tanto, pueden incluir buenos datos, datos potencialmente dañinos y ruido. Estos datos normales pueden luego ser recogidos y procesados para crear una distribución estadística modelo que se compara con la distribución estadística de datos recientemente recibidos.
Los aspectos y realizaciones de la invención se exponen según las reivindicaciones adjuntas.
Según una o más implementaciones, las diferencias entre la distribución estadística de dicha al menos una carga útil y la
40 distribución modelo se determinan en base a una métrica de distancia entre las dos. La métrica de distancia, optativamente, puede ser calculada en base a diversas técnicas que incluyen, por ejemplo, una distancia de Mahalanobis. Otras implementaciones de la invención son capaces de determinar si una carga útil anómala es o no un gusano o un virus. Las rúbricas, optativamente, pueden ser generadas para toda carga útil determinada como un gusano o un virus.
Según una o más realizaciones de la presente invención, se proporciona un procedimiento para modelar datos de carga
45 útil recibidos en una red. El procedimiento comprende las etapas de: recibir una pluralidad de datos de carga útil en la red; crear una distribución de longitudes de carga útil para todos los datos de carga útil recibidos; dividir la distribución de longitudes de carga útil en una pluralidad de gamas de carga útil; generar una distribución estadística para cada dato de carga útil recibido; y construir una carga útil modelo para cada gama de carga útil, en base a las distribuciones estadísticas de todos los datos de carga útil recibidos, abarcados por la gama de longitudes de carga útil.
50 Según al menos una implementación específica, la carga útil modelo se construye en base a los datos de carga útil recibidos más recientemente, o los actuales. Además, una o más implementaciones de la presente invención pueden detectar automáticamente cuándo han sido recogidos suficientes datos de carga útil para construir la carga útil modelo.
Por tanto, han sido esbozadas las características más importantes de la invención y varias, pero no todas, las realizaciones, a fin de que la descripción detallada a continuación pueda ser mejor entendida, y a fin de que la presente contribución a la técnica pueda ser mejor apreciada. Hay, por supuesto, características adicionales de la invención que serán descritas más adelante en la presente memoria, y que formarán la materia objeto de las reivindicaciones adjuntas.
5 A este respecto, antes de explicar una o más realizaciones de la invención en mayor detalle, ha de entenderse que la invención no está limitada en su aplicación a los detalles de construcción ni a las disposiciones de los componentes expuestos en la siguiente descripción, o ilustrados en los dibujos. Antes bien, la invención es capaz de otras realizaciones y de ser puesta en práctica y llevada a cabo de diversas maneras. Además, ha de entenderse que la fraseología y terminología empleadas en la presente memoria son con fines de descripción, y no deberían considerarse como
10 limitadoras.
De tal modo, los expertos en la técnica apreciarán que la concepción sobre la cual se basa esta revelación puede ser utilizada inmediatamente como una base para el diseño de otras estructuras, procedimientos y sistemas para llevar a cabo los diversos propósitos de la presente invención. Es importante, por lo tanto, que las reivindicaciones sean consideradas como incluyentes de tales construcciones equivalentes, en tanto no se aparten del espíritu y del alcance de
15 la presente invención.
Estas, y varias, características novedosas que caracterizan la invención son señaladas con especificidad en las reivindicaciones adjuntas, que forman parte de esta revelación. Para una mejor comprensión de la invención, sus ventajas operativas y los beneficios específicos logrados por sus usos, debería hacerse referencia a los dibujos adjuntos y a las realizaciones preferidas de la invención, que ilustran la mejor modalidad contemplada para poner en práctica la invención.
20 Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques que ilustra conceptualmente un sistema para detectar cargas útiles anómalas, de acuerdo a al menos una realización ejemplar de la presente invención.
La Figura 2 es un diagrama de flujo que ilustra las etapas realizadas para modelar datos de carga útil recibidos en una red, según una o más realizaciones de la presente invención.
25 La Figura 3A es un gráfico que ilustra una distribución de longitudes para datos de carga útil, de acuerdo a una o más realizaciones de la presente invención.
La Figura 3B es un gráfico que ilustra una distribución de longitudes para datos de carga útil, de acuerdo a una o más realizaciones de la presente invención.
La Figura 4 es una distribución estadística de datos contenidos en cargas útiles ejemplares.
30 La Figura 5A es un total de frecuencias de octetos, ordenados por categoría, de los datos contenidos en cargas útiles.
La Figura 5B es un total de frecuencias de octetos, ordenados por categoría, de los datos mostrados en la Figura 4.
La Figura 6A es una cadena Z de rúbrica de carga útil ejemplar, correspondiente a los datos en la Figura 5A.
La Figura 6B es una cadena Z de rúbrica de carga útil ejemplar, correspondiente a los datos en la Figura 5B.
La Figura 7 es un diagrama de flujo que ilustra las etapas realizadas para modelar datos de carga útil, de acuerdo a una o 35 más realizaciones de la presente invención.
La Figura 8 es un diagrama de flujo que ilustra la manera de la cual los datos de carga útil son recogidos automáticamente, de acuerdo a una o más realizaciones de la presente invención.
La Figura 9 es un diagrama de flujo que ilustra las etapas realizadas para detectar cargas útiles anómalas transmitidas a través de una red.
40 La Figura 10 es un diagrama de flujo que ilustra las etapas realizadas para detectar cargas útiles anómalas, según una o más realizaciones de la presente invención.
La Figura 11 es un diagrama que ilustra la detección de un ejemplo de gusano.
La Figura 12 es un diagrama de bloques que ilustra conceptualmente la entrega de distintos tipos de ficheros a un ordenador, por una red.
45 La Figura 13 es un diagrama de flujo que ilustra las etapas realizadas para identificar tipos de ficheros, según una o más realizaciones de la presente invención.
Las Figuras 14A a 14I son gráficos que ilustran la distribución estadística de distintos tipos de ficheros.
La Figura 15 es un diagrama de flujo que ilustra las etapas realizadas para modelar un tipo de fichero según una o más realizaciones de la presente invención.
La Figura 16 es un diagrama de flujo que ilustra las etapas realizadas para verificar tipos de ficheros, según una o más 5 realizaciones de la presente invención.
La Figura 17 es un diagrama de flujo que ilustra las etapas realizadas para identificar programas maliciosos, según una o más realizaciones de la presente invención.
La Figura 18 es un diagrama de bloques que ilustra conceptualmente un ataque por varios sistemas de ordenador.
La Figura 19 es un diagrama de flujo que ilustra las etapas realizadas para rastrear el origen de una transmisión, según 10 una o más realizaciones de la presente invención.
Descripción detallada de la invención
Se hará ahora referencia en detalle a una o más realizaciones de la invención. Tales realizaciones se proporcionan a modo de explicación de la invención, que no está concebida para limitarse a las mismas. De hecho, los medianamente expertos en la técnica apreciarán, al leer la presente especificación y ver los presentes dibujos, que pueden hacerse
15 diversas modificaciones y variaciones.
Por ejemplo, las características ilustradas o descritas como parte de una realización pueden ser usadas en otras realizaciones, para producir otra realización más. Adicionalmente, ciertas características pueden ser intercambiadas con dispositivos o características similares, no mencionados aún, que realizan las mismas, o similares, funciones. Por lo tanto, se pretende que tales modificaciones y variaciones estén incluidas dentro de la totalidad de la presente invención.
20 Antes de describir los detalles de la invención, se presentará una breve exposición de algunas de las notaciones y nomenclatura usadas en la descripción. Luego, se presentará una descripción de hardware ejemplar, utilizable al poner en práctica la invención.
Notaciones y nomenclatura
Las descripciones detalladas que siguen pueden ser presentadas en términos de procedimientos de programas
25 ejecutados en un ordenador, o una red de ordenadores. Estas descripciones y representaciones procedimentales son un medio usado por los expertos en la técnica para transmitir efectivamente la sustancia de su obra a otros expertos en la técnica. A fin de ejecutar tales procedimientos, puede ser necesario extraer información de uno o más orígenes externos o dispositivos de entrada. La información también puede ser extraída desde diversos dispositivos de almacenamiento, que pueden estar situados tanto internamente como externamente. Al completar la fase de ejecución, la información puede ser
30 emitida a diversos orígenes, tales como un dispositivo visor, un dispositivo de almacenamiento magnético, dispositivos de memoria no volátil, memoria volátil y / o impresoras. La información puede ser adicionalmente transmitida a dispositivos remotamente situados, usando diversos procedimientos y redes de comunicación, tales como las cableadas, inalámbricas, satelitales, ópticas, etc.
El término “medio legible por ordenador”, según se usa en la presente memoria, se refiere a cualquier medio que participe
35 en el suministro de instrucciones a un procesador para su ejecución. Un medio de ese tipo puede adoptar muchas formas, que incluyen, sin limitación, medios no volátiles, medios volátiles y medios de transmisión. Los medios no volátiles incluyen, por ejemplo, discos ópticos o magnéticos. Los medios volátiles incluyen memoria dinámica instalada en el ordenador. Los medios de transmisión pueden incluir cables coaxiales, alambre de cobre y fibras ópticas. Los medios de transmisión también pueden adoptar la forma de ondas acústicas o lumínicas, tales como las generadas durante las
40 comunicaciones de datos de frecuencia de radio (RF) e infrarrojos (IR). Las formas comunes de medios legibles por ordenador incluyen, por ejemplo, el disco rígido, la cinta magnética, cualquier otro medio magnético, un CD-ROM, un DVD, cualquier otro medio óptico, una RAM, una PROM, una EPROM, una FLASH-EPROM, cualquier otro chip o cartucho de memoria, una onda portadora según lo descrito más adelante en la presente memoria, o cualquier otro medio desde el cual pueda leer un ordenador.
45 Panorama general de la detección de anomalías basada en cargas útiles
La presente invención tiene, como un objetivo al menos, analizar los datos de carga útil recibidos en una red. El análisis puede ser usado para diversos propósitos, que incluyen, por ejemplo, modelar el flujo normal de tráfico a través de la red. Una o más realizaciones de la presente invención admiten detectar la primera ocurrencia de un gusano en una pasarela de un sistema de red, e impedirle entrar, en primer lugar. De tal modo, puede impedirse que el gusano se empeñe en sus 50 acciones destructivas y en su propagación. En cambio, una o más realizaciones de la presente invención realizan, en parte, el análisis y la modelación de cargas útiles “normales”, de las que se espera que sean entregadas a un servicio o
aplicación de red.
En una o más realizaciones, la presente invención incluye una fase de “aprendizaje” que recoge cargas útiles “normales” y produce una distribución estadística de n-gramas (o “valores de octeto”) de esas cargas útiles, lo que sirve como un modelo para las cargas útiles “normales”. Las cargas útiles recogidas no son necesariamente cargas útiles seguras. Más 5 bien, estas cargas útiles representan información transmitida a través de la red durante un periodo regular de tiempo. Esto se denomina una carga útil modelo. Después de que esta carga útil modelo ha sido producida en la fase de aprendizaje, comienza una fase de detección de anomalías. La fase de detección de anomalías captura cargas útiles entrantes al servicio, o a la aplicación, de la red. La carga útil entrante es sometida a pruebas para determinar diferencias con respecto a la carga útil modelo. Esto puede hacerse, por ejemplo, probando la carga útil en cuanto a su consistencia (o distancia)
10 con respecto a la carga útil modelo. En una o más realizaciones de la presente invención, se calcula un “centroide” para todos los datos de carga útil que han sido recogidos durante la fase de aprendizaje. El modelo de centroide funciona entonces como una carga útil modelo para detectar cargas útiles anómalas.
Según una o más realizaciones de la presente invención, cualquiera carga útil determinada como demasiado distinta a la carga útil normal (p. ej., esperada) se considera anómala y es filtrada, o atrapada de otro modo, para que no sea enviada 15 al servicio, o a la aplicación. Esto puede prevenir una infección potencial si se determina posteriormente que la carga útil es un gusano o un virus. El nivel de tolerancia admitido puede ser fijado por el usuario, o fijado automáticamente en base a criterios predeterminados. En una o más realizaciones de la presente invención, el modelo de centroide puede ser calculado en base a la distribución del total de frecuencias de octetos del conjunto de las cargas útiles “normales” analizadas durante la fase de aprendizaje (o de entrenamiento). Al menos una de las métricas de distancia que pueden 20 ser usadas es la métrica de distancia de Mahalanobis. En una o más realizaciones de la presente invención, la distancia de Mahalanobis puede ser aplicada a un histograma discreto finito de frecuencias de valores (o caracteres) de octetos, calculadas en la fase de entrenamiento. Hay numerosas opciones de ingeniería posibles para implementar las técnicas de la presente invención en un sistema, e integrar el detector con un cortafuegos estándar, cortafuegos agentes de aplicaciones, u otra tecnología de seguridad informática basada en una red, o basada en un anfitrión, para impedir la
25 primera aparición de un gusano entrando a un sistema protegido, de red o anfitrión. El sistema de detección de anomalías de la presente invención puede estar basado en la distribución estadística de valores de octeto en la carga útil de la conexión de red. Según una o más realizaciones de la presente invención, puede construirse un perfil para la carga útil normal de la conexión, que sea específica para la sede y puerto, y usarse luego para detectar cualquier desviación significativa de la carga útil de la nueva conexión, como un posible ataque malicioso.
30 Como una primera etapa, las cargas útiles que han atravesado cortafuegos y han sido entregadas a servicios y puertos anfitriones pueden ser recogidas mediante un archivo (o registro), o auditadas en tiempo real. Estos datos (es decir, las cargas útiles recibidas) constituyen los datos de entrenamiento a partir de los cuales se obtiene un modelo normal (o carga útil modelo). El conjunto de cargas útiles puede tener una amplia gama de longitudes, según, por ejemplo, la cantidad de datos entregados al servicio.
35 Como una segunda etapa, la distribución de las longitudes de cargas útiles de las conexiones puede ser modelada, y la distribución de longitudes puede ser dividida en múltiples gamas. En general, la longitud de las conexiones puede variar sobre una gama muy amplia, p. ej., desde unos pocos octetos a millones de octetos. Las distintas gamas de longitudes, por lo tanto, pueden tener distintos tipos de carga útil. Por ejemplo, las conexiones breves del HTTP contienen usualmente letras y dígitos, y las conexiones muy largas del HTTP a menudo contienen imágenes, recortes de vídeo, ficheros
40 ejecutables, etc., que contienen un montón de caracteres no imprimibles. Por tanto, según un aspecto de la presente invención, pueden ser construidos modelos de carga útil para distintas gamas de longitudes de conexión. Esto puede tener ventajas sobre la construcción de solamente un modelo para todas las conexiones.
Según una o más realizaciones de la presente invención, la distribución de las longitudes de conexión puede ser modelada sin ninguna hipótesis previa, mediante el uso de estimaciones de núcleo. Las estimaciones de núcleo allanan la
45 contribución de cada punto de datos observados en una vecindad local de ese punto. Pueden ser generadas curvas de probabilidad para las conexiones del HTTP entrantes / salientes. Las curvas de probabilidad pueden ser divididas según valores acumulativos de probabilidad. Las gamas de alta probabilidad tendrán pequeños tamaños de contenedor, mientras que las gamas de baja probabilidad tendrán grandes tamaños de contenedor.
Adicionalmente, hay otras técnicas que pueden ser usadas para dividir las gamas de longitudes. Por ejemplo, pueden ser
50 usados algoritmos de agrupamiento de diversas clases, por los cuales las métricas de distancia empleadas pueden estar basadas en las métricas de distancia aplicadas a distribuciones de caracteres de n-gramas, según se describe más completamente más adelante. Una vez que la distribución de longitudes ha sido dividida en gamas específicas, los datos de entrenamiento de las cargas útiles normales se dividen en subconjuntos disjuntos de cargas útiles que tienen longitudes definidas por la división. Por ejemplo, si una división de longitudes identifica una gama como entre 0 y 50,
55 entonces todas las cargas útiles de longitud acotada por 50 octetos serán incluidas en este subconjunto de cargas útiles.
La siguiente etapa implica modelar todas las cargas útiles normales dentro de cada gama de longitudes. Para aquellas
conexiones cuya longitud esté dentro de alguna gama de longitudes, puede calcularse el total de frecuencias medias de octetos, para los octetos ASCII entre 0 y 255. Esta distribución de frecuencias de octetos individuales se llama una distribución de 1-gramas. Las distribuciones también pueden ser construidas para 2-gramas (dos octetos consecutivos), 3-gramas (tres octetos consecutivos), etc. Además, la distribución de frecuencias puede ser de hetero-gramas, lo que 5 significa que se usa una mezcla, por ejemplo, de distribuciones de 1-gramas y 2-gramas. Según se usa en la presente memoria, una distribución de hetero-gramas es una mezcla de modelos de n-gramas de distinto tamaño dentro de los datos. Los ejemplos de otras mezclas pueden incluir, sin limitación: 1-gramas y 3-gramas; 1-gramas y 4-gramas; 2gramas y 3-gramas; 2-gramas y 5-gramas; 3-gramas y 4-gramas; 3-gramas y 7-gramas; 1-gramas, 3-gramas y 4gramas; 1-gramas, 5-gramas, 7-gramas, 3-gramas, 2-gramas, 5-gramas, 3-gramas, 4-gramas; etc. Puede usarse
10 prácticamente cualquier mezcla. El uso de 1-gramas, como ejemplo, si la frecuencia de caracteres está ordenada desde la más alta a la más baja, es usualmente similar a una distribución Zipf, con una larga cola.
Al menos una técnica (pero no la única técnica) para detectar una carga útil anómala es determinar si algún valor de carácter o de octeto aparece o no en la carga útil en cuestión, con una frecuencia de ocurrencia muchas veces mayor o menor que la que se esperaría de los datos de entrenamiento observados. Tal frecuencia de caracteres, junto con la 15 varianza de cada octeto, puede caracterizar la carga útil dentro de alguna gama. Otra forma de representarla es usar una “cadena de rúbrica de carga útil normal”, que es la correspondiente cadena de octetos ASCII de la anterior distribución ordenada de frecuencias, donde los caracteres o valores de octetos que tienen una frecuencia cero son ignorados. Obviamente, si se considera la varianza de cada octeto, puede obtenerse una “vecindad de cadenas de rúbrica de carga útil normal”, lo que significa que cada octeto tiene una vecindad que contiene otros diversos octetos que pueden ser
20 posiblemente ordenados en ese lugar si se considera la varianza, además de la frecuencia promediada.
Las nuevas cargas útiles pueden ser probadas para detectar en cuánto se apartan del modelo normal. Esto puede hacerse, por ejemplo, comparando la distribución de frecuencias de octetos de la nueva carga útil con el modelo de carga útil normal. Una vez que está construido el perfil, hay múltiples maneras de comparar la carga útil de alguna nueva conexión con dicho perfil, para detectar cualquier gran diferencia o desviación. La métrica de distancia de Mahalanobis es
25 una de esas funciones de distancia que calculan la similitud entre dos distribuciones de frecuencia.
La fórmula de la distancia de Mahalanobis es , donde
es el vector de características del perfil, calculado a partir de una fase de entrenamiento previa. La matriz B de Covarianza,
, y A = B-1. Suponiendo que los octetos sean estadísticamente independientes, la matriz B quedará diagonal y los elementos son solamente la varianza de la frecuencia promedio de cada octeto. Para hacer que el cálculo 30 sea sencillo y rápido, puede obtenerse la distancia simplificada de Mahalanobis, como
, donde n es igual a 256 si se usa un 1-grama. Si se aplica este procedimiento a la distribución de frecuencias de 2-gramas, entonces habría n = 2562, o 65.536, contenedores. Pueden usarse diversos procedimientos para reducir significativamente este número. En general, el cálculo será lineal con respecto a la longitud de la carga útil de la conexión que está siendo probada.
35 Modelación de datos de carga útil
Con referencia a los dibujos, e inicialmente a la Figura 1, se muestra un sistema 100 para detectar cargas útiles anómalas, según una o más realizaciones de la presente invención. El sistema 100 de detección de cargas útiles de la Figura 1 incluye un servidor 110 que recibe datos (p. ej., cargas útiles o datos de cargas útiles) desde orígenes externos, tales como, por ejemplo, Internet 116. El servidor 110 también puede incluir un cortafuegos 112 que ayuda a proteger al 40 servidor 110 ante ataques potenciales. El cortafuegos 112 funciona para filtrar ciertos datos, a fin de reducir la posibilidad de que se transmitan virus y gusanos al servidor 110 desde Internet 116. El servidor 110 también puede estar acoplado con una o más estaciones 114 de trabajo y / u otros servidores 118. Las estaciones 114 de trabajo se conectan, e interactúan, con Internet 116 a través del servidor 110. Más específicamente, cada estación 114 de trabajo transmite datos al servidor 110, y el servidor 110 transmite posteriormente estos datos a un destino mediante Internet 116. Los
45 datos de diversos orígenes pueden ser recibidos por el servidor 110, y filtrados a través del cortafuegos 112. Una vez que los datos han sido filtrados, el servidor 110 remite los datos a las estaciones 114 de trabajo a fin de facilitar la interacción con dispositivos remotamente situados.
El servidor 110 genera una distribución estadística para los datos de cargas útiles recibidos desde la red (o desde Internet 116), según se expone en mayor detalle más adelante. El servidor 110 puede almacenar una pluralidad de distribuciones 50 modelo (es decir, cargas útiles modelo) que representan, o corresponden a, las distribuciones estadísticas de las cargas útiles normales recibidas por el servidor 110. La distribución estadística de los nuevos datos de carga útil recibidos por el servidor 110 es comparada con una carga útil modelo seleccionada. La carga útil modelo es seleccionada, al menos en parte, en base al tamaño de los datos de la carga útil actual, recibidos por el servidor 110. Por ejemplo, si los datos de la carga útil actual, recibidos por el servidor 110, tienen 256 octetos, entonces la carga útil modelo seleccionada por el
servidor 100 incluirá al menos una gama que abarque 256 octetos.
El servidor 110 compara las distribuciones a fin de identificar cargas útiles anónimas. Habitualmente, una carga útil anómala tendrá ciertas diferencias en su distribución estadística, con respecto a la carga útil modelo. Según una o más realizaciones de la presente invención, el servidor 110 es capaz de procesar adicionalmente las cargas útiles, o datos, 5 anómalos, a fin de determinar si corresponden a programas maliciosos tales como, y sin limitaciones, los gusanos o virus. Si se detecta un gusano o un virus, el servidor 110 puede, optativamente, generar un patrón de virus o rúbrica de gusano, que pueda ser usado protegerse a sí mismo y a otras máquinas. Por ejemplo, según una o más realizaciones de la presente invención, cuando el servidor 110 detecta y genera un patrón de virus (o rúbrica de gusano), actualiza automáticamente las reglas para el cortafuegos 112, de modo que el virus o gusano identificado sea filtrado si es 10 adicionalmente transmitido desde Internet 116, o desde otras redes. Otras realizaciones (o realizaciones solapadas) de la presente invención permiten al servidor 110 transmitir los patrones de virus y las rúbricas de gusanos a otros servidores remotos 118. Los servidores remotos 118 pueden estar conectados con el servidor 110 a través de una conexión segura y / o directa, según lo ilustrado en la Figura 1. Alternativamente, los patrones y rúbricas de virus pueden ser transmitidos a través de Internet 116 a los servidores remotos 118. Una vez que los servidores remotos 118 reciben los patronos y
15 rúbricas de virus, pueden actualizar sus reglas de filtrado, de modo que puedan protegerse a sí mismos y a los dispositivos conectados ante aplicaciones maliciosas transmitidas por Internet 116.
Según una o más realizaciones de la presente invención, múltiples servidores (p. ej., 110 y 118) pueden usar el sistema 110 de detección de cargas útiles para identificar datos anómalos. Cada servidor individual (por ejemplo, los de números 110 y 118 de referencia) realizaría las mismas técnicas para identificar datos anómalos, y determinaría adicionalmente si 20 corresponden a gusanos o virus. Sin embargo, debido a que los servidores 110, 118 están remotamente situados, es probable que reciban datos distintos desde la red, o Internet 116. Por lo tanto, cada servidor 110, 118 puede identificar potencialmente a distintos tipos de gusanos o virus. Además, cada servidor 110, 118 puede interactuar e intercambiar información con respecto a patrones de virus y rúbricas de gusanos, de modo que todos los servidores 110, 118 puedan actualizar sus reglas de cortafuegos para filtrar los gusanos o virus más recientemente descubiertos. Además, las
25 estaciones 114 de trabajo individuales pueden implementar las técnicas de la presente invención a fin de proporcionar otra capa de seguridad y / o protegerse independientemente a sí mismas.
Según una o más realizaciones de la presente invención, el servidor 110 crea la distribución modelo en base a datos recibidos a través de la red 116. Por ejemplo, el servidor 110 puede implementar diversas técnicas para capturar, o fisgar, los datos que recibe o transmite. Esta información es tabulada y usada para representar el flujo normal de datos a través
30 de la red. En consecuencia, el flujo normal de datos puede incluir, de forma concebible, ruido y / o programas maliciosos. El servidor 110 puede recoger los datos para un periodo de tiempo prescrito y generar posteriormente la distribución modelo de los datos que han sido recogidos.
La Figura 2 es un diagrama de flujo que ilustra las etapas realizadas para generar una carga útil modelo, según una o más realizaciones de la presente invención. Estas etapas pueden ser realizadas, por ejemplo, por el servidor 110, para 35 generar la carga útil modelo que será comparada con los datos de cargas útiles recibidos por la red 116. En la etapa S210, el servidor recibe los datos de carga útil. Los datos de carga útil pueden ser recibidos desde una pluralidad de orígenes, que incluyen, por ejemplo, otras redes, Internet, redes inalámbricas, redes satelitales, etc. En la etapa S212, se crea una distribución de longitudes para los datos de carga útil que han sido recibidos. Debería observarse, sin embargo, que el servidor puede recibir continuamente datos de carga útil, hasta que un momento tal en que haya recogido una
40 cantidad predeterminada de datos, suficiente para construir la carga útil modelo. La distribución de longitudes creada por el servidor en S212 corresponde a la distribución de longitudes de las cargas útiles individuales recibidas por el servidor durante un periodo de entrenamiento.
Con referencia adicional a la Figura 3A, se muestra un diagrama ejemplar de distribución de longitudes. El diagrama de distribución de longitudes de la Figura 3A muestra la distribución de los datos recibidos, en base al tamaño de la carga 45 útil. Por ejemplo, según se muestra en la Figura 3A, el número de cargas útiles que tienen una longitud cercana al cero es muy baja. Sin embargo, el número de cargas útiles que tienen una longitud que sea de aproximadamente 200 octetos es significativamente mayor. Según se reduce el número de octetos, también se reduce el número de cargas útiles que tienen tal longitud. Esto puede atribuirse al hecho de que la mayoría de los datos recibidos corresponderá a texto y / o ficheros pequeños. Sin embargo, los ficheros más grandes corresponderán a imágenes y / o ficheros de vídeo o de
50 sonido. La Figura 3B ilustra otra distribución de longitudes de datos de carga útil, que oscila entre 0 y 10.000 octetos.
Con referencia nuevamente a la Figura 2, en la etapa S214 se divide la distribución de longitudes. El proceso de división puede hacerse, en parte, para generar múltiples cargas útiles modelo que puedan ser comparadas selectivamente con los datos de carga útil recibidos. Según una o más realizaciones de la presente invención, al menos una ventaja de dividir la distribución de longitudes es reducir la cantidad de tiempo necesaria para calcular la diferencia entre la distribución 55 estadística de la carga útil recibida, en comparación con la distribución de la carga útil modelo. Hay diversas técnicas que pueden ser usadas para dividir la distribución de longitudes. Por ejemplo, según una realización de la presente invención, al menos un algoritmo de agrupamiento puede ser usado para dividir la distribución de longitudes. La distribución de
longitudes también puede ser dividida usando estimaciones de núcleo.
En la etapa S216, se genera una distribución estadística para cada una de las particiones creadas a partir de la distribución de longitudes. La distribución estadística puede corresponder, por ejemplo, a la distribución de frecuencias de los caracteres ASCII (o los datos) contenidos en la carga útil. Con referencia adicional a la Figura 4, se ilustra una
5 distribución estadística de cargas útiles ejemplares con una longitud de entre 150 y 155 octetos. Según la realización ejemplar de la Figura 4, la distribución estadística corresponde al total de frecuencias de octetos de los datos contenidos en la carga útil. Por ejemplo, el eje x representa el valor numérico del carácter ASCII, mientras que el eje y corresponde al número de veces que apareció un carácter específico en la carga útil. El eje y puede ser normalizado, en correspondencia con el porcentaje del número de apariciones de un carácter o valor de octeto específico.
10 Según una o más realizaciones de la presente invención, puede usarse una técnica de n-gramas para agrupar los octetos al generar la distribución estadística. Usando una técnica de ese tipo, la variable n corresponde a una agrupación específica de octetos, que puede adoptar distintos valores. Por ejemplo, en una distribución de 2-gramas, los pares adyacentes de octetos serían agrupados entre sí, como una característica. De manera similar, usando una distribución de 4-gramas, 4 octetos adyacentes serían agrupados como una característica. Debería observarse adicionalmente que una o
15 más realizaciones de la presente invención pueden proveer la distribución de hetero-gramas de la carga útil, según lo descrito anteriormente. Por ejemplo, una parte de la distribución de longitudes puede ser agrupada como 2 octetos, mientras que otras partes son agrupadas como tres, o cuatro, etc. De tal modo, según la complejidad de la distribución de longitudes y / o de los datos recibidos por el servidor, una distribución en hetero-gramas puede ser usada para reducir la cantidad de tiempo necesaria para calcular la diferencia entre los datos de una carga útil recibida y las cargas útiles
20 modelo.
Según una o más realizaciones de la presente invención, la distribución estadística puede ser dispuesta de diversas formas. Por ejemplo, un total de frecuencias de octetos ordenados por clasificación puede ser generado a partir de la distribución de valores de octetos. La Figura 5A ilustra un total de frecuencias de octetos ordenados por clasificación de las distribuciones de caracteres. En la Figura 5A, el carácter que aparecía con la mayor frecuencia es correlacionado con
25 el carácter uno en el eje x. El siguiente carácter correlacionado, más frecuentemente recibido, estaba contenido en los datos de la carga útil. En consecuencia, en el gráfico de frecuencias de octeto, ordenado por clasificación, la parte de más a la derecha del gráfico está vacía. Además, para la longitud de conexión de la muestra y los datos de carga útil probados para este ejemplo, solamente estaban presentes 29 caracteres.
La Figura 5B ilustra otro gráfico ejemplar de frecuencias de octeto, ordenado por clasificación, para una longitud de
30 conexión de entre 150 y 155 octetos (ilustrado en la Figura 4). Como puede verse en la Figura 5B, había más caracteres ASCII presentes en los datos de carga útil, en comparación con la Figura 5A. En particular, estaban presentes 83 caracteres ASCII. Por tanto, la parte más a la derecha del gráfico no tiene ningún valor.
Con referencia nuevamente a la Figura 2, en la etapa S218 se construye la carga útil modelo, o las cargas útiles modelo. Según el número de divisiones generadas, se construiría un número correspondiente de cargas útiles modelo. Por
35 ejemplo, si la distribución de longitudes fuera dividida en 20 secciones, habría 20 distintas cargas útiles modelo construidas. Según una o más realizaciones de la presente invención, cada carga útil modelo puede ser generada en forma de una cadena de rúbrica de carga útil.
Con referencia a la Figura 6A, se muestra una rúbrica “cadena Z” 150 de carga útil ejemplar, correspondiente al total de frecuencias de octeto, ordenado por clasificación de la Figura 5A. La cadena Z de rúbrica de carga útil es un valor de 40 cadena formado directamente a partir de los datos de distribución estadística que representan los valores específicos de octetos en orden de frecuencia, desde la más alta a la más baja. Además, las cadenas Z de rúbrica de carga útil de la presente invención pueden tener distintas longitudes, según el contenido de los datos. Como se muestra en la Figura 6A, la cadena 150 de rúbrica de carga útil incluye una pluralidad de caracteres ASCII. La tabla 160 ilustra en mayor detalle los datos correspondientes a aquellos caracteres que aparecieron con la mayor frecuencia. Como puede verse a partir de la
45 Figura 6A, la tabla solamente incluye 29 entradas. Este valor corresponde al número de caracteres que aparecieron para la longitud de conexión de la muestra.
La Figura 6B ilustra una cadena de rúbrica de carga útil ejemplar para el gráfico de frecuencias ordenadas por clasificación de la Figura 5B. La cadena 170 de rúbrica también se muestra con la correspondiente tabla que contiene los valores de cada carácter del gráfico. De manera similar a la Figura 6B, solamente 83 entradas están presentes en la tabla
50 180. Este valor corresponde nuevamente al gráfico en la Figura 5B.
Una vez que han sido construidas las cargas útiles modelo, el servidor compara cada dato de carga útil recibido con las cargas útiles modelo, a fin de identificar cargas útiles anómalas. Además, según lo indicado anteriormente, los datos de carga útil recibidos son comparados con una carga útil modelo, que corresponde a la longitud de los datos de carga útil. Por ejemplo, si los datos de una carga útil recibida tuvieran una longitud de 40 octetos, serían comparados con una 55 cadena de rúbrica de carga útil tal como la de la Figura 6A. Análogamente, si los datos de la carga útil recibida tienen una
longitud de 153 octetos, serían comparados con una cadena de rúbrica de carga útil tal como la de la Figura 6B.
Pasando ahora a la Figura 7, se ilustra un diagrama de flujo para construir cargas útiles modelo, según una o más realizaciones de la presente invención. En la etapa S250, son recibidos los datos de carga útil. Esto corresponde al servidor que recibe datos a través de la red. En la etapa S252, se crea una distribución de longitudes para los datos de 5 carga útil. Como se ha expuesto anteriormente, el servidor recibirá una pluralidad de datos de carga útil, suficientes para crear cargas útiles modelo. Una vez que hayan sido recibidos la pluralidad de datos de carga útil, puede crearse la distribución de longitudes. Alternativamente, una cantidad mínima de datos puede ser recibida por el servidor, y la distribución de longitudes puede ser creada inicialmente en base a estos datos. Según se reciben los datos, la distribución de longitudes sería continuamente actualizada, y las cargas útiles modelo construidas serían refinadas para reflejar mejor
10 el tipo de datos que están siendo recibidos actualmente a través de la red.
En la etapa S254, la distribución de longitudes es dividida en una pluralidad de divisiones. Según lo expuesto anteriormente, la distribución de longitudes puede ser dividida usando estimaciones de núcleo y / o diversas técnicas de agrupamiento. En la etapa S256, se crea una distribución de valores de octeto para cada división. En S258, los datos de carga útil son clasificados en las distintas divisiones. Por ejemplo, si una de las divisiones corresponde a datos de carga
15 útil con una longitud de entre 0 y 50 octetos, entonces cualquier dato individual de carga útil que cayera dentro de esa gama sería clasificado en esa división específica. En S260, se construye una carga útil modelo para cada división.
Según una o más realizaciones de la presente invención, pueden aplicarse diversas técnicas para construir y / o refinar las cargas útiles modelo. Por ejemplo, según lo ilustrado en la Figura 7, los datos de carga útil contenidos en cada división pueden ser compilados en la etapa S262. Esto corresponde a una etapa donde todos los datos de carga útil en la división
20 son combinados para un procesamiento adicional. Una vez que las cargas útiles en las divisiones están compiladas, se calcula un centroide para cada división en la etapa S264. El centroide puede ser calculado usando cualquiera entre una pluralidad de técnicas de cálculo. En la etapa S266, el centroide es designado como la carga útil modelo. En consecuencia, usando este procedimiento de refinación de la carga útil modelo, el centroide (es decir, la carga útil modelo recientemente designada) sería usado para determinar si los datos de carga útil entrantes son o no anómalos.
25 Alternativamente, en la etapa S268, se crea una pluralidad de distribuciones de longitudes de división. Una distribución de longitudes de división es sencillamente la distribución de los datos dentro de la división, según lo expuesto anteriormente. Una vez que está creada la distribución de longitudes de división, los datos son agrupados en la etapa S270, para generar una pluralidad de distribuciones de agrupamiento. En la etapa S272, se calcula un centroide para cada agrupación que haya sido generada. En la etapa S274, se calcula un centroide modelo. Según una o más realizaciones de la presente
30 invención, el centroide modelo calculado en la etapa S247 corresponde al centroide de todos los centroides de agrupamiento que fueron calculados en la etapa S272. En consecuencia, el centroide modelo es el centroide de una pluralidad de centroides. En la etapa S276, el centroide modelo es designado como la distribución modelo. Así, los datos entrantes serían comparados con el centroide modelo a fin de determinar cargas útiles anómalas que, en potencia, podrían ser un programa malicioso.
35 Según una o más realizaciones de la invención, el algoritmo de agrupamiento usado conjuntamente con la etapa S270 puede ser un algoritmo incremental en tiempo real, y puede no ser necesario especificar el número de agrupamientos de antemano. Un número inicial de agrupamientos, K. puede ser fijado para que corresponda al máximo número admisible posible de agrupamientos. Por ejemplo, un valor de K = 10 puede ser suficiente para representar el número de distintas clases de tráfico de carga útil de red. Una nueva carga útil, que es analizada durante la fase de entrenamiento, puede ser
40 usada para actualizar las estadísticas de un centroide previamente calculado, que sea el más similar a la nueva carga útil. Si todavía no hay ningún centroide calculado, o ningún centroide existente que sea similar a la nueva carga útil, entonces la nueva carga útil es usada como un nuevo centroide. Si el número total de centroides es mayor que K, entonces los dos centroides más similares pueden ser fundidos combinando sus estadísticas en una distribución. Cuando la fase de entrenamiento está completa, ciertos centroides pueden ser podados, reteniendo solamente aquellos centroides que
45 fueron calculados con un número mínimo especificado de cargas útiles de entrenamiento. Tal poda de centroides “subentrenados” puede ayudar en la identificación del “ruido” en los datos de entrenamiento, lo que podría representar, posiblemente, una carga útil “mala” que, en otro caso, no sería identificada durante la fase de detección.
Según una o más realizaciones de la presente invención, el servidor es adicionalmente capaz de eliminar por antigüedad datos que han sido recibidos, de modo que la distribución modelo en uso pueda reflejar con precisión el tipo de datos que 50 está fluyendo actualmente a través de la red. Por ejemplo, en la etapa S278, el servidor puede comprobar la fecha en las cargas útiles que han sido recibidas y usadas para generar la distribución modelo. En la etapa S280, el servidor determina si la fecha de los datos de una carga útil es mayor que, o más antigua que, un umbral predeterminado. Por ejemplo, a fin de mantener, o de conservar actual, el perfil de la carga útil, puede determinarse que solamente los datos de cargas útiles recibidos dentro de los últimos seis meses deberían ser usados para construir la distribución modelo. En base a un 55 ejemplo de ese tipo, los datos de una carga útil que tengan una antigüedad de más de seis meses superarían el umbral. Si la fecha de los datos de carga útil supera el umbral, entonces el control pasa a la etapa S282, donde se descartan los datos de la carga útil. Alternativamente, si la fecha de los datos de carga útil no supera el valor de umbral, entonces el
servidor continúa sencillamente recibiendo datos de carga útil en la etapa S284.
Según una o más realizaciones de la presente invención, el servidor puede recibir y procesar continuamente datos de carga útil para refinar incrementalmente las distribuciones modelo. De tal modo, el servidor continuaría recibiendo los datos de carga útil y el control, optativamente, pasaría a la etapa S252, donde se crearía una nueva distribución de
5 longitudes. Además, una o más realizaciones de la presente invención pueden fijar un marco temporal, para el cual se requeriría al servidor generar una nueva distribución modelo. Así, una vez que el marco temporal se ha agotado, el servidor recogería datos y crearía una nueva distribución de longitudes en la etapa S252, y redefiniría las cargas útiles modelo.
Entrenamiento y calibración automáticos
10 Según una o más realizaciones, la presente invención puede realizar entrenamiento y calibración automáticos. La presente invención también es capaz de detenerse automáticamente cuando ha sido suficientemente entrenada. Por ejemplo, puede diseñarse un proceso de entrenamiento de modo tal que esté totalmente automatizado. Pueden establecerse una vez un tamaño de era y un umbral, y el sistema decidiría independientemente cuándo ha sido recibido un entrenamiento suficiente. La era corresponde a una longitud de tiempo predeterminada, o a una cantidad de datos
15 predeterminada. Además, el entrenamiento y la calibración pueden ser efectuados en base, por ejemplo, a umbrales especificados por el usuario. Alternativamente, el sistema podría determinar un umbral inicial para cada modelo de carga útil, probando los datos de entrenamiento y escogiendo el máximo valor de distancia, por ejemplo. El número de paquetes capturados para cada era, optativamente, puede ser ajustado por el usuario. Después de cada era de entrenamiento, los nuevos modelos que han sido recién calculados son comparados con los modelos calculados en la era anterior. El
20 entrenamiento acaba cuando los modelos se tornan “estables”.
La Figura 8 es un diagrama de flujo que ilustra la manera en que el servidor puede detectar cuándo han sido recibidos suficientes datos de carga útil para construir la carga útil modelo, según una o más realizaciones de la presente invención. En la etapa S310, el servidor definiría una era actual. Una era corresponde a una longitud de tiempo predeterminada, durante la cual los datos pueden ser, o están siendo, recibidos. En la etapa S312, el servidor recibiría datos de carga útil
25 de la forma normal. En la etapa S314, un modelo actual de carga útil es construido por el servidor. El modelo actual de carga útil corresponde a un modelo de carga útil para todos los datos de carga útil que hayan sido recibidos durante la era actual.
En la etapa S316, el modelo actual de carga útil es comparado con un modelo anterior de carga útil. En consecuencia, durante la primera era, no habría ningún modelo anterior de carga útil con el cual el modelo actual de carga útil pueda ser
30 comparado. En una o más realizaciones de la presente invención, el servidor puede ser dotado de un modelo inicial de carga útil que ha sido recogido anteriormente. Así, durante la primera iteración, el modelo actual de carga útil sería comparado con el modelo inicial de carga útil guardado. La comparación entre el modelo actual de carga útil y el modelo anterior de carga útil puede ser hecha de muchas maneras, que incluyen, por ejemplo, el cálculo de una distancia estadística entre las dos distribuciones distintas.
35 En la etapa S318, se determina si la distancia entre el modelo actual de carga útil y el modelo anterior de carga útil es menor que un umbral predeterminado. Si la distancia es menor que el umbral predeterminado, entonces se han recogido datos suficientes para construir el modelo de carga útil. El proceso se detiene en la etapa S320. En consecuencia, el modelo actual de carga útil sería usado como la carga útil modelo para comparar los datos entrantes de carga útil. Alternativamente, si la distancia es mayor que el valor de umbral, entonces una nueva era se define en la etapa S322. En
40 la etapa S324, el modelo actual de carga útil es designado como el modelo anterior de carga útil. El control vuelve entonces a la etapa S312, donde el servidor recibe datos de carga útil para la nueva era que ha sido configurada en la etapa S322. El proceso se repite iterativamente hasta que la distancia entre el modelo actual de carga útil y el modelo anterior de carga útil sea menor que el valor de umbral.
Según una o más realizaciones de la presente invención, la estabilidad para cada modelo, para cada puerto, puede ser
45 decidida por dos métricas: la primera es el número de nuevos modelos (antes del agrupamiento) producidos en una era; la segunda es la distancia Manhattan sencilla de cada modelo, después de la era actual, al calculado en la anterior era de entrenamiento. Si ambas métricas están dentro de algún umbral, los modelos se consideran estables y el entrenamiento se detiene. Si se están monitorizando múltiples puertos, puede usarse una métrica adicional. Esta métrica adicional puede examinar el porcentaje de los puertos estables sobre los puertos totales que se están monitorizando. Si el porcentaje de
50 puertos estables es mayor que algún umbral definido por el usuario, concluye todo el proceso de entrenamiento. Los modelos de los puertos “inestables”, optativamente, podrían ser descartados porque no están bien entrenados y no deberían ser usados para la detección de anomalías durante las pruebas.
Una vez que el entrenamiento está completo, puede determinarse un umbral de anomalía. En lugar de usar un umbral universal para todos los centroides, se selecciona un umbral distinto para cada uno. Tales umbrales de resolución fina 55 pueden mejorar la precisión. Esto puede lograrse de diversas maneras. Por ejemplo, el muestreo puede ser realizado durante la fase de entrenamiento. Las muestras pueden ser usadas luego para ayudar a decidir los umbrales iniciales usados durante el tiempo de detección automáticamente. Durante el proceso de entrenamiento, se mantiene un almacén temporal de muestras de carga útil para cada centroide. Hay un número mínimo y máximo de muestras, y una tasa s% de muestreo. Antes de alcanzar el número mínimo, cada carga útil de paquetes en este contenedor será puesta en 5 muestras. Cada carga útil luego tiene una probabilidad, s, de ser puesta en muestras temporalmente almacenadas. Después de llenar el almacén temporal hasta su tamaño máximo, se usa un almacenamiento temporal del estilo “primero en entrar, primero en salir” (FIFO). La más antigua será eliminada por rotación cuando se inserte una nueva muestra. Después de que se acaba la fase entera de entrenamiento, las muestras son calculadas con respecto al centroide y se usa la máxima distancia como el umbral inicial de anomalía para ese centroide. Debido al muestreo de estilo FIFO, el
10 umbral calculado refleja la tendencia más reciente de la carga útil, y realiza un aprendizaje adaptable para asimilar la deriva conceptual. Esto significa que los modelos, y las calibraciones, son calculados para favorecer el entorno más reciente en el cual ha sido incrustado el sistema.
En el mismo comienzo de las pruebas, la presente invención también puede ejecutarse en eras. Después de cada era, la tasa de alerta generada es comparada con algún número definido por el usuario. Si la tasa total de alerta es demasiado
15 alta, el umbral se incrementará en un t%, y comienza la nueva era. Un ciclo de ese tipo se repite hasta que la tasa de alerta llegue a la tasa deseada. Después de esta fase de calibración, el sistema sería considerado estable y listo para ejecutarse en la modalidad de detección. Debería observarse que el sistema continúa entrenando un nuevo modelo para conservar los modelos refrescados y al día, a fin de reflejar el más reciente entorno.
Detección de cargas útiles anómalas
20 La Figura 9 es un diagrama de flujo que ilustra las etapas realizadas para detectar cargas útiles anómalas, transmitidas a través de una red, según una o más realizaciones de la presente invención. En la etapa S350, el servidor recibe datos de carga útil desde la red. Esto corresponde a datos que pueden ser recibidos, por ejemplo, desde una red, ya sea externa, interna, inalámbrica o satelital, etc., En la etapa S352, el servidor determina la longitud de los datos contenidos en la carga útil. En la etapa S354, se genera una distribución estadística para los datos contenidos en la carga útil. Por ejemplo, el
25 servidor analizaría los datos contenidos en la carga útil y generaría, por ejemplo, una distribución estadística de los caracteres que aparecen en los datos, según lo expuesto anteriormente. En la etapa S356, la distribución estadística de los datos de carga útil es comparada con una distribución modelo. Por ejemplo, el servidor contendría una pluralidad de distribuciones modelo, según lo anteriormente expuesto, que pueden ser extraídas y aplicadas a tamaños adecuados de cargas útiles. En la etapa S358, el servidor identifica como cargas útiles anómalas aquellas cargas útiles que, por
30 ejemplo, son suficientemente distintas de la distribución modelo, en base a criterios predeterminados del usuario. En consecuencia, cualquier carga útil que sea identificada como anómala sería descartada, o bien adicionalmente analizada.
La Figura 10 es un diagrama de flujo que ilustra la manera en que las cargas útiles anómalas pueden ser detectadas, según una o más realizaciones de la presente invención. En la etapa S410, la carga útil es recibida por el servidor. En la etapa S412, el servidor determina la longitud de los datos contenidos en la carga útil. En la etapa S414, se genera una 35 distribución estadística para los datos de carga útil. Según una o más realizaciones de la presente invención, los datos de carga útil pueden ser distribuidos, por ejemplo, usando distribuciones de n-gramas o hetero-gramas. Esto es ilustrado en la etapa S416. Según una o más realizaciones de la presente invención, diversos factores de peso pueden ser asignados a distintos valores de octeto en la distribución estadística. Esto es ilustrado en la etapa S418. Los diversos factores de peso son seleccionados de modo que los valores de octeto que posiblemente puedan corresponder a códigos de
40 operación de un ordenador, o dispositivo de red, son ponderados en mayor medida y, por tanto, examinados con un mayor escrutinio. Los factores de peso pueden mejorar, al menos en parte, la capacidad del servidor para detectar programas maliciosos, tales como los gusanos, que ejecutan diversos códigos de operación del ordenador o dispositivo. Por ejemplo, los códigos de operación pueden ser códigos de máquina para instrucciones de salto, o para escribir caracteres del idioma correspondientes a operaciones aritméticas, y así sucesivamente.
45 Según tales realizaciones de la invención, las cargas útiles anómalas con una mayor probabilidad de contener código de ordenador malicioso pueden ser identificadas rápidamente. De tal modo, cuando se genera una alerta para alguna carga útil, esa carga útil, optativamente, puede tener una prueba por separado, para determinar si contiene valores de octeto de interés especial o, alternativamente, el puntaje de una carga útil podría ser cambiado para aumentar su “distancia” desde la distribución normal si contiene valores de octeto “distinguidos”. En consecuencia, la distancia de Mahalanobis puede ser
50 modificada para tener en cuenta los valores ponderados, o bien puede usarse una función de distancia distinta que incluya como factores los pesos de ciertos valores de octeto. Al menos algunos de los beneficios de tales realizaciones incluyen: precisión mejorada para identificar código malicioso, reducción de los falsos positivos y asistencia para identificar rápidamente una anomalía de carga útil, como una auténtica gesta del día cero, o un gusano.
En la etapa S420, una distribución modelo es seleccionada por el servidor. La distribución modelo se selecciona de modo
55 que abarque la longitud de los datos contenidos en la carga útil. Por ejemplo, según lo expuesto anteriormente, si una de las distribuciones modelo corresponde a una longitud de carga útil de entre 150 y 155 octetos, entonces cualquier dato de carga útil recibido que tenga una longitud que quede dentro de esa gama sería comparado con esa distribución modelo.
En la etapa 422, se determina si el perfil de la distribución modelo es o no un perfil decadente. Esto puede ocurrir, por ejemplo, en situaciones donde la distribución modelo está dispuesta en un total de frecuencias de octetos, ordenado por categoría. De tal modo, las primeras entradas tendrían un valor mayor, que decae hasta un valor pequeño hacia el final del gráfico.
5 Como se ha indicado anteriormente, la complejidad de cálculo es lineal con respecto a la longitud de la conexión. Para hacerlo más rápido, el cálculo puede ser iniciado a partir de la cola de la distribución de frecuencias de caracteres, y detenerse inmediatamente si la distancia es mayor que el umbral, tanto para la distancia de Mahalanobis como para la distancia de edición de cadena. La parte de la cola de la distribución son aquellos caracteres que nunca aparecieron en el conjunto de datos de entrenamiento (los de frecuencia cero), o aquellos que aparecieron muy rara vez (una frecuencia
10 muy baja). Si tales caracteres aparecen en los datos de prueba, hay una alta probabilidad de que los datos sean anómalos y, por lo tanto, pueden ser maliciosos. En consecuencia, puede reducirse el tiempo para detectar la conexión maliciosa.
En consecuencia, si la distribución modelo tiene un perfil decadente, entonces, en la etapa S424, el servidor selecciona una opción para calcular la medición de distancia desde el final de la distribución. Alternativamente, si la distribución 15 modelo no tiene un perfil decadente, entonces, en la etapa S426, el servidor selecciona la opción para medir la distancia desde el inicio de la distribución modelo. Las distancias medidas en las etapas S424 y S426 corresponden a la comparación hecha con la distribución modelo para determinar las diferencias entre los datos de carga útil recibidos y la distribución modelo. Como se ha expuesto anteriormente, pueden usarse diversas técnicas para calcular la distancia entre las dos distribuciones. En la etapa S428, se determina si la distancia es mayor que un valor de umbral predeterminado. 20 Por ejemplo, el valor de umbral correspondería a una distancia mínima admitida entre la carga útil recibida y la distribución modelo. Si la distancia es menor que el valor de umbral, entonces el servidor identifica los datos de carga útil como datos normales en la etapa S430. Alternativamente, si el servidor determina que la distancia supera el valor de umbral, entonces la carga útil es identificada como anómala en la etapa S432. Si se considera que la carga útil es una carga útil normal en la etapa S430, entonces es sencillamente dirigida al destino identificado y el proceso acaba en la
25 etapa S444. Sin embargo, para cargas útiles que se determinan como anómalas, el servidor puede realizar pruebas adicionales para identificar diversas características de los datos contenidos en la carga útil.
Por ejemplo, en la etapa S434 el servidor determina si la carga útil corresponde o no a un programa malicioso tal como, por ejemplo, un gusano o virus. Esto puede hacerse de varias maneras. Por ejemplo, el servidor puede comparar diversas características de los datos de carga útil con rúbricas conocidas de gusanos o virus. Alternativamente, los datos de carga
30 útil pueden ser transmitidos a una sede controlada, donde puede permitirse que el programa sea ejecutado, o pueda ser emulado, de modo que pueda determinarse si el programa es efectivamente malicioso.
Según una o más realizaciones de la presente invención, el servidor puede identificar la cadena común más larga, o la sub-secuencia común más larga, hallada en cargas útiles que se consideran anómalas. Si los paquetes o cargas útiles entrantes (o de ingreso) son considerados anómalos, y los paquetes o cargas útiles salientes (o de egreso) son 35 considerados anómalos, y los paquetes entrantes tienen la misma dirección de destino que los paquetes salientes, entonces las cargas útiles pueden ser comparadas para determinar las cadenas comunes más largas, o las subsecuencias comunes más largas, de ambas cargas útiles anómalas. En base a la cadena común más larga, o a la subsecuencia común más larga, el anfitrión generaría una rúbrica que identifica al gusano o virus específico, y que sirve como un filtro de contenido para el gusano o virus. Si se determina efectivamente que los datos anómalos no son un
40 gusano o un virus, entonces se descartan en la etapa S436 y el proceso acaba para esos datos específicos de carga útil. Alternativamente, si se determina que la carga útil es un gusano o virus, entonces la rúbrica es generada en la etapa S438. En la etapa S440, todos los patrones de virus o rúbricas de gusanos que han sido generados por el servidor son transmitidos a otros servidores, encaminadores, estaciones de trabajo, etc., para el filtrado de contenidos.
Según una o más realizaciones de la presente invención, el servidor puede ajustar automáticamente el valor del umbral
45 para ayudar y / o mejorar la capacidad de detectar datos anómalos de carga útil. Esto está ilustrado en la etapa S442. Por ejemplo, un procedimiento para ajustar automáticamente el valor del umbral requiere que el servidor fije un umbral de alerta. El umbral de alerta correspondería a un número predeterminado de alertas que el servidor generaría. Cada alerta correspondería a un dato de carga útil anómala. De tal modo, si el umbral de alerta es 100 para un periodo de tiempo de una hora, entonces el servidor ajustaría automáticamente el umbral si no se generan 100 alertas dentro de un periodo de
50 tiempo de una hora. El servidor también puede tener un margen de error, tal como, por ejemplo, +5 alertas. Por lo tanto, si el servidor genera entre 95 y 105 alertas dentro de un periodo de una hora, no se hace ningún ajuste. Sin embargo, si el servidor genera solamente 80 alertas dentro del periodo de tiempo, esto sugeriría que el valor del umbral es demasiado alto y que la distancia entre las cargas útiles recibidas y las cargas útiles modelo no es lo bastante larga como para superar el umbral. Por lo tanto, el servidor reduciría el valor del umbral de modo que se generara un mayor número de
55 alertas. Alternativamente, si el servidor está generando un mayor número de alertas, tal como 150, entonces el umbral puede ser aumentado, de modo que se generen menos alertas.
La Figura 11 es un gráfico que muestra la distancia de diversos datos de carga útil a las distribuciones modelo. La pluralidad de los datos de carga útil caen dentro de una distancia predeterminada de la carga útil modelo. Sin embargo, gusano de código rojo tiene una distancia que supera ampliamente el agrupamiento general de las cargas útiles normales recibidas. Por tanto, en esta situación, el servidor identificaría fácilmente el gusano de código rojo como un ataque potencial al servidor.
5 Para el ejemplo mostrado en la Figura 11, la carga útil efectiva del gusano Código Rojo fue usada como el objetivo de la detección, para mostrar cuán efectiva puede ser esta técnica para detectar el gusano del día cero y los virus. Los datos de entrenamiento fueron rastreados a partir del tráfico de la Red a un servidor de la Red, durante un periodo de tiempo de 24 horas. Las cargas útiles de entrenamiento fueron divididas en distintos subconjuntos, según su división por longitudes, y fueron calculados los modelos normales. La carga útil del Código Rojo fue analizada luego. La distribución de valores de
10 octeto en su carga útil fue calculada, y comparada con la distribución normal de perfiles de carga útil.
El gráfico en la Figura 11 muestra la distancia de Mahalanobis simplificada de las conexiones dentro de la gama de longitudes entre 380 y 385, tanto para las conexiones normales como para el ataque del Código Rojo. Como puede verse, la conexión del ataque del Código Rojo tiene una distancia mucho mayor que todas las otras conexiones normales. En consecuencia, dado un umbral predeterminado, puede ser detectado fácilmente como algo malicioso, y rechazado sin
15 dañar al servidor de la Red. El umbral puede ser fijado durante la fase de entrenamiento. Un valor posible es el máximo de los valores de distancias de los datos de entrenamiento, más alguna tolerancia. Usando esta técnica, el anfitrión puede ser protegido de los virus / gusanos, incluso antes de que se publique cualquier rúbrica de virus.
En lugar de usar las métricas de distancia para calcular la similitud, también puede usarse la “cadena Z de rúbrica de carga útil normal” para lograr el mismo objetivo. Teniendo el perfil “cadena Z de rúbrica” y la cadena de octetos de nuevos
20 datos de conexión a probar, puede usarse una sencilla distancia de edición de cadena para obtener su puntaje de similitud. La distancia de edición de cadena solamente cuenta cuántos caracteres están descolocados con respecto a la cadena de rúbrica del perfil. Una ventaja de la distancia de edición de cadena es el hecho de que no implica ningún cálculo numérico, sino solamente la comparación de equivalencia de cadenas. Esto puede dar como resultado un muy rápido cálculo de distancia.
25 Uso ejemplar de la invención
Dispositivos de red
Una o más realizaciones de la presente invención pueden ser implementadas en un sistema de ordenador que rastrea pasivamente y audita el tráfico de red en una red de ordenadores, o pueden ser implementadas en el mismo ordenador operando sobre un cortafuegos de red, o pueden ser implementadas en un ordenador anfitrión o servidor, para el cual ha 30 sido calculado un perfil. Una o más realizaciones conciben construir un dispositivo de red capaz de calcular modelos de cargas útiles normales para una multitud de servicios y puertos, para tráfico tanto entrante como saliente. El dispositivo puede distribuir modelos de detección de anomalías a un cortafuegos, para filtrar el tráfico a fin de proteger a cualquier servicio en le red. Alternativamente, el sistema de detección de cargas útiles puede ser implementado en una tarjeta de interfaz de red de un ordenador anfitrión o servidor, sin necesidad de instalar nuevo software en el servidor o anfitrión, o de
35 instalar un nuevo aparato o dispositivo en el sistema de la red.
Aprendizaje incremental
Según una o más realizaciones de la presente invención, un modelo de 1-gramas con distancia de Mahalanobis puede ser implementado como una versión incremental, solamente con poca información más almacenada en cada modelo. Una versión incremental de este procedimiento puede especialmente útil por varios motivos. En primer lugar, un modelo puede
40 ser calculado sobre la marcha en una forma automática de “manos libres”. Ese modelo mejorará en su precisión según el tiempo avanza y más datos son muestreados. Además, una versión incremental en línea también puede “eliminar por antigüedad” los datos viejos del modelo, manteniendo una visión más precisa de las cargas útiles más recientes que fluyen a o desde un servicio.
Una o más realizaciones de la presente invención permiten que los ejemplos más viejos usados en el entrenamiento del
45 modelo sean eliminados por antigüedad. Esto puede ser logrado, al menos en parte, especificando un parámetro de decadencia del modelo más viejo y potenciando las distribuciones de frecuencias que aparecen en las nuevas muestras. Esto permite la actualización automática del modelo para mantener una visión precisa de las cargas útiles normales vistas más recientemente.
El cálculo de la versión incremental de la distancia de Mahalanobis puede lograrse de varias maneras, según la
50 implementación específica de la presente invención. Por ejemplo, la media y la desviación estándar se calculan para cada carácter ASCII visto para cada nueva muestra observada. Para la frecuencia media de un carácter, se calcula
a partir de los ejemplos de entrenamiento. Optativamente, puede almacenarse el número de muestras procesadas, N. Esto permite que la media sea actualizada como
cuando se observa una nueva muestra xN+1. Dado que la desviación estándar es la raíz cuadrada de la varianza, el cálculo de la varianza puede ser reescrito usando el valor esperado E, como:
Var(X) = E(X – EX)2 = E(X2) – (EX)2
5 Esta desviación estándar puede ser actualizada de manera similar si también se almacena el promedio de los xi2 en el modelo.
Según tales realizaciones de la presente invención, solamente es necesario mantener una formación adicional de 256 elementos en cada modelo que almacena el promedio de los xi2 y el número total de observaciones N. De tal modo, el modelo de distribución de octetos por n-gramas puede ser implementado como un sistema de aprendizaje incremental,
10 fácilmente y muy eficazmente. El mantenimiento de esta información extra también puede ser usado en el agrupamiento de muestras, según se describe en mayor detalle más adelante.
Tamaño reducido del modelo por agrupamiento
Como se ha expuesto anteriormente, un modelo Mij se calcula para cada contenedor i de longitudes observadas de las cargas útiles enviadas al puerto j. En ciertas circunstancias, una tal modelización de resolución fina podría introducir 15 problemas. Por ejemplo, el tamaño total del modelo puede hacerse muy grande. Esto puede ocurrir cuando las longitudes de carga útil están asociadas a ficheros de medios que pueden ser medidos en gigaoctetos y se definen muchos contenedores de longitudes. Por consiguiente, debe calcularse un gran número de centroides. Además, la distribución de octetos para cargas útiles del contenedor i de longitudes puede ser muy similar a la de las cargas útiles de los contenedores i-1 e i+1 de longitudes, porque difieren en un octeto. El almacenamiento de un modelo para cada longitud
20 puede a veces ser redundante y derrochador. Otro problema es que, para algunos contenedores de longitudes, puede no haber suficientes muestras de entrenamiento. La poca densidad implica que los datos generarán una distribución empírica que será una estimación imprecisa de la verdadera distribución, lo que lleva, potencialmente, a un detector defectuoso que genera demasiados errores.
El sistema de detección de anomalías de la presente invención proporciona varias soluciones posibles para abordar estos
25 problemas. Según una o más realizaciones de la presente invención, una solución para abordar el problema de la poca densidad es relajar los modelos asignando un mayor factor de allanamiento a las desviaciones estándar. Esto puede permitir una mayor variabilidad de las cargas útiles. Al menos una realización adicional (o solapada) de la invención “pide prestados” datos de los contenedores vecinos para aumentar el número de muestras. En otras palabras, los datos de los contenedores vecinos son usados para calcular otros modelos “similares”. Dos modelos vecinos pueden ser comparados
30 usando la distancia sencilla de Manhattan para medir la similitud de sus distribuciones medias de frecuencias de octetos. Si su distancia es menor que algún umbral t, se funden esos dos modelos. Esta técnica de agrupamiento se repite hasta que no puedan ser fundidos más modelos vecinos. Esta fusión también puede ser calculada usando el algoritmo incremental descrito anteriormente. Como se ha expuesto anteriormente, una técnica de ese tipo implica actualizar las medias y varianzas de los dos modelos, para producir una nueva distribución actualizada.
35 Para nuevos datos de prueba observados, con longitud i, enviados al puerto j, pueden usarse el modelo Mij, o el modelo con el que fue fundido. Si la longitud de los datos de prueba está fuera de la gama de todos los modelos calculados, entonces se usa el modelo cuya gama de longitudes esté más cerca de la de los datos de prueba. En estos casos, el mero hecho de que la carga útil tenga una tal longitud inusual, no observada durante el entrenamiento, puede ser por sí mismo la causa para generar una alerta.
40 Debería observarse que tanto el algoritmo de modelación como el proceso de fusión de modelos son cálculos temporales lineales y, por tanto, la técnica de modelación es muy rápida y puede ser realizada en tiempo real. Adicionalmente, el algoritmo de aprendizaje en línea asegura que los modelos mejorarán con el tiempo, y que su precisión se mantendrá incluso cuando los servicios sean cambiados y se observen nuevas cargas útiles.
Tráfico correlacionado de ingreso y de egreso para detectar la propagación de gusanos y generar rúbricas
45 La auto-propagación es una característica clave y una condición necesaria para los gusanos. La auto-propagación significa que, una vez que un gusano infecta una máquina, comenzará a atacar otras máquinas automáticamente, intentando enviar una copia de sí mismo, o una variante de la misma, a otro anfitrión susceptible. Por ejemplo, si una máquina queda infectada por el gusano Código Rojo II a partir de alguna solicitud recibida en el puerto 80, entonces esta máquina comenzará a enviar la misma solicitud al puerto 80 de otras máquinas. Tal patrón de propagación es verdadero
50 para casi todo gusano. Por lo cual, si puede ser detectado algún tráfico de egreso al puerto i que sea muy similar a esos tráficos anómalos de ingreso al puerto i, hay una alta probabilidad de que un gusano dirigido al puerto i esté propagándose.
Según una o más realizaciones de la presente invención, el tráfico malicioso entrante puede ser detectado, y una alerta puede ser generada. Al mismo tiempo, la carga útil puede ser proporcionada como una cadena en el almacén temporal para el puerto i, y comparada con el tráfico saliente, con respecto a todas las cadenas, para ver cuáles devuelven el más alto puntaje de similitud. Si el puntaje es mayor que algún umbral predeterminado, se supone una posible propagación de 5 gusano. Además, la presente invención puede ser implementada en una máquina servidora, tal como, por ejemplo, un servidor de la Red. Los servidores de la Red, en general, tienen una gran cantidad de solicitudes entrantes, pero las solicitudes salientes son habitualmente improbables. Por lo cual, cualquier solicitud saliente ya es bastante sospechosa, y debería ser comparada con las cadenas maliciosas. Si la máquina anfitriona está funcionando a la vez como servidor y cliente, lo que significa que son comunes tanto las solicitudes entrantes como las solicitudes salientes, la misma técnica
10 de modelación sería aplicada al tráfico saliente, y usada solamente para comparar el tráfico de egreso ya juzgado como malicioso.
Una o más realizaciones de la presente invención también proporcionan múltiples métricas que pueden ser usadas para decidir la similitud entre dos cadenas. Las más comunes son la sub-cadena común más larga (LCS) o la sub-secuencia común más larga (LCSec). La diferencia entre ellas es: la sub-cadena común más larga es contigua, mientras que la sub15 secuencia común más larga no necesariamente lo es. LCSec tiene la ventaja de poder detectar gusanos “polimórficos” y “metamórficos”; pero pueden introducir falsos positivos. Otras técnicas, tales como los procedimientos de modelación de probabilidad que tienen en cuenta los tamaños de sub-cadena dependientes del contexto, también pueden ser aplicadas por la presente invención. El puntaje de similitud devuelto es el porcentaje de la longitud de la parte común dentro de la longitud total de la cadena de carga útil maliciosa. Una implementación alternativa (o solapada) para calcular una rúbrica
20 sería calcular el conjunto de (al menos una de) las sub-cadenas que aparezcan más frecuentemente dentro de la carga útil que aparece en dos o más ejemplos de datos anómalos.
Según una o más realizaciones adicionales (o solapadas), la presente invención puede ser usada para generar automáticamente rúbricas de gusano. Calculando el puntaje de similitud, la sub-cadena o sub-secuencia coincidente, que representa la parte común del tráfico malicioso de ingreso y de egreso, también son calculadas. Dado que el tráfico que 25 está siendo comparado ya está juzgado como malicioso, lo que significa que la carga útil es bastante distinta a las normales, estas cadenas comunes representan la rúbrica del contenido del gusano. Por tanto, correlacionando la carga útil maliciosa de ingreso y de egreso, la presente invención es capaz de detectar la muy inicial propagación del gusano, y de identificar su rúbrica o rúbrica parcial inmediatamente, sin ninguna implicación externa. Esto ayuda a resolver el problema del gusano del día cero. Tales rúbricas pueden luego ser comunicadas a otros anfitriones y dispositivos para el
30 filtrado de contenidos, a fin de eliminar toda aparición adicional del gusano que infecte a cualquier otro anfitrión en la red.
Detección de gusanos más precisa por seguridad colaborativa
Según una o más realizaciones de la presente invención, el sistema de detección de anomalías puede ser implementado en múltiples anfitriones y dispositivos en una red. Los anfitriones y dispositivos pueden luego colaborar entre sí, por ejemplo, intercambiando alertas y posibles rúbricas de gusanos. En consecuencia, un gusano puede ser rápidamente
35 identificado, e impedirse su extensión, porque múltiples anfitriones se informan mutuamente de la misma rúbrica de gusano. La rúbrica puede luego ser anunciada a fin de aplicar el filtrado de contenidos rápidamente por toda la red. Usando tales estrategias colaborativas de seguridad, es posible reducir la probabilidad de que los gusanos puedan extenderse a lo largo y a lo ancho, y ocupar la red.
Identificación de ficheros
40 Hay varias complicaciones que pueden resultar de los entornos en red, algunos referidos al hecho de que la red puede ser usada en un entorno de oficina. Para complicar estos problemas, están las altas velocidades a las cuales pueden ser transmitidos los datos por múltiples redes. En consecuencia, el personal de operaciones y / o de seguridad de una red puede desear conocer cómo son efectivamente usados los ordenadores en la red, y qué tipos de datos son comunicados entre los anfitriones dentro y fuera de la red. Esto puede entrañar, por ejemplo, determinar los tipos de ficheros y medios
45 transmitidos entre ordenadores (y usuarios) dentro de la red. Si bien la mayoría de las transmisiones son generalmente inofensivas, a veces pueden proporcionar un camino para esparcir programas maliciosos, tales como virus y gusanos. Además, algunos empleadores mantienen información confidencial y / o personal que no debería ser diseminada fuera del lugar de trabajo. Tales empleadores a menudo promulgan políticas que advierten a los empleados no transmitir ciertos ficheros y / o información a ordenadores fuera de la red de la compañía. También puede ser el caso que los empleadores
50 no deseen que ciertos tipos de ficheros sean recibidos desde (o transmitidos a) redes u ordenadores externos.
A fin de imponer algunas de estas políticas, el tráfico a través de la red de la compañía está habitualmente monitorizado, de modo que ciertos ficheros puedan ser bloqueados o examinados. Por ejemplo, un anexo “Patente25.doc” de correo electrónico puede ser examinado si los documentos de Word no deberían ser transmitidos a ordenadores externos. Sin embargo, es relativamente sencillo enmascarar (u ocultar) el verdadero tipo de un fichero, cambiando sencillamente la 55 extensión asociada al nombre del fichero. Por tanto, un usuario puede evadir fácilmente la política de seguridad, cambiando el nombre del fichero, de Patente25.doc a FotosVacaciones.jpg, por ejemplo. Alternativamente, el fichero
podría recibir un sufijo distinto, indicativo, p. ej., de un fichero de imagen, y transmitido fuera de la red. Una vez recibido, el destinatario podría renombrar el fichero como Patente25.doc y abrirlo, por ejemplo, con el Word de Microsoft. Y al contrario, un anexo de correo electrónico entrante puede ser un virus o gusano que ha sido renombrado, por ejemplo, como Patente25.doc. Una vez abierto, el virus podría causar daño al sistema de ordenador.
5 La Figura 12 es un diagrama de bloques que ilustra ciertas situaciones donde los ficheros pueden ser transmitidos a un usuario furtivamente, o con falsas pretensiones. Por ejemplo, la estación 114 de trabajo está conectada con una red tal como Internet 116. Tres distintos anexos de ficheros han sido transmitidos a la estación de trabajo. El primer anexo 150 de fichero tiene el nombre “hello.doc”. Se supone que este fichero es un fichero de Word de Microsoft. Sin embargo, no es ese el caso. El fichero, en verdad, es un virus (sobig.exe) que ha sido renombrado para que parezca un documento de
10 Word. El segundo anexo 152 de fichero se titula “junk.zip”. Este fichero puede no estar necesariamente renombrado, pero tiene la forma de un fichero de archivo que puede contener múltiples contenidos archivados. Los contenidos archivados no pueden ser vistos hasta que se acceda a, o se abra, el fichero 152 de archivo. Hay situaciones donde un sistema operativo o programa de correo puede acceder automáticamente al fichero 152 de archivo en cuanto es recibido. Así, si un virus está contenido dentro del fichero 152 de archivo, puede ser liberado automáticamente. El tercer anexo 154 se
15 titula “document.pdf”, para que no sea identificado como un fichero de Word. Sin embargo, el fichero se llamaba originalmente “contract.doc”. Todos los ficheros pueden presentar problemas potenciales a la estación 114 de trabajo.
La Figura 13 ilustra un procedimiento de identificación de tipos de fichero transmitidos a través de una red, según una o más realizaciones de la presente invención. En la etapa S510, se recibe una transmisión a través de la red. La transmisión puede ser un mensaje convencional de correo electrónico, y puede incluir varios tipos de información, tales como, por
20 ejemplo, texto, anexos, etc. En la etapa S512, se determina si la transmisión contiene o no algún fichero. Los ficheros pueden ser incluidos en la transmisión como parte de un anexo para el mensaje de correo electrónico. Si la transmisión no incluye fichero alguno, entonces el control avanza a la etapa S526, donde el proceso termina. Sin embargo, si se determina que la transmisión contiene uno o más ficheros, entonces, en la etapa S514, se genera una distribución estadística para los datos contenidos en cada uno de los ficheros en la transmisión.
25 En la etapa S516, se selecciona una distribución modelo. La distribución modelo corresponde a una o más distribuciones estadísticas que han sido generadas para tipos de ficheros predeterminados. Por ejemplo, una distribución específica de ficheros modelo podría ser generada para un fichero .gif. De manera similar, una distribución modelo podría ser generada para un fichero .pdf, un fichero .doc, un fichero .jpeg, etc., usando conceptos previamente descritos y / o los descritos más adelante. Con referencia adicional a las Figuras 14A a 14I, se ilustran las distribuciones modelo de diversos tipos de
30 ficheros. En la etapa S518, la distancia entre la distribución estadística para el fichero es medida con respecto a la distribución modelo. Según lo expuesto anteriormente, pueden ser usados diversos procedimientos para medir la distancia, incluyendo, pero sin limitación, la distancia de Mahalanobis. Adicionalmente, si la transmisión contiene más de un fichero, entonces se aplicaría la prueba de distancia a cada fichero contenido en la transmisión. En la etapa S520, se determina si la distancia entre el fichero recibido y la distribución modelo es o no mayor que un umbral predeterminado. Si
35 esta distancia es mayor que el umbral, entonces el control avanza a la etapa S522. Si la distancia es menor que el umbral, entonces el control avanza a la etapa S524. En este punto, el fichero recibido puede ser identificado como de un tipo específico. Por ejemplo, el tipo para la distribución modelo ya es conocido. Por tanto, puede determinarse que el fichero recibido sea del mismo tipo que la distribución modelo. El control avanzaría entonces a la etapa S526, donde el proceso termina.
40 En la etapa S522, se determina si hay o no distribuciones modelo adicionales. Si no hay más distribuciones modelo adicionales, entonces el proceso también termina sin haber identificado, o haber podido identificar, el tipo del fichero recibido. Sin embargo, si hay distribuciones modelo adicionales disponibles, entonces el control vuelve a la etapa S516, donde se selecciona la siguiente distribución modelo. El proceso continuaría hasta que los ficheros recibidos sean probados con respecto a todas las distribuciones modelo, y se determine un tipo, o bien no pueda determinarse un tipo.
45 Según una o más realizaciones de la presente invención, si el tipo para el fichero no puede ser determinado, entonces el fichero puede ser descartado o identificado como un virus potencial o un programa malicioso.
La Figura 15 es un diagrama de flujo que ilustra un procedimiento para modelar tipos de ficheros, según una o más realizaciones de la presente invención. En la etapa S550, se recogen una pluralidad de ficheros. Se sabe que los ficheros tienen un tipo específico y / o que son creados como de tales tipos. Por ejemplo, puede recogerse una pluralidad de
50 ficheros .pdf, o una pluralidad de ficheros .doc, ficheros .jpeg, ficheros .gif, etc., Mientras todos los ficheros sean del mismo tipo, pueden ser usados para generar el modelo adecuado. En la etapa S552, se genera una distribución estadística para cada uno de los ficheros que han sido recogidos. En la etapa S554, se combinan las distribuciones estadísticas. Esto puede lograrse de una amplia variedad de maneras, incluyendo, por ejemplo, la sencilla adición de la distribución para cada fichero recogido.
55 En la etapa S556, se forma una pluralidad de agrupamientos para las distribuciones estadísticas. En la etapa S558, se calcula un centroide para cada agrupamiento formado para las distribuciones estadísticas. En la etapa S560, se calcula un centroide modelo. El centroide modelo corresponde al centroide de la pluralidad de centroides de agrupamientos calculados en la etapa S558. En la etapa S562, el centroide modelo es designado como el modelo para representar el tipo de fichero específico. En consecuencia, si están siendo modelados ficheros .pdf, entonces el centroide modelo correspondería a una distribución modelo para ficheros .pdf. En la etapa S566, el proceso termina. Según una o más realizaciones de la presente invención, el tipo de fichero modelo también puede basarse en la distribución estadística
5 combinada para todos los ficheros que han sido recogidos. Esto está ilustrado en la etapa S564. De tal modo, las distribuciones estadísticas combinadas del fichero recogido serían asignadas como la distribución modelo para el tipo de fichero específico.
La Figura 16 es un diagrama de flujo que ilustra las etapas realizadas para verificar tipos de ficheros según una o más realizaciones de la presente invención. En la etapa S610, se recibe el fichero. El fichero puede ser recibido desde 10 cualquiera entre una pluralidad de orígenes, incluyendo, por ejemplo, las transmisiones generales de red, el correo electrónico o los medios portátiles. En la etapa S612, una distribución estadística es generada para el fichero. En la etapa S614, se extrae la distribución modelo correspondiente al tipo de fichero recibido. Por ejemplo, si el tipo de fichero recibido está etiquetado (o designado usando una extensión específica) como un fichero .jpeg, entonces se extraería la distribución modelo adecuada para un fichero .jpeg. En la etapa S616, la distribución estadística para el fichero recibido es comparada
15 con la distribución modelo extraída en la etapa S614. En la etapa S618, se determina si la distribución estadística para el fichero recibido está o no dentro del límite de tolerancia de la distribución modelo. Más específicamente, la distancia entre la distribución estadística para el fichero recibido y la distribución modelo es revisada para determinar si cae o no dentro del umbral de tolerancia.
Si la distancia para la distribución estadística para el fichero recibido está dentro de la tolerancia, entonces el fichero
20 puede ser confirmado como del tipo especificado en el nombre de fichero. Esto se ilustra en la etapa S620. El proceso terminaría así al confirmar el tipo del fichero recibido. Alternativamente, si la distancia de la distribución estadística para el fichero extraído no está dentro de la tolerancia, entonces puede ser generada una alerta para indicar que el fichero no es efectivamente del tipo especificado en el nombre de fichero. Esto está indicado en la etapa S622. En la etapa S624, el fichero puede ser bloqueado, o bien descartado, para transmisiones adicionales a través de la red o estación de trabajo.
25 Según una o más realizaciones de la presente invención, al detectar que un fichero está nombrado inadecuadamente, y que corresponde a un tipo de fichero distinto, pueden realizarse pruebas adicionales para determinar si el fichero es efectivamente un virus fingiendo ser de un tipo de fichero distinto. El control volvería entonces a la etapa S624, donde el fichero puede nuevamente ser bloqueado o descartado para la propagación posterior a través de la red. El proceso termina entonces en la etapa S628.
30 La Figura 17 es un diagrama de flujo que ilustra las etapas realizadas para detectar y / o identificar programas maliciosos, tales como virus y gusanos, según una o más realizaciones de la presente invención, En la etapa S650, una transmisión es recibida a través de la red, o en una estación de trabajo. La transmisión puede ser una transmisión por una red entre múltiples ordenadores, dentro de la red, etc. Adicionalmente, la transmisión puede corresponder a transmisiones internas de datos dentro de una única máquina. Por ejemplo, la transmisión puede corresponder a la lectura de un fichero desde
35 un medio portátil, hacia la memoria de la estación de trabajo.
En la etapa S652, se determina si hay o no algún fichero adosado a la transmisión. Si ningún fichero está adosado a la transmisión, entonces el proceso termina. Si algún fichero está presente en la transmisión, entonces el control avanza a la etapa S654. Se extrae la información con respecto al tipo de cada fichero. La información puede ser extraída, por ejemplo, examinando la extensión en el nombre de fichero. En la etapa S656, se genera una distribución estadística para el fichero. 40 En la etapa S658, se extrae la distribución modelo correspondiente al tipo del fichero. En la etapa S660, la distribución estadística para el fichero es comparada con la distribución modelo extraída. En la etapa S662, se determina si la distribución estadística para el fichero está dentro del umbral de tolerancia. Si es así, entonces, probablemente, el fichero no es un virus y sería identificado como tal en la etapa 664. Sin embargo, si una distribución estadística para el fichero no está dentro de la tolerancia, entonces el fichero es identificado como un virus en la etapa S666. En la etapa S668, la
45 distribución estadística para el fichero puede ser comparada con cualquier distribución estadística de virus conocidos.
Según una o más realizaciones de la presente invención, diversos factores de peso pueden ser asignados a distintos valores de octeto dentro de la distribución estadística. Esto está ilustrado en la etapa S670. Como se ha expuesto anteriormente, pueden ser asignados mayores factores de peso a valores de octeto que pueden corresponder, posiblemente, a códigos de ejecución de máquina, ficheros guión y / u otros programas que puedan causar daño a la 50 máquina. En la etapa S672, se determina si la distribución estadística para el fichero coincide o no con alguna de las distribuciones de virus. Si hay una coincidencia, entonces el tipo de virus es identificado en la etapa S674. Si no se halla ninguna coincidencia, entonces el control avanza a la etapa S676. Los datos contenidos en el fichero son examinados a fin de identificar información concerniente al virus. En la etapa S678, son identificadas cadenas o sub-secuencias comunes cualesquiera dentro del fichero. En la etapa S680, las cadenas o sub-secuencias comunes son usadas para 55 generar una rúbrica para el virus. En la etapa S684, el proceso termina. Según una o más realizaciones de la presente invención, en lugar de examinar los datos en el fichero para generar una rúbrica, la distribución estadística para el fichero puede ser usada como una cadena (o distribución) de rúbrica. Esto está ilustrado en la etapa S682, donde se genera una
rúbrica basada en la distribución para el fichero (es decir, el virus identificado).
Rastreo del origen de transmisión
Según una o más realizaciones, la presente invención puede ser usada para abordar varios problemas asociados al uso de grandes redes, tales como Internet. Un problema de ese tipo implica el uso de agentes de peldaño. Estos agentes son 5 usados por atacantes (o piratas) para ocultar sus verdaderas ubicaciones, mientras lanzan ataques contra diversas máquinas. A menudo, un atacante iniciará el ataque desde una máquina “controlada remotamente” que ha sido previamente pirateada y cuyo control ha sido arrebatado. Estas máquinas controladas remotamente pueden posteriormente lanzar ataques de denegación de servicio sobre diversos ordenadores comerciales, servidores, sedes de la Red, etc. Además, el atacante puede hacer que una máquina controlada remotamente active una segunda máquina
10 controlada remotamente, iniciando por ello un ataque. Una vez que el ataque está iniciado, el ordenador de destino solamente ve información de la máquina que transmite el comando de ataque.
Como el atacante ha tomado el control del ordenador controlado remotamente, el ordenador de destino solamente vería la dirección de IP del ordenador controlado remotamente que causa el ataque. Los piratas pueden usar múltiples niveles, o agentes de peldaño, desde los cuales lanzar tales ataques. Esto hace que sea cada vez más difícil rastrear la ubicación
15 del atacante efectivo. Para complicar adicionalmente la situación, pueden darse a los ordenadores controlados remotamente horas específicas para tomar contacto automáticamente con otro ordenador controlado remotamente y / o iniciar un ataque.
La Figura 18 ilustra un tipo de situación de peldaño. El atacante 200 inicia un ataque contra un ordenador 250 de destino. El ordenador de destino puede estar en la misma vecindad, país o estado del atacante. Sin embargo, el atacante también 20 puede estar situado en cualquier parte del mundo donde se proporciona una conexión a Internet. Según la situación en la Figura 16, el atacante ha tomado el control de cuatro ordenadores controlados remotamente. Estos incluyen el ordenador 210 controlado remotamente de la etapa 1, el ordenador 220 controlado remotamente de la etapa 2, el ordenador 230 controlado remotamente de la etapa 230 y el ordenador 240 controlado remotamente de la etapa 4. Todos estos ordenadores controlados remotamente están bajo el control del atacante. Como se ha expuesto anteriormente, durante las 25 conexiones normales de red, una máquina solamente puede ver información transmitida desde la máquina inmediatamente anterior. Por ejemplo, el ordenador 250 de destino, que es el destino último del ataque, solamente ve información transmitida desde el ordenador 240 controlado remotamente de la etapa 4. De tal modo, el ordenador 250 de destino cree que un ataque está siendo lanzado desde el ordenador 240 controlado remotamente de la etapa 4. Análogamente, el ordenador 240 controlado remotamente de la etapa 4 ve información relacionada con el ordenador 230
30 controlado remotamente de la etapa 3. Yendo hacia atrás, el ordenador 230 controlado remotamente de la etapa 3 ve un ataque iniciado por el ordenador 220 controlado remotamente de la etapa 2. El ordenador 220 controlado remotamente de la etapa 2 ve un ataque iniciado por el ordenador 210 controlado remotamente de la etapa 1. El único ordenador dentro del enlace de conexión que conoce la verdadera dirección del atacante 200 es el ordenador 210 controlado remotamente de la etapa 1.
35 Según una o más realizaciones de la presente invención, la ubicación del atacante puede ser determinada analizando la distribución estadística para las cargas útiles de datos transmitidas a través de los múltiples ordenadores controlados remotamente. Los ordenadores controlados remotamente están conectados entre sí por una red, mediante un cierto número de proveedores 260 de servicios. Cada proveedor 260 de servicios mantiene un registro 270 de conexiones que contiene información con respecto a las transmisiones por la red. El registro 270 de conexiones puede incluir, por ejemplo,
40 una dirección 272 de IP del sistema de ordenador que transmite información, la dirección 274 de destino del sistema de ordenador donde será entregada la información, y la información efectiva 276 que está siendo entregada. A fin de minimizar la cantidad de información contenida en el registro de conexiones, una distribución estadística puede ser generada para cada carga útil 276 de datos que se transmite. Así, la distribución estadística puede ser configurada de modo que sea almacenada dentro de una cadena corta, por ejemplo, de 256 octetos, según lo anteriormente expuesto
45 con respecto a diversas realizaciones de la invención. Esto permite al proveedor 260 de servicios capturar y almacenar información con respecto al vasto número de transmisiones que circulan, sin desperdiciar espacio de almacenamiento. Como se expondrá en mayor detalle más adelante, la información mantenida por el proveedor de servicios puede ser usada para rastrear la ubicación física del atacante que inicia el ataque sobre la máquina de destino. Además, la distribución estadística puede ser generada para todo el registro 270 de conexiones, o solamente una parte del mismo.
50 La Figura 19 es un diagrama de flujo que ilustra las etapas realizadas para rastrear el origen de un mensaje transmitido, según una o más realizaciones de la presente invención. En la etapa S710, los registros de conexiones son creados por el proveedor de servicios. Según lo anteriormente expuesto, los registros de conexiones pueden incluir, por ejemplo, una dirección de un sistema de ordenador anterior, una carga útil de datos y una dirección para un sistema de ordenador posterior. En la etapa S712, los registros de conexiones son examinados, y las distribuciones estadísticas son generadas
55 para los datos contenidos en cada registro de conexiones. En la etapa S714, una carga útil sospechosa es identificada en un ordenador de destino final. Más específicamente, la carga útil de datos sospechosos puede corresponder, por ejemplo, a un programa malicioso que fue usado para infectar, o bien iniciar un ataque sobre, el sistema de ordenador de destino.
En la etapa S716, una distribución estadística es generada para la carga útil de datos sospechosos. En la etapa S718, el ordenador de destino final es designado como ordenador sospechoso.
En la etapa S720, la distribución estadística para la carga útil de datos sospechosos es comparada con las distribuciones estadísticas de las cargas útiles de datos generadas en la etapa S712. En la etapa S722, se determina si la distancia de la 5 distribución de la carga útil de datos sospechosos está o no dentro del umbral de tolerancia para la distribución del registro actual de conexiones. Si está dentro de la tolerancia, entonces puede identificarse una coincidencia. Si la distribución estadística para la carga útil sospechosa no está dentro de la tolerancia, entonces, en la etapa S724, se determina si hay o no registros adicionales de conexiones. Si hay registros adicionales de conexiones, entonces el control vuelve a la etapa S720, donde se hace una comparación con el próximo registro de conexiones. Si no hay más registros 10 de conexiones, entonces el proceso terminará. Sin embargo, si la distribución estadística para la carga útil sospechosa está dentro de la tolerancia, entonces, en la etapa S726, se identifica la identidad del remitente anterior. Esto puede hacerse, por ejemplo, examinando el registro de conexiones a partir del cual fue generada la distribución. Dentro de los registros de conexiones son identificadas las direcciones de los sistemas de ordenadores remitente y destinatario. De tal modo, el sistema de ordenador sospechoso sería la dirección de destino y se identificaría la dirección del remitente
15 anterior.
En la etapa S728, se determina si el sistema de ordenador anterior es o no el remitente original de la transmisión. Si el sistema de ordenador anterior es el remitente original de la transmisión, entonces se obtiene la identidad del remitente original y el proceso termina. Sin embargo, si la dirección del remitente anterior no corresponde al remitente original de la transmisión, entonces el control avanza a la etapa S732. El ordenador anterior es designado ordenador sospechoso. El
20 control entonces retorna a la etapa S720, donde la distribución estadística para la carga útil sospechosa es comparada con la distribución estadística para los registros de conexiones almacenados por el ordenador sospechoso recientemente designado. El proceso puede repetirse hacia atrás a través de múltiples sistemas de ordenador, hasta que sea identificado el remitente original de la transmisión.
El sistema de detección de anomalías de la presente invención también puede ser implementado en ordenadores y
25 servidores que usan diversos sistemas operativos, tales como la línea Windows de sistemas operativos, Linux, MacOS, etc. El código de programa necesario también puede ser producido usando cualquier lenguaje de programación, tal como C++, C#, Java, etc.
Las muchas características y ventajas de la invención son evidentes a partir de la especificación detallada y, por tanto, las reivindicaciones adjuntas están concebidas para cubrir todas las características y ventajas de ese tipo que caigan dentro
30 del alcance de la invención. Además, dado que numerosas modificaciones y variaciones devendrán inmediatamente evidentes para los expertos en la técnica, la invención no debería estar limitada a la construcción y operación exactas ilustradas y descritas. En cambio, todas las modificaciones adecuadas, y los equivalentes, pueden considerarse como incluidos dentro del alcance de la invención reivindicada.

Claims (34)

  1. REIVINDICACIONES
    1. Un procedimiento, llevado a cabo por un ordenador, de detección de cargas útiles anómalas transmitidas a través de una red, que comprende las etapas de:
    recibir al menos una carga útil dentro de la red (S250; S350);
    5 determinar una longitud para los datos contenidos en la al menos una carga útil (S252; S352);
    generar una distribución estadística de valores de octeto de los datos contenidos en la al menos una carga útil recibida dentro de la red (S256; S354);
    seleccionar, de entre una pluralidad de distribuciones estadísticas modelo de valores de octeto, una distribución estadística modelo de valores de octeto representativa de las cargas útiles normales transmitidas a través de la red, en
    10 base, al menos en parte, a la longitud determinada, en donde la distribución estadística modelo de valores de octeto tiene una gama de longitudes predeterminada y se selecciona de modo que la longitud determinada para los datos contenidos en la al menos una carga útil esté incluida dentro de la gama de longitudes predeterminada;
    comparar al menos una parte de la distribución estadística generada de valores de octeto con una parte correspondiente de la distribución estadística modelo seleccionada de valores de octeto (S356); e
    15 identificar si la al menos una carga útil es una carga útil anómala (S358), en base, al menos en parte, a las diferencias detectadas entre la al menos una parte de la distribución estadística generada de valores de octeto para la al menos una carga útil y la parte correspondiente de la distribución estadística modelo seleccionada de valores de octeto.
  2. 2. El procedimiento de la reivindicación 1, en el cual la gama de longitudes predeterminada de la distribución estadística
    modelo seleccionada de valores de octeto está basada en divisiones seleccionadas usando estimaciones de núcleo para 20 la distribución estadística modelo seleccionada de valores de octeto de todas las cargas útiles normales (S254).
  3. 3.
    El procedimiento de la reivindicación 1, en el cual la gama de longitudes predeterminada de la distribución estadística modelo seleccionada de valores de octeto está basada en divisiones seleccionadas aplicando al menos un algoritmo de agrupamiento a la distribución estadística modelo seleccionada de valores de octeto de todas las cargas útiles normales.
  4. 4.
    El procedimiento de la reivindicación 1, en el cual la distribución estadística generada de valores de octeto de la al
    25 menos una carga útil es una distribución de valores de octeto de la frecuencia media y la varianza de los datos contenidos en la al menos una carga útil, y la distribución estadística modelo seleccionada de valores de octeto es una distribución de valores de octeto de la frecuencia media y la varianza, representativa de las cargas útiles normales.
  5. 5. El procedimiento de la reivindicación 1, en el cual la distribución estadística generada de valores de octeto de la al menos una carga útil es una distribución de valores de octeto de los datos contenidos en la al menos una carga útil, y la
    30 distribución estadística modelo seleccionada de valores de octeto es una distribución de valores de octeto representativa de las cargas útiles normales.
  6. 6. El procedimiento de la reivindicación 5, en el cual la distribución estadística generada de valores de octeto de la al menos una carga útil es un total de frecuencias de octetos de los datos contenidos en la al menos una carga útil, y la distribución estadística modelo seleccionada de valores de octeto es un total de frecuencias de octetos para cargas útiles
    35 normales.
  7. 7. El procedimiento de la reivindicación 5, en el cual la distribución estadística generada de valores de octeto de la al menos una carga útil es un total de frecuencias de octetos, ordenado por clasificación, de los datos contenidos en la al menos una carga útil, y la distribución estadística modelo seleccionada de valores de octeto es un total de frecuencias de octetos, ordenado por clasificación, para cargas útiles normales.
    40 8. El procedimiento de la reivindicación 1, en el cual:
    la etapa de comparación comprende adicionalmente una etapa de medir una métrica de distancia entre la distribución estadística generada de valores de octeto de los datos contenidos en dicha(s) carga(s) útil(es) y la distribución estadística modelo seleccionada de valores de octeto (S518); y
    la etapa de identificación comprende adicionalmente una etapa de identificar cargas útiles anómalas como las cargas 45 útiles que, al menos en parte, superan una métrica de distancia predeterminada (S520).
  8. 9.
    El procedimiento de la reivindicación 8, en el cual la métrica de distancia se calcula en base a una distancia de Mahalanobis entre la distribución estadística generada de valores de octeto de los datos contenidos en la al menos una carga útil y la distribución estadística modelo seleccionada de valores de octeto.
  9. 10.
    El procedimiento de la reivindicación 8, en el cual la distribución estadística generada de valores de octeto de los datos contenidos en la al menos una carga útil tiene un perfil decadente, y en el cual la medición de la métrica de distancia es iniciada en el extremo decadente.
  10. 11.
    El procedimiento de la reivindicación 8, que comprende adicionalmente las etapas de:
    5 fijar un umbral de alerta correspondiente a un número deseado de alertas para cargas útiles anómalas detectadas; y ajustar automáticamente la métrica de distancia predeterminada hasta que se alcance el umbral de alerta.
  11. 12. El procedimiento de la reivindicación 1, en el cual la gama de longitudes predeterminada es seleccionada a partir de al menos una parte de prefijo de la distribución estadística modelo seleccionada de valores de octeto.
  12. 13. El procedimiento de la reivindicación 1, en el cual la gama de longitudes predeterminada es seleccionada a partir de al 10 menos una parte de sufijo de la distribución estadística modelo seleccionada de valores de octeto.
  13. 14.
    El procedimiento de la reivindicación 1, en el cual la gama de longitudes predeterminada es seleccionada a partir de al menos una parte central de la distribución estadística modelo seleccionada de valores de octeto.
  14. 15.
    El procedimiento de la reivindicación 1, en el cual la gama de longitudes predeterminada de la distribución estadística modelo seleccionada de valores de octeto es seleccionada a partir de un grupo de divisiones que consiste en: de 0 a 50
    15 octetos, de 50 a 150 octetos, de 150 a 155 octetos, de 0 a 255 octetos, menos de 1.000 octetos, más de 2.000 octetos y más de 10.000 octetos.
  15. 16. El procedimiento de la reivindicación 1, en el cual al menos una entre la distribución estadística generada de valores de octeto para la al menos una carga útil, la pluralidad de distribuciones estadísticas modelo de valores de octeto y la distribución estadística modelo seleccionada de valores de octeto se genera usando una distribución en n-gramas, en
    20 donde cada n-grama es una agrupación variable de octetos.
  16. 17.
    El procedimiento de la reivindicación 16, en el cual n es un valor mixto de agrupaciones de octetos.
  17. 18.
    El procedimiento de la reivindicación 16, en el cual n = 1.
  18. 19.
    El procedimiento de la reivindicación 16, en el cual n = 2.
  19. 20.
    El procedimiento de la reivindicación 16, en el cual n = 3.
    25 21. El procedimiento de la reivindicación 1, que comprende adicionalmente una etapa de determinar si una carga útil anómala detectada es o no un virus o gusano (S434).
  20. 22. El procedimiento de la reivindicación 21, que comprende adicionalmente las etapas de: identificar un puerto que haya sido sondeado por el virus o gusano; comparar el tráfico de egreso con la distribución estadística generada de valores de octeto para el virus o gusano, a fin de
    30 detectar sondeos al mismo puerto en otras máquinas; y detectar la propagación del gusano o virus en base a la etapa de comparación.
  21. 23. El procedimiento de la reivindicación 21, que comprende adicionalmente una etapa de asignar distintos factores de peso a valores de octeto seleccionados.
  22. 24. El procedimiento de la reivindicación 23, en el cual mayores factores de peso son asignados a valores de octeto 35 correspondientes a códigos operativos de un sistema de ordenador.
  23. 25.
    El procedimiento de la reivindicación 21, que comprende adicionalmente una etapa de generar una rúbrica para cualquier carga útil anómala determinada como virus o gusano (S682).
  24. 26.
    El procedimiento de la reivindicación 25, en el cual la etapa de generar una rúbrica comprende adicionalmente las
    etapas de: identificar la cadena común más larga para los datos contenidos en la carga útil determinada como virus o 40 gusano; y
    generar la rúbrica en base, al menos en parte, a la cadena común más larga.
  25. 27. El procedimiento de la reivindicación 25, en el cual la etapa de generación comprende adicionalmente las etapas de:
    identificar la sub-secuencia común más larga para los datos contenidos en la carga útil determinada como el virus o gusano; y
    generar la rúbrica en base, al menos en parte, a la sub-secuencia común más larga.
  26. 28.
    El procedimiento de la reivindicación 25, que comprende adicionalmente una etapa de intercambiar rúbricas de virus o gusanos con uno o más servidores.
  27. 29.
    Un sistema para detectar cargas útiles anómalas transmitidas a través de una red, que comprende:
    5 un ordenador acoplado a la red, y que recibe al menos una carga útil a través de la red; y
    una o más distribuciones estadísticas modelo de valores de octeto, representativas de las cargas útiles normales recibidas a través de la red;
    estando dicho ordenador configurado para:
    determinar una longitud para los datos contenidos en dicha al menos una carga útil (S252, S352),
    10 generar una distribución estadística de valores de octeto de los datos contenidos en dicha al menos una carga útil recibida dentro de la red (S256, S354),
    seleccionar, entre la una o más distribución(es) estadística(s) modelo de valores de octeto, una distribución estadística modelo de valores de octeto basada, al menos en parte, en la longitud determinada, en donde la distribución estadística modelo de valores de octeto tiene una gama de longitudes predeterminada y se selecciona de modo que la longitud
    15 determinada para los datos contenidos en la al menos una carga útil esté incluida en la gama de longitudes predeterminada;
    comparar al menos una parte de dicha distribución estadística generada de valores de octeto con una parte correspondiente de la distribución estadística modelo seleccionada de valores de octeto de dicha una o más distribución(es) estadística(s) modelo de valores de octeto (S356), e
    20 identificar si dicha al menos una carga útil es una carga útil anómala (S358), en base, al menos en parte, a las diferencias detectadas entre la al menos una parte de la distribución estadística generada de valores de octeto para dicha al menos una carga útil y la parte correspondiente de dicha distribución estadística modelo seleccionada de valores de octeto.
  28. 30. El sistema de la reivindicación 29, en el cual dicho ordenador está adicionalmente configurado para:
    medir una métrica de distancia entre la distribución estadística generada de valores de octeto de los datos contenidos en 25 dicha al menos una carga útil y dicha distribución estadística modelo seleccionada de valores de octeto (S518); e
    identificar cargas útiles anómalas como las cargas útiles que, al menos en parte, superan una métrica de distancia predeterminada (S520).
  29. 31. El sistema de la reivindicación 29, en el cual dicho ordenador está adicionalmente configurado para:
    fijar un umbral de alerta correspondiente a un número deseado de alertas para cargas útiles anómalas detectadas; y 30 ajustar automáticamente dicha métrica de distancia predeterminada hasta que se alcance dicho umbral de alerta.
  30. 32. El sistema de la reivindicación 29, en el cual dicho ordenador comprende al menos un puerto y está adicionalmente configurado para:
    determinar si una carga útil anómala detectada es o no un virus o gusano;
    identificar al menos un puerto que ha sido sondeado por dicho virus o gusano; y
    35 detectar la propagación de dicho gusano o virus comparando el tráfico de egreso con la distribución estadística generada de valores de octeto para dicho virus o gusano, a fin de detectar sondeos al al menos un puerto en al menos otro ordenador.
  31. 33. Un medio legible por ordenador que lleva instrucciones ejecutables por un ordenador, para modelar los datos de carga útil recibidos en una red, haciendo dichas instrucciones que dicho ordenador realice el procedimiento de: 40 recibir al menos una carga útil a través de la red (S250; S350);
    determinar una longitud para los datos contenidos en la al menos una carga útil (S252; S352); generar una distribución estadística de valores de octeto de los datos contenidos en la al menos una carga útil recibida dentro de la red;
    seleccionar, entre una pluralidad de distribuciones estadísticas modelo de valores de octeto, una distribución estadística modelo de valores de octeto, representativa de las cargas útiles normales transmitidas a través de la red, en base, al menos en parte, a la longitud determinada, en donde la distribución estadística modelo de valores de octeto tiene una gama de longitudes predeterminada, y se selecciona de modo que la longitud determinada para los datos contenidos en la
    5 al menos una carga útil esté incluida dentro de la gama de longitudes predeterminada;
    comparar al menos una parte de la distribución estadística generada de valores de octeto con una parte correspondiente de la distribución estadística modelo seleccionada de valores de octeto (S356) e
    identificar si dicha al menos una carga útil es una carga útil anómala (S358), en base, al menos en parte, a las diferencias detectadas entre la al menos una parte de la distribución estadística generada de valores de octeto para la al menos una
    10 carga útil y la parte correspondiente de la distribución estadística modelo seleccionada de valores de octeto.
  32. 34. El medio legible por ordenador de la reivindicación 33, que comprende adicionalmente instrucciones para hacer que dicho ordenador realice el procedimiento de:
    medir una métrica de distancia entre la distribución estadística generada de valores de octeto de los datos contenidos en dicha al menos una carga útil y dicha distribución estadística modelo seleccionada de valores de octeto (S518); e
    15 identificar cargas útiles anómalas como las cargas útiles que, al menos en parte, superan una métrica de distancia predeterminada (S520).
  33. 35. El medio legible por ordenador de la reivindicación 33, que comprende adicionalmente instrucciones para hacer que dicho ordenador realice el procedimiento de:
    fijar un umbral de alerta correspondiente a un número deseado de alertas para cargas útiles anómalas detectadas; y
    20 ajustar automáticamente dicha métrica de distancia predeterminada hasta que se alcance dicho umbral de alerta.
  34. 36. El medio legible por ordenador de la reivindicación 33, que comprende adicionalmente instrucciones para hacer que dicho ordenador realice el procedimiento de:
    determinar si una carga útil anómala detectada es o no un virus o gusano (S434);
    identificar el al menos un puerto que ha sido sondeado por dicho virus o gusano; y
    25 detectar la propagación de dicho gusano o virus comparando el tráfico de egreso con la distribución estadística generada de valores de octeto para dicho virus o gusano, a fin de detectar sondeos al al menos un puerto en al menos otro ordenador.
    FIG. 12
ES04810752T 2003-11-12 2004-11-12 Aparato, procedimiento y medio para detectar una anomalía de carga útil usando la distribución en n-gramas de datos normales Active ES2423491T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US51874203P 2003-11-12 2003-11-12
US518742P 2003-11-12
US61363704P 2004-09-28 2004-09-28
US613637P 2004-09-28
PCT/US2004/037653 WO2005050369A2 (en) 2003-11-12 2004-11-12 Apparatus method and medium for detecting payload anomaly using n-gram distribution of normal data

Publications (1)

Publication Number Publication Date
ES2423491T3 true ES2423491T3 (es) 2013-09-20

Family

ID=34594920

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04810752T Active ES2423491T3 (es) 2003-11-12 2004-11-12 Aparato, procedimiento y medio para detectar una anomalía de carga útil usando la distribución en n-gramas de datos normales

Country Status (6)

Country Link
US (9) US20060015630A1 (es)
EP (2) EP1682990B1 (es)
JP (2) JP4662944B2 (es)
CA (1) CA2545916C (es)
ES (1) ES2423491T3 (es)
WO (3) WO2005050369A2 (es)

Families Citing this family (341)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1682990B1 (en) * 2003-11-12 2013-05-29 The Trustees of Columbia University in the City of New York Apparatus method and medium for detecting payload anomaly using n-gram distribution of normal data
FR2867643B1 (fr) * 2004-03-12 2006-06-02 Cit Alcatel Procede de transmission de paquets de donnees dans un reseau de telecommunication et dispositif mettant en oeuvre ce procede
WO2005093576A1 (en) * 2004-03-28 2005-10-06 Robert Iakobashvili Visualization of packet network performance, analysis and optimization for design
US8375444B2 (en) 2006-04-20 2013-02-12 Fireeye, Inc. Dynamic signature creation and enforcement
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8006305B2 (en) * 2004-06-14 2011-08-23 Fireeye, Inc. Computer worm defense system and method
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US9027135B1 (en) 2004-04-01 2015-05-05 Fireeye, Inc. Prospective client identification using malware attack detection
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8539582B1 (en) 2004-04-01 2013-09-17 Fireeye, Inc. Malware containment and security analysis on connection
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US8204984B1 (en) 2004-04-01 2012-06-19 Fireeye, Inc. Systems and methods for detecting encrypted bot command and control communication channels
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8561177B1 (en) 2004-04-01 2013-10-15 Fireeye, Inc. Systems and methods for detecting communication channels of bots
US8407792B2 (en) * 2004-05-19 2013-03-26 Ca, Inc. Systems and methods for computer security
US7761919B2 (en) * 2004-05-20 2010-07-20 Computer Associates Think, Inc. Intrusion detection with automatic signature generation
WO2005114955A1 (en) * 2004-05-21 2005-12-01 Computer Associates Think, Inc. Systems and methods of computer security
US20050273708A1 (en) * 2004-06-03 2005-12-08 Verity, Inc. Content-based automatic file format indetification
US7448085B1 (en) * 2004-07-07 2008-11-04 Trend Micro Incorporated Method and apparatus for detecting malicious content in protected archives
US8032937B2 (en) * 2004-10-26 2011-10-04 The Mitre Corporation Method, apparatus, and computer program product for detecting computer worms in a network
US7814550B2 (en) * 2004-10-26 2010-10-12 The Mitre Corporation System and method to emulate mobile logic in a communication system
US7574742B2 (en) * 2004-11-15 2009-08-11 Industrial Technology Research Institute System and method of string matching for uniform data classification
US20060123478A1 (en) * 2004-12-02 2006-06-08 Microsoft Corporation Phishing detection, prevention, and notification
US8291065B2 (en) * 2004-12-02 2012-10-16 Microsoft Corporation Phishing detection, prevention, and notification
US7634810B2 (en) * 2004-12-02 2009-12-15 Microsoft Corporation Phishing detection, prevention, and notification
US7873046B1 (en) * 2005-02-24 2011-01-18 Symantec Corporation Detecting anomalous network activity through transformation of terrain
US8065722B2 (en) * 2005-03-21 2011-11-22 Wisconsin Alumni Research Foundation Semantically-aware network intrusion signature generator
GB2427048A (en) 2005-06-09 2006-12-13 Avecho Group Ltd Detection of unwanted code or data in electronic mail
WO2007022454A2 (en) 2005-08-18 2007-02-22 The Trustees Of Columbia University In The City Of New York Systems, methods, and media protecting a digital data processing device from attack
US8612844B1 (en) * 2005-09-09 2013-12-17 Apple Inc. Sniffing hypertext content to determine type
CA2626993A1 (en) * 2005-10-25 2007-05-03 The Trustees Of Columbia University In The City Of New York Methods, media and systems for detecting anomalous program executions
US8566928B2 (en) 2005-10-27 2013-10-22 Georgia Tech Research Corporation Method and system for detecting and responding to attacking networks
US9419981B2 (en) 2005-10-31 2016-08-16 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for securing communications between a first node and a second node
US8381299B2 (en) * 2006-02-28 2013-02-19 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for outputting a dataset based upon anomaly detection
US8578479B2 (en) * 2006-03-21 2013-11-05 Riverbed Technology, Inc. Worm propagation mitigation
US8819825B2 (en) 2006-05-31 2014-08-26 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for generating bait information for trap-based defenses
US20080010405A1 (en) * 2006-07-10 2008-01-10 International Business Machines Corporation Selectable profiles and actions for removable memory devices
US8789172B2 (en) 2006-09-18 2014-07-22 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting attack on a digital processing device
US8201244B2 (en) * 2006-09-19 2012-06-12 Microsoft Corporation Automated malware signature generation
WO2008055156A2 (en) 2006-10-30 2008-05-08 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting an anomalous sequence of function calls
US20100138919A1 (en) * 2006-11-03 2010-06-03 Tao Peng System and process for detecting anomalous network traffic
US8407160B2 (en) 2006-11-15 2013-03-26 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for generating sanitized data, sanitizing anomaly detection models, and/or generating sanitized anomaly detection models
US8065729B2 (en) * 2006-12-01 2011-11-22 Electronics And Telecommunications Research Institute Method and apparatus for generating network attack signature
US9729513B2 (en) 2007-11-08 2017-08-08 Glasswall (Ip) Limited Using multiple layers of policy management to manage risk
GB2444514A (en) 2006-12-04 2008-06-11 Glasswall Electronic file re-generation
US20080134333A1 (en) * 2006-12-04 2008-06-05 Messagelabs Limited Detecting exploits in electronic objects
US7797746B2 (en) 2006-12-12 2010-09-14 Fortinet, Inc. Detection of undesired computer files in archives
US8250655B1 (en) * 2007-01-12 2012-08-21 Kaspersky Lab, Zao Rapid heuristic method and system for recognition of similarity between malware variants
KR101303643B1 (ko) * 2007-01-31 2013-09-11 삼성전자주식회사 침입 코드 탐지 장치 및 그 방법
US8655623B2 (en) * 2007-02-13 2014-02-18 International Business Machines Corporation Diagnostic system and method
IL181426A (en) * 2007-02-19 2011-06-30 Deutsche Telekom Ag Automatic removal of signatures for malware
US8312546B2 (en) * 2007-04-23 2012-11-13 Mcafee, Inc. Systems, apparatus, and methods for detecting malware
US8087079B2 (en) * 2007-05-04 2011-12-27 Finjan, Inc. Byte-distribution analysis of file security
US8166534B2 (en) * 2007-05-18 2012-04-24 Microsoft Corporation Incorporating network connection security levels into firewall rules
US8266685B2 (en) * 2007-05-18 2012-09-11 Microsoft Corporation Firewall installer
US9009829B2 (en) 2007-06-12 2015-04-14 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for baiting inside attackers
US20090235357A1 (en) * 2008-03-14 2009-09-17 Computer Associates Think, Inc. Method and System for Generating a Malware Sequence File
JP4983671B2 (ja) * 2008-03-19 2012-07-25 沖電気工業株式会社 トラフィック分析装置、トラフィック分析方法及びトラフィック分析システム
US8577817B1 (en) * 2011-03-02 2013-11-05 Narus, Inc. System and method for using network application signatures based on term transition state machine
KR20090121579A (ko) * 2008-05-22 2009-11-26 주식회사 이베이지마켓 서버의 취약점을 점검하기 위한 시스템 및 그 방법
CN101645125B (zh) * 2008-08-05 2011-07-20 珠海金山软件有限公司 过滤以及监控程序的行为的方法
US10027688B2 (en) 2008-08-11 2018-07-17 Damballa, Inc. Method and system for detecting malicious and/or botnet-related domain names
US8327443B2 (en) * 2008-10-29 2012-12-04 Lockheed Martin Corporation MDL compress system and method for signature inference and masquerade intrusion detection
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8769684B2 (en) 2008-12-02 2014-07-01 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for masquerade attack detection by monitoring computer user behavior
WO2010067703A1 (ja) * 2008-12-08 2010-06-17 日本電気株式会社 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム
GB0822619D0 (en) * 2008-12-11 2009-01-21 Scansafe Ltd Malware detection
US20100162399A1 (en) * 2008-12-18 2010-06-24 At&T Intellectual Property I, L.P. Methods, apparatus, and computer program products that monitor and protect home and small office networks from botnet and malware activity
US8621625B1 (en) * 2008-12-23 2013-12-31 Symantec Corporation Methods and systems for detecting infected files
US8873556B1 (en) * 2008-12-24 2014-10-28 Palo Alto Networks, Inc. Application based packet forwarding
CN102273139B (zh) * 2008-12-30 2015-04-15 惠普开发有限公司 存储网络流信息
US8800040B1 (en) * 2008-12-31 2014-08-05 Symantec Corporation Methods and systems for prioritizing the monitoring of malicious uniform resource locators for new malware variants
EP2222048A1 (en) * 2009-02-24 2010-08-25 BRITISH TELECOMMUNICATIONS public limited company Detecting malicious behaviour on a computer network
NL2002694C2 (en) * 2009-04-01 2010-10-04 Univ Twente Method and system for alert classification in a computer network.
US8255574B2 (en) * 2009-05-20 2012-08-28 Empire Technology Development Llc System for locating computing devices
US8180916B1 (en) * 2009-07-17 2012-05-15 Narus, Inc. System and method for identifying network applications based on packet content signatures
US8595194B2 (en) 2009-09-15 2013-11-26 At&T Intellectual Property I, L.P. Forward decay temporal data analysis
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US8528091B2 (en) 2009-12-31 2013-09-03 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for detecting covert malware
US8578497B2 (en) 2010-01-06 2013-11-05 Damballa, Inc. Method and system for detecting malware
US8826438B2 (en) 2010-01-19 2014-09-02 Damballa, Inc. Method and system for network-based detecting of malware from behavioral clustering
US8863279B2 (en) 2010-03-08 2014-10-14 Raytheon Company System and method for malware detection
US8468602B2 (en) * 2010-03-08 2013-06-18 Raytheon Company System and method for host-level malware detection
US9009820B1 (en) 2010-03-08 2015-04-14 Raytheon Company System and method for malware detection using multiple techniques
US8595830B1 (en) * 2010-07-27 2013-11-26 Symantec Corporation Method and system for detecting malware containing E-mails based on inconsistencies in public sector “From” addresses and a sending IP address
US9516058B2 (en) 2010-08-10 2016-12-06 Damballa, Inc. Method and system for determining whether domain names are legitimate or malicious
US20120066759A1 (en) * 2010-09-10 2012-03-15 Cisco Technology, Inc. System and method for providing endpoint management for security threats in a network environment
KR101162051B1 (ko) * 2010-12-21 2012-07-03 한국인터넷진흥원 문자열 비교 기법을 이용한 악성코드 탐지 및 분류 시스템 및 그 방법
US9119109B1 (en) * 2010-12-30 2015-08-25 Dell Software Inc. Method and an apparatus to perform multi-connection traffic analysis and management
US8826439B1 (en) * 2011-01-26 2014-09-02 Symantec Corporation Encoding machine code instructions for static feature based malware clustering
US8631489B2 (en) 2011-02-01 2014-01-14 Damballa, Inc. Method and system for detecting malicious domain names at an upper DNS hierarchy
US9065728B2 (en) * 2011-03-03 2015-06-23 Hitachi, Ltd. Failure analysis device, and system and method for same
NL2007180C2 (en) * 2011-07-26 2013-01-29 Security Matters B V Method and system for classifying a protocol message in a data communication network.
US9495541B2 (en) 2011-09-15 2016-11-15 The Trustees Of Columbia University In The City Of New York Detecting return-oriented programming payloads by evaluating data for a gadget address space address and determining whether operations associated with instructions beginning at the address indicate a return-oriented programming payload
US9813310B1 (en) * 2011-10-31 2017-11-07 Reality Analytics, Inc. System and method for discriminating nature of communication traffic transmitted through network based on envelope characteristics
CN102523223B (zh) * 2011-12-20 2014-08-27 北京神州绿盟信息安全科技股份有限公司 一种木马检测的方法及装置
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
US9973473B2 (en) * 2012-03-30 2018-05-15 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for rapid filtering of opaque data traffic
US8953451B2 (en) * 2012-06-14 2015-02-10 The Boeing Company Apparatus, methods, and systems for character set surveying of network traffic
US9336302B1 (en) 2012-07-20 2016-05-10 Zuci Realty Llc Insight and algorithmic clustering for automated synthesis
US10547674B2 (en) 2012-08-27 2020-01-28 Help/Systems, Llc Methods and systems for network flow analysis
US9894088B2 (en) 2012-08-31 2018-02-13 Damballa, Inc. Data mining to identify malicious activity
US9680861B2 (en) 2012-08-31 2017-06-13 Damballa, Inc. Historical analysis to identify malicious activity
US10084806B2 (en) 2012-08-31 2018-09-25 Damballa, Inc. Traffic simulation to identify malicious activity
US9166994B2 (en) 2012-08-31 2015-10-20 Damballa, Inc. Automation discovery to identify malicious activity
JP6033021B2 (ja) * 2012-09-24 2016-11-30 三菱スペース・ソフトウエア株式会社 不正通信検出装置及びサイバー攻撃検出システム及びコンピュータプログラム及び不正通信検出方法
US11126720B2 (en) * 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US9197657B2 (en) * 2012-09-27 2015-11-24 Hewlett-Packard Development Company, L.P. Internet protocol address distribution summary
US9565213B2 (en) * 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
KR101415272B1 (ko) * 2012-11-07 2014-07-04 주식회사 시큐아이 비정상 트래픽 감지 방법 및 장치
US8943589B2 (en) 2012-12-04 2015-01-27 International Business Machines Corporation Application testing system and method
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9692771B2 (en) * 2013-02-12 2017-06-27 Symantec Corporation System and method for estimating typicality of names and textual data
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9824209B1 (en) 2013-02-23 2017-11-21 Fireeye, Inc. Framework for efficient security coverage of mobile software applications that is usable to harden in the field code
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9009822B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9565202B1 (en) 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US10649970B1 (en) 2013-03-14 2020-05-12 Invincea, Inc. Methods and apparatus for detection of functionality
US9413781B2 (en) 2013-03-15 2016-08-09 Fireeye, Inc. System and method employing structured intelligence to verify and contain threats at endpoints
US9251343B1 (en) 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
WO2014184934A1 (ja) * 2013-05-16 2014-11-20 株式会社日立製作所 障害分析方法、障害分析システム及び記憶媒体
US9571511B2 (en) 2013-06-14 2017-02-14 Damballa, Inc. Systems and methods for traffic classification
WO2014203296A1 (ja) * 2013-06-21 2014-12-24 株式会社野村総合研究所 情報処理装置、電子メール閲覧制限方法、コンピュータプログラムおよび情報処理システム
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9536091B2 (en) 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9888016B1 (en) 2013-06-28 2018-02-06 Fireeye, Inc. System and method for detecting phishing using password prediction
US10089461B1 (en) 2013-09-30 2018-10-02 Fireeye, Inc. Page replacement code injection
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US10192052B1 (en) 2013-09-30 2019-01-29 Fireeye, Inc. System, apparatus and method for classifying a file as malicious using static scanning
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
GB2518880A (en) 2013-10-04 2015-04-08 Glasswall Ip Ltd Anti-Malware mobile content data management apparatus and method
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
US9332025B1 (en) * 2013-12-23 2016-05-03 Symantec Corporation Systems and methods for detecting suspicious files
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US10356108B2 (en) * 2013-12-27 2019-07-16 Mcafee, Llc System and method of detecting malicious multimedia files
US9740857B2 (en) 2014-01-16 2017-08-22 Fireeye, Inc. Threat-aware microvisor
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9355016B2 (en) 2014-03-05 2016-05-31 Microsoft Technology Licensing, Llc Automated regression testing for software applications
US9329980B2 (en) * 2014-03-05 2016-05-03 Microsoft Technology Licensing, Llc Security alerting using n-gram analysis of program execution data
US9880915B2 (en) 2014-03-05 2018-01-30 Microsoft Technology Licensing, Llc N-gram analysis of inputs to a software application
US9594665B2 (en) 2014-03-05 2017-03-14 Microsoft Technology Licensing, Llc Regression evaluation using behavior models of software applications
US20150271196A1 (en) * 2014-03-20 2015-09-24 International Business Machines Corporation Comparing source and sink values in security analysis
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US20150304394A1 (en) * 2014-04-17 2015-10-22 Rovio Entertainment Ltd Distribution management
US9940459B1 (en) 2014-05-19 2018-04-10 Invincea, Inc. Methods and devices for detection of malware
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US20160197943A1 (en) * 2014-06-24 2016-07-07 Leviathan, Inc. System and Method for Profiling System Attacker
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US9900344B2 (en) * 2014-09-12 2018-02-20 Level 3 Communications, Llc Identifying a potential DDOS attack using statistical analysis
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9652627B2 (en) 2014-10-22 2017-05-16 International Business Machines Corporation Probabilistic surfacing of potentially sensitive identifiers
US9805099B2 (en) 2014-10-30 2017-10-31 The Johns Hopkins University Apparatus and method for efficient identification of code similarity
US10038706B2 (en) * 2014-10-31 2018-07-31 Verisign, Inc. Systems, devices, and methods for separating malware and background events
WO2016073457A2 (en) 2014-11-03 2016-05-12 Level 3 Communications, Llc Identifying a potential ddos attack using statistical analysis
EP3215943B1 (en) * 2014-11-03 2021-04-21 Vectra AI, Inc. A system for implementing threat detection using threat and risk assessment of asset-actor interactions
US9330264B1 (en) 2014-11-26 2016-05-03 Glasswall (Ip) Limited Statistical analytic method for the determination of the risk posed by file based content
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US20160217056A1 (en) * 2015-01-28 2016-07-28 Hewlett-Packard Development Company, L.P. Detecting flow anomalies
US9619649B1 (en) 2015-03-13 2017-04-11 Symantec Corporation Systems and methods for detecting potentially malicious applications
US10116688B1 (en) 2015-03-24 2018-10-30 Symantec Corporation Systems and methods for detecting potentially malicious files
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9930065B2 (en) 2015-03-25 2018-03-27 University Of Georgia Research Foundation, Inc. Measuring, categorizing, and/or mitigating malware distribution paths
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9798878B1 (en) * 2015-03-31 2017-10-24 Symantec Corporation Systems and methods for detecting text display manipulation attacks
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US10832280B2 (en) * 2015-06-12 2020-11-10 Comscore, Inc. Fraudulent traffic detection and estimation
US9591014B2 (en) 2015-06-17 2017-03-07 International Business Machines Corporation Capturing correlations between activity and non-activity attributes using N-grams
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US9690938B1 (en) 2015-08-05 2017-06-27 Invincea, Inc. Methods and apparatus for machine learning based malware detection
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US9836605B2 (en) 2015-12-08 2017-12-05 Bank Of America Corporation System for detecting unauthorized code in a software application
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US10152596B2 (en) 2016-01-19 2018-12-11 International Business Machines Corporation Detecting anomalous events through runtime verification of software execution using a behavioral model
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10164991B2 (en) * 2016-03-25 2018-12-25 Cisco Technology, Inc. Hierarchical models using self organizing learning topologies
US10142290B1 (en) * 2016-03-30 2018-11-27 Amazon Technologies, Inc. Host-based firewall for distributed computer systems
US10333962B1 (en) 2016-03-30 2019-06-25 Amazon Technologies, Inc. Correlating threat information across sources of distributed computing systems
US10320750B1 (en) 2016-03-30 2019-06-11 Amazon Technologies, Inc. Source specific network scanning in a distributed environment
US10148675B1 (en) 2016-03-30 2018-12-04 Amazon Technologies, Inc. Block-level forensics for distributed computing systems
US10079842B1 (en) 2016-03-30 2018-09-18 Amazon Technologies, Inc. Transparent volume based intrusion detection
US10178119B1 (en) 2016-03-30 2019-01-08 Amazon Technologies, Inc. Correlating threat information across multiple levels of distributed computing systems
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10110626B2 (en) 2016-04-26 2018-10-23 International Business Machines Corporation Biology based techniques for handling information security and privacy
JP6588385B2 (ja) * 2016-05-11 2019-10-09 日本電信電話株式会社 シグネチャ生成装置、シグネチャ生成方法、および、シグネチャ生成プログラム
WO2017223294A1 (en) 2016-06-22 2017-12-28 Invincea, Inc. Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10404734B2 (en) * 2016-07-07 2019-09-03 International Business Machines Corporation Root cause analysis in dynamic software testing via probabilistic modeling
US10972495B2 (en) 2016-08-02 2021-04-06 Invincea, Inc. Methods and apparatus for detecting and identifying malware by mapping feature data into a semantic space
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
EP3293938B1 (en) 2016-09-12 2021-06-30 Vectra AI, Inc. Method and system for detecting suspicious administrative activity
GB2554390B (en) * 2016-09-23 2018-10-31 1E Ltd Computer security profiling
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10417530B2 (en) * 2016-09-30 2019-09-17 Cylance Inc. Centroid for improving machine learning classification and info retrieval
US10819719B2 (en) * 2016-10-11 2020-10-27 General Electric Company Systems and methods for protecting a physical asset against a threat
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10567420B2 (en) 2016-11-08 2020-02-18 International Business Machines Corporation Biology based techniques with cognitive system analysis for handling information security and privacy
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
US10133865B1 (en) * 2016-12-15 2018-11-20 Symantec Corporation Systems and methods for detecting malware
US10565377B1 (en) 2016-12-21 2020-02-18 Palo Alto Networks, Inc. Context-based analysis of applications
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10855783B2 (en) * 2017-01-23 2020-12-01 Adobe Inc. Communication notification trigger modeling preview
US11470097B2 (en) * 2017-03-03 2022-10-11 Nippon Telegraph And Telephone Corporation Profile generation device, attack detection device, profile generation method, and profile generation computer program
JP6714142B2 (ja) * 2017-03-03 2020-06-24 日本電信電話株式会社 攻撃パターン抽出装置、攻撃パターン抽出方法および攻撃パターン抽出プログラム
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10536482B2 (en) 2017-03-26 2020-01-14 Microsoft Technology Licensing, Llc Computer security attack detection using distribution departure
JP7033733B2 (ja) * 2017-03-27 2022-03-11 パナソニックIpマネジメント株式会社 データ分析装置、方法、及びプログラム
CN110506268A (zh) * 2017-03-28 2019-11-26 日本电气株式会社 签名产生设备、签名产生方法和存储程序的非暂时性计算机可读介质
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
WO2019018033A2 (en) 2017-04-14 2019-01-24 The Trustees Of Columbia University In The City Of New York METHODS, SYSTEMS AND MEDIA FOR TESTING INTERNAL THREAT DETECTION SYSTEMS
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US10637879B2 (en) * 2017-10-06 2020-04-28 Carbonite, Inc. Systems and methods for detection and mitigation of malicious encryption
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11580219B2 (en) * 2018-01-25 2023-02-14 Mcafee, Llc System and method for malware signature generation
DE102018202093A1 (de) * 2018-02-12 2019-08-14 Robert Bosch Gmbh Verfahren und Vorrichtung zur Berechnung von Datenmodellen in sicherheitskritischen Systemen
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11108823B2 (en) * 2018-07-31 2021-08-31 International Business Machines Corporation Resource security system using fake connections
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
CN111049786A (zh) * 2018-10-12 2020-04-21 北京奇虎科技有限公司 一种网络攻击的检测方法、装置、设备及存储介质
US11023590B2 (en) 2018-11-28 2021-06-01 International Business Machines Corporation Security testing tool using crowd-sourced data
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11743290B2 (en) 2018-12-21 2023-08-29 Fireeye Security Holdings Us Llc System and method for detecting cyberattacks impersonating legitimate sources
US11176251B1 (en) 2018-12-21 2021-11-16 Fireeye, Inc. Determining malware via symbolic function hash analysis
US11601444B1 (en) 2018-12-31 2023-03-07 Fireeye Security Holdings Us Llc Automated system for triage of customer issues
US11194908B2 (en) * 2019-01-08 2021-12-07 International Business Machines Corporation Synthesizing sanitization code for applications based upon probabilistic prediction model
CN109688030B (zh) * 2019-02-26 2020-11-03 百度在线网络技术(北京)有限公司 报文检测方法、装置、设备和存储介质
US11310238B1 (en) 2019-03-26 2022-04-19 FireEye Security Holdings, Inc. System and method for retrieval and analysis of operational data from customer, cloud-hosted virtual resources
US11677786B1 (en) 2019-03-29 2023-06-13 Fireeye Security Holdings Us Llc System and method for detecting and protecting against cybersecurity attacks on servers
US11636198B1 (en) 2019-03-30 2023-04-25 Fireeye Security Holdings Us Llc System and method for cybersecurity analyzer update and concurrent management system
US11277425B2 (en) 2019-04-16 2022-03-15 International Business Machines Corporation Anomaly and mode inference from time series data
SG11202109100TA (en) * 2019-05-03 2021-09-29 Visa Int Service Ass System, method, and computer program product for generating enhanced n-gram models
US11182400B2 (en) 2019-05-23 2021-11-23 International Business Machines Corporation Anomaly comparison across multiple assets and time-scales
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11271957B2 (en) 2019-07-30 2022-03-08 International Business Machines Corporation Contextual anomaly detection across assets
US11216558B2 (en) * 2019-09-24 2022-01-04 Quick Heal Technologies Limited Detecting malwares in data streams
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
US11436327B1 (en) 2019-12-24 2022-09-06 Fireeye Security Holdings Us Llc System and method for circumventing evasive code for cyberthreat detection
US11838300B1 (en) 2019-12-24 2023-12-05 Musarubra Us Llc Run-time configurable cybersecurity system
US11522884B1 (en) 2019-12-24 2022-12-06 Fireeye Security Holdings Us Llc Subscription and key management system
US11601457B2 (en) 2020-08-26 2023-03-07 Bank Of America Corporation Network traffic correlation engine
JPWO2022157867A1 (es) * 2021-01-20 2022-07-28
US11363049B1 (en) 2021-03-25 2022-06-14 Bank Of America Corporation Information security system and method for anomaly detection in data transmission
JPWO2022244077A1 (es) * 2021-05-17 2022-11-24
JPWO2022249816A1 (es) 2021-05-26 2022-12-01
CN114629707A (zh) * 2022-03-16 2022-06-14 深信服科技股份有限公司 一种乱码检测方法、装置及电子设备和存储介质

Family Cites Families (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2000411A (en) * 1931-12-30 1935-05-07 Universal Oil Prod Co Treatment of hydrocarbon oils
US4621334A (en) 1983-08-26 1986-11-04 Electronic Signature Lock Corporation Personal identification apparatus
JP2501771B2 (ja) * 1993-01-19 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 不所望のソフトウェア・エンティティの複数の有効なシグネチャを得る方法及び装置
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
US5675711A (en) 1994-05-13 1997-10-07 International Business Machines Corporation Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
US5485575A (en) * 1994-11-21 1996-01-16 International Business Machines Corporation Automatic analysis of a computer virus structure and means of attachment to its hosts
DE69638018D1 (de) 1995-02-13 2009-10-15 Intertrust Tech Corp Systeme und Verfahren zur Verwaltung von gesicherten Transaktionen und zum Schutz von elektronischen Rechten
JPH0993665A (ja) * 1995-09-26 1997-04-04 Meidensha Corp 監視装置
US5826013A (en) * 1995-09-28 1998-10-20 Symantec Corporation Polymorphic virus detection module
US5761191A (en) * 1995-11-28 1998-06-02 Telecommunications Techniques Corporation Statistics collection for ATM networks
US5835888A (en) * 1996-06-10 1998-11-10 International Business Machines Corporation Statistical language model for inflected languages
US5948104A (en) * 1997-05-23 1999-09-07 Neuromedical Systems, Inc. System and method for automated anti-viral file update
US6016546A (en) 1997-07-10 2000-01-18 International Business Machines Corporation Efficient detection of computer viruses and other data traits
US6157905A (en) * 1997-12-11 2000-12-05 Microsoft Corporation Identifying language and character set of data representing text
US5991714A (en) * 1998-04-22 1999-11-23 The United States Of America As Represented By The National Security Agency Method of identifying data type and locating in a file
US6347374B1 (en) * 1998-06-05 2002-02-12 Intrusion.Com, Inc. Event detection
US6253337B1 (en) * 1998-07-21 2001-06-26 Raytheon Company Information security analysis system
US6321338B1 (en) 1998-11-09 2001-11-20 Sri International Network surveillance
US6356941B1 (en) 1999-02-22 2002-03-12 Cyber-Ark Software Ltd. Network vaults
US6732149B1 (en) * 1999-04-09 2004-05-04 International Business Machines Corporation System and method for hindering undesired transmission or receipt of electronic messages
US6785815B1 (en) * 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
CN1293502C (zh) * 1999-06-30 2007-01-03 倾向探测公司 用于监控网络流量的方法和设备
US6560632B1 (en) * 1999-07-16 2003-05-06 International Business Machines Corporation System and method for managing files in a distributed system using prioritization
US6718535B1 (en) 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US6587432B1 (en) * 1999-08-31 2003-07-01 Intel Corporation Method and system for diagnosing network congestion using mobile agents
JP3506068B2 (ja) * 1999-09-29 2004-03-15 日本電気株式会社 外れ値度計算装置
US7181768B1 (en) * 1999-10-28 2007-02-20 Cigital Computer intrusion detection system and method based on application monitoring
US7062782B1 (en) * 1999-12-22 2006-06-13 Uunet Technologies, Inc. Overlay network for tracking denial-of-service floods in unreliable datagram delivery networks
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US6971019B1 (en) * 2000-03-14 2005-11-29 Symantec Corporation Histogram-based virus detection
JP2001313640A (ja) * 2000-05-02 2001-11-09 Ntt Data Corp 通信ネットワークにおけるアクセス種別を判定する方法及びシステム、記録媒体
US7058976B1 (en) 2000-05-17 2006-06-06 Deep Nines, Inc. Intelligent feedback loop process control system
US20020007453A1 (en) 2000-05-23 2002-01-17 Nemovicher C. Kerry Secured electronic mail system and method
US7328349B2 (en) 2001-12-14 2008-02-05 Bbn Technologies Corp. Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses
GB0016835D0 (en) * 2000-07-07 2000-08-30 Messagelabs Limited Method of, and system for, processing email
US7043759B2 (en) * 2000-09-07 2006-05-09 Mazu Networks, Inc. Architecture to thwart denial of service attacks
US20020035698A1 (en) * 2000-09-08 2002-03-21 The Regents Of The University Of Michigan Method and system for protecting publicly accessible network computer services from undesirable network traffic in real-time
US7188366B2 (en) * 2000-09-12 2007-03-06 Nippon Telegraph And Telephone Corporation Distributed denial of service attack defense method and device
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US20060212572A1 (en) * 2000-10-17 2006-09-21 Yehuda Afek Protecting against malicious traffic
US7054930B1 (en) * 2000-10-26 2006-05-30 Cisco Technology, Inc. System and method for propagating filters
US6907436B2 (en) * 2000-10-27 2005-06-14 Arizona Board Of Regents, Acting For And On Behalf Of Arizona State University Method for classifying data using clustering and classification algorithm supervised
US7681032B2 (en) * 2001-03-12 2010-03-16 Portauthority Technologies Inc. System and method for monitoring unauthorized transport of digital content
JP2002342279A (ja) * 2001-03-13 2002-11-29 Fujitsu Ltd フィルタリング装置、フィルタリング方法およびこの方法をコンピュータに実行させるプログラム
JP2002279148A (ja) * 2001-03-16 2002-09-27 Toshiba Corp データ分析プログラム及びコンピュータシステムによるデータ分析方法並びにデータ分析システム
US7603709B2 (en) 2001-05-03 2009-10-13 Computer Associates Think, Inc. Method and apparatus for predicting and preventing attacks in communications networks
US20030028504A1 (en) * 2001-05-08 2003-02-06 Burgoon David A. Method and system for isolating features of defined clusters
US7043634B2 (en) 2001-05-15 2006-05-09 Mcafee, Inc. Detecting malicious alteration of stored computer files
US7237264B1 (en) * 2001-06-04 2007-06-26 Internet Security Systems, Inc. System and method for preventing network misuse
AU2002322109A1 (en) * 2001-06-13 2002-12-23 Intruvert Networks, Inc. Method and apparatus for distributed network security
US20020194490A1 (en) * 2001-06-18 2002-12-19 Avner Halperin System and method of virus containment in computer networks
WO2003003210A2 (en) 2001-06-27 2003-01-09 Arbor Networks Method and system for monitoring control signal traffic over a computer network
US7356689B2 (en) * 2001-07-09 2008-04-08 Lucent Technologies Inc. Method and apparatus for tracing packets in a communications network
JP2003029545A (ja) 2001-07-18 2003-01-31 Ricoh Co Ltd 画像形成装置
US7315903B1 (en) 2001-07-20 2008-01-01 Palladia Systems, Inc. Self-configuring server and server network
US7362707B2 (en) 2001-07-23 2008-04-22 Acme Packet, Inc. System and method for determining flow quality statistics for real-time transport protocol data flows
US7031311B2 (en) 2001-07-23 2006-04-18 Acme Packet, Inc. System and method for providing rapid rerouting of real-time multi-media flows
US7023861B2 (en) * 2001-07-26 2006-04-04 Mcafee, Inc. Malware scanning using a network bridge
EP1280298A1 (en) * 2001-07-26 2003-01-29 BRITISH TELECOMMUNICATIONS public limited company Method and apparatus of detecting network activity
US7487544B2 (en) 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US7506046B2 (en) 2001-07-31 2009-03-17 Hewlett-Packard Development Company, L.P. Network usage analysis system and method for updating statistical models
US7657935B2 (en) * 2001-08-16 2010-02-02 The Trustees Of Columbia University In The City Of New York System and methods for detecting malicious email transmission
US7331060B1 (en) * 2001-09-10 2008-02-12 Xangati, Inc. Dynamic DoS flooding protection
US6907430B2 (en) * 2001-10-04 2005-06-14 Booz-Allen Hamilton, Inc. Method and system for assessing attacks on computer networks using Bayesian networks
US7389537B1 (en) * 2001-10-09 2008-06-17 Juniper Networks, Inc. Rate limiting data traffic in a network
US7444679B2 (en) 2001-10-31 2008-10-28 Hewlett-Packard Development Company, L.P. Network, method and computer readable medium for distributing security updates to select nodes on a network
US20030084319A1 (en) 2001-10-31 2003-05-01 Tarquini Richard Paul Node, method and computer readable medium for inserting an intrusion prevention system into a network stack
US20030084344A1 (en) 2001-10-31 2003-05-01 Tarquini Richard Paul Method and computer readable medium for suppressing execution of signature file directives during a network exploit
US7475426B2 (en) * 2001-11-30 2009-01-06 Lancope, Inc. Flow-based detection of network intrusions
JP3893975B2 (ja) * 2002-01-07 2007-03-14 三菱電機株式会社 不正侵入検知装置及び不正侵入検知方法及び不正侵入検知プログラム
US6944656B2 (en) 2002-01-18 2005-09-13 Ip-Tap Uk System and method for covert management of passive network devices
US7225343B1 (en) 2002-01-25 2007-05-29 The Trustees Of Columbia University In The City Of New York System and methods for adaptive model generation for detecting intrusions in computer systems
US7448084B1 (en) 2002-01-25 2008-11-04 The Trustees Of Columbia University In The City Of New York System and methods for detecting intrusions in a computer system by monitoring operating system registry accesses
EP1481346B1 (en) * 2002-02-04 2012-10-10 Cataphora, Inc. A method and apparatus to visually present discussions for data mining purposes
AU2003212910A1 (en) * 2002-02-07 2003-09-02 University Of Massachusetts Probabalistic packet marking
US8370936B2 (en) 2002-02-08 2013-02-05 Juniper Networks, Inc. Multi-method gateway-based network security systems and methods
AU2003219885B2 (en) * 2002-02-22 2007-06-14 Iplocks, Inc. Method and apparatus for monitoring a database system
US8205259B2 (en) * 2002-03-29 2012-06-19 Global Dataguard Inc. Adaptive behavioral intrusion detection systems and methods
US7177486B2 (en) 2002-04-08 2007-02-13 Rensselaer Polytechnic Institute Dual bootstrap iterative closest point method and algorithm for image registration
WO2003090426A1 (en) 2002-04-17 2003-10-30 Computer Associates Think, Inc. Detecting and countering malicious code in enterprise networks
US20040111632A1 (en) * 2002-05-06 2004-06-10 Avner Halperin System and method of virus containment in computer networks
US7086089B2 (en) * 2002-05-20 2006-08-01 Airdefense, Inc. Systems and methods for network security
US20030236652A1 (en) 2002-05-31 2003-12-25 Battelle System and method for anomaly detection
US20030236995A1 (en) * 2002-06-21 2003-12-25 Fretwell Lyman Jefferson Method and apparatus for facilitating detection of network intrusion
US7418732B2 (en) * 2002-06-26 2008-08-26 Microsoft Corporation Network switches for detection and prevention of virus attacks
US8281400B1 (en) * 2002-07-23 2012-10-02 Juniper Networks, Inc. Systems and methods for identifying sources of network attacks
US7017186B2 (en) * 2002-07-30 2006-03-21 Steelcloud, Inc. Intrusion detection system using self-organizing clusters
JP3794491B2 (ja) * 2002-08-20 2006-07-05 日本電気株式会社 攻撃防御システムおよび攻撃防御方法
US7313100B1 (en) * 2002-08-26 2007-12-25 Juniper Networks, Inc. Network device having accounting service card
US20040047356A1 (en) * 2002-09-06 2004-03-11 Bauer Blaine D. Network traffic monitoring
US7188173B2 (en) * 2002-09-30 2007-03-06 Intel Corporation Method and apparatus to enable efficient processing and transmission of network communications
US7454499B2 (en) * 2002-11-07 2008-11-18 Tippingpoint Technologies, Inc. Active network defense system and method
US20040107361A1 (en) * 2002-11-29 2004-06-03 Redan Michael C. System for high speed network intrusion detection
US7376969B1 (en) 2002-12-02 2008-05-20 Arcsight, Inc. Real time monitoring and analysis of events from multiple network security devices
JP2004186878A (ja) * 2002-12-02 2004-07-02 Keyware Solutions Inc 侵入検知装置及び侵入検知プログラム
US7219239B1 (en) 2002-12-02 2007-05-15 Arcsight, Inc. Method for batching events for transmission by software agent
US8327442B2 (en) 2002-12-24 2012-12-04 Herz Frederick S M System and method for a distributed application and network security system (SDI-SCAM)
US20040143749A1 (en) 2003-01-16 2004-07-22 Platformlogic, Inc. Behavior-based host-based intrusion prevention system
US20040153644A1 (en) 2003-02-05 2004-08-05 Mccorkendale Bruce Preventing execution of potentially malicious software
FI20030222A (fi) * 2003-02-13 2004-08-14 Ekahau Oy Paikannussovelluksia langattomia verkkoja varten
US7564969B2 (en) * 2003-04-01 2009-07-21 Sytex, Inc. Methodology, system and computer readable medium for detecting file encryption
JP2004312083A (ja) * 2003-04-02 2004-11-04 Kddi Corp 学習データ作成装置、侵入検知システムおよびプログラム
US7681235B2 (en) 2003-05-19 2010-03-16 Radware Ltd. Dynamic network protection
US20060206615A1 (en) * 2003-05-30 2006-09-14 Yuliang Zheng Systems and methods for dynamic and risk-aware network security
US7246156B2 (en) 2003-06-09 2007-07-17 Industrial Defender, Inc. Method and computer program product for monitoring an industrial network
US7467417B2 (en) 2003-06-18 2008-12-16 Architecture Technology Corporation Active verification of boot firmware
US7596807B2 (en) 2003-07-03 2009-09-29 Arbor Networks, Inc. Method and system for reducing scope of self-propagating attack code in network
US7424609B2 (en) 2003-07-11 2008-09-09 Computer Associates Think, Inc. Method and system for protecting against computer viruses
US7565426B2 (en) * 2003-08-07 2009-07-21 Alcatel Lucent Mechanism for tracing back anonymous network flows in autonomous systems
US7751325B2 (en) * 2003-08-14 2010-07-06 At&T Intellectual Property Ii, L.P. Method and apparatus for sketch-based detection of changes in network traffic
US7644076B1 (en) * 2003-09-12 2010-01-05 Teradata Us, Inc. Clustering strings using N-grams
EP1682990B1 (en) 2003-11-12 2013-05-29 The Trustees of Columbia University in the City of New York Apparatus method and medium for detecting payload anomaly using n-gram distribution of normal data
US8839417B1 (en) 2003-11-17 2014-09-16 Mcafee, Inc. Device, system and method for defending a computer network
US8146160B2 (en) 2004-03-24 2012-03-27 Arbor Networks, Inc. Method and system for authentication event security policy generation
US20050249214A1 (en) * 2004-05-07 2005-11-10 Tao Peng System and process for managing network traffic
US7225468B2 (en) * 2004-05-07 2007-05-29 Digital Security Networks, Llc Methods and apparatus for computer network security using intrusion detection and prevention
US8154987B2 (en) 2004-06-09 2012-04-10 Intel Corporation Self-isolating and self-healing networked devices
US7343624B1 (en) * 2004-07-13 2008-03-11 Sonicwall, Inc. Managing infectious messages as identified by an attachment
US7519998B2 (en) 2004-07-28 2009-04-14 Los Alamos National Security, Llc Detection of malicious computer executables
US7865355B2 (en) * 2004-07-30 2011-01-04 Sap Aktiengesellschaft Fast text character set recognition
WO2006028558A1 (en) 2004-09-03 2006-03-16 Virgina Tech Intellectual Properties, Inc. Detecting software attacks by monitoring electric power consumption patterns
US7607170B2 (en) 2004-12-22 2009-10-20 Radware Ltd. Stateful attack protection
US7805382B2 (en) 2005-04-11 2010-09-28 Mkt10, Inc. Match-based employment system and method
US7908357B2 (en) 2005-09-21 2011-03-15 Battelle Memorial Institute Methods and systems for detecting abnormal digital traffic
US8789172B2 (en) 2006-09-18 2014-07-22 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting attack on a digital processing device

Also Published As

Publication number Publication date
US10673884B2 (en) 2020-06-02
JP2011040064A (ja) 2011-02-24
US20190190937A1 (en) 2019-06-20
JP4662944B2 (ja) 2011-03-30
WO2005047862A3 (en) 2006-06-15
EP2618538B1 (en) 2018-09-05
CA2545916A1 (en) 2005-06-02
US20050281291A1 (en) 2005-12-22
CA2545916C (en) 2015-03-17
US20140196147A1 (en) 2014-07-10
US20050265331A1 (en) 2005-12-01
EP1682990A2 (en) 2006-07-26
US10063574B2 (en) 2018-08-28
US20150180895A1 (en) 2015-06-25
JP5307090B2 (ja) 2013-10-02
US20100054278A1 (en) 2010-03-04
US8644342B2 (en) 2014-02-04
US7639714B2 (en) 2009-12-29
WO2005050369A2 (en) 2005-06-02
WO2005050369A3 (en) 2006-06-15
EP2618538A1 (en) 2013-07-24
US9276950B2 (en) 2016-03-01
EP1682990A4 (en) 2010-12-08
WO2005047862A2 (en) 2005-05-26
US20160330224A1 (en) 2016-11-10
US9003528B2 (en) 2015-04-07
EP1682990B1 (en) 2013-05-29
JP2007515867A (ja) 2007-06-14
WO2005048470A2 (en) 2005-05-26
US20060015630A1 (en) 2006-01-19
US8239687B2 (en) 2012-08-07
WO2005048470A3 (en) 2006-05-26
US20130174255A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
ES2423491T3 (es) Aparato, procedimiento y medio para detectar una anomalía de carga útil usando la distribución en n-gramas de datos normales
US11122061B2 (en) Method and server for determining malicious files in network traffic
US7873998B1 (en) Rapidly propagating threat detection
US7904961B2 (en) Network attack detection using partial deterministic finite automaton pattern matching
US20160127400A1 (en) Managing infectious forwarded messages
WO2009032379A1 (en) Methods and systems for providing trap-based defenses
Aoki et al. Controlling malware http communications in dynamic analysis system using search engine
US8321940B1 (en) Systems and methods for detecting data-stealing malware
Boulaiche et al. An auto-learning approach for network intrusion detection
CN115664764A (zh) 一种流量阻断系统及方法
KR100608210B1 (ko) 에스브이엠 기반 패킷 마킹 기법을 적용한 근원지 역추적방법 및 라우터
Ariffin et al. IoT attacks and mitigation plan: A preliminary study with Machine Learning Algorithms
EP1751651B1 (en) Method and systems for computer security
US20210288991A1 (en) Systems and methods for assessing software vulnerabilities through a combination of external threat intelligence and internal enterprise information technology data
Waraich Automated attack signature generation: A survey
Ali et al. Detailed Analysis of Network Attack Detection Accuracy Using Machine Learning Algorithms
KR20240019673A (ko) 표적형 이메일 공격 차단 및 대응을 위한 진단 리포팅을 제공하는 이메일 보안 시스템 및 그 동작 방법
Nagarajan Analysis of Periodicity in Botnets
Melo ARCA-Alerts root cause analysis framework