ES2880269T3 - Sistemas y métodos para detectar malware de algoritmo de generación de dominios (DGA) - Google Patents

Sistemas y métodos para detectar malware de algoritmo de generación de dominios (DGA) Download PDF

Info

Publication number
ES2880269T3
ES2880269T3 ES16794548T ES16794548T ES2880269T3 ES 2880269 T3 ES2880269 T3 ES 2880269T3 ES 16794548 T ES16794548 T ES 16794548T ES 16794548 T ES16794548 T ES 16794548T ES 2880269 T3 ES2880269 T3 ES 2880269T3
Authority
ES
Spain
Prior art keywords
response
access request
dga
time
external access
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
ES16794548T
Other languages
English (en)
Inventor
Octavian Mihai Minea
Cristina VATAMANU
Mihai-Razvan Benchea
Dragos-Teodor Gavrilut
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 ES2880269T3 publication Critical patent/ES2880269T3/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/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

Un primer sistema informático que comprende al menos una memoria y al menos un microprocesador asociado configurado para realizar, externamente de un ordenador central de malware de algoritmo de generación de dominios (DGA) potencial, los siguientes pasos: interceptar una respuesta original a una primera solicitud de acceso externo, en donde la primera solicitud de acceso externo es enviada por el ordenador central de malware de DGA potencial a un sitio externo; determinar según una dirección incluida en la primera solicitud de acceso externo si el sitio externo es un servidor de tiempo; en respuesta, cuando el sitio externo es un servidor de tiempo, enviar una respuesta modificada al ordenador central de malware de DGA potencial, la respuesta modificada que se genera a partir de la respuesta original reemplazando un tiempo real incluido en la respuesta original con un tiempo real acelerado posterior al tiempo real original, en donde el tiempo real devuelto por el servidor de tiempo indica un tiempo presente de la respuesta original; interceptar, en respuesta a una segunda solicitud de acceso externo enviada por el ordenador central de malware de DGA potencial, una respuesta que indica que la segunda solicitud de acceso no fue un éxito, en donde la segunda solicitud de acceso externo se envía después de que se envía la primera solicitud de acceso externo; y en respuesta a la interceptación de la respuesta que indica que la segunda solicitud de acceso no fue un éxito, determinar que el ordenador central de malware de DGA potencial incluye malware que ejecuta un algoritmo de generación de dominios.

Description

DESCRIPCIÓN
Sistemas y métodos para detectar malware de algoritmo de generación de dominios (DGA)
Antecedentes
La invención se refiere a sistemas y métodos para proteger sistemas informáticos contra malware y, en particular, a sistemas y métodos para detectar malware que emplea algoritmo o algoritmos de generación de dominios (DGA). El software malicioso, también conocido como malware, afecta a una gran cantidad de sistemas informáticos en todo el mundo. En sus múltiples formas, tales como virus informáticos, gusanos, herramientas de sustitución de ficheros del sistema raíz y software espía, el malware presenta un riesgo grave para millones de usuarios de ordenadores, haciéndolos vulnerables a la pérdida de datos e información confidencial, robo de identidad y pérdida de productividad, entre otros.
El software de seguridad se puede utilizar para detectar malware que infecta el sistema informático de un usuario y, además, para eliminar o detener la ejecución de dicho malware. Se conocen en la técnica varias técnicas de detección de malware. Algunos confían en hacer coincidir un fragmento de código del agente de malware con una biblioteca de firmas indicativas de malware. Otros métodos convencionales detectan un conjunto de comportamientos indicativos de malware del agente de malware.
Las redes de ordenadores esclavos maliciosas forman un tipo de amenaza de malware particularmente dañina. En un escenario de ataque, una multitud de sistemas informáticos están infectados con un agente configurado para conectarse a un recurso remoto y descargar una carga útil maliciosa u otra información tal como, por ejemplo, un indicador de un objetivo para lanzar un ataque de denegación de servicio. El agente puede configurarse para utilizar un algoritmo de generación de dominios (DGA) para generar nombres de dominios e intentar conectarse a ellos. Tales nombres de dominio no se registran comúnmente de antemano con un registro de nombres de dominio y, por lo tanto, la gran mayoría de los intentos de conexión fallan. Cuando los creadores de malware deciden lanzar un ataque, registran uno de estos nombres de dominio con un registro de nombres de dominio y colocan la carga útil en línea. De repente, los intentos de los miembros de la red de ordenadores esclavos de conectarse a los respectivos dominios son un éxito y se lanza el ataque.
Dado que la generación de nombres de dominio se realiza usando algoritmos desconocidos, la prevención de tales ataques puede ser difícil. Una aplicación de seguridad puede ver intentos fallidos esporádicos de conectarse a algunos nombres de dominio, pero dichos intentos comúnmente se ahogan en una multitud de intentos fallidos legítimos de conectarse a sitios externos.
Los investigadores tienen una tarea complicada y tediosa en la identificación de agentes infectados y algoritmos de generación de dominios de ingeniería inversa. Tales algoritmos utilizan una variedad de métodos, uno de los cuales es utilizar la hora actual como entrada para un algoritmo de generación pseudoaleatorio. En un enfoque de detección clásico, los investigadores deben desensamblar el código para determinar el DGA y los nombres de dominio creados.
Compendio
Según un aspecto, un sistema informático que comprende al menos una memoria y al menos un microprocesador asociado está configurado para realizar, externamente desde un ordenador central de malware de algoritmo de generación de dominios (DGA) potencial, los siguientes pasos: interceptar una respuesta original a una primera solicitud de acceso externo, en donde la primera solicitud de acceso externo se envía por el ordenador central de malware de DGA potencial a un sitio externo; analizar al menos una de la primera solicitud de acceso externo y la respuesta original a la primera solicitud de acceso externo para determinar si la respuesta original a la primera solicitud de acceso externo comprende un tiempo real; enviar una respuesta modificada al ordenador central de malware de DGA potencial, la respuesta modificada que se genera a partir de la respuesta original reemplazando un tiempo real original incluido en la respuesta original con un tiempo real acelerado posterior al tiempo real original; interceptar, en respuesta a una segunda solicitud de acceso externo enviada por el ordenador central de malware de DGA potencial, una respuesta que indica que la segunda solicitud de acceso no fue exitosa, en donde la segunda solicitud de acceso externo se envía después de que se envía la primera solicitud de acceso externo y, en respuesta a la interceptación de la respuesta que indica que la segunda solicitud de acceso no fue un éxito, determinar que el ordenador central de malware de DGA potencial incluye malware que ejecuta un algoritmo de generación de dominios.
Según un aspecto, un sistema informático que comprende al menos una memoria y al menos un microprocesador asociado está configurado para realizar, externamente desde un ordenador central de malware de algoritmo de generación de dominios (DGA) potencial, los siguientes pasos: analizar una primera solicitud de acceso externo para determinar si una respuesta original a la primera solicitud de acceso externo comprende un tiempo real acelerado, en donde la primera solicitud de acceso externo se envía por el ordenador central de malware de DGA potencial a un sitio externo; analizar una primera respuesta original a la primera solicitud de acceso externo para determinar si la primera respuesta original comprende una primera información que indica que el tiempo real acelerado no es exacto; enviar una respuesta modificada al ordenador central de malware de DGA potencial, la respuesta modificada que se genera a partir de la primera respuesta original reemplazando la primera información con una segunda información que indica que el tiempo real acelerado es exacto; interceptar, en respuesta a una segunda solicitud de acceso externa enviada por el ordenador central de malware de DGA potencial a un segundo sitio externo, una segunda respuesta original que indica que la segunda solicitud de acceso no fue exitosa; y determinar, en respuesta a la interceptación de la segunda respuesta, que el ordenador central de malware de DGA potencial incluye malware que ejecuta un algoritmo de generación de dominios.
Según otro aspecto, un medio legible por ordenador no transitorio almacena instrucciones que, cuando se ejecutan, configuran al menos una memoria y al menos un microprocesador asociado de un primer sistema informático para realizar, de forma externa a un ordenador central de malware de algoritmo de generación de dominios (DGA) potencial, los siguientes pasos: interceptar una respuesta original a una primera solicitud de acceso externo, en donde la primera solicitud de acceso externo se envía por el ordenador central de malware de DGA potencial a un sitio externo; analizar al menos una de la primera solicitud de acceso externo y la respuesta original a la primera solicitud de acceso externo para determinar si la respuesta original a la primera solicitud de acceso externo comprende un tiempo real; enviar una respuesta modificada al ordenador central de malware de DGA potencial, la respuesta modificada que se genera a partir de la respuesta original reemplazando un tiempo real original incluido en la respuesta original con un tiempo real acelerado posterior al tiempo real original; interceptar, en respuesta a una segunda solicitud de acceso externo enviada por el ordenador central de malware de DGA potencial, una respuesta que indica que la segunda solicitud de acceso no fue exitosa, en donde la segunda solicitud de acceso externo se envía después de que se envía la primera solicitud de acceso externo; y, en respuesta a la interceptación de la respuesta que indica que la segunda solicitud de acceso no fue un éxito, determinar que el ordenador central de malware de DGA potencial incluye malware que ejecuta un algoritmo de generación de dominios.
El documento US2014/310811 A1 describe un método para detectar dispositivos de cliente infectados con malware mediante la evaluación de una marca, es decir, el acceso a un dominio específico.
Breve descripción de los dibujos
Los aspectos y ventajas anteriores de la presente invención se llegarán a comprender mejor al leer la siguiente descripción detallada y al hacer referencia a los dibujos en los que:
La Figura 1 muestra un sistema cliente ejemplar, un sistema servidor que aloja un sitio externo y un servidor de tiempo, todos interconectados por una red, según algunas realizaciones de la presente invención.
La Figura 2A ilustra una configuración de hardware ejemplar de un sistema cliente que puede ser un ordenador central de malware de DGA potencial, según algunas realizaciones de la presente invención.
La Figura 2B muestra una configuración de hardware ejemplar de un sistema informático servidor o conmutador/enrutador de red que puede albergar un detector de DGA, según algunas realizaciones de la presente invención.
La Figura 3A muestra un conjunto ejemplar de objetos de software, que incluye un proceso que se ejecuta en un ordenador central de malware de dGa potencial que está formado por una máquina virtual, y un detector de DGA alojado en el mismo sistema físico que el ordenador central de malware de DGA potencial, según algunas realizaciones de la presente invención.
La Figura 3B muestra un conjunto ejemplar de objetos de software, que incluye un proceso que se ejecuta en un ordenador central de malware de DGA potencial y un detector DGA alojado en un sistema físico distinto del ordenador central de malware potencial, según algunas realizaciones de la presente invención.
La Figura 4 muestra una solicitud de acceso externo ejemplar y/o una respuesta, según algunas realizaciones de la presente invención.
La Figura 5A muestra una secuencia ejemplar de pasos ejecutados por un detector de DGA cuando se analiza una solicitud de acceso externo a un servidor de tiempo, según algunas realizaciones de la presente invención.
La Figura 5B muestra una secuencia ejemplar de pasos ejecutados por un detector de DGA cuando se intercepta una respuesta original a una solicitud de acceso externo, según algunas realizaciones de la presente invención. La Figura 5C muestra una secuencia ejemplar de pasos ejecutados por un detector de DGA cuando se detecta si un proceso ejecuta DGA, según algunas realizaciones de la presente invención.
La Figura 5D muestra una secuencia ejemplar de pasos ejecutados por un detector de DGA cuando se analiza una solicitud de acceso externo que incluye un tiempo real acelerado, según algunas realizaciones de la presente invención.
La Figura 6 muestra una pluralidad de relaciones matemáticas entre un tiempo real original y un tiempo real acelerado según algunas realizaciones de la presente invención.
La Figura 7 muestra una secuencia de pasos de un método que puede usarse para determinar si un proceso sospechoso ejecuta DGA, según algunas realizaciones de la presente invención.
Descripción detallada de realizaciones preferidas
En la siguiente descripción, se entiende que todas las conexiones citadas 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. Se entiende que cualquier recitación de un elemento se refiere a al menos un elemento. Una pluralidad de elementos incluye al menos dos elementos. A menos que se requiera lo contrario, cualquier paso del método descrito no necesita realizarse necesariamente en un orden ilustrado particular. A menos que se especifique lo contrario, un proceso es una instancia de un programa de ordenador, tal como una aplicación o una parte del sistema operativo, y se caracteriza por tener al menos un subproceso de ejecución y una sección de memoria virtual asignada a él por el sistema operativo, la respectiva sección de memoria que comprende código ejecutable. Una lista negra es una lista de objetos que no pueden realizar un conjunto de acciones. Tomar una determinación o decisión según un parámetro abarca tomar la determinación o decisión según el parámetro y opcionalmente según otros datos. Los medios legibles por ordenador abarcan medios no transitorios tales como medios de almacenamiento magnéticos, ópticos y semiconductores (por ejemplo, discos duros, discos ópticos, memoria flash, DRAM), así como enlaces de comunicaciones tales como cables conductores y enlaces de fibra óptica. Un servidor de tiempo es un servidor externo que proporciona un tiempo real en una respuesta en respuesta a una solicitud de acceso que el servidor de tiempo recibe, y/o proporciona, en respuesta a una solicitud de acceso que incluye un tiempo real, una respuesta que indica si el tiempo real incluido en la solicitud de acceso es exacto. Un servidor de tiempo puede ser o no un servidor que está dedicado a proporcionar valores en tiempo real. Un servidor de tiempo dedicado está dedicado a proporcionar valores en tiempo real en respuesta a consultas. Un servidor de tiempo no dedicado puede proporcionar valores en tiempo real como parte de una página de contenido más grande que puede incluir otro contenido tal como texto e imágenes (por ejemplo, una página del servidor de tiempo que proporciona información sobre la meteorología actual en una ubicación particular además de un tiempo real actual en ese lugar). Según algunas realizaciones, la presente invención proporciona, entre otros, sistemas informáticos que comprenden hardware (por ejemplo, uno o más procesadores formados en uno o más sustratos semiconductores) programados para realizar los métodos descritos en la presente memoria, así como instrucciones de codificación de medios legibles por ordenador para realizar los métodos descritos en la presente memoria.
La siguiente descripción ilustra realizaciones de la invención a modo de ejemplo y no necesariamente a modo de limitación.
La Figura 1 muestra un sistema informático cliente de ordenador central de DGA 10 ejemplar conectado a un sistema informático de detección de DGA 11, que además está conectado a un sistema informático servidor de destino de DGA 14 y un sistema informático de servidor de tiempo 15 a través de una red de comunicación 12. El sistema cliente 10 puede ser un sistema informático para el usuario final, tal como un ordenador de escritorio, un ordenador portátil, una tableta o un teléfono inteligente, un asistente digital personal (PDA), un dispositivo informático que se puede llevar puesto, un dispositivo doméstico tal como televisores o reproductores de música, u otro dispositivo electrónico que pueda albergar malware. El sistema cliente 10 tiene al menos un procesador de hardware, memoria y almacenamiento, y ejecuta un sistema operativo tal como Windows®, MacOS®, Linux, Android® o iOS®. En algunas realizaciones, el sistema cliente 10 se puede configurar para ejecutar un hipervisor y una o más máquinas virtuales. La red 12 puede ser una red de área extensa tal como Internet, mientras que partes de la red 12 también pueden incluir una red de área local (LAN).
Algunos procesos que se ejecutan en el sistema cliente 10 pueden ser maliciosos. En particular, algunos procesos pueden ejecutar DGA potencialmente. En algunos casos, el malware puede estar alojado en una máquina virtual que se ejecuta en el sistema cliente 10. El sistema de detección de DGA 11 tiene la tarea de determinar si un proceso que se ejecuta en la máquina virtual ejecuta un DGA. En algunas realizaciones, el sistema de detección de DGA 11 comprende un servidor informático a través del cual el sistema cliente 10 accede a Internet. En algunas realizaciones, al menos parte del sistema de detección de DGA 11 puede implementarse utilizando un enrutador o conmutador configurado con software/hardware que implemente al menos algunas de las funciones de detección de DGA descritas a continuación. En algunas realizaciones que emplean la virtualización, un sistema de detección de DGA como se describe a continuación puede implementarse en el sistema cliente 10, pero fuera de una máquina virtual que forma un ordenador central de DGA potencial que se ejecuta en el sistema cliente 10. En tales realizaciones de virtualización, un sistema de detección de DGA puede ejecutarse en un hipervisor del sistema y/o en una máquina virtual diferente del ordenador central de DGA potencial que se está monitoreando.
En algunas realizaciones, una aplicación de seguridad se ejecuta en un servidor que forma al menos parte del sistema de detección de DGA 11. La aplicación de seguridad está configurada para realizar una serie de pasos de detección de DGA mediante el análisis de uno o más procesos que se ejecutan en el sistema cliente 10. Dicho análisis puede incluir analizar e interceptar solicitudes de acceso externo y respuestas desde y hacia el sistema cliente 10. En una realización ejemplar, dicha aplicación de seguridad está configurada para determinar si uno o más procesos que se ejecutan en el sistema cliente 10 ejecutan un DGA. Cuando se detecta malware de DGA, la aplicación de seguridad identifica además un conjunto de nombres de dominio generados por el DGA y pone en una lista negra el conjunto de nombres de dominio. Los nombres de dominio puestos en la lista negra pueden transmitirse como parte de actualizaciones de software a instancias de aplicaciones de seguridad que se ejecutan en múltiples ordenadores cliente y/o servidor, para facilitar la protección de dichos sistemas. Los nombres de dominio identificados también pueden registrarse, para permitir identificar y potencialmente neutralizar otros sistemas infectados.
El cliente 10 puede abordar una solicitud de acceso a un sitio externo que está alojado por un sistema informático 14. El sitio externo puede caracterizarse por un nombre de dominio generado por un algoritmo de generación de dominios. El nombre de dominio puede estar formado por una secuencia ininteligible de caracteres alfanuméricos (por ejemplo, adfjhaadew34.com o gsriptoi4534pfh.io). Es poco probable que dicho nombre de dominio se haya registrado previamente con un registrador de nombres de dominio y, por lo tanto, es muy probable que esté disponible para su registro con un registrador de nombres de dominio en un tiempo futuro. Si la solicitud de acceso llega al sitio alojado por el sistema informático 14, la solicitud de acceso es un éxito. Si por alguna razón la solicitud de acceso no llega a un sitio alojado por el sistema informático 14, la solicitud de acceso no es un éxito. Tal razón puede ser que dicho sitio aún no existe, actualmente no está habilitado, o el nombre de dominio que caracteriza al sitio no es reconocido por un sistema de nombres de dominio (DNS) como un dominio válido y, por lo tanto, las comunicaciones dirigidas al sitio no se enrutan al sitio. Si la solicitud de acceso es un éxito, el sitio alojado por el sistema informático 14 envía una respuesta al sistema cliente 10. Si la solicitud de acceso no es un éxito, un componente de la red 12 envía una respuesta al sistema cliente 10 indicando que la solicitud de acceso no fue un éxito.
El sistema cliente 10 también dirige una o más solicitudes de acceso al servidor de tiempo 15. El servidor de tiempo 15 responde a dichas solicitudes de acceso con una respuesta que incluye un tiempo real. Para solicitudes de acceso que soliciten la confirmación de un tiempo real incluido, el servidor de tiempo 15 también puede responder con datos que indiquen si el tiempo real incluido en la solicitud de acceso es exacto.
La Figura 2-A muestra una configuración de hardware ejemplar de un sistema cliente 10 según algunas realizaciones de la presente invención. La Figura 2A muestra una estructura particular de un sistema informático con fines ilustrativos; otros sistemas cliente pueden tener una estructura diferente. En algunas realizaciones, el sistema 10 comprende un conjunto de dispositivos físicos, incluyendo un procesador 32, una unidad de memoria 34, un conjunto de dispositivos de entrada 36, un conjunto de dispositivos de salida 38, un conjunto de dispositivos de almacenamiento 40, y un conjunto de adaptadores de red 42, todos conectados por un conjunto de buses 44.
En algunas realizaciones, el procesador 32 comprende un dispositivo físico (por ejemplo, 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. En algunas realizaciones, dichas operaciones lógicas se entregan al procesador 32 en forma de una secuencia de instrucciones del procesador (por ejemplo, código máquina u otro tipo de software). La unidad de memoria 34 puede comprender medios legibles por ordenador no transitorios (por ejemplo, RAM) que almacena datos/señales a los que accede o generados por el procesador 32 en el curso de llevar a cabo las instrucciones. Los dispositivos de entrada 36 pueden incluir teclados de ordenador, ratones y micrófonos, entre otros, incluyendo las respectivas interfaces de hardware y/o adaptadores que permiten al usuario introducir datos y/o instrucciones en el sistema cliente 10. Los dispositivos de salida 38 pueden incluir pantallas de visualización y altavoces, entre otros, así como interfaces/adaptadores de hardware tales como tarjetas gráficas, lo que permite que el sistema cliente 10 comunique datos a un usuario. En algunas realizaciones, los dispositivos de entrada 36 y dispositivos de salida 38 pueden compartir una pieza común de hardware, como en el caso de los dispositivos de pantalla táctil. Los dispositivos de almacenamiento 40 incluyen medios legibles por ordenador que permitan el almacenamiento, lectura y escritura no transitorios de instrucciones y/o datos de software. Dispositivos de almacenamiento 40 ejemplares incluyen discos ópticos y magnéticos y dispositivos de memoria flash, así como medios extraíbles tales como unidades y discos CD y/o DVD. El conjunto de adaptadores de red 42 habilita el sistema cliente 10 para conectarse a una red informática, por ejemplo, la red 12, y/o a otros dispositivos/sistemas informáticos. Los buses 44 representan colectivamente la pluralidad de buses de sistema, periféricos y conjunto de chips, y/o toda la demás circuitería que permite la intercomunicación de dispositivos 32-42 del sistema cliente 10. Por ejemplo, los buses 44 pueden comprender el procesador de conexión northbridge 32 a la memoria 34, y/o el procesador de conexión southbridge 32 a los dispositivos 36-42, entre otros.
La Figura 2-B muestra una configuración de hardware ejemplar de un servidor, tal como un servidor utilizado para implementar el sistema de detección de DGA 11 (Figura 1). Tal servidor comprende un procesador de servidor 132, una memoria de servidor 134, un conjunto de dispositivos de almacenamiento de servidor 140, y un conjunto de adaptadores de red 142, todos conectados por un conjunto de buses 144. El funcionamiento de los dispositivos 132, 134, 140, y 142 puede reflejar el de los dispositivos 32, 34, 40, y 42 descrito arriba. Por ejemplo, procesador de servidor 132 puede comprender un dispositivo físico configurado para ejecutar operaciones lógicas y/o computacionales con un conjunto de señales y/o datos. La memoria de servidor 134 puede comprender medios legibles por ordenador no transitorios (por ejemplo, RAM) que almacenan datos/señales a las que se accede o generadas por el procesador 132 en el curso de la ejecución de cálculos. Los adaptadores de red 142 permiten que el servidor se conecte a una red informática tal como la red 12.
La Figura 3A muestra intercambios de datos ejemplares entre un ordenador central de malware de DGA potencial formado por una máquina virtual 710, y un detector de DGA 704 externo a la máquina virtual 710. En la configuración ilustrada, el detector de DGA 704 y la máquina virtual 710 se ejecutan en un sistema informático físico común 711. En particular, en la configuración mostrada en la Figura 3A, el detector de DGA 704 es una aplicación que se ejecuta y/o forma parte de un hipervisor 705. La máquina virtual 710 envía solicitudes de acceso y recibe respuestas de un sitio externo 714. Un conjunto de procesos 701, 742 se ejecutan simultáneamente en la máquina virtual 710. El detector de DGA 704 analiza las solicitudes de acceso externo 702 enviadas por un proceso 701 ejemplar. El detector de DGA 704 también intercepta y analiza las respuestas originales 715 a las solicitudes 702. Las respuestas originales 715 luego son modificadas por el detector de DGA 704 en respuestas modificadas 703. Al analizar las solicitudes 702 y las respuestas originales 715, el detector de DGA 704 puede consultar una base de datos del servidor de tiempo 712. En la Figura 3A, la base de datos de series de tiempo 712 se muestra como alojada en el sistema informático 711. En algunas realizaciones, la base de datos del servidor de tiempo 712 puede ser externa al sistema informático 711. Tras la determinación de que un proceso ejecuta un DGA, el detector de DGA 704 instruye a una aplicación de seguridad 54 para poner el proceso en la lista negra.
La Figura 3B muestra intercambios de datos ejemplares entre un ordenador central de malware de DGA potencial que se ejecuta en un sistema informático 711', y un detector de DGA 704' que se ejecuta en un sistema informático 713 distinto del sistema 711', según algunas realizaciones de la presente invención. El sistema informático 711' puede ser un sistema informático cliente. El sistema informático 713 puede ser un enrutador, un conmutador o un servidor. Un conjunto de procesos 701', 742' se ejecutan simultáneamente en el sistema informático 711'. El detector de DGA 704 analiza las solicitudes de acceso externo 702 enviadas por un proceso 701 a un sitio externo 714. El detector de DGA 704 también intercepta y analiza las respuestas 715 entrantes a las solicitudes 702. Las respuestas 715 originales pueden modificarse en respuestas 703 modificadas. Al analizar las solicitudes 702 y las respuestas 715 originales, el detector de DGA puede consultar una base de datos de servidor de tiempo 712. Tras la determinación de que un proceso ejecuta un DGA, el detector de DGA 704 determina uno o más nombres de dominio generados por el DGA e instruye a una aplicación de seguridad 54 para agregar los dominios de DGA a una lista negra. En algunas realizaciones, la aplicación de seguridad 54 También puede poner en la lista negra el proceso infectado con DGA que se ejecuta en el ordenador central 711, y generar una o más huellas digitales (por ejemplo, comprobaciones aleatorias) para el malware identificado, para su transmisión a otros sistemas informáticos. La Figura 4 muestra una secuencia de campos ejemplar 401 a-d que forman parte de una solicitud de acceso externa 702. Una respuesta, original o modificada, a la solicitud de acceso externo 702 puede incluir una secuencia similar de campos. En algunas realizaciones, el detector de DGA 704 (Figura 3A) identifica campos que comprenden información en tiempo real analizando la solicitud de acceso externa 702 y/o una respuesta a la solicitud de acceso externo 702. Además, el detector de DGA 704 también puede analizar la solicitud de acceso externo 702 a una dirección de un servidor de tiempo dedicado o no dedicado. El análisis se puede realizar utilizando un conjunto de expresiones regulares, que se describen a continuación, que utilizan reglas formales para describir/identificar patrones en los datos de entrada. Por ejemplo, una fecha se puede identificar buscando un año (por ejemplo, un número de cuatro dígitos que comienza con 19 o 20) seguido o precedido por un mes y una fecha en cualquier orden (por ejemplo, un número del 1 al 12 y un número de 1 a 31, respectivamente), y separados por uno de varios separadores definidos (por ejemplo, espacio, coma, etc.). Como otro ejemplo, un tiempo real puede identificarse con dos o tres números, restringidos a ser 24, 60 y 60, respectivamente, y separados por uno de varios separadores definidos (por ejemplo, espacio, etc.). Una dirección de servidor de tiempo puede identificarse por la presencia de uno de varios prefijos (por ejemplo, un identificador de protocolo tal como http, https, ftp o protocolo de tiempo de red, ntp) y un nombre de dominio o dirección de Protocolo de Internet (IP) presente en una base de datos u otra lista de servidores de nombres de dominio.
La sintaxis y el diseño particular de las expresiones regulares adecuadas pueden depender del lenguaje de software particular y las bibliotecas estándar elegidas para implementar un motor de análisis sintáctico del detector de DGA 704. El estándar IEEE POSIX proporciona una sintaxis adecuada para expresiones regulares. Además, las bibliotecas estándar para manejar expresiones regulares están disponibles en una variedad de lenguajes, incluyendo Perl, Java, Python, C++ y otros.
Considere, por ejemplo, un conjunto de expresiones regulares que emplean la siguiente sintaxis, que es utilizada por el estándar IEEE POSIX:
() = define un grupo
[0-9] = cualquier carácter numérico entre 0 y 9
[a-z] = cualquier carácter de letra entre la a y la z
{n} = el grupo anterior puede repetirse exactamente n veces, en donde n es un número natural
{, n} = el grupo anterior no puede repetirse más de n veces, en donde n es un número natural
{n,} = el grupo anterior puede repetirse al menos n veces, en donde n es un número natural
{m, n} = el grupo anterior puede repetirse entre m veces y n veces, en donde m y n son números naturales {m, n, p} = el grupo anterior puede repetirse m, n o p veces, en donde m, n y p son números naturales
$ = final del texto a analizar
Con la sintaxis anterior, la expresión regular "A (19|20)\d\d [-/.] (0 [1-9]|1 [012]) [-/.] (0 [1-9]|[12] [0-9]|3 [01]) $ "coincide con una fecha en un formato aaaa-mm-dd entre 1900-01-01 y 2099-12-31, con una opción de cuatro separadores. Los cuatro separadores son "-"," ", "/" y ".". También como ejemplo, la expresión regular "a (ht|f) tp (s?) \: W [0-9a-zA-Z] ([-.\w] * [0-9a-zA-Z]) * (:(0-9) *) * (V?) ([a-zA-Z0-9\-\.\?\, \'V\\\ &% \ $ # _] *)? $ "coincide con la dirección de un sitio web URL.
La Figura 5A muestra una secuencia ejemplar de pasos llevados a cabo por el detector de DGA 704 (Figuras 3A-B) para analizar una solicitud de acceso externo a un servidor de tiempo, según algunas realizaciones de la presente invención. En un paso 501, el detector de DGA 704 analiza todas las solicitudes de acceso externo. El detector de DGA 704 además intercepta una respuesta original a una solicitud de acceso externo (paso 502) y analiza la respuesta original (paso 503). En un paso 504, el detector de DGA 704 determina si la respuesta esperada comprende un tiempo real. Como se indicó anteriormente, los pasos ilustrados no necesitan realizarse en el orden particular mostrado; por ejemplo, en algunas realizaciones el paso 504 se puede realizar antes de los pasos 502 y/o 503. La determinación en el paso 504 puede realizarse determinando si la solicitud de acceso incluye una dirección de un servidor de tiempo dedicado o no dedicado, comparando la dirección a la que apunta la solicitud de acceso con una o más listas de servidores de tiempo, incluyendo servidores de tiempo dedicados y no dedicados. Los servidores de tiempo dedicados pueden identificarse a través de listas predefinidas, tales como las puestas a disposición por la NetWork Time Foundation en su sitio NetWork Time Protocol, www.ntp.org. El servidor de tiempo dedicado también puede identificarse a través de la presencia de un identificador de protocolo de tiempo de red (ntp) en la solicitud. Los servidores de tiempo no dedicados pueden identificarse buscando en sitios de interés general (por ejemplo, www.yahoo.com) y sitios de propósito especial (por ejemplo, www.weather.com) para seleccionar sitios que devuelvan un tiempo real y generando una lista de -servidores de tiempo dedicados según los resultados de la búsqueda. En el paso 504, el detector de DGA 704 puede consultar una base de datos de servidor de tiempo 712 para determinar si existe una coincidencia entre una dirección URL encontrada mediante el análisis y una lista de direcciones URL de las bases de datos de servidor de tiempo 712.
Si el detector de DGA 704 determina que la solicitud de acceso externo no incluye la dirección de un servidor de tiempo, el detector de DGA 704 detecta en un paso 507 si el proceso ejecuta un DGA. El paso 507 se describe en detalle a continuación. Si el detector de DGA 704 determina que la solicitud de acceso externo incluye la dirección de un servidor de tiempo, el detector de DGA 704 modifica (paso 505) la respuesta original interceptada reemplazando un tiempo real original con un tiempo real acelerado, como se explica a continuación. Luego el detector de DGA 704 envía (paso 506) la respuesta modificada al proceso que envió la solicitud de acceso analizada en el paso 501.
La Figura 5B muestra una secuencia ejemplar de pasos llevados a cabo por el detector de DGA 704 (Figuras 3A-B) para analizar una respuesta original a una solicitud de acceso externo, según algunas realizaciones de la presente invención. En el paso 502, el detector de DGA 704 intercepta una respuesta original a una solicitud de acceso externo. En el paso 503, el detector de DGA 704 analiza la respuesta original como se describe arriba. El detector de DGA 704 determina si el proceso ejecuta un DGA en un paso 507.
El detector de DGA 704 determina además si la respuesta original incluye un campo en tiempo real en un paso 524. La determinación realizada en el paso 524 puede incluir la búsqueda de uno o más valores en tiempo real incrustados en campos de texto y/o campos de imagen. La búsqueda de campos de texto y/o imagen se puede realizar usando métodos conocidos en la técnica. En algunas realizaciones, la búsqueda de un campo de texto puede incluir editar un objeto que contiene el campo utilizando una aplicación especializada. (por ejemplo,, un editor de texto para un archivo de texto). El paso 524 puede incluir hacer coincidir una expresión regular para la fecha con un resultado del análisis. Luego, el detector de DGA 704 modifica (paso 505) la respuesta interceptada reemplazando el tiempo real con un tiempo real acelerado, como se explica a continuación. Luego, el detector de DGA 704 envía (paso 506) la respuesta modificada al proceso que envió la solicitud de acceso que fue analizada.
La Figura 5C muestra una secuencia ejemplar de pasos dentro del paso 507 (Figuras 5A-B) llevada a cabo por el detector de DGA 704 (Figuras 3A-B) cuando se determina si un proceso ejecuta un DGA. En un paso 527, el detector de DGA 704 determina si una respuesta original a la solicitud de acceso es un éxito. Si la respuesta original no es un éxito, el detector de DGA 704 determina (paso 528) si un proceso que se ejecuta en el sistema informático ejecuta un DGA. La determinación en el paso 528 se puede realizar usando métodos conocidos en la técnica. Los detalles sobre la detección de DGA del paso 528 se presentan a continuación. Si el proceso ejecuta el DGA, se determinan los nombres de dominio generados por el DGA (paso 529). Los nombres de dominio identificados en el paso 529 se agregan a una lista negra desde una aplicación de seguridad en un paso 531. La lista negra se puede utilizar para actualizar oportunamente una pluralidad de sistemas cliente 10, que puede llegar a ser protegida contra el malware de DGA. La aplicación de seguridad puede configurarse además para registrar los nombres de dominio del paso 509 en la base de datos de nombres de dominio de un registrador designado. Un registro oportuno de los nombres de dominio puede evitar que los creadores de malware utilicen los nombres de dominio para propagar y/o activar malware de la red de ordenadores esclavos. La aplicación de seguridad puede configurarse además para identificar un conjunto de sistemas informáticos que envían solicitudes de acceso a los nombres de dominio registrados. El conjunto identificado de sistemas informáticos puede incluir miembros de la red de ordenadores esclavos. Una identificación temprana de puede limitar la propagación de malware de la red de ordenadores esclavos.
El malware puede determinar un tiempo real a través de una variedad de métodos, por ejemplo, consultando el sistema operativo que se ejecuta en el sistema informático. Una aplicación de seguridad puede cambiar el tiempo real que indica el sistema operativo, indicando un tiempo real acelerado. Un tiempo real acelerado indica un tiempo real en el futuro. El malware puede solicitar un valor del tiempo real consultando el sistema operativo. En un sistema informático que ejecuta Windows®, se puede usar una llamada a una función GetSystemTime () para recuperar el valor del tiempo real. El malware puede entonces verificar que el tiempo real acelerado indicado por el sistema operativo es exacto. Para verificar, el malware puede incluir el tiempo real acelerado en una solicitud de acceso externo a un servidor de tiempo. Una respuesta original del servidor de tiempo puede incluir una indicación de si el tiempo real acelerado es exacto.
La Figura 5D muestra una secuencia ejemplar de pasos llevados a cabo por el detector de DGA 704 (Figuras 3A-B) para analizar una solicitud de acceso externo que incluye un tiempo real acelerado, según algunas realizaciones de la presente invención. En el paso 501, el detector de DGA 704 analiza todas las solicitudes de acceso externo. A continuación, el detector de DGA 704 intercepta una respuesta original a la solicitud de acceso externo (paso 502) y analiza la respuesta original (paso 503). En un paso 544, el detector de DGA 704 determina si la respuesta original es un éxito. Si la respuesta original es un éxito, el detector de DGA 704 luego determina si la solicitud incluye un tiempo real acelerado (paso 546). Tal determinación se puede realizar comparando un tiempo extraído de la solicitud analizada con un valor del tiempo actual. La comparación puede realizarse con un nivel de precisión deseado, por ejemplo, determinando si la fecha y/o la hora (pero no necesariamente los minutos/segundos) coinciden. El detector de DGA 704 puede determinar el valor del tiempo actual consultando el sistema operativo que se ejecuta en el sistema informático. Si se incluye tal tiempo real acelerado, el detector de DGA 704 determina si la respuesta original incluye una información original de que el tiempo real acelerado no es exacto (paso 547). Si la respuesta original incluye información original de que el tiempo real acelerado no es exacto, el detector de DGA 704 modifica (paso 548) la respuesta original reemplazando la información original con una información modificada que indique que el tiempo real acelerado es exacto. Luego detector DGA 704 envía (paso 506) la respuesta modificada al proceso que envió la solicitud de acceso que fue analizada. Si la respuesta original no es un éxito, el detector de DGA lleva a cabo el paso de detección de DGA 507 descrito anteriormente.
En un paso 545 se intercepta una respuesta original a la solicitud analizada (paso 545) y analiza (paso 546). En un paso 547, el detector de DGA 704 determina si la respuesta original analizada incluye una información de que el tiempo real acelerado determinado en el paso 543 no es exacto. Si se hace una determinación positiva en el paso 547, detector de DGA 704 reemplaza la información de que el tiempo real acelerado es inexacto con una información de que el tiempo real acelerado es exacto y genera una respuesta modificada. Luego, la respuesta modificada se envía al proceso que envió la solicitud de acceso analizada.
La Figura 6 muestra una relación matemática entre un tiempo real original 606 y un tiempo real acelerado 605, cuando las respuestas sucesivas incluyen tiempos reales originales. Esta relación matemática puede estar codificada en el detector de DGA por una función que puede ser independiente del proceso que emite la solicitud de acceso externo. En una realización, el tiempo real puede ser el tiempo actual que se mide por el sistema operativo en el sistema cliente. La línea discontinua 601 muestra el caso en el que el tiempo real acelerado es igual al tiempo real original. En una realización, el tiempo real acelerado puede representarse mediante una función convexa 603. Esto puede ser deseable cuando es ventajoso proporcionar un tiempo real acelerado que se ejecuta permanentemente más rápido que el tiempo real, por ejemplo, cuando se verifica un proceso frente a un determinado comportamiento. En una realización, el tiempo real acelerado puede representarse mediante una función cóncava 604. Esto puede ser deseable cuando es ventajoso proporcionar un tiempo real acelerado que, después de un período en el que se ejecutó considerablemente más rápido que el tiempo real original, se ralentiza, por ejemplo, cuando el comportamiento de un proceso se verifica en detalle durante un período de tiempo. En una realización, el tiempo real acelerado puede representarse mediante una función de línea recta 602. Esto puede ser deseable cuando se estudia por primera vez el comportamiento de un proceso, sin ningún conocimiento previo.
Pueden usarse varios métodos para determinar si un proceso ejecuta un DGA. Algunos métodos pueden analizar el URL de un sitio externo 714 (Figura 1) y utilizar heurísticas tales como la observación de que muchos URL generados por los DGA no comienzan con 'www.' Otros métodos pueden aplicar heurísticas para analizar la inteligibilidad del URL al que se accede. Sin embargo, otros métodos se basan en incluir en la lista gris cualquier sitio externo que se registró con un registrador de dominios dentro de un último período predeterminado, por ejemplo, en las últimas 24 horas.
Los métodos más elaborados para la detección de DGA pueden emplear un análisis del código ejecutable de un proceso sospechoso. La Figura 7 muestra tal método. Dicho método se basa en la observación de que al menos parte del malware de DGA se desencadena por eventos que son de ciertos tipos conocidos (como la hora, los eventos del sistema, etc.) En un primer paso 701, se selecciona un tipo de disparador para el análisis. En un paso 703 el proceso sospechoso se ejecuta utilizando una ejecución mixta (concreta y simbólica), mientras que se alimentan las entradas del proceso sospechoso del tipo de disparador seleccionado. Las entradas de los tipos de disparadores seleccionados se representan como variables simbólicas. Cada paso de la ejecución mixta se ejecuta de forma concreta si en ese paso no se produce ninguna ramificación que dependa de una variable simbólica, y de lo contrario se ejecuta simbólicamente. En un paso 705 todas las rutas de ejecución se determinan en función de los valores de las variables simbólicas. En un paso 707 Se determinan todas las rutas de ejecución factibles. Algunas de las rutas de ejecución determinadas en el paso 705 pueden no ser factibles, por ejemplo, porque requieren dos valores disparadores que son inconsistentes entre sí. Por ejemplo, una ruta de ejecución que no es factible puede incluir dos ramificaciones, la primera ramificación que se desencadena si un valor en tiempo real es anterior a mayo de 2015, y la segunda ramificación se desencadena si el valor en tiempo real es posterior a julio de 2015. Finalmente, en un paso 711 se analizan los URL generados en cada ruta factible. El análisis puede incluir la correlación de URL con ciertos tipos y valores de disparador. Como ejemplo, si más del 80% de los URL se generan en respuesta a un cambio en el valor de no más de dos tipos de disparadores, se hace una determinación de que el proceso sospechoso ejecuta un DGA.
Los sistemas y métodos ejemplares descritos anteriormente permiten detectar malware, tal como redes de ordenadores esclavos de ejecución de DGA. En algunas realizaciones, un proceso sospechoso se ejecuta en una máquina separada de la máquina que intercepta y analiza las solicitudes y respuestas de acceso externo y detecta el DGA. La máquina separada puede ser un sistema informático físico diferente o una máquina virtual alojada en el mismo sistema informático físico. Se analizan todas las respuestas y se modifican las respuestas, incluyendo un tiempo real original. Dentro de las respuestas modificadas, el tiempo real acelerado reemplaza al tiempo real original. Luego, se analiza el proceso sospechoso para determinar si ejecuta un DGA. Al proporcionar un tiempo real acelerado, los nombres de dominio generados por el DGA pueden obtenerse antes de tiempo real en que se generarían.
En algunas realizaciones, el proceso sospechoso puede enviar una solicitud de acceso externo que incluye un tiempo real acelerado. Esta situación puede ocurrir cuando el proceso sospechoso intenta verificar un tiempo real obtenido al consultar el sistema operativo. Los investigadores pueden alterar el tiempo real indicado por el sistema operativo, señalando un tiempo en el futuro. Así, el tiempo real indicado por el sistema operativo se convierte en un tiempo real acelerado. En funcionamiento normal, una respuesta original del sitio externo indica que el tiempo real acelerado no es exacto. La respuesta original se modifica de modo que la respuesta modificada indique que el tiempo real acelerado es exacto. Luego, se analiza el proceso sospechoso para determinar si ejecuta un DGA. Al proporcionar un tiempo real acelerado, los nombres de dominio generados por el DGA pueden obtenerse antes de la hora real en que se generarían. De esta forma, los investigadores pueden determinar los nombres de dominio que generará el DGA en el futuro.
Cuando se reciben múltiples respuestas enviadas por el proceso sospechoso y que incluyen tiempo real, se pueden utilizar varias funciones matemáticas para calcular el tiempo real acelerado para las respuestas modificadas, según algunas realizaciones. Estas diversas funciones son deseables cuando se sospecha una cierta frecuencia en la generación de los dominios por el DGA.
Proporcionar un tiempo real acelerado y, por lo tanto, desencadenar la ejecución del DGA permite a los investigadores detectar comportamientos maliciosos sin dedicarse a esfuerzos que consumen mucho tiempo para realizar ingeniería inversa en el código ejecutable. Los dominios de la lista negra que se generan por los DGA permiten a los proveedores de aplicaciones de seguridad proporcionar actualizaciones a sus clientes antes de que los creadores de malware activen el malware que utiliza algoritmos de generación de dominios. Los dominios que se determina que son generados por los DGA pueden registrarse con anticipación y los miembros de la red de ordenadores esclavos pueden identificarse según las solicitudes recibidas en los dominios registrados.
Interceptar, analizar y detectar la ejecución de DGA de forma externa desde el ordenador central de malware de DGA potencial proporciona la ventaja de aislar el ordenador central de malware de DGA potencial de las herramientas de investigación. Por lo tanto, se reduce considerablemente el riesgo de que el malware modifique su comportamiento en presencia de herramientas antimalware. Además, tal enfoque no requiere cambios en el tiempo real interno indicado por el sistema operativo del ordenador central de malware de DGA. Los investigadores pueden elegir el entorno informático óptimo para detectar el malware DGA. En algunas realizaciones, puede ser deseable iniciar el proceso sospechoso. En algunas realizaciones, puede ser deseable detectar el malware de DGA desde un enrutador o conmutador que agregue el tráfico de Internet de una red Intranet.
Estará claro para un experto en la técnica que las realizaciones anteriores pueden alterarse de muchas formas sin apartarse del alcance de la invención. Por consiguiente, el alcance de la invención debería estar determinado por las siguientes reivindicaciones y sus equivalentes legales.

Claims (15)

REIVINDICACIONES
1. Un primer sistema informático que comprende al menos una memoria y al menos un microprocesador asociado configurado para realizar, externamente de un ordenador central de malware de algoritmo de generación de dominios (DGA) potencial, los siguientes pasos:
interceptar una respuesta original a una primera solicitud de acceso externo, en donde la primera solicitud de acceso externo es enviada por el ordenador central de malware de DGA potencial a un sitio externo;
determinar según una dirección incluida en la primera solicitud de acceso externo si el sitio externo es un servidor de tiempo;
en respuesta, cuando el sitio externo es un servidor de tiempo, enviar una respuesta modificada al ordenador central de malware de DGA potencial, la respuesta modificada que se genera a partir de la respuesta original reemplazando un tiempo real incluido en la respuesta original con un tiempo real acelerado posterior al tiempo real original, en donde el tiempo real devuelto por el servidor de tiempo indica un tiempo presente de la respuesta original; interceptar, en respuesta a una segunda solicitud de acceso externo enviada por el ordenador central de malware de DGA potencial, una respuesta que indica que la segunda solicitud de acceso no fue un éxito, en donde la segunda solicitud de acceso externo se envía después de que se envía la primera solicitud de acceso externo; y
en respuesta a la interceptación de la respuesta que indica que la segunda solicitud de acceso no fue un éxito, determinar que el ordenador central de malware de DGA potencial incluye malware que ejecuta un algoritmo de generación de dominios.
2. El primer sistema informático de la reivindicación 1, en donde el al menos un microprocesador asociado está configurado además para determinar:
analizar al menos una de la primera solicitud de acceso externo y la respuesta original a la primera solicitud de acceso externo para identificar un campo en tiempo real de una pluralidad de campos de la respuesta original; comparar un contenido del campo de tiempo real con un valor de tiempo real independiente determinado por el primer sistema informático; e
identificar el contenido del campo de tiempo real como el tiempo real según un resultado de la comparación.
3. El primer sistema informático de la reivindicación 1, en donde el ordenador central de malware de DGA potencial es un segundo sistema informático físicamente distinto del primer sistema informático.
4. El primer sistema informático de la reivindicación 1, en donde el ordenador central de malware de DGA potencial es una máquina virtual alojada por el primer sistema informático.
5. El primer sistema informático de la reivindicación 1, en donde el al menos un microprocesador asociado está configurado además para determinar un nombre de dominio generado por el algoritmo de generación de dominios e identificar, según el nombre de dominio, una pluralidad de sistemas informáticos sospechosos de ejecutar el algoritmo de generación de dominios.
6. El primer sistema informático de la reivindicación 1, en donde el al menos un microprocesador asociado está configurado además, en respuesta a la determinación de que el ordenador central de malware de DGA potencial incluye malware que ejecuta el algoritmo de generación de dominios, para agregar un nombre de dominio generado por el algoritmo de generación de dominios a una lista negra de aplicaciones de seguridad.
7. El primer sistema informático de la reivindicación 1, en donde el al menos un microprocesador asociado está configurado además para determinar si el sitio externo es un servidor de tiempo según si la primera solicitud de acceso externo se formula según un protocolo de tiempo de red (NTP).
8. Un primer sistema informático que comprende al menos una memoria y al menos un microprocesador asociado configurado para realizar, externamente de un ordenador central de malware de algoritmo de generación de dominios (DGA) potencial, los siguientes pasos:
analizar una primera solicitud de acceso externo para determinar si la primera solicitud de acceso externo comprende un tiempo real que indica un tiempo actual de la primera solicitud de acceso externo, en donde la primera solicitud de acceso externo es enviada por el ordenador central de malware de DGA potencial a un sitio externo;
analizar una primera respuesta original a la primera solicitud de acceso externo para determinar si la primera respuesta original comprende una primera información que indica que el tiempo real no es exacto;
enviar una respuesta modificada al ordenador central de malware de DGA potencial, la respuesta modificada que se genera a partir de la primera respuesta original reemplazando la primera información con una segunda información que indica que el tiempo real es exacto;
interceptar, en respuesta a una segunda solicitud de acceso externa enviada por el ordenador central de malware de DGA potencial a un segundo sitio externo, una segunda respuesta original que indica que la segunda solicitud de acceso no fue un éxito; y
determinar, en respuesta a la interceptación de la segunda respuesta original, que el ordenador central de malware de DGA potencial incluye malware que ejecuta un algoritmo de generación de dominios.
9. Un medio legible por ordenador no transitorio que almacena instrucciones que, cuando se ejecutan, configuran al menos una memoria y al menos un microprocesador asociado de un primer sistema informático para realizar, externamente de un ordenador central de malware de algoritmo de generación de dominios (DGA) potencial, los siguientes pasos:
interceptar una respuesta original a una primera solicitud de acceso externo, en donde la primera solicitud de acceso externo es enviada por el ordenador central de malware de DGA potencial a un sitio externo;
determinar según una dirección incluida en la primera solicitud de acceso externo si el sitio externo es un servidor de tiempo;
en respuesta, cuando el sitio externo es un servidor de tiempo, enviar una respuesta modificada al ordenador central de malware de DGA potencial, la respuesta modificada que se genera a partir de la respuesta original reemplazando un tiempo real incluido en la respuesta original con un tiempo real acelerado posterior al tiempo real original, en donde el tiempo real devuelto por el servidor de tiempo indica un tiempo presente de la respuesta original; interceptar, en respuesta a una segunda solicitud de acceso externo enviada por el ordenador central de malware de DGA potencial, una respuesta que indica que la segunda solicitud de acceso no fue un éxito, en donde la segunda solicitud de acceso externo se envía después de que se envía la primera solicitud de acceso externo; y
en respuesta a la interceptación de la respuesta que indica que la segunda solicitud de acceso no fue un éxito, determinar que el ordenador central de malware de DGA potencial incluye malware que ejecuta un algoritmo de generación de dominios.
10. El medio legible por ordenador no transitorio de la reivindicación 9, en donde las instrucciones configuran además la al menos una memoria y al menos un microprocesador asociado para realizar los pasos de: analizar al menos una de la primera solicitud de acceso externo y la respuesta original para identificar un campo en tiempo real de una pluralidad de campos de la respuesta original;
comparar un contenido del campo de tiempo real con un valor de tiempo real independiente determinado por el primer sistema informático; e
identificar el contenido del campo de tiempo real como el tiempo real según un resultado de la comparación.
11. El medio legible por ordenador no transitorio de la reivindicación 9, en donde el ordenador central de malware de DGA potencial es un segundo sistema informático físicamente distinto del primer sistema informático.
12. El medio legible por ordenador no transitorio de la reivindicación 9, en donde el ordenador central de malware de DGA potencial es una máquina virtual alojada por el primer sistema informático.
13. El medio legible por ordenador no transitorio de la reivindicación 9, en donde el al menos un microprocesador asociado está configurado además para determinar un nombre de dominio generado por el algoritmo de generación de dominios e identificar, según el nombre de dominio, una pluralidad de sistemas informáticos sospechosos de ejecutar el algoritmo de generación de dominios.
14. El medio legible por ordenador no transitorio de la reivindicación 9, en donde el al menos un microprocesador asociado está configurado además, en respuesta a la determinación de que el ordenador central de malware de DGA potencial incluye malware que ejecuta el algoritmo de generación de dominios, para agregar un nombre de dominio generado por el algoritmo de generación de dominios a una lista negra de aplicaciones de seguridad.
15. El medio legible por ordenador no transitorio de la reivindicación 9, en donde las instrucciones configuran además la al menos una memoria y al menos un microprocesador asociado para determinar si el sitio externo es un servidor de tiempo según si la primera solicitud de acceso externo se formula según un protocolo de tiempo de red (NTP).
ES16794548T 2015-11-04 2016-11-02 Sistemas y métodos para detectar malware de algoritmo de generación de dominios (DGA) Active ES2880269T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/932,765 US9819696B2 (en) 2015-11-04 2015-11-04 Systems and methods for detecting domain generation algorithm (DGA) malware
PCT/EP2016/076343 WO2017076859A1 (en) 2015-11-04 2016-11-02 System and methods for detecting domain generation algorithm (dga) malware

Publications (1)

Publication Number Publication Date
ES2880269T3 true ES2880269T3 (es) 2021-11-24

Family

ID=57286460

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16794548T Active ES2880269T3 (es) 2015-11-04 2016-11-02 Sistemas y métodos para detectar malware de algoritmo de generación de dominios (DGA)

Country Status (13)

Country Link
US (1) US9819696B2 (es)
EP (1) EP3371953B1 (es)
JP (1) JP6726429B2 (es)
KR (1) KR102271545B1 (es)
CN (1) CN108353083B (es)
AU (1) AU2016348500B2 (es)
CA (1) CA3002605C (es)
ES (1) ES2880269T3 (es)
HK (1) HK1254971A1 (es)
IL (1) IL258776A (es)
RU (1) RU2726032C2 (es)
SG (1) SG11201803441WA (es)
WO (1) WO2017076859A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979748B2 (en) * 2015-05-27 2018-05-22 Cisco Technology, Inc. Domain classification and routing using lexical and semantic processing
US10728266B2 (en) * 2017-08-15 2020-07-28 Check Point Software Technologies Ltd. Methods and systems for identifying malware enabled by automatically generated domain names
US10979451B2 (en) 2018-02-14 2021-04-13 Cisco Technology, Inc. Autonomous domain generation algorithm (DGA) detector
US11075947B2 (en) * 2018-06-26 2021-07-27 Cisco Technology, Inc. Virtual traffic decoys
US10862854B2 (en) 2019-05-07 2020-12-08 Bitdefender IPR Management Ltd. Systems and methods for using DNS messages to selectively collect computer forensic data
US11729134B2 (en) * 2019-09-30 2023-08-15 Palo Alto Networks, Inc. In-line detection of algorithmically generated domains
KR102265955B1 (ko) * 2019-12-18 2021-06-16 주식회사 쏘마 악성 코드 실행 방지를 위한 악성 코드 탐지 방법 및 도메인 생성 알고리즘 탐지 방법
KR102638308B1 (ko) * 2021-12-21 2024-02-20 주식회사 윈스 DNS 트래픽 분석을 통한 자동화 DDoS 감지 방법 및 장치
US20230259614A1 (en) * 2022-02-14 2023-08-17 Mellanox Technologies, Ltd. Malicious activity detection in memory of a data processing unit using machine learning detection models
US20230262076A1 (en) * 2022-02-14 2023-08-17 Mellanox Technologies, Ltd. Malicious domain generation algorithm (dga) detection in memory of a data processing unit using machine learning detection models
US11582247B1 (en) * 2022-04-19 2023-02-14 Palo Alto Networks, Inc. Method and system for providing DNS security using process information

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444780A (en) 1993-07-22 1995-08-22 International Business Machines Corporation Client/server based secure timekeeping system
JPH07175734A (ja) * 1993-12-20 1995-07-14 Ricoh Co Ltd ローカルエリアネットワーク
DE10014522C2 (de) * 2000-03-23 2003-08-21 Siemens Ag Verfahren und Anordnung zur Zulässigkeitsprüfung einer Dienstnutzung
US8327448B2 (en) 2005-06-22 2012-12-04 Intel Corporation Protected clock management based upon a non-trusted persistent time source
US8220031B2 (en) 2007-05-01 2012-07-10 Texas Instruments Incorporated Secure time/date virtualization
US8161160B2 (en) * 2008-02-28 2012-04-17 Microsoft Corporation XML-based web feed for web access of remote resources
US9501644B2 (en) * 2010-03-15 2016-11-22 F-Secure Oyj Malware protection
US8260914B1 (en) * 2010-06-22 2012-09-04 Narus, Inc. Detecting DNS fast-flux anomalies
US8516585B2 (en) 2010-10-01 2013-08-20 Alcatel Lucent System and method for detection of domain-flux botnets and the like
RU103643U1 (ru) * 2010-11-01 2011-04-20 Закрытое акционерное общество "Лаборатория Касперского" Система противодействия фишинг атакам
US9467421B2 (en) * 2011-05-24 2016-10-11 Palo Alto Networks, Inc. Using DNS communications to filter domain names
US9047441B2 (en) * 2011-05-24 2015-06-02 Palo Alto Networks, Inc. Malware analysis system
US8763117B2 (en) 2012-03-02 2014-06-24 Cox Communications, Inc. Systems and methods of DNS grey listing
CN102833337B (zh) * 2012-08-30 2016-03-02 北京星网锐捷网络技术有限公司 一种ftp文件上传、下载方法及装置
US9077546B1 (en) * 2012-11-27 2015-07-07 Symnatec Corporation Two factor validation and security response of SSL certificates
US8990513B2 (en) * 2013-01-11 2015-03-24 International Business Machines Corporation Accelerated recovery for snooped addresses in a coherent attached processor proxy
GB201306628D0 (en) 2013-04-11 2013-05-29 F Secure Oyj Detecting and marking client devices
CN103634315B (zh) * 2013-11-29 2017-11-10 哈尔滨工业大学(威海) 域名服务器的前端控制方法及***
CN104580185B (zh) * 2014-12-30 2017-12-01 北京工业大学 一种网络访问控制的方法和***

Also Published As

Publication number Publication date
JP6726429B2 (ja) 2020-07-22
AU2016348500B2 (en) 2020-04-30
EP3371953A1 (en) 2018-09-12
CN108353083B (zh) 2021-02-26
SG11201803441WA (en) 2018-05-30
IL258776A (en) 2018-06-28
US20170126706A1 (en) 2017-05-04
EP3371953B1 (en) 2021-05-12
US9819696B2 (en) 2017-11-14
JP2018533793A (ja) 2018-11-15
CN108353083A (zh) 2018-07-31
AU2016348500A1 (en) 2018-05-10
KR102271545B1 (ko) 2021-07-05
RU2726032C2 (ru) 2020-07-08
RU2018118828A3 (es) 2020-03-25
RU2018118828A (ru) 2019-12-05
WO2017076859A1 (en) 2017-05-11
CA3002605C (en) 2022-03-29
KR20180081053A (ko) 2018-07-13
HK1254971A1 (zh) 2019-08-02
CA3002605A1 (en) 2017-05-11

Similar Documents

Publication Publication Date Title
ES2880269T3 (es) Sistemas y métodos para detectar malware de algoritmo de generación de dominios (DGA)
US11068605B2 (en) Systems and methods for controlling data exposure using artificial-intelligence-based periodic modeling
JP6670907B2 (ja) スクリプトの実行をブロックするシステム及び方法
US9674215B2 (en) Software program identification based on program behavior
US9531740B2 (en) Software program identification based on program behavior
US9135443B2 (en) Identifying malicious threads
US8769692B1 (en) System and method for detecting malware by transforming objects and analyzing different views of objects
US20080301766A1 (en) Content processing system, method and program
US7739100B1 (en) Emulation system, method and computer program product for malware detection by back-stepping in program code
CN106250761B (zh) 一种识别web自动化工具的设备、装置及方法
Čisar et al. The framework of runtime application self-protection technology
Oh Fight against 1-day exploits: Diffing binaries vs anti-diffing binaries
Criscione et al. ZARATHUSTRA: Extracting Webinject signatures from banking trojans
Musch et al. Server-Side Browsers: Exploring the Web's Hidden Attack Surface
Takata et al. MineSpider: Extracting hidden URLs behind evasive drive-by download attacks
Kaur et al. UAC: a lightweight and scalable approach to detect malicious web pages
Zhang et al. Malicious Package Detection in NPM and PyPI using a Single Model of Malicious Behavior Sequence
Osagie et al. A Bit of Hacking Techniques for Vulnerable Subdomain
Al Shamsi Mapping, Exploration, and Detection Strategies for Malware Universe
Rahman Characterisation and detections of third-party content loading in the web
EP3151149B1 (en) System and method for blocking execution of scripts
Lee et al. Malicious script distribution pattern detection technique for image search websites
PRETI Detecting Android malware campaigns via application similarity analysis
Computing et al. Middleware 2012: ACM/IFIP/USENIX 13th
Hoffman et al. The Little Hybrid Web Worm that Could