ES2949033T3 - Sistemas y métodos para la detección de amenazas de comportamiento - Google Patents

Sistemas y métodos para la detección de amenazas de comportamiento Download PDF

Info

Publication number
ES2949033T3
ES2949033T3 ES19817693T ES19817693T ES2949033T3 ES 2949033 T3 ES2949033 T3 ES 2949033T3 ES 19817693 T ES19817693 T ES 19817693T ES 19817693 T ES19817693 T ES 19817693T ES 2949033 T3 ES2949033 T3 ES 2949033T3
Authority
ES
Spain
Prior art keywords
event
events
client
training
group
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
ES19817693T
Other languages
English (en)
Inventor
Daniel Dichiu
Stefan Niculae
Elena A Bosinceanu
Sorina N Zamfir
Andreea Dincu
Andrei A Apostoae
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.)
Bitdefender IPR Management Ltd
Original Assignee
Bitdefender IPR Management Ltd
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 Bitdefender IPR Management Ltd filed Critical Bitdefender IPR Management Ltd
Application granted granted Critical
Publication of ES2949033T3 publication Critical patent/ES2949033T3/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/1416Event detection, e.g. attack signature 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
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Air Bags (AREA)
  • Alarm Systems (AREA)

Abstract

En algunas realizaciones, un sistema de seguridad informática conductual protege a los clientes y las redes contra amenazas tales como software malicioso e intrusiones. Se construye un conjunto de perfiles de cliente de acuerdo con un corpus de entrenamiento de eventos que ocurren en los clientes, en el que cada perfil de cliente representa un subconjunto de máquinas protegidas, y cada perfil de cliente es indicativo de un patrón normal o básico de uso de las máquinas asignadas al cliente respectivo. perfil. Un perfil de cliente puede agrupar máquinas que tengan una estadística de eventos similar. Después de la capacitación, los eventos detectados en un cliente se analizan selectivamente con un perfil de cliente asociado con el cliente respectivo, para detectar comportamientos anómalos. En algunas realizaciones, los eventos individuales se analizan en el contexto de otros eventos, utilizando un espacio de inclusión de eventos multidimensional. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Sistemas y métodos para la detección de amenazas de comportamiento
Antecedentes
La invención se refiere a sistemas y métodos de seguridad informática y, en particular, a sistemas y métodos para detectar software malicioso y/o una intrusión en un sistema informático y/o una red de comunicación.
En los últimos años, la seguridad informática y de redes se ha vuelto cada vez más importante tanto para particulares como para empresas. El rápido desarrollo de las tecnologías de comunicación electrónica, la creciente dependencia del software en las actividades diarias y la llegada del Internet de las cosas han dejado a las empresas y a las personas vulnerables a la pérdida de privacidad y al robo de datos.
Un atacante experto puede intentar infiltrarse en una red corporativa usando varias técnicas, por ejemplo, usando una puerta trasera instalada en una computadora corporativa por software malicioso. El atacante puede entonces obtener acceso a, modificar o destruir información confidencial. Otros ejemplos de ataques incluyen, entre otros, deshabilitar o incapacitar de otro modo los sistemas de seguridad física (p. ej., una alarma antirrobo), instalar software de espionaje e interferir con los sistemas automatizados que controlan la fabricación o distribución de bienes y servicios (p. ej., la red eléctrica).
El software que se ejecuta en un sistema informático puede usarse para detectar y/o prevenir automáticamente intrusiones no autorizadas y otras actividades maliciosas. Dicho software, comúnmente conocido como sistema de detección de intrusos (IDS), puede monitorear la red y/o las actividades de la computadora en busca de eventos inusuales o violaciones de políticas. Un IDS típico registra información relacionada con eventos observados, notifica a un usuario o administrador de red y genera informes. Algunos IDS pueden ir más allá para evitar que el intruso realice actividades maliciosas, por ejemplo, cambiando la configuración de seguridad (p. ej., reconfigurando un firewall) en respuesta a la detección de una intrusión.
Los documentos US2014/215618 A1 y US2016/149936 A1 describen sistemas de detección de intrusos conocidos.
Sin embargo, a medida que los servicios de software se deslocalizan progresivamente y aumenta la cantidad de datos que fluyen a través de las redes informáticas, se vuelve cada vez menos práctico para el software de seguridad cribar esta gran cantidad de información en busca de indicadores de actividad maliciosa. Por lo tanto, existe un interés sustancial en desarrollar sistemas y métodos de detección de intrusos más robustos y escalables.
Sumario
De acuerdo con un aspecto, un sistema informático comprende al menos un procesador de hardware configurado, en respuesta a la recepción de un indicador de pertenencia a grupo que indica un agrupamiento de una pluralidad de sistemas cliente en una pluralidad de grupos de clientes, para seleccionar un grupo de clientes de la pluralidad de grupos de clientes, comprendiendo el grupo de clientes seleccionado múltiples sistemas cliente. El al menos un procesador de hardware está configurado además, en respuesta a la selección del grupo de clientes, para seleccionar un corpus de eventos de entrenamiento de una colección de eventos según si los eventos seleccionados han ocurrido en miembros del grupo de clientes seleccionado. El al menos un procesador de hardware está configurado además, en respuesta a la selección del corpus de eventos de entrenamiento, para entrenar un modelo de comportamiento para codificar un comportamiento colectivo de miembros del grupo de clientes seleccionado de acuerdo con el corpus de eventos de entrenamiento, teniendo el modelo de comportamiento un conjunto de parámetros ajustables. El al menos un procesador de hardware está configurado además, en respuesta al entrenamiento del modelo de comportamiento, para transmitir un conjunto de valores de los parámetros ajustables a un detector de anomalías configurado para determinar si un evento objetivo que ocurre en un sistema cliente objetivo es indicativo de una amenaza a la seguridad informática. El modelo de comportamiento está configurado para ingresar un evento seleccionado de una secuencia de eventos y en respuesta, determinar un indicador de predicción indicativo de una probabilidad de que otro evento de la secuencia de eventos sea de un tipo de evento seleccionado. La secuencia de eventos comprende una pluralidad de eventos del corpus de entrenamiento, ordenada la pluralidad de eventos de acuerdo con un momento de ocurrencia de cada evento de la pluralidad de eventos. El entrenamiento del modelo de comportamiento comprende ajustar el conjunto de parámetros configurables de acuerdo con el indicador de predicción.
De acuerdo con otro aspecto, un método implementado por computadora comprende emplear al menos un procesador de hardware de un sistema informático, en respuesta a la recepción de un indicador de pertenencia a grupo que indica un agrupamiento de una pluralidad de sistemas cliente en una pluralidad de grupos de clientes, para seleccionar un grupo de clientes de la pluralidad de grupos de clientes, comprendiendo el grupo de clientes seleccionado múltiples sistemas cliente. El método comprende además, en respuesta a la selección del grupo de clientes, emplear al menos un procesador de hardware del sistema informático para seleccionar un corpus de eventos de entrenamiento de la colección de eventos según si los eventos seleccionados han ocurrido en miembros del grupo de clientes seleccionado. El método comprende además, en respuesta a la selección del corpus de eventos de entrenamiento, emplear al menos un procesador de hardware del sistema informático para entrenar un modelo de comportamiento para codificar un comportamiento colectivo de miembros del grupo de clientes seleccionado de acuerdo con el corpus de eventos de entrenamiento, teniendo el modelo de comportamiento un conjunto de parámetros ajustables. El método comprende además, en respuesta al entrenamiento del modelo de comportamiento, emplear al menos un procesador de hardware del sistema informático para transmitir un conjunto de valores de los parámetros ajustables a un detector de anomalías configurado para determinar si un evento objetivo que ocurre en un sistema cliente objetivo es indicativo de una amenaza a la seguridad informática. El modelo de comportamiento está configurado para ingresar un evento seleccionado de una secuencia de eventos y en respuesta, determinar un indicador de predicción indicativo de una probabilidad de que otro evento de la secuencia de eventos sea de un tipo de evento seleccionado. La secuencia de eventos comprende una pluralidad de eventos del corpus de entrenamiento, ordenada la pluralidad de eventos de acuerdo con un momento de ocurrencia de cada evento de la pluralidad de eventos. El entrenamiento del modelo de comportamiento comprende ajustar el conjunto de parámetros configurables de acuerdo con el indicador de predicción.
De acuerdo con otro aspecto, un medio no transitorio legible por computadora almacena instrucciones que, cuando son ejecutadas por al menos un procesador de hardware de un sistema informático, hacen que el sistema informático, en respuesta a la recepción de un indicador de pertenencia a grupo que indica un agrupamiento de una pluralidad de sistemas cliente en una pluralidad de grupos de clientes, seleccione un grupo de clientes de la pluralidad de grupos de clientes, comprendiendo el grupo de clientes seleccionado múltiples sistemas cliente. Las instrucciones provocan además que el sistema informático, en respuesta a la selección del grupo de clientes, seleccione un corpus de eventos de entrenamiento de una colección de eventos según si los eventos seleccionados han ocurrido en miembros del grupo de clientes seleccionado. Las instrucciones provocan además que el sistema informático, en respuesta a la selección del corpus de eventos de entrenamiento, entrene un modelo de comportamiento para codificar un comportamiento colectivo de miembros del grupo de clientes seleccionado de acuerdo con el corpus de eventos de entrenamiento, teniendo el modelo de comportamiento un conjunto de parámetros ajustables. Las instrucciones provocan además que el sistema informático, en respuesta al entrenamiento del modelo de comportamiento, transmita un conjunto de valores de los parámetros ajustables a un detector de anomalías configurado para determinar si un evento objetivo que ocurre en un sistema cliente objetivo es indicativo de una amenaza a la seguridad informática. El modelo de comportamiento está configurado para ingresar un evento seleccionado de una secuencia de eventos y en respuesta, determinar un indicador de predicción indicativo de una probabilidad de que otro evento de la secuencia de eventos sea de un tipo de evento seleccionado. La secuencia de eventos comprende una pluralidad de eventos del corpus de entrenamiento, ordenada la pluralidad de eventos de acuerdo con un momento de ocurrencia de cada evento de la pluralidad de eventos. El entrenamiento del modelo de comportamiento comprende ajustar el conjunto de parámetros configurables de acuerdo con el indicador de predicción.
Breve descripción de los dibujos
Los aspectos y ventajas anteriores de la presente invención se entenderán mejor con la lectura de la siguiente descripción detallada y con la referencia a los dibujos, donde:
La Fig. 1 muestra varios ejemplos de sistemas cliente interconectados, con un servidor de seguridad que actúa como sistema de detección de intrusos de acuerdo con algunas realizaciones de la presente invención.
La Fig. 2 muestra un ejemplo de intercambio de datos llevado a cabo para proteger un sistema cliente de acuerdo con algunas realizaciones de la presente invención.
La Fig.3-A ilustra una configuración de hardware ejemplar de un sistema cliente de acuerdo con algunas realizaciones de la presente invención.
La Fig. 3-B ilustra una configuración de hardware ejemplar de un servidor de seguridad de acuerdo con algunas realizaciones de la presente invención.
La Fig. 4 muestra componentes de software ejemplares que se ejecutan en un sistema cliente protegido de acuerdo con algunas realizaciones de la presente invención.
La Fig. 5 muestra una arquitectura de software ejemplar de un servidor de seguridad de acuerdo con algunas realizaciones de la presente invención.
La Fig. 6 ilustra una operación ejemplar de un motor de perfilado de acuerdo con algunas realizaciones de la presente invención.
La Fig. 7 muestra una secuencia ejemplar de pasos llevados a cabo por el motor de perfilado de acuerdo con algunas realizaciones de la presente invención.
La Fig. 8-A muestra un entrenamiento ejemplar de un codificador de eventos de acuerdo con algunas realizaciones de la presente invención.
La Fig. 8-B muestra un entrenamiento ejemplar alternativo del codificador de eventos de acuerdo con algunas realizaciones de la presente invención.
La Fig. 9 muestra una secuencia ejemplar de pasos realizados para entrenar el decodificador de eventos en la configuración de la Fig. 8-A.
La Fig. 10 ilustra un espacio de incrustación de eventos ejemplar y un conjunto de grupos de eventos ejemplares de acuerdo con algunas realizaciones de la presente invención.
La Fig. 11 ilustra un espacio de perfil de cliente ejemplar y un conjunto de grupos de clientes de acuerdo con algunas realizaciones de la presente invención.
La Fig. 12 muestra un perfil de evento ejemplar de un sistema cliente de acuerdo con algunas realizaciones de la presente invención.
La Fig. 13 muestra componentes ejemplares y el funcionamiento de un detector de anomalías de acuerdo con algunas realizaciones de la presente invención.
La Fig. 14 ilustra una secuencia ejemplar de pasos realizados por el detector de anomalías durante el entrenamiento, de acuerdo con algunas realizaciones de la presente invención.
La Fig. 15 muestra componentes ejemplares de un modelo de comportamiento que forma parte del detector de anomalías de acuerdo con algunas realizaciones de la presente invención.
La Fig. 16 ilustra una secuencia ejemplar de pasos realizados por el detector de anomalías entrenado de acuerdo con algunas realizaciones de la presente invención.
La Fig. 17-A muestra resultados de un experimento que comprende el empleo de algunas realizaciones de la presente invención para detectar amenazas reales a la seguridad informática.
La Fig. 17-B muestra otros resultados experimentales del uso de algunas realizaciones para detectar amenazas reales a la seguridad informática.
Descripción detallada de realizaciones preferidas
En la siguiente descripción, se entiende que todas las conexiones mencionadas entre estructuras pueden ser conexiones operativas directas o conexiones operativas indirectas a través de estructuras intermedias. Un conjunto de elementos incluye uno o más elementos. Cualquier enumeración de un elemento se entiende que se refiere a al menos un elemento. Una pluralidad de elementos incluye al menos dos elementos. A menos que se especifique lo contrario, cualquier uso de "O" se refiere a un o no exclusivo. A menos que se requiera lo contrario, no es necesario que los pasos del método descritos se realicen necesariamente en un orden ilustrado particular. Un primer elemento (p. ej., datos) derivado de un segundo elemento abarca un primer elemento igual al segundo elemento, así como un primer elemento generado al procesar el segundo elemento y, opcionalmente, otros datos. Tomar una determinación o decisión de acuerdo con un parámetro abarca tomar la determinación o decisión de acuerdo con el parámetro y opcionalmente de acuerdo con otros datos. A menos que se especifique lo contrario, un indicador de alguna cantidad/datos puede ser la cantidad/datos en sí, o un indicador diferente de la cantidad/datos en sí. Un programa informático es una secuencia de instrucciones del procesador que llevan a cabo una tarea. Los programas informáticos descritos en algunas realizaciones de la presente invención pueden ser entidades o subentidades de software independientes (p. ej., subrutinas, bibliotecas) de otros programas informáticos. A menos que se especifique lo contrario, la seguridad informática abarca la protección de equipos y datos contra el acceso, la modificación y/o la destrucción ilegítimos. Los medios legibles por computadora abarcan medios no transitorios como medios de almacenamiento magnéticos, ópticos y de semiconductor (p. ej., discos duros, discos ópticos, memoria flash, DRAM), así como enlaces de comunicación como cables conductores y enlaces de fibra óptica. De acuerdo con algunas realizaciones, la presente invención proporciona, entre otros, sistemas informáticos que comprenden hardware (p. ej., uno o más procesadores) programados para realizar los métodos descritos en este documento, así como instrucciones de codificación de medios legibles por computadora para realizar los métodos descritos en este documento.
La siguiente descripción ilustra realizaciones de la invención a modo de ejemplo y no necesariamente a modo de limitación.
La Fig. 1 muestra un conjunto ejemplar de sistemas cliente 10a-h protegido contra amenazas a la seguridad informática de acuerdo con algunas realizaciones de la presente invención. Sistemas cliente 10a-h representan genéricamente cualquier dispositivo electrónico que tiene un procesador, una memoria y una interfaz de comunicación. Sistemas cliente ejemplares 10a-h incluyen computadoras personales, computadoras portátiles, tabletas, dispositivos de telecomunicaciones móviles (p. ej., teléfonos inteligentes), reproductores multimedia, televisores, consolas de juegos, electrodomésticos (p. ej., refrigeradores, sistemas inteligentes de calefacción y/o iluminación) y dispositivos portátiles (p. ej., relojes inteligentes, equipos de gimnasia), entre otros. Sistemas cliente 10a-h pueden ejecutar varios softwares, por ejemplo, procesamiento de documentos, juegos, mensajería electrónica y aplicaciones de redes sociales, entre otros. Algunos clientes pueden intercambiar información con un servidor de contenido remoto 17, por ejemplo, la navegación por Internet.
Los sistemas cliente ilustrados están conectados por redes locales 12a-b, y además a una red extendida 14, como una red de área extendida (WAN) o Internet. En un ejemplo, los sistemas cliente 10a-d representan los dispositivos electrónicos de una familia, interconectados por una red doméstica 12a. Mientras tanto, los sistemas cliente 10e-g pueden denotar computadoras individuales y/o una computadora central corporativa dentro de un edificio de oficinas. Las redes locales 12-b pueden entonces representar una sección de una red corporativa (p. ej., una red de área local - LAN).
Un enrutador comprende un dispositivo electrónico que permite la comunicación entre múltiples sistemas cliente y/o el acceso de los respectivos clientes a la red extendida 14. En el ejemplo de la Fig. 1, los enrutadores 15a-b interconectan clientes en redes locales 12a-b y/o permiten a los clientes 10a-g acceder a Internet. Los enrutadores 15a-b pueden actuar como pasarelas entre las redes locales 12a-b, respectivamente, y la red extendida 14 y pueden además proporcionar un conjunto de servicios de red a los sistemas cliente 10a-g. Dichos servicios incluyen, por ejemplo, la distribución de parámetros de configuración de red a los sistemas cliente 10a-g (p. ej., asignación de direcciones de red a través del Protocolo de configuración dinámica de host - DHCP) y enrutamiento de comunicaciones a través de una secuencia de nodos de red. Algunos sistemas cliente, como el sistema cliente ejemplar 10h, pueden conectarse directamente a la red extendida 14, por ejemplo, a través de un relé de telecomunicaciones.
La Fig. 1 además muestra un servidor de seguridad 16 conectado a la red extendida 14. El servidor 16 representa genéricamente un conjunto de sistemas informáticos acoplados comunicativamente, que pueden estar o no en proximidad física entre sí. El servidor 16 protege los sistemas cliente 10a-h contra amenazas a la seguridad informática como software malicioso e intrusión. En algunas realizaciones, dicha protección comprende la detección por el servidor de seguridad 16 de actividad sospechosa que ocurre en un sistema cliente, por ejemplo, una acción de un atacante que controla el sistema cliente respectivo.
Un intercambio de datos ejemplar entre el servidor de seguridad 16 y un sistema cliente 10 se ilustra en la Fig. 2. El sistema cliente 10 puede representar cualquier cliente 10a-h en la Fig. 1. En algunas realizaciones, el servidor 16 está configurado para recibir un indicador de evento 20a del sistema cliente 10, indicador 20a indicativo de la ocurrencia de un tipo particular de evento durante la ejecución del software en el cliente 10. Ejemplos de tales eventos incluyen el inicio de un proceso/subproceso (p. ej., un usuario inicia una aplicación, un proceso principal crea un proceso secundario, etc.), un intento de acceder a un dispositivo de entrada del sistema cliente respectivo (p. ej., cámara, micrófono), un intento de acceder a un recurso de red local o remota (p, ej., una solicitud de protocolo de transferencia de hipertexto -HTTP- para acceder a un URL particular, un intento de acceder a un depósito de documentos a través de una red local), una solicitud formulada en un esquema de identificador de recurso uniforme particular (p. ej., una solicitud mailto: o ftp :), una ejecución de una instrucción de procesador particular (p. ej., una llamada al sistema), un intento de cargar una biblioteca (p. ej., una biblioteca vinculada dinámica - DLL), un intento de crear un nuevo archivo de disco, un intento de leer o escribir en una ubicación particular del disco (p. ej., un intento de sobrescribir un archivo existente, un intento de abrir una carpeta o documento específico) y un intento de enviar un mensaje electrónico (p. ej., correo electrónico, servicio de mensajes cortos - SMS, etc.), entre otros. En algunas realizaciones, los periodos de inactividad, es decir, los intervalos de tiempo entre eventos y/o los lapsos de tiempo cuando el sistema cliente respectivo está inactivo, no registra actividad del usuario o lleva a cabo solo tareas internas del sistema, también se califican como eventos y pueden notificarse, a través de indicadores de evento, al servidor de seguridad. Dichos periodos inactivos pueden diferenciarse además en breves intervalos de tiempo (p. ej., del orden de un segundo) y largos intervalos de tiempo (p. ej., del orden de minutos a horas). Los eventos detectados pueden o no ser indicativos de malicia per se; algunos eventos pueden ser indicativos de malicia cuando ocurren junto con otros eventos y/o cuando ocurren en una secuencia particular. Otros eventos pueden ser maliciosos cuando ocurren en ciertos momentos del día o con una frecuencia inusual, por ejemplo, una secuencia de 1000 lecturas de una carpeta de disco particular en un intervalo de unos pocos segundos.
Cada indicador de evento 20a puede comprender, entre otros, un indicador de un tipo del evento respectivo y una marca de tiempo indicativa de un momento en el tiempo en que ha ocurrido el evento respectivo. El indicador de evento 20a puede incluir además un identificador (ID de cliente) del sistema cliente respectivo y/o un indicador de un usuario (ID de usuario) que actualmente opera el sistema cliente respectivo. Por ejemplo, cuando el evento comunicado comprende la creación de un proceso, un indicador de usuario puede indicar el propietario del proceso principal. El indicador de evento 20a puede codificar otros parámetros, como un nombre de proceso, una ubicación/ruta del sistema de archivos de un proceso que se está iniciando, una dirección de red (p. ej., protocolo de Internet - dirección IP), un localizador universal de recursos (URL) de una solicitud HTTP, etc.
En algunas realizaciones, el servidor 16 también puede recopilar información de los enrutadores 15a-b, como lo ilustra un indicador de evento 20b en la Fig. 2. Dichos indicadores de eventos pueden incluir, por ejemplo, indicadores de eventos de red tales como solicitudes de acceso a la red emitidas por sistemas cliente conectados al respectivo enrutador/pasarela. Por ejemplo, el indicador de evento 20b puede incluir una dirección IP de origen, una dirección IP de destino, una marca de tiempo y un tamaño de carga útil. En algunas realizaciones, el indicador de evento 20b comprende datos de eventos del cliente agregados por el enrutador respectivo de acuerdo con varios protocolos de procesamiento de datos (p. ej., flujos de red, registros de red, etc.).
El servidor de seguridad 16 mantiene un conjunto de modelos de comportamiento del usuario que representan una forma de referencia, normal y/o legítima de operar un subconjunto de sistemas cliente 10a-h. Dichos modelos de comportamiento se consideran aquí perfiles de clientes. Los parámetros de dichos modelos de comportamiento se representan genéricamente como una base de datos de perfiles 19 en la Fig. 1 y pueden incluir una salida de un evento y/o algoritmo de agrupamiento de clientes, como se muestra en detalle a continuación. En una realización ejemplar en la que un perfil está representado por un cliente o grupo de eventos, los parámetros del perfil respectivo pueden incluir coordenadas de un centroide de grupo y un conjunto de números que indican un rango del grupo respectivo a lo largo de varios ejes. Otros parámetros del perfil pueden incluir, entre otros, una medida de excentricidad del grupo respectivo y una distancia promedio entre los miembros del grupo y el centroide del grupo, entre otros. Los perfiles de los clientes pueden generarse automáticamente, utilizando métodos y algoritmos de aprendizaje supervisados o no supervisados, como se muestra a continuación.
Un perfil de cliente puede capturar el comportamiento de un solo usuario o puede capturar colectivamente el comportamiento de múltiples usuarios. Por dar algunos ejemplos, un teléfono inteligente puede ser utilizado principalmente por un solo usuario, por lo tanto, un perfil de cliente ligado al teléfono inteligente respectivo puede capturar esencialmente un comportamiento de referencia de su usuario principal. Por el contrario, las computadoras que pertenecen a un laboratorio de computación de universidad pueden ser utilizadas por muchos estudiantes diferentes; un perfil de cliente ligado a una de estas máquinas puede representar colectivamente un comportamiento de referencia de todos los estudiantes respectivos. Un perfil de cliente puede ligarse a un solo sistema cliente/máquina física (p. ej., teléfono inteligente, computadora portátil). En algunas realizaciones, un perfil de cliente puede representar colectivamente una pluralidad de máquinas físicas. En uno de esos ejemplos, los sistemas cliente 10a-d en la Fig. 1 pueden estar representados colectivamente por un solo perfil de cliente que captura un comportamiento normal o de referencia de los miembros de una familia en particular. En otro ejemplo, se utiliza un perfil de cliente para representar todas las computadoras en el departamento de contabilidad de una corporación, mientras que otro perfil de cliente representa todas las computadoras utilizadas por el equipo de investigación y desarrollo de la corporación respectiva. En una realización de computación en la nube, como un entorno de infraestructura de escritorio virtual (VDI) en el que una máquina física puede ejecutar una pluralidad de máquinas virtuales para varios usuarios distribuidos, un perfil de cliente puede ligarse a múltiples máquinas virtuales que se ejecutan en la máquina física respectiva.
En algunas realizaciones, un solo usuario puede estar representado por una pluralidad de perfiles de cliente distintos. Por ejemplo, la misma persona puede tener un perfil de cliente/comportamiento de referencia mientras está en el trabajo y un perfil de cliente/comportamiento de referencia diferente mientras está en casa. Otros ejemplos de perfiles de cliente pueden estar asociados con usuarios de un grupo de edad particular (p. ej., adolescentes), un interés personal particular (p. ej., juegos), una ocupación particular (p. ej., ingeniero, artista, educador), etc. En otra realización ejemplar más, distintos perfiles de cliente pueden corresponder a distintas actividades informáticas, p. ej., utilizar distintos programas informáticos: navegar por Internet, utilizar redes sociales, efectuar trabajos de oficina, etc. Otros perfiles de cliente ejemplares más pueden estar ligados a tipos de dispositivo distintos (p. ej., teléfono inteligente frente a PC). Los perfiles colectivos pueden diseñarse de acuerdo con criterios más complejos, por ejemplo, un perfil de cliente que indique una forma típica/de referencia en la que un ingeniero de la empresa X navega por Internet. Otro de estos perfiles ejemplares puede indicar una manera típica en la que los jóvenes usan las tabletas.
Un subconjunto de indicadores de eventos 20a-b se puede recopilar para formar un corpus de eventos que se utilizará para derivar perfiles de cliente, como se muestra en detalle a continuación. Se puede usar otro subconjunto de indicadores de eventos para detectar amenazas a la seguridad. Por ejemplo, en respuesta a la recepción de indicadores de eventos 20a-b, el servidor de seguridad 16 puede determinar si el evento comunicado por el indicador de evento respectivo es coherente con un perfil de cliente seleccionado de acuerdo con el indicador de cliente respectivo. Dicho de otra manera, el servidor de seguridad 16 puede determinar si el evento respectivo coincide con un patrón de normalidad/comportamiento de referencia codificado en el perfil de cliente respectivo. Cuando no, el evento respectivo puede indicar actividad sospechosa, en cuyo caso algunas realizaciones pueden tomar medidas de protección, por ejemplo, enviar alertas de seguridad 22a-b al respectivo sistema cliente y/o a un administrador del respectivo sistema cliente. En otro ejemplo de medida de protección, algunas realizaciones dan instrucciones a un enrutador que pertenece a la misma red local que el sistema cliente sospechoso para bloquear las comunicaciones hacia y/o desde el respectivo sistema cliente sospechoso. Perfiles de cliente y procesamiento de indicadores de eventos por el servidor de seguridad 16 se describen con más detalle a continuación.
La Fig. 3-A muestra una configuración de hardware ejemplar de un sistema cliente de acuerdo con algunas realizaciones de la presente invención. El sistema cliente 10 puede representar cualquiera de los sistemas cliente 10ah en la Fig. 1. Para mayor claridad, el sistema cliente ilustrado es un sistema informático. Otros sistemas cliente, como teléfonos móviles, tabletas y dispositivos portátiles, pueden tener configuraciones ligeramente diferentes. El procesador 32 comprende un dispositivo físico (p. ej., microprocesador, circuito integrado multinúcleo formado sobre un sustrato semiconductor) configurado para ejecutar operaciones computacionales y/o lógicas con un conjunto de señales y/o datos. Tales señales o datos pueden codificarse y entregarse al procesador 32 en forma de instrucciones del procesador, p. ej., código máquina. La unidad de memoria 34 puede comprender medios volátiles legibles por computadora (p. ej., memoria dinámica de acceso aleatorio - DRAM) que almacenan datos/señales a los que se accede o generados por el procesador 32 en el curso de la realización de las operaciones.
Los dispositivos de entrada 36 puede incluir teclados, ratones y micrófonos de computadora, entre otros, incluidas las respectivas interfaces de hardware y/o adaptadores que permiten a un usuario introducir datos y/o instrucciones en el sistema cliente 10. Los dispositivos de salida 38 puede incluir dispositivos de visualización, como monitores, y altavoces, entre otros, así como interfaces/adaptadores de hardware, como tarjetas gráficas, que permiten que el sistema cliente respectivo comunique datos a un usuario. En algunas realizaciones, los dispositivos de entrada y salida 36-38 comparten una pieza común de hardware (p. ej., una pantalla táctil). Los dispositivos de almacenamiento 42 incluyen medios legibles por computadora que permiten el almacenamiento no volátil, la lectura y la escritura de instrucciones de software y/o datos. Ejemplos de dispositivos de almacenamiento incluyen discos magnéticos y ópticos y dispositivos de memoria flash, así como medios extraíbles tales como unidades y discos de CD y/o DVD. El (los) adaptador(es) de red 44 permite(n) al sistema cliente 10 conectarse a una red de comunicación electrónica (p. ej., las redes 12, 14 en la Fig. 1) y/o a otros dispositivos/sistemas informáticos.
El concentrador de control 40 representa genéricamente la pluralidad de buses de sistema, periféricos y/o de chipset, y/o todos los demás circuitos que permiten la comunicación entre el procesador 32 y el resto de los componentes de hardware del sistema cliente 1o. Por ejemplo, el concentrador de control 40 puede comprender un controlador de memoria, un controlador de entrada/salida (E/S) y un controlador de interrupción. Según el fabricante del hardware, algunos de estos controladores pueden incorporarse en un solo circuito integrado y/o pueden integrarse con el procesador. En otro ejemplo, el concentrador de control 40 puede comprender un controlador de memoria que conecta el procesador 32 a la memoria 34, y/o un controlador de entrada-salida (southbridge) que conecta el procesador 32 a los dispositivos 36, 38, 42 y 44.
La Fig. 3-B muestra una configuración de hardware ejemplar del servidor de seguridad 16 de acuerdo con algunas realizaciones de la presente invención. El servidor 16 comprende al menos un procesador de hardware 132 (p. ej., microprocesador, circuito integrado multinúcleo), una memoria física 134 (p. ej., DRAM), dispositivos de almacenamiento de servidor 142 y un conjunto de adaptadores de red de servidor 144. Los procesadores de servidor 132 pueden incluir una unidad central de procesamiento (UCP) y/o una matriz de unidades de procesamiento de gráficos (GPU). Los adaptadores 144 pueden incluir tarjetas de red y otras interfaces de comunicación que permiten al servidor de seguridad 16 conectarse a la red de comunicación 14. Los dispositivos de almacenamiento de servidor 142 pueden almacenar datos tales como indicadores de eventos y/o parámetros del perfil de cliente. En algunas realizaciones, el servidor 16 comprende además dispositivos de entrada y salida, que pueden tener una función similar a los dispositivos de entrada/salida 36 y 38 del sistema cliente 10, respectivamente.
La Fig. 4 muestra componentes de software ejemplares que se ejecutan en el sistema cliente 10 de acuerdo con algunas realizaciones de la presente invención. Dicho software puede incluir un sistema operativo (SO) 46 que proporciona una interfaz entre el hardware del sistema cliente 10 y otros programas informáticos, como una aplicación de usuario 48 que se ejecuta en el sistema cliente respectivo. Sistemas operativos ejemplares incluyen, entre otros, Windows®, Mac OS®, il)S® y Android®. La aplicación de usuario 48 representa de manera genérica cualquier aplicación como procesamiento de textos, procesamiento de imágenes, hoja de cálculo, calendario, juegos en línea, redes sociales, navegador web y aplicaciones de comunicación electrónica, entre otras. En algunas realizaciones, una aplicación de seguridad 50 está configurada para proteger el sistema cliente 10 contra amenazas a la seguridad informática como software malicioso e intrusión. Entre otras funciones, la aplicación de seguridad 50 está configurada para transmitir indicadores de eventos al servidor de seguridad 16 y/o para recibir alertas de seguridad. En algunas realizaciones, la aplicación 50 comprende además un recolector de eventos 52 y un filtro de red 53. Alguna funcionalidad de filtro de red 53 puede implementarse directamente en hardware. Cuando el sistema cliente 10 opera una plataforma de virtualización de hardware en la que el OS 46 y la aplicación 48 se ejecutan dentro de una máquina virtual (por ejemplo, en un entorno de computación en la nube), el recolector de eventos 52 y/o el filtro de red 53 pueden ejecutarse fuera de la máquina virtual respectiva, p. ej., a nivel de un hipervisor que expone la máquina virtual respectiva, utilizando técnicas conocidas en la técnica como introspección.
El recolector de eventos 52 está configurado para detectar varios eventos que ocurren durante la ejecución del software por parte del sistema cliente 10. Algunas realizaciones pueden marcar con fecha y hora cada evento detectado para registrar una hora de ocurrencia del evento respectivo. Los eventos monitoreados pueden ser específicos de la máquina y/o del sistema operativo. Eventos ejemplares incluyen, entre otros, el inicio de un proceso, la finalización de un proceso, la generación de procesos secundarios, solicitudes de acceso a periféricos (p. ej., disco duro, adaptador de red), un comando ingresado por el usuario en una interfaz de línea de comandos, etc. Dichos eventos de hardware y/o software pueden detectarse usando cualquier método conocido en el campo de la seguridad informática, por ejemplo, conectando ciertas funciones del sistema operativo, detectando llamadas al sistema, empleando un minifiltro del sistema de archivos, cambiando un permiso de acceso a la memoria para detectar un intento de ejecutar código desde ciertas direcciones de memoria, etc.
Algunas realizaciones monitorean eventos de hardware y/o software utilizando herramientas de registro del sistema integradas en el SO 46 (p. ej., Syslog en UNIX®). Dichas herramientas pueden generar una lista de descriptores de eventos que incluyen una marca de tiempo para cada evento, un código numérico que identifica un tipo de evento, un indicador de un tipo de proceso o aplicación que generó el evento respectivo y otros parámetros del evento. La aplicación de seguridad 50 puede extraer dicha información del respectivo registro del sistema para formular indicadores de eventos. A continuación, se proporcionan ejemplos de entradas de syslog:
≤30> Feb 821:36:51 dtm charon: 12[IKE] establishing CHILD_SA dtmhq5{5}
≤30> Feb 821:36:51 dtm charon: 12[IKE] establishing CHILD_SA dtmhq5{5}
≤187> Feb 821:37:56 example.domain.biz dhcpd: DHCPDISCOVER from 0c:14:7b:11: 14:64 via eth 1: network eth1: no free leases
El filtro de red 53 detecta un conjunto de eventos de red que ocurren durante las comunicaciones electrónicas a través de las redes 12-14 entre el sistema cliente 10 y otras partes. Eventos ejemplares detectados por el filtro de red 53 incluyen eventos que forman parte del establecimiento de una conexión entre el sistema cliente 10 y otra entidad de red (p. ej., solicitud de una dirección de red, transmisión de una dirección de red, eventos de protocolo de enlace, etc.), eventos que configuran una conexión cifrada (capa de conexión segura - SSL, red privada virtual - VPN), transmisión de datos y recepción de datos, entre otros. En algunas realizaciones, el filtro de red 53 recopila metadatos del tráfico de red interceptado. Dichos metadatos pueden incluir, por ejemplo, una dirección de red de origen (p. ej., protocolo de Internet - dirección IP), una dirección de destino, una marca de tiempo de un paquete de datos, un indicador de un tipo de protocolo de comunicación y un tamaño de un paquete de datos. Otros metadatos ejemplares pueden incluir un indicador de un tipo de agente de usuario del protocolo de transferencia de hipertexto (HTTP) que transmite el paquete de comunicación/datos respectivo. Algunas realizaciones organizan los metadatos de comunicación en estructuras de datos especializadas, conocidas en la técnica como flujos de red (por ejemplo, NetFlow® de Cisco Systems, Inc.). La Tabla 1 muestra ejemplos de metadatos de comunicación representados como flujos de acuerdo con algunas realizaciones de la presente invención.
Tabla 1
Figure imgf000008_0001
En algunas realizaciones, la aplicación de seguridad 50 formula indicadores de eventos de acuerdo con los eventos de hardware, software y/o red detectados por el recolector 52 y el filtro de red 53. La aplicación 50 puede además administrar la comunicación con el servidor de seguridad 16, para transmitir indicadores de eventos y/o recibir notificaciones de seguridad, entre otros.
En una realización alternativa, en lugar de procesar la comunicación de red en el cliente como se muestra arriba, el filtro de red 53 y/o el enrutador 15 se pueden configurar para redirigir al servidor de seguridad 16 al menos una parte de las comunicaciones electrónicas que entran y/o salen del sistema cliente 10. Por ejemplo, los parámetros de configuración de red del sistema cliente 10 se pueden configurar para indicar el servidor 16 como pasarela de red predeterminada. Algunas realizaciones emplean entonces el servidor de seguridad 16 para extraer indicadores de eventos del respectivo tráfico redirigido.
La Fig. 5 muestra un software ejemplar ejecutándose en el servidor de seguridad 16 de acuerdo con algunas realizaciones de la presente invención. El software ilustrado incluye un motor de perfilado 60 y un detector de anomalías 62 conectado además a un administrador de alertas 64. Un experto en la materia apreciará que no todos los componentes ilustrados necesitan ejecutarse en la misma máquina/procesador; por ejemplo, el motor de perfilado 60 puede ejecutarse en un grupo dedicado de procesadores, mientras que las instancias del detector de anomalías 62 pueden ejecutarse en otras máquinas/procesadores.
En algunas realizaciones, el motor de perfilado 60 está configurado para analizar eventos que ocurren en un conjunto de sistemas cliente (p. ej., un subconjunto de clientes 10a-h en la Fig. 1) y para construir una pluralidad de perfiles de cliente que representen una forma de referencia, normal y/o legítima de operar los respectivos sistemas cliente. Un subconjunto de indicadores de eventos 20a-b recibido de los clientes puede usarse para ensamblar un corpus de eventos de entrenamiento, denotado como corpus 18 en las Figs. 1,5 y 6. Luego, los perfiles se determinan de acuerdo con el corpus de eventos 18. Determinar un perfil de cliente puede incluir, entre otras cosas, representar eventos en un espacio de eventos multidimensional abstracto y llevar a cabo procedimientos de agrupamiento de datos, como se muestra con más detalle a continuación. Los perfiles construidos pueden almacenarse entonces como entradas en la base de datos de perfiles 19. Una entrada de base de datos de perfiles ejemplar comprende un conjunto de parámetros de perfil, como un conjunto de coordenadas de un centroide de grupo, una medida del diámetro y/o excentricidad del grupo, etc.
La Fig. 6 ilustra componentes ejemplares y el funcionamiento del motor de perfilado 60. En algunas realizaciones, el motor 60 comprende un codificador de eventos 70, un motor de agrupamiento de eventos 72 y un motor de agrupamiento de clientes 74 conectado al codificador de eventos 70 y al motor de agrupamiento de eventos 72. Una secuencia ejemplar de pasos realizados por el motor de perfilado se ilustra en la Fig. 7.
En una secuencia de pasos 202-204-206, el motor de perfilado 60 puede ensamblar un corpus de eventos de entrenamiento 18 de acuerdo con los indicadores de eventos recibidos de los sistemas cliente y/o enrutador(es) seleccionados. Algunas realizaciones acumulan indicadores de eventos hasta que se cumple alguna condición de acumulación. Las condiciones de acumulación pueden determinarse de acuerdo con un recuento de eventos (reunir un corpus de 1 millón de eventos), de acuerdo con una condición de tiempo (p. ej., registrar todos los eventos recibidos en un intervalo de 1 hora, etc.), de acuerdo con una identidad de un sistema cliente y/o usuario (p. ej., registrar todos los eventos recibidos de la corporación X, rango de IP Y, cuenta de suscripción Z, etc.), o de acuerdo con cualquier otro método conocido en la técnica. Los eventos individuales se pueden etiquetar de acuerdo con su origen y pueden comprender una marca de tiempo que caracteriza un momento en el tiempo en el que se ha producido, se ha detectado 0 se ha recibido el evento respectivo en el servidor de seguridad 16, etc. En algunas realizaciones, el corpus de eventos 18 se actualiza periódicamente y/o bajo demanda mediante la incorporación de indicadores de eventos recién recibidos.
En algunas realizaciones, el codificador de eventos 70 (Fig. 6) está configurado para ingresar un registro de eventos 26 que comprende datos que caracterizan un evento que ha ocurrido en un sistema cliente (p. ej., el inicio de un proceso en una máquina cliente) y, en respuesta, entregar un vector de evento 28a que comprende una representación del evento respectivo como un vector en un espacio multidimensional abstracto generalmente considerado espacio de incrustación en la técnica. Un espacio de incrustación ejemplar está atravesado por un conjunto de ejes, en el que cada eje representa una característica de evento distinta. Características ejemplares pueden incluir, en el caso de un evento de red, una dirección IP de origen, un puerto de origen, una dirección IP de destino, un puerto de destino y un indicador del protocolo de transporte, entre otros. En otro ejemplo, cada eje del espacio de incrustación corresponde a una combinación lineal de características de eventos (por ejemplo, en una realización de descomposición de componente principal/valor singular). En realizaciones preferidas, los eventos se analizan en el contexto de otros eventos, que preceden y/o siguen al evento respectivo. En tales casos, el codificador 70 está configurado para representar eventos como vectores en un espacio de incrustación de contextos, en el que dos eventos que ocurren predominantemente en contextos similares se ubican relativamente juntos. Algunas realizaciones eligen la dimensionalidad del espacio de incrustación de acuerdo con el tamaño del vocabulario de eventos N, es decir, el recuento de distintos tipos de eventos que el sistema de seguridad respectivo está monitoreando (para obtener más información sobre el vocabulario de eventos, véase a continuación). Por ejemplo, la dimensionalidad del espacio de eventos puede ser del orden de la raíz cuadrática de N, o de un logaritmo de N. Una realización típica de la presente invención utiliza un espacio de contexto de incrustación que tiene varios cientos a varios miles de dimensiones.
El codificador de eventos 70 puede construirse utilizando cualquier método conocido en la técnica del procesamiento automatizado de datos. En una realización preferida, el codificador 70 comprende un sistema de inteligencia artificial, por ejemplo, una red neuronal artificial multicapa (p. ej., una red neuronal recurrente y/o de avance). Para lograr la representación deseada de vectores de eventos, los parámetros del codificador 70 puede afinarse hasta que se cumpla alguna condición de rendimiento. Dicha afinación se denomina en este documento entrenamiento y se representa por el paso 208 en la Fig. 7. En una realización de red neuronal, los parámetros afinables ejemplares del codificador de eventos 70 incluyen un conjunto de pesos de sinapsis, entre otros. En algunas realizaciones, el codificador de entrenamiento 70 equivale a construir el propio espacio de incrustación. Dicho de otra manera, el espacio de incrustación no está predeterminado, sino que depende de la composición del corpus de eventos 18 y del procedimiento de entrenamiento seleccionado.
Los procedimientos de entrenamiento ejemplares se muestran en las Figs. 8-A-B y comprenden versiones del algoritmo word2vec, como un algoritmo skip-gram y un algoritmo continuo de bolsa de palabras. En tales realizaciones, los eventos no se analizan de forma aislada, sino como componentes de una secuencia de eventos 25 que consta de múltiples eventos ordenados de acuerdo con un tiempo de ocurrencia o detección. En algunas realizaciones, todos los eventos de la secuencia respectiva se seleccionan para que ocurran en el mismo sistema cliente. La secuencia de eventos 25 comprende un evento central Eo y un contexto de evento que consta de un subconjunto de eventos E-k...E-1 (k>0) que precede al evento central y/o un subconjunto de eventos Ei...Ep (p>0) que sigue al evento central. Las realizaciones típicas utilizan un contexto de evento simétrico (p=k), con p en el rango de 2 a 5. Cada evento individual Ei (-k<i<p) puede representarse como un N-por-1 vector de números, en el que cada línea representa un tipo de evento distinto (p. ej., iniciar un navegador, iniciar una descarga de archivo, escribir datos en el disco, etc.), N representa el tamaño de un "vocabulario" de tipos de eventos, y un elemento distinto de cero indica que el evento respectivo es del tipo de evento respectivo. Tal representación se conoce comúnmente en la técnica como codificación 1-hot. Un tamaño ejemplar N del vocabulario de eventos varía de varios cientos a varios miles de tipos de eventos distintos, pero puede llegar a varios millones para aplicaciones específicas. Un experto en la materia apreciará que la codificación one-hot se usa aquí solo como un ejemplo, y de ninguna manera limita el alcance de la presente invención.
En los procedimientos de entrenamiento ejemplares, un codificador de eventos se empareja y se entrena conjuntamente con un decodificador de eventos, los cuales pueden comprender partes de una red neuronal de avance y/o recurrente. En general, el par codificador-decodificador puede configurarse para ingresar un primer subconjunto de una secuencia de entrenamiento (p. ej., evento central E0) y entregar una "predicción" para un segundo subconjunto de la secuencia respectiva (p. ej., algún evento de contexto E, #0). En los ejemplos de las Figs.8-A-B, las predicciones se ilustran como vectores one-hot; realizaciones alternativas pueden usar una representación diferente. Por ejemplo, una predicción puede representarse como un vector A-dimensional de números, indicando cada número una probabilidad de que un tipo de evento correspondiente esté presente en el segundo subconjunto.
En un procedimiento de entrenamiento skip-gram ilustrado en las Figs. 8-A, el par codificador-decodificador está entrenado para producir el correcto contexto de evento, dado el evento central Eo. Para cada secuencia de eventos extraídos del corpus de eventos 18, un codificador 70a está configurado para ingresar una codificación one-hot del evento central Eo y para producir un vector de evento 28c que comprende una representación del evento central Eo en el espacio de contexto de incrustación. A su vez, un decodificador 76a está configurado para ingresar un vector de evento 28c y entregar una pluralidad de vectores adivinados, cada uno de los cuales representa un evento de contexto "predicho" Ei (#0) de la respectiva secuencia de eventos. El par codificador-decodificador puede luego ser entrenado ajustando parámetros del codificador 70a y/o decodificador 76a en un esfuerzo por reducir el error de predicción, es decir, para corregir un desajuste entre el contexto "predicho" y el contexto real de las respectivas secuencias de entrenamiento.
Un procedimiento de entrenamiento alternativo utiliza un algoritmo de entrenamiento continuo de bolsa de palabras y tiene como objetivo producir el correcto evento central Eo de una secuencia de entrenamiento, dado el respectivo contexto de evento. En uno de estos ejemplos ilustrado en la Fig. 8-B, un codificador de eventos 70b está configurado para ingresar un conjunto de vectores one-hot que representan eventos de contexto Ei (#0) de la secuencia 25, y para entregar vectores de evento incrustados 28d-f determinados para cada evento de contexto respectivo. En contraste con la realización skip-gram ilustrada en la Fig. 8-A, el codificador 70b ahora está emparejado con un decodificador de eventos 76b configurado para ingresar la pluralidad de vectores de evento 28d-f, y para producir una predicción o "pronóstico" para el evento central Eo de la secuencia 25. El par codificador-decodificador puede luego ser entrenado ajustando los parámetros del codificador 70b y/o decodificador 76b en un esfuerzo por reducir el error de predicción, es decir, el desajuste entre el evento central "predicho" y el evento central real de las respectivas secuencias de entrenamiento.
Una secuencia ejemplar de pasos que implementan el entrenamiento de un codificador de eventos se ilustra en la Fig. 9. Un paso 222 recupera un conjunto de registros de eventos del corpus de eventos 18 e identifica una secuencia de eventos 25 de acuerdo con las marcas de tiempo de los eventos y de acuerdo con un origen de los respectivos eventos (es decir, los sistemas cliente donde han ocurrido los respectivos eventos). En una realización skip-gram, un paso 224 luego ejecuta el codificador de eventos 70a para producir una representación del espacio de incrustación del evento Eo (vector de evento 28c en la Fig. 8-A). En un paso 226, el motor de perfilado 60 ejecuta el decodificador de eventos 76a para producir un conjunto de predicciones o "pronósticos" para eventos que preceden y/o siguen al evento central Eo dentro de la secuencia 25. Un paso 228 compara cada evento de contexto predicho con el evento de contexto real respectivo Ei (#0) de la secuencia 25, determinando así un error de predicción numérico. El error de predicción, que puede interpretarse como una función de coste o una función objetivo, puede calcularse de acuerdo con cualquier método conocido en la técnica de la inteligencia artificial. Dichos cálculos pueden comprender la determinación de una distancia, por ejemplo, una distancia de Levenshtein, euclidiana o coseno entre los eventos predichos y los reales. Algunas realizaciones determinan una función objetivo de acuerdo con una medida de entropía cruzada. En un paso 230, el motor de perfilado puede ajustar los parámetros del codificador 70a en la dirección de minimizar el error de predicción calculado. Algunos ejemplos de algoritmos utilizados para el entrenamiento incluyen la retropropagación mediante un descenso de gradiente, recocido simulado y algoritmos genéticos, entre otros. Algunas realizaciones luego repiten los pasos 222-230 hasta que se cumpla una condición de finalización, por ejemplo, hasta que el error de predicción promedio sobre el corpus de eventos 18 caiga por debajo de un umbral predeterminado. En otra realización, el entrenamiento continúa durante una cantidad de tiempo predeterminada o durante un recuento predeterminado de iteraciones. Un experto en la materia sabrá que la secuencia de pasos ilustrada en la Fig. 9 es igualmente adecuada para una realización de bolsa de palabras (Fig. 8-B), con pequeñas adaptaciones.
En respuesta al entrenamiento del codificador de eventos como se muestra arriba, algunas realizaciones transforman aún más el espacio de incrustación generado para reducir su dimensionalidad. Esta operación puede comprender cualquier algoritmo de reducción de la dimensionalidad de los datos, por ejemplo, un análisis de componentes principales (PCA) o una descomposición en valores singulares (SVD).
Después del entrenamiento y reducción de dimensionalidad opcional (paso 208 en la Fig. 7), el codificador de eventos 70 es capaz de representar cada evento como un vector en un espacio de incrustación multidimensional de contextos de eventos, en el que dos eventos que ocurren con frecuencia dentro del mismo contexto de eventos ocupan posiciones similares. Dicho de otro modo, dos de estos eventos están separados en el espacio de incrustación por una distancia menor que la distancia entre dos eventos que ocurren predominantemente en diferentes contextos.
Volviendo a los componentes del motor de perfilado 60 (Fig. 6), el motor de agrupamiento de eventos 74 está configurado para organizar vectores de eventos producidos por un codificador de eventos entrenado 70 y que representan los miembros del corpus de entrenamiento 18, en grupos de acuerdo con una posición de cada vector de evento dentro del espacio de incrustación (ver también el paso 207 en la Fig. 7). En algunas realizaciones, un grupo comprende una pluralidad de eventos que están relativamente juntos en el espacio de incrustación o, dicho de otro modo, una pluralidad de eventos caracterizados por una distancia entre eventos relativamente pequeña en el espacio de incrustación. En una realización alternativa, un grupo consta de eventos que ocupan una región específica del grupo del espacio de incrustación. Dichas regiones pueden ser mutuamente excluyentes o superponerse parcialmente. La Fig. 10 ilustra un espacio de incrustación ejemplar y un conjunto de grupos de eventos 80a-b de acuerdo con algunas realizaciones de la presente invención. Los ejes ilustrados pueden comprender, por ejemplo, los componentes principales primero y segundo de los vectores de eventos ilustrados (vectores 28g-h-k). En una realización que utiliza un espacio de incrustación de contextos de eventos, un grupo puede contener selectivamente eventos que ocurren principalmente dentro de un contexto de eventos similar. Además, el mismo grupo puede incluir eventos que ocurren en varios sistemas cliente y/o que representan la actividad de varios usuarios.
Para construir grupos de eventos, el motor de perfilado 60 puede emplear cualquier algoritmo de agrupamiento de datos conocido en la técnica, por ejemplo, una variante de un algoritmo de k-medias. Otra realización ejemplar puede entrenar un conjunto de perceptrones para tallar el espacio de incrustación en regiones distintas y asignar vectores de eventos ubicados dentro de cada región a un grupo de eventos distinto. El número de grupos y/o regiones puede estar predeterminado (p. ej., de acuerdo con un recuento de sistemas cliente protegidos y/o tipos de eventos monitoreados) o puede determinarse dinámicamente por el propio algoritmo de agrupamiento. Un resultado del agrupamiento de eventos comprende un conjunto de parámetros de grupo de eventos 54 (Fig. 6), que puede incluir, para cada grupo, las coordenadas del centroide del grupo y una medida de la extensión del grupo, p. ej., un diámetro y/o excentricidad. Otros parámetros de grupo ejemplares 54 pueden incluir, entre otros, una lista de miembros del grupo respectivo y un miembro seleccionado del grupo respectivo considerado como representativo/arquetípico del grupo respectivo. Los parámetros del grupo se pueden pasar al motor de agrupamiento de clientes 74.
El motor de agrupamiento de clientes 74 (Fig. 6) está configurado para determinar un conjunto de perfiles de cliente de acuerdo con los grupos de eventos calculados por el motor de agrupamiento de eventos 72. Dichos perfiles de cliente se ilustran en la Fig. 11. En algunas realizaciones, cada perfil de cliente comprende un subconjunto seleccionado (grupo) de los sistemas cliente protegidos 10a-h. Algunos perfiles de cliente pueden incluir varios grupos de clientes. En algunas realizaciones, un perfil de cliente puede comprender un arquetipo de perfil, que puede ser un miembro real del grupo de clientes respectivo, o un sistema cliente ficticio caracterizado por una posición específica en el espacio del perfil. Por ejemplo, un arquetipo de perfil puede comprender un centroide de un grupo de clientes determinado por el motor de agrupamiento de clientes 74.
Para calcular perfiles de cliente, algunas realizaciones del motor de agrupamiento de clientes 74 asignan sistemas cliente 10a-h a grupos de acuerdo con un perfil de evento indicativo de una distribución típica de eventos que ocurren en los respectivos sistemas cliente. En una realización ejemplar, un perfil de evento de un sistema cliente comprende un vector de números, determinado cada uno de acuerdo con un recuento de eventos que ocurren en el sistema cliente respectivo y que pertenece a un grupo de eventos distinto previamente determinado por el motor de agrupamiento de eventos 72. En el ejemplo ilustrado en la Fig. 12, cada componente del perfil de evento se determina de acuerdo con una medida de fidelidad al grupo indicativa de una proporción de eventos que pertenecen al grupo de eventos Ci respectivo, determinada como una fracción de un recuento total de eventos disponibles del sistema cliente respectivo. Por ejemplo, cuando el motor de agrupamiento de eventos 72 ha identificado tres grupos de eventos C1, C2 y C3 , un vector de perfil de eventos [0,1,0,75, 0,15] puede representar un sistema cliente en el que el 10 % de los eventos que ocurren en el sistema cliente respectivo pertenecen al grupo de eventos C1, mientras que el 75 % de los eventos pertenecen al grupo de eventos C2 y el 15 % de los eventos pertenecen al grupo de eventos C3.
En la realización ejemplar ilustrada en la Fig. 11, cada sistema cliente se representa en un espacio de perfil multidimensional de acuerdo con el perfil de evento respectivo. Dicho de otra manera, cada coordenada de un sistema cliente representa un componente del perfil de evento del cliente respectivo. La Fig. 11 muestra tres grupos/perfiles de cliente ejemplares 82a-c. Un experto en la materia puede utilizar cualquier método conocido en la técnica del aprendizaje automático o la extracción de datos para construir dichos perfiles; métodos ejemplares incluyen variantes de un algoritmo de agrupamiento de k-medias y redes neuronales, entre otros. Realizaciones alternativas pueden usar otros criterios de asignación de un sistema cliente a un grupo, o usar tales criterios además del perfil de evento del cliente respectivo. Criterios ejemplares adicionales de agrupamiento de clientes incluyen, entre otros, un propietario y/o usuario del respectivo sistema cliente, una dirección de red del respectivo sistema cliente, un tipo de dispositivo del respectivo sistema cliente, etc. Por ejemplo, los clientes que pertenecen a la misma familia, la misma corporación o el mismo dominio de red pueden agruparse en el mismo grupo.
Después del agrupamiento de clientes, el motor de perfilado 60 puede guardar parámetros de grupos, como una lista de sistemas cliente asignados a cada grupo/perfil, coordenadas de arquetipos de grupos (p. ej., centroides), diámetros de grupos, etc., en la base de datos de perfiles 19.
La Fig. 13 ilustra componentes ejemplares y el funcionamiento del detector de anomalías 62 de acuerdo con algunas realizaciones de la presente invención (véase también la Fig. 5). El detector de anomalías 62 está configurado para recibir un flujo de eventos 24 que comprende indicadores de eventos indicativos de eventos que ocurren en varios sistemas cliente y, en respuesta, para entregar una etiqueta de seguridad 88 que indica si los eventos respectivos son indicativos de una amenaza a la seguridad, como una intrusión o ejecución de software malicioso. En algunas realizaciones, el detector de anomalías 62 comprende un administrador de perfiles 84 configurado, en respuesta a la recepción de una notificación de evento indicativa de un evento que ocurre en un sistema cliente protegido, para seleccionar un perfil de cliente de acuerdo con el evento respectivo. El administrador de perfiles 84 está conectado además a un modelo de comportamiento 86 configurado para determinar si el evento respectivo se ajusta a un patrón de comportamiento normal/de referencia representado por el perfil respectivo. Cuando no, el evento respectivo puede ser considerado una anomalía, indicando así un posible ataque al sistema cliente respectivo.
Como preparación para realizar la detección de anomalías como se muestra a continuación, algunas realizaciones del detector de anomalías 62 primero se entrenan en un corpus de eventos, utilizando una salida del motor de perfilado 60. Uno de los propósitos de entrenar el detector de anomalías 62 es determinar un comportamiento de usuario normal/de referencia para cada perfil de cliente identificado por el motor de perfilado 60. El entrenamiento comprende ajustar un conjunto de parámetros del modelo de comportamiento 86 hasta que se cumpla un criterio de finalización. El corpus de eventos utilizado para entrenar el detector de anomalías 62 puede diferir del corpus de entrenamiento 18 utilizado para entrenar componentes del motor de perfilado 60.
La Fig. 14 muestra una secuencia ejemplar de pasos realizados por el detector de anomalías 62 durante un procedimiento de entrenamiento de acuerdo con algunas realizaciones de la presente invención. En respuesta al motor de anomalías 60 que construye un conjunto de perfiles de cliente, un paso 242 selecciona uno de esos perfiles de cliente de la base de datos de perfiles 19. En algunas realizaciones, cada uno de estos perfiles de cliente comprende un conjunto de grupos de clientes, por ejemplo, el grupo 82a en la Fig. 11. Cada grupo de clientes incluye además un subconjunto seleccionado de sistemas cliente protegidos. Un paso 244 puede seleccionar un conjunto de entrenamiento de eventos registrados como ocurridos en cualquier sistema cliente asociado con el perfil/grupo respectivo. En algunas realizaciones, el paso 244 puede comprender el conjunto de eventos de entrenamiento seleccionado del corpus de entrenamiento 18 ya usado para construir perfiles de cliente como se muestra arriba. Un paso más 246 puede usar el conjunto de eventos de entrenamiento respectivo como corpus de entrenamiento para entrenar el modelo de comportamiento 86.
En algunas realizaciones, el modelo de comportamiento 86 comprende componentes que son similares en estructura y función a algunos componentes del motor de perfilado 60. Por ejemplo, algunas realizaciones del modelo 86 incluyen un par codificador-decodificador como se ilustra en la Fig. 15, que puede construirse utilizando tecnología de redes neuronales y entrenarse de acuerdo con un miembro de la familia de algoritmos word2vec (véase la descripción anterior en relación con las Figs. 8-A-B). Entrenar el modelo de comportamiento 86 puede entonces equivaler a ajustar parámetros del codificador 70c y/o decodificador 76c (p. ej., un conjunto de pesos de sinapsis) con el objetivo de representar cada evento del grupo/perfil de cliente respectivo como un vector en un espacio de incrustación de eventos. En una realización preferida, el codificador 70c analiza cada evento en el contexto de una secuencia de eventos y genera un espacio de incrustación en el que los eventos que ocurren predominantemente en contextos similares están separados por una distancia menor, en comparación con los eventos que ocurren en otros contextos. Sin embargo, el espacio de incrustación de eventos (es decir, el significado de los ejes, el tamaño de las distancias entre eventos, etc.) resultante del codificador de entrenamiento 70c puede diferir sustancialmente del espacio de incrustación de eventos resultante del codificador de eventos de entrenamiento 70, porque los corpus de entrenamiento utilizados para los dos codificadores son distintos.
En una realización preferida, el paso 246 comprende entrenar el par codificador-decodificador usando una versión del algoritmo de bolsa de palabras (ver Fig. 8-B). En uno de esos ejemplos, el par codificador-decodificador (Fig. 15) está configurado para recibir una pluralidad de eventos E-k,...E-i, Ei, ... Ep que representan un contexto de evento de una secuencia de eventos actualmente analizada, y producir un vector de puntuación de predicción W-dimensional 90, en el que cada elemento está asociado con un tipo de evento distinto, representando cada elemento una probabilidad de que el evento central de la secuencia de eventos respectiva sea del tipo de evento respectivo. Por ejemplo, un valor de puntuación más alto puede indicar que es más probable que ocurra el tipo de evento respectivo como el evento central de la secuencia de eventos respectiva que otros tipos de eventos que tienen puntuaciones más bajas. En tales realizaciones, un entrenamiento ejemplar del modelo 86 puede comprender seleccionar secuencias de eventos del subconjunto de eventos identificados en el paso 244 (Fig. 14), ingresar el contexto de evento de la secuencia respectiva al codificador 70c, ejecutar el decodificador 76c para producir una predicción para el evento central Eo de la secuencia de eventos respectiva y sancionar las predicciones incorrectas retropropagando el error de predicción a través de las redes neuronales que forman el codificador 70c y/o decodificador 76c. En respuesta a un entrenamiento exitoso, un paso 248 puede guardar los valores de parámetros del modelo de comportamiento entrenado. El procedimiento de entrenamiento puede repetirse para cada perfil de cliente identificado por el motor de perfilado 60.
La Fig. 16 ilustra una secuencia ejemplar de pasos realizados por el detector de anomalías 62 para proteger un sistema cliente objetivo (como clientes 10a-h en la Fig. 1) contra amenazas a la seguridad informática de acuerdo con algunas realizaciones de la presente invención. El sistema cliente objetivo puede o no ser miembro del subconjunto de clientes que proporcionan el corpus de eventos de entrenamiento que han producido modelos de comportamiento y/o perfiles de cliente como se muestra arriba. Para proteger el sistema cliente objetivo, los eventos pueden detectarse en el sistema cliente objetivo y/u otros dispositivos, como enrutadores 15a-b (ver Fig. 1) y pueden ser comunicados al servidor de seguridad 16 en forma de indicadores de eventos. Dichos indicadores de eventos pueden preprocesarse entonces según su origen, tipo de evento, tiempo, configuración de la cuenta de servicio, etc., y organizarse como un flujo de eventos 24. Los eventos se pueden procesar individualmente o por lotes. En respuesta a la recepción de un indicador de evento del sistema cliente objetivo, en un paso 254, el detector de anomalías 62 puede ensamblar una secuencia de eventos para analizar de acuerdo con el indicador de evento respectivo. El paso 254 puede incluir identificar el origen del evento (es decir, el sistema cliente donde ocurrió el evento respectivo), seleccionar del flujo de eventos 24 una pluralidad de otros eventos para formar una secuencia de eventos. En algunas realizaciones, los miembros de la secuencia se eligen para que todos se originen en el mismo sistema cliente objetivo. En otro ejemplo, todos los miembros de la secuencia deben ocurrir en un subconjunto predeterminado de sistemas cliente, como un subdominio de red o una dirección IP común, por ejemplo. Los eventos elegidos también se pueden ordenar de acuerdo con su hora de ocurrencia y/o detección, por ejemplo, utilizando una marca de tiempo provista del indicador de evento entrante. La secuencia de eventos se puede dividir además en partes, por ejemplo, identificando un evento central y un contexto de evento (ver, p. ej., Fig. 8-A).
En un paso 256, el administrador de perfiles 84 puede seleccionar un perfil de cliente de acuerdo con el indicador de evento respectivo, p. ej., de acuerdo con una identidad del sistema cliente objetivo donde ha ocurrido el evento respectivo. Cuando el respectivo sistema cliente objetivo ha proporcionado eventos de entrenamiento para el desarrollo de perfiles de cliente y/o para el entrenamiento de modelos de comportamiento, el paso 256 puede comprender seleccionar un grupo/perfil de cliente que tenga el respectivo sistema cliente objetivo como miembro. También se pueden utilizar otros criterios de selección de perfiles. Por ejemplo, el paso 256 puede comprender seleccionar un perfil de cliente de acuerdo con una posición del sistema cliente objetivo dentro de un espacio de perfiles de cliente (ver Fig. 11), por ejemplo, comparando la posición del sistema cliente objetivo con un conjunto de arquetipos de grupo o centroides y seleccionando el grupo/perfil cuyo centroide esté más cerca del sistema cliente objetivo. En un ejemplo de este tipo, el perfil de cliente puede seleccionarse de acuerdo con un perfil de evento determinado para el sistema cliente objetivo (p. ej., de acuerdo con un recuento de eventos recibidos del sistema cliente objetivo, que se ajustan a una categoría/grupo de eventos en particular). Otros criterios de selección del perfil de cliente pueden incluir seleccionar el perfil de cliente de acuerdo con una dirección de red del sistema cliente objetivo (p. ej., seleccionar un perfil de cliente que contenga clientes que tengan la misma dirección IP que el sistema cliente objetivo), con un propietario/usuario del sistema cliente objetivo (p. ej., seleccionar un perfil que contenga miembros del mismo hogar que el sistema cliente objetivo), etc.
En un paso más 258, el detector de anomalías puede instanciar el modelo de comportamiento 86 con valores de parámetros específicos para el respectivo perfil de cliente seleccionado. En algunas realizaciones, siguiendo la instanciación específica del perfil, ejecutar el modelo 86 (paso 260) comprende proyectar eventos de la respectiva secuencia de eventos en el espacio de incrustación de eventos asociado con el respectivo perfil de cliente.
Un paso 262 ahora puede determinar si el (los) evento(s) de la secuencia de eventos respectiva es (son) o no representativo(s) del comportamiento normal/de referencia del usuario asociado con el perfil de cliente respectivo. En una realización, en el paso 260, comprende alimentar el contexto del evento (Ei, #0) de la secuencia respectiva al modelo de comportamiento 86 y calcular el vector de puntuación de predicción 90 de la secuencia respectiva. El paso 262 entonces puede comprender identificar el elemento del vector 90 correspondiente al tipo de evento del evento central real Eo de la secuencia, y comparar la puntuación respectiva con un umbral predeterminado (p. ej., 0,95). En algunas realizaciones, un valor de puntuación inferior al umbral indica que el evento respectivo Eo es sustancialmente improbable que ocurra en el contexto de evento respectivo y, por lo tanto, indica una anomalía coherente con una posible amenaza a la seguridad informática. En algunas realizaciones, un usuario o administrador del servidor de seguridad 16 puede ajustar la sensibilidad del método ajustando el valor del umbral. En uno de esos ejemplos, diferentes valores de umbral están asociados con diferentes grupos de sistemas cliente.
En una realización alternativa, el paso 260 puede comprender utilizar el modelo 86 para determinar una representación de un evento Ei de la secuencia en el espacio de incrustación del evento específico del perfil de cliente respectivo. El paso 262 entonces puede comprender determinar si el evento Ei se ajusta a un patrón de comportamiento normal para el perfil de cliente respectivo de acuerdo con una posición del evento respectivo dentro del espacio de incrustación. Por ejemplo, un evento puede considerarse normal cuando se posiciona dentro de un grupo de eventos de entrenamiento (p. ej., más cerca de un centroide de grupo que un umbral predeterminado). En otro ejemplo, un evento puede considerarse normal/benigno cuando se ubica en ciertas regiones del espacio de incrustación y anómalo cuando se ubica en otras regiones.
Cuando un evento de la secuencia (p. ej., Eo) se considera una anomalía, en otras palabras, no se ajusta al patrón de normalidad establecido a través del entrenamiento para el perfil de cliente respectivo, un paso 264 puede marcar el evento respectivo para su posterior análisis. En algunas realizaciones, una anomalía puede desencadenar la transmisión de una alerta de seguridad por parte de un administrador de alertas 64 del servidor de seguridad 16 (ver Fig. 5). Las alertas de seguridad pueden enviarse al sistema cliente donde ocurrió el evento anómalo y/o a un administrador del sistema cliente respectivo. Los incidentes de eventos anómalos también pueden recopilarse e informarse para su posterior análisis en un laboratorio de seguridad informática.
Los sistemas y métodos ejemplares descritos anteriormente permiten una detección eficiente de amenazas a la seguridad informática tales como software malicioso e intrusión. Los sistemas y métodos divulgados implementan un enfoque de comportamiento para la seguridad informática, en el que el sistema infiere automáticamente un comportamiento de usuario normal/de referencia de acuerdo con un corpus de eventos de entrenamiento, y en el que una desviación de un patrón de comportamiento de referencia puede indicar una amenaza.
Algunas realizaciones detectan varios eventos que ocurren en una pluralidad de sistemas cliente, p. ej., computadoras, teléfonos móviles, dispositivos de red y máquinas virtuales. Eventos ejemplares incluyen inicios de procesos específicos, intentos de acceder a ciertos archivos o ubicaciones de red y eventos de tráfico de red como acceder a ciertos puertos y direcciones, entre otros. Un experto en la materia comprenderá que los sistemas y métodos descritos en este documento pueden adaptarse a otros tipos de eventos, como eventos relacionados con la actividad de un usuario en las redes sociales, el historial de navegación de un usuario y la actividad de juego de un usuario, entre otros. Las notificaciones de eventos se agregan en un servidor de seguridad. Una colección de dichos eventos se puede usar como corpus de entrenamiento para construir un conjunto de perfiles de cliente, donde cada perfil de cliente puede representar un solo usuario, una sola máquina o múltiples usuarios/máquinas. En algunas realizaciones, cada perfil de cliente comprende un subconjunto de sistemas cliente y/o un subconjunto de eventos que han ocurrido en los respectivos subconjuntos de sistemas cliente. Cada perfil de cliente puede representar un patrón de uso normal y/o benigno de los respectivos sistemas cliente. Dichos perfiles de cliente pueden usarse entonces para detectar incidentes de comportamiento anómalo, que pueden ser indicativos de una amenaza a la seguridad informática.
Cierta seguridad informática convencional opera de acuerdo con un conjunto de reglas que cuantifican el comportamiento que es indicativo de malicia. Dado que los desarrolladores suelen estar interesados en ofrecer tales soluciones a una amplia variedad de clientes, las reglas de comportamiento suelen ser genéricas y no adaptadas a usuarios específicos. Sin embargo, en la práctica, los usuarios son muy heterogéneos. Incluso dentro de la misma empresa o familia, la forma en que cada miembro utiliza una computadora puede variar sustancialmente. Un conjunto de acciones que pueden considerarse normales para un desarrollador o ingeniero de software pueden ser muy inusuales cuando se detectan en una computadora en el departamento de contabilidad. Además, el mismo usuario puede tener comportamientos sustancialmente diferentes en el trabajo y en el hogar. Por lo tanto, las reglas de comportamiento genéricas pueden no capturar la diversidad y especificidad de los usuarios reales. A diferencia de dichos sistemas convencionales, en algunas realizaciones de la presente invención, los eventos que ocurren en cada sistema cliente se revisan y analizan selectivamente frente a un modelo que captura un comportamiento normal/de referencia del propio sistema cliente respectivo y/o de clientes similares. Dicho de otra manera, los límites de la "normalidad" del comportamiento pueden definirse con una especificidad sustancial: una máquina cliente específica, un grupo específico de usuarios (p. ej., un departamento particular de una empresa, miembros de una familia, un grupo de edad particular), etc.
Debido a la proliferación del software y el uso de Internet, un intento de desarrollar perfiles de comportamiento altamente específicos, por ejemplo, perfiles ligados a cada usuario individual, puede requerir recursos computacionales irrazonables y, por lo tanto, puede resultar poco práctico. Además, la recopilación de eventos de usuarios/máquinas individuales puede no proporcionar suficientes datos para desarrollar modelos de comportamiento estadísticamente robustos. En contraste con este enfoque, algunas realizaciones de la presente invención agrupan múltiples usuarios y/o máquinas en un solo perfil de cliente, asegurando así un compromiso útil entre especificidad, robustez y costos computacionales. Además, la forma en que los usuarios y las máquinas se agrupan en perfiles se basa en sí misma en criterios de comportamiento, para garantizar que dicho agrupamiento conserve la especificidad. En algunas realizaciones, cada perfil de cliente agrupa a usuarios/máquinas que tienen perfiles de eventos sustancialmente similares. Dicho de otra manera, todos los miembros de un perfil de cliente muestran un comportamiento de referencia similar en términos de estadísticas de eventos que ocurren en las máquinas miembro.
Algunos sistemas y métodos de seguridad informática convencionales analizan principalmente eventos individuales. Muchos eventos que ocurren durante el funcionamiento de un sistema informático (p. ej., abrir un archivo, acceder a una página web) pueden no ser indicativos de malicia cuando se toman de forma aislada. Sin embargo, pueden ser maliciosos cuando ocurren en el contexto de otros eventos, por ejemplo, como una secuencia particular de acciones. A diferencia de las soluciones más convencionales, algunas realizaciones de la presente invención analizan explícitamente los eventos en contexto y, por lo tanto, se adaptan mejor a tales situaciones de correlación de eventos. Una realización preferida representa eventos individuales como vectores en un espacio de incrustación multidimensional que tiene la propiedad distintiva de que un par de eventos que ocurren con una frecuencia relativamente alta en el mismo contexto de eventos están separados por una distancia menor que otro par de eventos que ocurren con menos frecuencia en el mismo contexto de evento.
El modelado de comportamiento exitoso puede requerir la detección de una gran cantidad (p. ej., cientos o miles) de distintos tipos de eventos, pero no todos los tipos de eventos pueden ser igualmente importantes en el modelado de comportamiento. Recopilar y analizar datos estadísticos sobre tantos tipos de eventos recibidos de un gran número de fuentes puede resultar poco práctico. Para abordar este problema, algunas realizaciones agrupan eventos en categorías o grupos de eventos según un grado de similitud entre eventos, creando así estadísticas más robustas y/o relevantes. La construcción de perfiles de cliente puede verse sustancialmente facilitada por tal reducción significativa de la dimensionalidad. La similitud de eventos puede determinarse de acuerdo con varios criterios, por ejemplo, de acuerdo con la distancia que separa dos eventos en un espacio de incrustación de eventos. En una realización preferida, dos eventos pueden considerarse similares si ocurren predominantemente en el mismo contexto (p. ej., los eventos A y B se consideran similares cuando ambos A y B son frecuentemente precedidos por un evento X y/o seguidos por un evento Y, es decir, como en secuencias ejemplares XAYy XBY).
Las Figs. 17-A-B ilustran un experimento de aplicación de algunos de los sistemas y métodos descritos anteriormente para la detección de amenazas a la seguridad informática. Se utilizó un corpus de eventos recopilados de múltiples clientes monitoreados para entrenar los componentes de un motor de perfilado, como se muestra arriba, lo que resultó en que los clientes monitoreados se dividieran en 11 grupos/perfiles de clientes. Los eventos se agruparon en categorías de eventos de acuerdo con una representación de cada evento en un espacio de incrustación de 15 dimensiones. Se desarrollaron modelos de comportamiento específicos del perfil para cada uno de los respectivos grupos de clientes. Luego, se simuló un tipo particular de ataque en una máquina de prueba. Las secuencias de eventos recolectadas de la máquina de prueba se enviaron a un detector de anomalías instanciado, a su vez, con parámetros específicos para cada uno de los modelos de comportamiento. Algunas de estas secuencias de eventos se detectaron como anomalías.
La Fig. 17-A muestra las puntuaciones de anomalías específicas del grupo, representadas en una escala en la que una puntuación de 1 indica un 100 % de certeza de una anomalía (p. ej., al menos un evento de una secuencia de eventos recibida de la máquina de prueba no se había visto durante el entrenamiento). El gráfico representa valores de puntuación promediados sobre secuencias de eventos anómalos y las desviaciones estándar asociadas. La figura muestra que la(s) misma(s) secuencia(s) puede(n) considerarse anomalías con un nivel de certeza que es específico del grupo. Dicho de otra manera, las mismas secuencias de eventos se consideran "menos anómalas" en ciertos clientes que en otros. Por ejemplo, los modelos de comportamiento asociados con los grupos 1,2 y 7 no solo detectan el ataque con una eficiencia relativamente mayor que otros modelos, sino que todas las secuencias de eventos asociadas con los ataques se consideraron "igualmente anómalas". Por el contrario, los modelos asociados con los grupos 0 y 9 indican algunas secuencias de eventos del mismo ataque como "menos anómalas" que otras.
La Fig. 17-B muestra las tasas de detección promedio específicas del perfil logradas para tres tipos distintos de ataques. Las secuencias de eventos recopiladas de la máquina de prueba durante cada tipo de ataque se analizaron utilizando cada uno de los 11 modelos de comportamiento entrenados específicos del perfil. La tasa de detección difiere entre modelos y tipos de ataque, lo que da más fe de la especificidad de algunos de los sistemas y métodos descritos en este documento.
Dichos resultados experimentales indican otra aplicación potencial de algunas realizaciones de la presente invención. Una solución de seguridad informática centralizada puede desarrollar selectivamente estrategias de protección para cada conjunto de clientes identificados por un perfil de cliente y/o para otros clientes que tengan una similitud con un arquetipo de cada grupo de clientes. Algunas realizaciones pueden identificar grupos de clientes para los cuales los métodos descritos aquí ofrecen un grado de seguridad satisfactorio, y otros grupos de clientes que requieren medidas de seguridad adicionales. Adaptar la protección a cada grupo de clientes puede mejorar la experiencia del usuario y reducir los gastos computacionales innecesarios. Será evidente para un experto en la técnica que las realizaciones anteriores pueden modificarse de muchas maneras sin apartarse del alcance de la invención. En consecuencia, el alcance de la invención debería estar determinado por las siguientes reivindicaciones.

Claims (21)

REIVINDICACIONES
1. Un sistema informático (16) que comprende al menos un procesador de hardware configurado para:
en respuesta a la recepción de un indicador de pertenencia a un grupo que indica un agrupamiento de una pluralidad de sistemas cliente (10) en una pluralidad de grupos de clientes (19), seleccionar (242) un grupo de clientes de la pluralidad de grupos de clientes, comprendiendo el grupo de clientes seleccionado múltiples sistemas cliente; en respuesta a la selección del grupo de clientes, seleccionar (244)
un corpus de eventos de entrenamiento de una colección de eventos según si los eventos seleccionados han ocurrido en miembros del grupo de clientes seleccionado;
en respuesta a la selección del corpus de eventos de entrenamiento, entrenar (246) un modelo de comportamiento para codificar un comportamiento colectivo de miembros del grupo de clientes seleccionado de acuerdo con el corpus de eventos de entrenamiento, teniendo el modelo de comportamiento un conjunto de parámetros ajustables; y en respuesta al entrenamiento del modelo de comportamiento, transmitir (260) un conjunto de valores de los parámetros ajustables a un detector de anomalías (62)
configurado para determinar si un evento objetivo que ocurre en un sistema cliente objetivo es indicativo de una amenaza a la seguridad informática;
en el que
el modelo de comportamiento está configurado para ingresar un evento seleccionado de una secuencia de eventos (25) y, en respuesta, para determinar (248) un indicador de predicción indicativo de una probabilidad de que otro evento de la secuencia de eventos sea de un tipo de evento seleccionado;
la secuencia de eventos comprende una pluralidad de eventos del corpus de entrenamiento (18), ordenada la pluralidad de eventos de acuerdo con un momento de ocurrencia de cada evento de la pluralidad de eventos; y el entrenamiento del modelo de comportamiento comprende ajustar (258) el conjunto de parámetros configurables de acuerdo con el indicador de predicción.
2. El sistema informático de la reivindicación 1, en el que el entrenamiento del modelo de comportamiento comprende: determinar un evento predicho de acuerdo con el indicador de predicción;
comparar el evento predicho con el otro evento de la secuencia de eventos; y
ajustar el conjunto de parámetros configurables de acuerdo con un resultado de la comparación.
3. El sistema informático de la reivindicación 1, en el que
la secuencia de eventos comprende un evento central y un contexto de eventos, comprendiendo el contexto de eventos un primer subconjunto de los eventos que ocurren antes del evento central y un segundo subconjunto de eventos que ocurren después del evento central;
el evento seleccionado es el evento central; y
el otro evento es un miembro del contexto de eventos.
4. El sistema informático de la reivindicación 1, en el que
la secuencia de eventos comprende un evento central y un contexto de eventos, comprendiendo el contexto de eventos un primer subconjunto de los eventos que ocurren antes del evento central, y un segundo subconjunto de eventos que ocurren después del evento central;
el evento seleccionado es un miembro del contexto de eventos; y
el otro evento es el evento central.
5. El sistema informático de la reivindicación 1, en el que el modelo de comportamiento comprende un codificador de eventos configurado para ingresar el evento seleccionado y, en respuesta, determinar un conjunto de coordenadas indicativas de una posición del evento seleccionado en un espacio de incrustación de eventos, determinadas las coordenadas según si el evento seleccionado ocurre en un contexto seleccionado de otros eventos del corpus de entrenamiento.
6. El sistema informático de la reivindicación 1, en el que
la colección de eventos se divide en una pluralidad de categorías de eventos según si un evento de la colección de eventos ocurre en un contexto seleccionado de otros eventos de la colección de eventos; y
la pluralidad de sistemas cliente se agrupan en grupos de acuerdo con un perfil de eventos de cada sistema cliente, determinado el perfil de eventos de acuerdo con un recuento de eventos que ocurren en cada sistema cliente y que pertenece a una categoría seleccionada de la pluralidad de categorías de eventos.
7. El sistema informático de la reivindicación 6, en el que el perfil de eventos de cada sistema cliente comprende una pluralidad de componentes, determinado cada componente de acuerdo con una proporción de eventos que pertenecen a cada categoría de eventos de la pluralidad de categorías de eventos, calculada la proporción a partir de un recuento total de eventos de la colección de eventos que ocurren en cada sistema cliente.
8. El sistema informático de la reivindicación 6, en el que el agrupamiento de la pluralidad de sistemas cliente en grupos comprende asignar sistemas cliente que tienen perfiles de eventos similares al mismo grupo de clientes.
9. El sistema informático de la reivindicación 1, en el que el corpus de entrenamiento se selecciona para incluir solo eventos que han ocurrido en miembros del grupo de clientes seleccionado.
10. El sistema informático de la reivindicación 1, en el que el evento seleccionado comprende un inicio de un proceso seleccionado en un sistema cliente de la pluralidad de sistemas cliente.
11. Un método implementado por computadora que comprende:
emplear al menos un procesador de hardware de un sistema informático, en respuesta a la recepción de un indicador de pertenencia a grupo que indica un agrupamiento de una pluralidad de sistemas cliente en una pluralidad de grupos de clientes, para seleccionar un grupo de clientes de la pluralidad de grupos de clientes, comprendiendo el grupo de clientes seleccionado múltiples sistemas cliente;
en respuesta a la selección del grupo de clientes, emplear al menos un procesador de hardware del sistema informático para seleccionar un corpus de eventos de entrenamiento de una colección de eventos según si los eventos seleccionados han ocurrido en miembros del grupo de clientes seleccionado;
en respuesta a la selección del corpus de eventos de entrenamiento, emplear al menos un procesador de hardware del sistema informático para entrenar un modelo de comportamiento para codificar un comportamiento colectivo de miembros del grupo de clientes seleccionado de acuerdo con el corpus de eventos de entrenamiento, teniendo el modelo de comportamiento un conjunto de parámetros ajustables; y
en respuesta al entrenamiento del modelo de comportamiento, emplear al menos un procesador de hardware del sistema informático para transmitir un conjunto de valores de los parámetros ajustables a un detector de anomalías configurado para determinar si un evento objetivo que ocurre en un sistema cliente objetivo es indicativo de una amenaza a la seguridad informática;
en el que:
el modelo de comportamiento está configurado para ingresar un evento seleccionado de una secuencia de eventos y, en respuesta, determinar un indicador de predicción indicativo de una probabilidad de que otro evento de la secuencia de eventos sea de un tipo de evento seleccionado;
la secuencia de eventos comprende una pluralidad de eventos del corpus de entrenamiento, ordenada la pluralidad de eventos de acuerdo con un momento de ocurrencia de cada evento de la pluralidad de eventos; y
el entrenamiento del modelo de comportamiento comprende ajustar el conjunto de parámetros configurables de acuerdo con el indicador de predicción.
12. El método de la reivindicación 11, en el que el entrenamiento del modelo de comportamiento comprende: determinar un evento predicho de acuerdo con el indicador de predicción;
comparar el evento predicho con el otro evento de la secuencia de eventos; y
ajustar el conjunto de parámetros configurables de acuerdo con un resultado de la comparación.
13. El método de la reivindicación 11, en el que
la secuencia de eventos comprende un evento central y un contexto de eventos, comprendiendo el contexto de eventos un primer subconjunto de los eventos que ocurren antes del evento central y un segundo subconjunto de eventos que ocurren después del evento central;
el evento seleccionado es el evento central; y
el otro evento es un miembro del contexto de eventos.
14. El método de la reivindicación 11, en el que
la secuencia de eventos comprende un evento central y un contexto de eventos, comprendiendo el contexto de eventos un primer subconjunto de los eventos que ocurren antes del evento central, y un segundo subconjunto de eventos que ocurren después del evento central;
el evento seleccionado es un miembro del contexto de eventos; y
el otro evento es el evento central.
15. El método de la reivindicación 11, en el que el modelo de comportamiento comprende un codificador de eventos configurado para ingresar el evento seleccionado y, en respuesta, determinar un conjunto de coordenadas indicativas de una posición del evento seleccionado en un espacio de incrustación de eventos, determinadas las coordenadas según si el evento seleccionado ocurre en un contexto seleccionado de otros eventos del corpus de entrenamiento.
16. El método de la reivindicación 11, en el que
la colección de eventos se divide en una pluralidad de categorías de eventos según si un evento de la colección de eventos ocurre en un contexto seleccionado de otros eventos de la colección de eventos; y
la pluralidad de sistemas cliente se agrupan en grupos de acuerdo con un perfil de eventos de cada sistema cliente, determinado el perfil de eventos de acuerdo con un recuento de eventos que ocurren en cada sistema cliente y que pertenece a una categoría seleccionada de la pluralidad de categorías de eventos.
17. El método de la reivindicación 16, en el que el perfil de eventos de cada sistema cliente comprende una pluralidad de componentes, determinado cada componente de acuerdo con una proporción de eventos que pertenecen a cada categoría de eventos de la pluralidad de categorías de eventos, calculada la proporción a partir de un recuento total de eventos de la colección de eventos que ocurren en cada sistema cliente.
18. El método de la reivindicación 16, en el que el agrupamiento de la pluralidad de sistemas cliente en grupos comprende asignar sistemas cliente que tienen perfiles de eventos similares al mismo grupo de clientes.
19. El método de la reivindicación 11, en el que el corpus de entrenamiento se selecciona para incluir solo eventos que han ocurrido en miembros del grupo de clientes seleccionado.
20. El método de la reivindicación 11, en el que el evento seleccionado comprende un inicio de un proceso seleccionado en un sistema cliente de la pluralidad de sistemas cliente.
21. Un medio no transitorio legible por computadora que almacena instrucciones que, cuando son ejecutadas por al menos un procesador de hardware de un sistema informático, llevan el sistema informático a:
en respuesta a la recepción de un indicador de pertenencia a grupo que indica un agrupamiento de una pluralidad de sistemas cliente en una pluralidad de grupos de clientes, seleccionar un grupo de clientes de la pluralidad de grupos de clientes, comprendiendo el grupo de clientes seleccionado múltiples sistemas cliente;
en respuesta a la selección del grupo de clientes, seleccionar un corpus de eventos de entrenamiento de una colección de eventos según si los eventos seleccionados han ocurrido en miembros del grupo de clientes seleccionado; en respuesta a la selección del corpus de eventos de entrenamiento, entrenar un modelo de comportamiento para codificar un comportamiento colectivo de miembros del grupo de clientes seleccionado de acuerdo con el corpus de eventos de entrenamiento, teniendo el modelo de comportamiento un conjunto de parámetros ajustables; y en respuesta al entrenamiento del modelo de comportamiento, transmitir un conjunto de valores de los parámetros ajustables a un detector de anomalías configurado para determinar si un evento objetivo que ocurre en un sistema cliente objetivo es indicativo de una amenaza a la seguridad informática;
en el que
el modelo de comportamiento está configurado para ingresar un evento seleccionado de una secuencia y, en respuesta, determinar un indicador de predicción indicativo de una probabilidad de que otro evento de la secuencia de eventos sea de un tipo de evento seleccionado;
la secuencia de eventos comprende una pluralidad de eventos del corpus de entrenamiento, ordenada la pluralidad de eventos de acuerdo con un momento de ocurrencia de cada evento de la pluralidad de eventos; y
el entrenamiento del modelo de comportamiento comprende ajustar el conjunto de parámetros configurables de acuerdo con el indicador de predicción.
ES19817693T 2018-12-10 2019-12-10 Sistemas y métodos para la detección de amenazas de comportamiento Active ES2949033T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/215,214 US11323459B2 (en) 2018-12-10 2018-12-10 Systems and methods for behavioral threat detection
PCT/EP2019/084311 WO2020120428A1 (en) 2018-12-10 2019-12-10 Systems and methods for behavioral threat detection

Publications (1)

Publication Number Publication Date
ES2949033T3 true ES2949033T3 (es) 2023-09-25

Family

ID=68841135

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19817693T Active ES2949033T3 (es) 2018-12-10 2019-12-10 Sistemas y métodos para la detección de amenazas de comportamiento

Country Status (11)

Country Link
US (1) US11323459B2 (es)
EP (1) EP3895047B1 (es)
JP (1) JP7319371B2 (es)
KR (1) KR102404041B1 (es)
CN (1) CN113168468B (es)
AU (1) AU2019398651B2 (es)
CA (1) CA3120373A1 (es)
ES (1) ES2949033T3 (es)
IL (1) IL283697B1 (es)
SG (1) SG11202105053WA (es)
WO (1) WO2020120428A1 (es)

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526405B1 (en) * 1999-12-17 2003-02-25 Microsoft Corporation Determining similarity between event types in sequences
AU2001262958A1 (en) 2000-04-28 2001-11-12 Internet Security Systems, Inc. Method and system for managing computer security information
US6742124B1 (en) 2000-05-08 2004-05-25 Networks Associates Technology, Inc. Sequence-based anomaly detection using a distance matrix
US6973577B1 (en) 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
US7818797B1 (en) 2001-10-11 2010-10-19 The Trustees Of Columbia University In The City Of New York Methods for cost-sensitive modeling for intrusion detection and response
US20030084349A1 (en) * 2001-10-12 2003-05-01 Oliver Friedrichs Early warning system for network attacks
US7035863B2 (en) 2001-11-13 2006-04-25 Koninklijke Philips Electronics N.V. Method, system and program product for populating a user profile based on existing user profiles
US7234166B2 (en) 2002-11-07 2007-06-19 Stonesoft Corporation Event sequence detection
KR100956574B1 (ko) * 2004-07-13 2010-05-07 인터내셔널 비지네스 머신즈 코포레이션 타겟 컴퓨터 시스템들에 걸친 침입 검출, 침입 응답 및취약점 치료를 위한 방법들, 컴퓨터 프로그램 제품들 및데이터 구조들
US7716739B1 (en) 2005-07-20 2010-05-11 Symantec Corporation Subjective and statistical event tracking incident management system
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
US8448249B1 (en) 2007-07-31 2013-05-21 Hewlett-Packard Development Company, L.P. Methods and systems for using lambda transitions for processing regular expressions in intrusion-prevention systems
US8719936B2 (en) 2008-02-01 2014-05-06 Northeastern University VMM-based intrusion detection system
US20090328215A1 (en) 2008-06-30 2009-12-31 Microsoft Corporation Semantic networks for intrusion detection
GB0816556D0 (en) 2008-09-10 2008-10-15 Univ Napier Improvements in or relating to digital forensics
US8370931B1 (en) 2008-09-17 2013-02-05 Trend Micro Incorporated Multi-behavior policy matching for malware detection
US20120137367A1 (en) 2009-11-06 2012-05-31 Cataphora, Inc. Continuous anomaly detection based on behavior modeling and heterogeneous information analysis
US8661034B2 (en) 2010-02-03 2014-02-25 Gartner, Inc. Bimodal recommendation engine for recommending items and peers
US8752171B2 (en) 2010-09-03 2014-06-10 Mcafee, Inc. Behavioral tracking system, method, and computer program product for undoing events based on user input
US8572239B2 (en) 2010-09-20 2013-10-29 Microsoft Corporation Node clustering
US20120278354A1 (en) 2011-04-29 2012-11-01 Microsoft Corporation User analysis through user log feature extraction
BR112014005119A2 (pt) * 2011-09-09 2017-04-18 Hewlett Packard Development Co Lp método para avaliação de eventos, sistema para avaliação de eventos e meio não transitório lido por computador
US8881289B2 (en) 2011-10-18 2014-11-04 Mcafee, Inc. User behavioral risk assessment
US8839435B1 (en) 2011-11-04 2014-09-16 Cisco Technology, Inc. Event-based attack detection
US9129227B1 (en) 2012-12-31 2015-09-08 Google Inc. Methods, systems, and media for recommending content items based on topics
US9679131B2 (en) * 2013-01-25 2017-06-13 Cybereason Inc. Method and apparatus for computer intrusion detection
US20140230062A1 (en) 2013-02-12 2014-08-14 Cisco Technology, Inc. Detecting network intrusion and anomaly incidents
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US9166993B1 (en) 2013-07-25 2015-10-20 Symantec Corporation Anomaly detection based on profile history and peer history
US9306962B1 (en) * 2013-07-25 2016-04-05 Niddel Corp Systems and methods for classifying malicious network events
GB2519941B (en) 2013-09-13 2021-08-25 Elasticsearch Bv Method and apparatus for detecting irregularities on device
US20150178930A1 (en) 2013-12-20 2015-06-25 Qualcomm Incorporated Systems, methods, and apparatus for generating metadata relating to spatial regions of non-uniform size
US9798883B1 (en) * 2014-10-06 2017-10-24 Exabeam, Inc. System, method, and computer program product for detecting and assessing security risks in a network
WO2016081516A2 (en) 2014-11-18 2016-05-26 Vectra Networks, Inc. Method and system for detecting threats using passive cluster mapping
US9652316B2 (en) 2015-03-31 2017-05-16 Ca, Inc. Preventing and servicing system errors with event pattern correlation
US20160352759A1 (en) 2015-05-25 2016-12-01 Yan Zhai Utilizing Big Data Analytics to Optimize Information Security Monitoring And Controls
CN105989849B (zh) 2015-06-03 2019-12-03 乐融致新电子科技(天津)有限公司 一种语音增强方法、语音识别方法、聚类方法及装置
US20170140384A1 (en) 2015-11-12 2017-05-18 Fair Isaac Corporation Event sequence probability enhancement of streaming fraud analytics
US10686805B2 (en) * 2015-12-11 2020-06-16 Servicenow, Inc. Computer network threat assessment
JP6679943B2 (ja) 2016-01-15 2020-04-15 富士通株式会社 検知プログラム、検知方法および検知装置
US9762611B2 (en) * 2016-02-16 2017-09-12 Cylance Inc. Endpoint-based man in the middle attack detection using machine learning models
US10218726B2 (en) 2016-03-25 2019-02-26 Cisco Technology, Inc. Dynamic device clustering using device profile information
WO2018013982A1 (en) 2016-07-14 2018-01-18 Google Llc Classifying images using machine learning models
US10832165B2 (en) 2016-12-02 2020-11-10 Facebook, Inc. Systems and methods for online distributed embedding services
US10397259B2 (en) * 2017-03-23 2019-08-27 International Business Machines Corporation Cyber security event detection
US10552501B2 (en) 2017-03-28 2020-02-04 Oath Inc. Multilabel learning via supervised joint embedding of documents and labels
US10726128B2 (en) * 2017-07-24 2020-07-28 Crowdstrike, Inc. Malware detection using local computational models
US20190130305A1 (en) 2017-10-27 2019-05-02 Intuit Inc. Methods, systems, and computer program product for implementing an intelligent system with dynamic configurability
US20190296933A1 (en) 2018-03-20 2019-09-26 Microsoft Technology Licensing, Llc Controlling Devices Based on Sequence Prediction
US11636287B2 (en) 2018-03-28 2023-04-25 Intuit Inc. Learning form-based information classification
US20190340615A1 (en) * 2018-05-04 2019-11-07 International Business Machines Corporation Cognitive methodology for sequence of events patterns in fraud detection using event sequence vector clustering

Also Published As

Publication number Publication date
KR102404041B1 (ko) 2022-06-02
CA3120373A1 (en) 2020-06-18
US20200186545A1 (en) 2020-06-11
CN113168468A (zh) 2021-07-23
KR20210102896A (ko) 2021-08-20
AU2019398651A1 (en) 2021-06-03
WO2020120428A1 (en) 2020-06-18
EP3895047A1 (en) 2021-10-20
AU2019398651B2 (en) 2024-03-28
US11323459B2 (en) 2022-05-03
IL283697A (en) 2021-07-29
IL283697B1 (en) 2024-05-01
SG11202105053WA (en) 2021-06-29
EP3895047B1 (en) 2023-04-05
JP7319371B2 (ja) 2023-08-01
CN113168468B (zh) 2024-04-23
JP2022512194A (ja) 2022-02-02

Similar Documents

Publication Publication Date Title
ES2945836T3 (es) Sistemas y métodos para la detección de amenazas de comportamiento
ES2946062T3 (es) Sistemas y métodos para la detección de amenazas de comportamiento
ES2949033T3 (es) Sistemas y métodos para la detección de amenazas de comportamiento
RU2803399C2 (ru) Системы и способы детектирования поведенческих угроз
RU2772549C1 (ru) Системы и способы детектирования поведенческих угроз
RU2778630C1 (ru) Системы и способы детектирования поведенческих угроз