ES2463265A2 - Anticipar la exploración de software malicioso - Google Patents

Anticipar la exploración de software malicioso Download PDF

Info

Publication number
ES2463265A2
ES2463265A2 ES201390092A ES201390092A ES2463265A2 ES 2463265 A2 ES2463265 A2 ES 2463265A2 ES 201390092 A ES201390092 A ES 201390092A ES 201390092 A ES201390092 A ES 201390092A ES 2463265 A2 ES2463265 A2 ES 2463265A2
Authority
ES
Spain
Prior art keywords
files
application
file
groups
scanning
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.)
Granted
Application number
ES201390092A
Other languages
English (en)
Other versions
ES2463265R1 (es
ES2463265B1 (es
Inventor
Pavel Turbin
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.)
WithSecure Oyj
Original Assignee
F Secure Oyj
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 F Secure Oyj filed Critical F Secure Oyj
Publication of ES2463265A2 publication Critical patent/ES2463265A2/es
Publication of ES2463265R1 publication Critical patent/ES2463265R1/es
Application granted granted Critical
Publication of ES2463265B1 publication Critical patent/ES2463265B1/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

De acuerdo con un primer aspecto de la presente invención, se proporciona un método de exploración de búsqueda de software malicioso durante la ejecución de una aplicación en un sistema informático. El método comprende detectar accesos por la aplicación a archivos dentro de un directorio común, usar los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente, y explorar dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos.

Description

Anticipar la exploración de software malicioso
Campo técnico
La presente invención se refiere a un método y aparato para realizar la exploración de software malicioso. En particular, la presente invención se refiere a un método y aparato para optimizar el rendimiento de un sistema informático que realiza la exploración de software malicioso en un grupo de archivos.
Antecedentes
Malware es la abreviatura de software malicioso y se usa como un término para referirse a cualquier software diseñado para infiltrarse o dañar un sistema informático sin el consentimiento informado del propietario. El software malicioso puede incluir virus informáticos, gusanos, troyanos, rootkits, adware, programas espías y otro software malicioso o no deseado.
Muchos usuarios hacen uso de un software anti-virus para detectar y, eventualmente, eliminar el software malicioso. Con el fin de detectar un archivo de software malicioso, el software anti-virus debe tener alguna forma de identificarlo entre los otros archivos presentes en un dispositivo. Normalmente, esto necesita que el software anti-virus tenga una base de datos que contenga las "firmas" o "huellas digitales" que son características de los archivos de programa de software malicioso individuales. Cuando el proveedor del software anti-virus identifica una nueva amenaza de software malicioso, la amenaza se analiza y se genera su firma. A continuación, el software malicioso se "conoce" y su firma puede distribuirse a los usuarios finales como actualizaciones de sus bases de datos de software de antivirus locales.
Normalmente, el software anti-virus proporciona exploración bajo demanda de archivos en los que el usuario de un sistema informático determina cuando deberían explorarse los archivos en el sistema informático en busca de la presencia de software malicioso. En la exploración bajo demanda el usuario puede activar el proceso de exploración manual, o puede configurar el proceso de exploración para iniciarse en determinadas circunstancias. Por ejemplo, el usuario puede configurar el software anti-virus para explorar carpetas o directorios específicos (estos términos se usan indistintamente en el presente documento) sobre una base semanal y para explorar todos los archivos de un sistema informático una vez al mes. Además, el software anti-virus puede proporcionar también protección en tiempo real contra el software malicioso realizando una exploración en tiempo real.
En la exploración bajo demanda, se controla un sistema informático en busca de presencia de software malicioso explorando archivos de forma automática en segundo plano a medida que existe un acceso detectado de archivos de una o más aplicaciones que se ejecutan en el sistema informático. El método de acceso a archivos más común es el acceso a archivos abiertos de solo lectura. Este tipo de acceso es común para funcionamientos en múltiples archivos, por ejemplo, la búsqueda de/en archivos, al arrancar y durante la ejecución de una aplicación, la copia de archivos de carpeta a carpeta (de directorio a directorio), la compresión de archivos, etc. Los siguientes ejemplos ilustran con más detalle algunas de estos funcionamientos comunes.
Ejemplo 1, la orden de copia:
C:\> copy source\*.* d:\dest
Esta orden (aplicación) puede representarse por el siguiente pseudo código:
for each file in c:\ source\*.*
read-only open current file (c:\ source\...)
read file data
close file
save data to d:\dest\
La orden de copia genera el acceso de solo lectura continuo y secuencial para todos los archivos origen.
Ejemplo 2, una aplicación que se ejecuta con muchos archivos modulares:
Se supone que la aplicación se compone de un único ejecutable (.EXE) y una serie de módulos, tales como bibliotecas de enlace dinámico (.DLL). Cuando un usuario inicia la aplicación, la aplicación carga las librerías necesarias y a continuación arranca. Este funcionamiento podría representarse por el siguiente pseudo código:
for files application.exe, module1.dll, module2.dll… moduleN.dll
read-only open current file load file data
La aplicación genera accesos a archivos abiertos de solo lectura continuos y secuenciales a los archivos fuentes en la aplicación y/o directorios de módulos relevantes.
Pueden encontrarse patrones similares de accesos a archivos abiertos de solo lectura continuos y secuenciales de múltiples archivos en un directorio dado en otras órdenes o aplicaciones, por ejemplo, buscar un patrón en un grupo de archivos (grep.exe o findstr.exe), calcular una función hash sobre archivos (md5.exe), empaquetar archivos en un contenedor (rar.exe o winzip.exe) y así sucesivamente.
La figura 1 ilustra una interacción convencional entre una aplicación y un software anti-virus cuando la aplicación realiza un acceso a archivos abiertos de solo lectura de múltiples archivos. Durante este funcionamiento solo cuando el software anti-virus detecta el acceso de la aplicación a los archivos se realiza la exploración en tiempo real de los archivos.
En particular, cuando la aplicación intenta abrir un archivo, la solicitud de apertura se intercepta por un filtro que genera una solicitud de exploración para su uso por el software anti-virus y se evita que la aplicación abra y use el archivo. Al recibir la solicitud de exploración, el software anti-virus explora el archivo y genera un resultado de la forma habitual. En función del resultado, el acceso del archivo se devuelve a la aplicación para su uso, por ejemplo, leer, copiar o ejecutar el archivo. Sin embargo, si la aplicación necesita acceder a múltiples archivos, este funcionamiento se repetirá secuencialmente para cada acceso de archivo posterior por la aplicación como se muestra en la figura 1. Este es un proceso muy lento y laborioso, lo que afecta al rendimiento de la aplicación y al sistema informático.
La mayoría de los sistemas informáticos modernos ya están optimizados para la multitarea. Una CPU típica a menudo incluye soporte multi-núcleo (multi-proceso), lo que permite efectivamente que las tareas de aplicación se ejecuten, aparentemente al mismo tiempo. Un proceso de ejecución (un hilo) se define como la unidad más pequeña de procesamiento (por ejemplo, una tarea o una parte de una tarea) que puede programarse por un sistema operativo. El multi-proceso se refiere a una aplicación que tiene múltiples procesos de ejecución donde los procesos se programan para ejecutarse por un sistema operativo al mismo tiempo. El artículo de INTEL™, “Predicting and Measuring Parallel Performance”, del 9 de marzo de 2010, disponible en http://software.intel.com/en-us/articles/predicting-and-measuring-parallel-performance/, describe el desarrollo de software paralelo de aplicaciones multi-proceso para permitirlas procesar un conjunto de datos dado en menos tiempo, o procesar múltiples conjuntos de datos en un tiempo fijo.
Un solo procesador puede realizar multi-proceso por multiplexación de división de tiempo de los procesos de ejecución (es decir, multi-tarea) de manera que el procesador cambia de contexto entre los diferentes procesos. Este cambio de contexto ocurre con tanta frecuencia que el usuario percibe los procesos o tareas ejecutándose simultáneamente o en paralelo. En un sistema multi-proceso o multi-núcleo, algunos de los procesos o tareas actuales se ejecutan al mismo tiempo, (en función del número de procesadores), con cada procesador o núcleo ejecutando un proceso o tarea en particular. Con el fin de obtener el máximo rendimiento, las aplicaciones, cuando se ejecutan en el sistema informático, deberían intentar poner en paralelo sus ecuaciones o tareas complejas.
Explorar en paralelo varios archivos en busca de software malicioso con un software anti-virus puede lograrse programando de forma simultánea uno o más procesos para manejar el proceso de exploración de cada uno de los archivos. Como se mencionó anteriormente, el sistema operativo gestiona la ejecución de los procesos en un sistema informático multi-tarea y/o multi-núcleo. La exploración en paralelo puede realizarse en múltiples archivos en una cola de exploración para aumentar el rendimiento del sistema informático. El encolamiento de los archivos accedidos para explorar software malicioso puede usar el potencial de la exploración en paralelo. Tal exploración puede realizarse mediante métodos de exploración cercanos asíncronos. Pero, incluso con soporte multi-núcleo, la exploración en paralelo en tiempo real de múltiples archivos en busca de software malicioso durante el acceso de los archivos abiertos de solo lectura por una aplicación es problemática. Los archivos encolados para posteriores exploraciones paralelas o en lote no es una opción para las aplicaciones que necesitan de un funcionamiento de acceso a archivos abiertos de solo lectura. Este tipo de acceso a archivos necesita una respuesta síncrona inmediata del software anti-virus para permitir a la aplicación proceder lo más rápidamente posible. Las solicitudes de exploración del controlador de filtro de anti-virus no pueden encolarse para un procesamiento de grupo futuro porque el software anti-virus no conoce el siguiente archivo que necesitará una aplicación.
Las aplicaciones pueden generar múltiples solicitudes secuenciales de archivos abiertos de solo lectura arbitrarias y la lógica de exploración de anti-virus típica necesita que cada solicitud de archivos abiertos de solo lectura active un evento o solicitud de exploración de ese archivo. Debido a la naturaleza secuencial del acceso de archivos, la lógica de exploración no puede determinar qué archivos se accederán por la aplicación posteriormente. Esto no permite al software anti-virus tomar ventaja en la ejecución por lotes o en la exploración en paralelo de múltiples archivos en los sistemas informáticos modernos. Esto significa que la aplicación necesitará o que esperar hasta que finalice la exploración de software malicioso en todos los archivos antes de que se inicie o que se interrumpa durante la ejecución mientras que se explora cada archivo al que se accede. Ambos escenarios degradan significativamente el rendimiento de la aplicación y del sistema informático.
El proceso síncrono de exploración en tiempo real bloquea una aplicación desde su inicio o interrumpe la ejecución de la aplicación hasta que se ha completado la exploración en busca de software malicioso, de todos los archivos o de cada archivo. Como tal, el software antivirus impide que la ejecución de la aplicación progrese, disminuyendo la velocidad a la que puede completar sus tareas. Esto afecta al rendimiento del sistema informático.
Sumario
Es un objeto de la presente invención proporcionar un método de realización de la exploración de software malicioso que minimice los retardos introducidos por la exploración durante la ejecución de aplicaciones en un sistema informático, por lo tanto, optimizar el rendimiento del sistema informático.
De acuerdo con un primer aspecto de la invención, se proporciona un método de exploración de búsqueda de software malicioso durante la ejecución de una aplicación en un sistema informático, comprendiendo el método, detectar accesos por la aplicación a archivos dentro de un directorio común, usar los accesos detectados para identificar uno o más grupos de archivos dentro del directorio común al que la aplicación podría querer acceder posteriormente, y explorar dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos.
Las realizaciones de la invención proporcionan que el software anti-virus pueda realizar la exploración de un grupo de la pluralidad de archivos sin la necesidad de bloquear totalmente la ejecución de la aplicación antes de usar uno o más de los archivos en el grupo.
Como una opción, comprende además seleccionar el grupo o grupos de archivos en base a los tipos de archivo de los archivos accedidos por la aplicación. La selección de los archivos incluye, preferentemente, el emparejamiento de los tipos de archivo de los archivos accedidos por la aplicación con los tipos de archivo de los archivos dentro del directorio común. Preferentemente, los archivos dentro del grupo o grupos de archivos son los archivos que necesitan de exploración. El método comprende además, opcionalmente, la identificación de uno o más grupos de archivos añadiendo el archivo actual detectado para accederse por la aplicación al grupo de archivos a explorar cuando el archivo actual necesita de exploración.
El método incluye, opcionalmente, la utilización de los accesos detectados que incluye la etapa de determinación del número de accesos detectados dentro del directorio común y la utilización de los resultados para activar la etapa de exploración del uno o más grupos. Preferentemente, la activación de la etapa de exploración se produce cuando el número de accesos detectados alcanza un umbral predeterminado. Opcionalmente, la utilización de los accesos detectados para identificar uno o más grupos de archivos incluye la etapa de adición del archivo actual detectado para accederse por la aplicación a un grupo de archivos cuando se activa la etapa de exploración. Opcionalmente, la determinación del número de accesos detectados incluye la etapa de restablecimiento del número de accesos detectados cuando haya transcurrido un primer período de tiempo y no se haya activado la etapa de exploración. Opcionalmente, el método incluye la etapa de finalización de la exploración del grupo o grupos cuando haya transcurrido un segundo período de tiempo después de que se haya activado la etapa de exploración.
El método incluye, opcionalmente, la etapa de utilización de los accesos detectados para identificar uno o más grupos de archivos que incluye la etapa de mantenimiento de una lista de tipos de archivo de los archivos detectados accedidos y la etapa de identificación de uno o más grupos de archivos que incluye la etapa de selección de los archivos en base a la lista de tipos de archivo. La selección de los archivos incluye además el emparejamiento de la lista de los tipos de archivo de los archivos accedidos por la aplicación con los tipos de archivo de los archivos dentro del directorio común.
Como una opción, la etapa de detección de accesos por la aplicación a los archivos dentro del directorio común incluye la recepción de una solicitud de exploración para explorar un archivo accedido por la aplicación dentro del directorio común. Opcionalmente, la etapa de detección de accesos por la aplicación a los archivos dentro del directorio común incluye la detección del acceso a los archivos por la aplicación y la generación de una solicitud de exploración para explorar el archivo cuando se necesita la exploración.
De acuerdo con un segundo aspecto de la presente invención, se proporciona un programa informático para explorar en busca de software malicioso durante la ejecución de una aplicación en un sistema informático, comprendiendo el programa informático medios de código de programa informático adaptados para realizar las siguientes etapas:
detectar accesos por la aplicación a archivos dentro de un directorio común;
usar los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente; e
instruir a un explorador de software malicioso para explorar dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos.
El programa informático puede comprender además medios de código de programa informático adaptados para realizar la exploración de dicho uno o más grupos de archivos en busca de software malicioso.
De acuerdo con un tercer aspecto de la presente invención, se proporciona un programa informático, como se describe anteriormente, incorporado en un medio legible por ordenador.
De acuerdo con un cuarto aspecto de la invención, se proporciona un sistema informático configurado para explorar archivos en busca de software malicioso durante la ejecución de una aplicación en un procesador, comprendiendo el sistema informático una unidad de detección para detectar accesos por la aplicación a archivos dentro de un directorio común, y usar los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente, e instruir a una unidad de exploración para explorar dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos. El sistema informático puede incluir además una unidad de exploración para realizar la exploración del uno o más grupos de archivos.
Breve descripción de los dibujos
La figura 1 es un diagrama que ilustra un proceso de la técnica anterior de realización de una exploración de software malicioso en tiempo real;
La figura 2 ilustra esquemáticamente un sistema informático de acuerdo con las realizaciones de la presente invención;
La figura 3 es un diagrama que ilustra un proceso de realización de una exploración de software malicioso en tiempo real de acuerdo con una realización de la presente invención;
La figura 4 es un diagrama de flujo que ilustra un proceso de acuerdo con una realización de la presente invención;
La figura 5 ilustra una tabla de acceso al directorio para su uso en la actualización y mantenimiento de directorios accedidos por aplicaciones de acuerdo con las realizaciones de la presente invención;
La figura 6 es un diagrama de flujo que ilustra un proceso de realización de una exploración de software malicioso en tiempo real para una aplicación que accede a archivos de acuerdo con una realización de la presente invención.
La figura 7 es un diagrama de flujo que ilustra un proceso de realización de una exploración de software malicioso en tiempo real para una aplicación que accede a archivos de acuerdo con otra realización de la presente invención.
Descripción detallada
Con el fin de superar, al menos parcialmente, los problemas descritos anteriormente, se propone en el presente documento mejorar el rendimiento de un sistema informático ejecutando por lotes o en paralelo la exploración de software malicioso en tiempo real de múltiples archivos antes de que una aplicación use uno de los múltiples archivos. Esto significa que la ejecución de la aplicación no está completamente bloqueada en posteriores accesos al archivo. Como se ha descrito anteriormente, la exploración por lotes o en paralelo es la programación simultánea de un grupo de archivos a explorar por un sistema informático. Por ejemplo, la programación simultánea de múltiples procesos de exploración, un proceso para cada archivo en el grupo, para su ejecución en el sistema informático.
Este tipo de exploración se logra detectando accesos por la aplicación a los archivos dentro de un directorio común, usando los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente, explorando dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos. Después de explorar un grupo de archivos, puede identificarse y/o explorarse un grupo posterior de archivos.
Ejecutando la exploración por lotes o en paralelo de un grupo de archivos que la aplicación puede usar, las posibilidades de que la aplicación se bloquee o se interrumpa continuamente por una exploración de software malicioso se reducen al mínimo. Esto se debe a que la aplicación puede acceder y usar los archivos explorados en el grupo, los cuales no necesitan ahora de exploración. De hecho, si se identifica el grupo correcto de archivos para cada exploración, solo habrá un retraso de un archivo explorado y por consiguiente la ejecución de la aplicación no debería bloquearse por ninguna exploración de software malicioso adicional cuando la aplicación acceda a los archivos explorados. Este tipo de exploración de software malicioso por lotes o en paralelo minimiza el retardo introducido por la exploración de software malicioso en tiempo real, optimizando de esta manera el rendimiento del sistema informático.
La figura 2 ilustra esquemáticamente un sistema 1 informático y un sistema 12 informático remoto de acuerdo con las realizaciones de la presente invención. El sistema 1 informático puede implementarse como una combinación de hardware y software. El sistema 1 informático comprende una memoria 2, una caché 3, un procesador 4 y un transceptor 5. La memoria 2 almacena todos los archivos que necesita el sistema 1 informático. Los archivos almacenados en la memoria 2 incluyen los diversos archivos de programas/ejecutables que se implementan por el procesador 4, así como de cualquier archivo 6 de datos. Los archivos de aplicaciones/programas/ejecutables almacenados en la memoria 2, e implementados por el procesador 4, incluyen una unidad 7 de detección y una unidad 8 de exploración de software malicioso, cada una de las cuales pueden ser sub-unidades de una unidad 9 anti-virus, que podría ejecutar software anti-virus a nivel local, así como el sistema 10 de archivos y cualquier otros programas/aplicaciones 11. Los archivos 6 de datos almacenados en la memoria 2 pueden incluir archivos de datos de aplicaciones, tablas de acceso al directorio tal como se definen en el presente documento, archivos de datos de definición de software malicioso, archivos que contienen reglas de análisis heurístico, listas blancas, listas negras, etc. La caché 3 proporciona una unidad de almacenamiento temporal para almacenar datos que han de explorarse mediante la unidad 8 de exploración de software malicioso. El transceptor 5 puede usarse para comunicarse a través de una Internet/LAN o red 13 con un sistema 12 informático remoto. El sistema 12 informático remoto puede proporcionar servicios de almacenamiento de datos y de aplicación al sistema 1 informático, por ejemplo, el sistema 12 informático remoto puede ser un servidor de aplicaciones que proporciona software como un servicio (SaaS) al usuario del sistema 1 informático.
El sistema 12 informático remoto se maneja normalmente por un proveedor de diversas aplicaciones que se ejecutan en el sistema 12 remoto y se usan de forma remota por el usuario del sistema 1 informático. El sistema 12 informático remoto puede implementarse como una combinación de hardware y software informáticos de la misma manera que el sistema 1 informático. El sistema 12 informático remoto comprende una memoria 14, un procesador 15, y un transceptor 16. Como en el sistema 1 informático, la memoria 14 puede almacenar los archivos que incluyen diversos archivos de aplicaciones/programas/ejecutables que se implementan por el procesador 15, así como de cualquier archivo 16 de datos. Los archivos de aplicaciones/programas/ejecutables almacenados en la memoria 14, e implementados por el procesador 15 incluyen también una unidad 18 de detección y una unidad 19 de exploración de software malicioso, cada una de las cuales pueden ser subunidades de una unidad 20 de anti-virus que ejecuta software anti-virus de forma local en el sistema 12 remoto. El transceptor 16 se usa para comunicarse con el sistema 1 informático través de la red 13.
En funcionamiento, el usuario del sistema 1 informático podría ejecutar aplicaciones de forma local, o podría ejecutar las aplicaciones en el sistema 12 informático remoto. La unidad 8 de exploración de software malicioso del sistema 1 informático puede usarse para explorar los archivos locales en busca de software malicioso en la memoria 2 accedida por las aplicaciones locales. La unidad 19 de exploración de software malicioso del sistema 12 remoto puede usarse para explorar los archivos en busca de software malicioso en la memoria 14 accedida por las aplicaciones del sistema 12 remoto. Los métodos de exploración de archivos en cualquiera de estos sistemas pueden basarse en aquellos de acuerdo con la presente invención. Debe apreciarse que las realizaciones de la invención como se describen en el presente documento pueden implementarse en sistemas informáticos independientes o en red a través de sistemas informáticos distribuidos donde los archivos y aplicaciones se almacenan y se ejecutan remotamente.
En particular, los sistemas 1 o 12 informáticos están configurados para explorar archivos en busca de software malicioso durante la ejecución de una aplicación o aplicaciones ejecutándose en cualquiera de los procesadores 4 o 15, respectivamente. Los sistemas 1 o 12 informáticos incluyen las unidades 7 o 18 de detección, respectivamente, para detectar accesos por la aplicación a archivos dentro de un directorio común, y la utilización de los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente, e instruir a las unidades 8 o 19 de exploración, respectivamente, para explorar dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos. Como se ilustra en los sistemas 1 o 12 informáticos ya incluyen las unidades 8 o 19 de exploración para explorar dichos uno o más grupos de archivos en respuesta a la instrucción de las unidades 7 o 18 de detección, respectivamente. Debe apreciarse que, aunque las unidades 8 o 19 de exploración se implementan dentro de las unidades 9 y 20 de anti-virus, respectivamente, las unidades 8 o 19 de exploración podrían implementarse también en otros sistemas/servidores informáticos de tal manera que las unidades 7 o 18 de detección envíen instrucciones a través de la red 13 para tener el uno o más grupos de archivos explorados.
Debe apreciarse que las realizaciones de la invención pueden usarse en un sistema informático en la nube o informático distribuido. Por ejemplo, una aplicación puede ejecutarse en el sistema 12 informático remoto y acceder a archivos desde un centro de datos remoto (no mostrado), donde la detección de accesos a archivos se realiza en el centro de datos, pero la exploración de software malicioso se realiza en el sistema 12 informático remoto. El sistema 12 informático remoto puede realizar una exploración “en la nube”, que es un ejemplo de proporcionar la capacidad para explorar en busca de software malicioso a través de una red o sistema informático distribuido. Para minimizar la sobrecarga implicada en la exploración de archivos a través de una red, es decir, minimizar el ancho de banda, la exploración puede limitarse a la verificación de los metadatos del archivo almacenados en el centro de datos remoto (servidor remoto o back-end). Los meta-datos podrían crearse para cada archivo desde una función hash (por ejemplo, sha1) calculada a partir de los datos del archivo o las partes específicas de los datos del archivo. Solo se cargan y se examinan los metadatos del sistema 12 informático remoto cuando detecta accesos generados por una aplicación del usuario a los archivos. El sistema 1 informático principal del usuario puede preguntar al sistema 12 informático remoto en relación con los datos del archivo explorado y recibir el estado en base a la exploración de verificación limitada (limpio, infectado y nombre del programa malicioso).
Las realizaciones de la invención permiten explorar en paralelo (por ejemplo, la exploración multi-proceso) en un sistema 1 informático o sistema 14 informático remoto para explorar solicitudes tal como solicitudes de exploración en tiempo real de archivos abiertos de solo lectura. Los métodos descritos en el presente documento se basan en analizar el comportamiento de una o más aplicaciones para encontrar dependencias cuando una aplicación genera el acceso secuencial de múltiples archivos en un directorio de trabajo actual de una aplicación
o un directorio común. El término directorio común se refiere a la misma localización lógica en la memoria (por ejemplo, unidad de disco) donde se almacenan uno o más archivos. El rendimiento se optimiza debido al hecho de que las aplicaciones están accediendo habitualmente a muchos archivos en la misma carpeta o directorio. Si el software anti-virus reconoce este tipo de patrón de comportamiento de la aplicación, puede realizar entonces una exploración anticipada en un grupo de archivos al que la aplicación podría querer acceder o usar posteriormente. A continuación, el software antivirus realiza una exploración en tiempo real en grupos de múltiples archivos en busca de software malicioso.
La figura 3 ilustra un proceso de realización de una exploración de software malicioso en tiempo real por lotes o en paralelo de acuerdo con una realización de la presente invención. Los múltiples archivos de grupos de software anti-virus dependen a la vez del comportamiento de las aplicaciones que acceden a los archivos y ejecutan la exploración anticipada en los grupos de múltiples archivos. Los resultados de las exploraciones se almacenan y si la aplicación accede el archivo explorado de forma anticipada recibe una respuesta de la memoria caché de que el archivo se ha explorado y puede procederse a usar el archivo.
En la práctica, la exploración normal de archivos se implementa en modo de usuario y el software anti-virus intercepta accesos a archivos de bajo nivel de acceso por la aplicación y envía una solicitud de exploración al modo de usuario. Esto es un funcionamiento costoso y necesita un cambio de contexto (del núcleo al modo de usuario y viceversa). Debe apreciarse que los métodos de exploración tal como se describen en el presente documento reducen las devoluciones de llamada desde la aplicación al software antivirus, lo que mejora considerablemente el rendimiento. Por ejemplo, el software anti-virus tiene un controlador de filtro de núcleo que intercepta las aplicaciones que intentan acceder o abrir archivos. El controlador de filtro de núcleo envía una solicitud al modo de usuario para realizar una tarea de exploración en el archivo al que una aplicación intenta acceder. El servicio de exploración que se ejecuta en modo de usuario realiza una exploración del software malicioso actual en el archivo y notifica los resultados y el estado de la exploración de nuevo al controlador de filtro de núcleo. En base a estos resultados, el controlador de filtro de núcleo permite o deniega a la aplicación el acceso al archivo.
En referencia a la figura 3, cuando la aplicación abre el archivo llamado archivo1, el software anti-virus intercepta la solicitud de la aplicación para abrir el archivo1. El software anti-virus, que ha determinado que es necesaria una exploración por lotes o en paralelo a partir del comportamiento de la aplicación, realiza una exploración por lotes o en paralelo en un grupo de archivos, que puede incluir el archivo solicitado (por ejemplo archivo1, archivo2 y archivo3). Una vez que se han explorado el archivo1, el archivo2 y el archivo3, se almacenan los resultados y la aplicación puede proceder a abrir y usar el archivo1 de forma normal. Como también se han explorado el archivo2 y el archivo3, cuando la aplicación abre estos archivos recibe una respuesta de la caché que permite a la aplicación abrir y usar inmediatamente el archivos2 y el archivo3 (dependiendo de la respuesta). En este ejemplo, la exploración por lotes o en paralelo del grupo de archivos permite que la aplicación se ejecute sin más interrupciones.
Aunque la exploración por lotes o en paralelo de un grupo de archivos puede mejorar básicamente el rendimiento general de la aplicación o aplicaciones que se ejecutan en un sistema informático, el rendimiento mejora considerablemente si el grupo de archivos explorados incluye solo los archivos necesarios para la aplicación(s). La exploración de archivos que no se usan por una aplicación puede influir en el rendimiento a menos que el archivo se use por otra aplicación. Por ejemplo, si el software anti-virus explora demasiados archivos anticipadamente, que no se accederán por ninguna aplicación, entonces solo reduce el rendimiento general ya que los recursos informáticos se están usando para explorar archivos innecesarios. Las siguientes realizaciones de la presente invención describen métodos para minimizar las exploraciones de archivos innecesarios, lo que maximiza el rendimiento de la aplicación o las aplicaciones y el sistema informático.
La figura 4 es un diagrama de flujo que ilustra aún más el proceso de exploración de búsqueda de software malicioso durante la ejecución de una o más aplicaciones en un sistema informático de acuerdo con una realización de la presente invención. Los procesos realizados por una unidad de exploración o el software antivirus para cada aplicación que accede a los archivos dentro de un directorio común se describen de la siguiente manera:
A1. Detectar accesos por la aplicación a archivos dentro de un directorio común.
A2. Usar los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente.
A3. Explorar dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos.
En cuanto a la etapa A1, detectar accesos por la aplicación a archivos dentro del directorio común puede incluir recibir una solicitud para explorar un archivo accedido por la aplicación (el archivo accedido actual) dentro del directorio común. Detectar el acceso al archivo por la aplicación puede incluir también interceptar el acceso al archivo realizado por la aplicación y generar la solicitud de exploración y el enviar la solicitud de exploración, cuando se necesita la exploración, al software anti-virus para explorar.
En cuanto a la etapa A2, usar los accesos detectados para identificar el uno o más grupos de archivos puede incluir la etapa de selección del grupo o grupos de archivos en base a los tipos de archivo de los archivos accedidos por la aplicación. Esto puede implicar seleccionar los archivos emparejados con los tipos de archivo de los archivos accedidos por la aplicación con los tipos de archivo de los archivos dentro del directorio común. Además, los archivos dentro del grupo o grupos de archivos pueden seleccionarse a partir de archivos dentro del directorio común que necesitan de exploración. El archivo actual detectado para accederse por la aplicación puede añadirse al grupo de archivos a explorar cuando el archivo actual necesita de exploración.
Con el fin de usar los accesos detectados y para activar la exploración del grupo o grupos de archivos, la etapa A2 puede incluir determinar el número de accesos detectados dentro del directorio común y usar los resultados para activar la etapa de exploración del uno o más grupos. La activación de la exploración puede ocurrir cuando el número de accesos detectados alcanza un umbral, N. Este umbral podría ser un umbral predeterminado, o un umbral dinámico determinado por el software anti-virus y su comportamiento observado de la una o más aplicaciones que acceden a los archivos dentro del directorio común. El archivo actual detectado para accederse por la una o más aplicaciones puede añadirse al grupo de archivos. Esto puede ocurrir antes o cuando se activa la etapa de exploración. El archivo actual accedido puede corresponderse con el archivo correspondiente a la solicitud de detección recibida. El archivo actual se añade a continuación al grupo de archivos para la exploración. El grupo de archivos se explora en base a la solicitud de exploración recibida por el anti-virus para el archivo actual. Con el fin de evitar exploraciones innecesarias cuando las aplicaciones acceden a un directorio con poca frecuencia, la etapa de detección del número de accesos puede incluir restablecer el número de accesos detectados cuando ha transcurrido un primer período de tiempo y la etapa de exploración no se ha activado.
Como se explica a continuación, usar los accesos detectados para identificar uno o más grupos de archivos puede incluir el mantenimiento de una lista de tipos de archivo de los archivos detectados accedidos y la etapa de identificación de uno o más grupos de archivos incluye la etapa de selección de archivos en base a la lista de tipos de archivo. Seleccionar los archivos incluye además emparejar la lista de tipos de archivo de los archivos accedidos por la aplicación con los tipos de archivo de los archivos dentro del directorio común. El software antivirus puede mantener una lista para cada directorio común que tenga los archivos accedidos con frecuencia por una o más aplicaciones.
En cuanto a la etapa A3, usar los accesos detectados para identificar uno o más grupos de archivos puede incluir el seguimiento del número de accesos detectados y de los resultados que activan la etapa A3. Activar la etapa A3 podría ocurrir cuando el número de accesos detectados alcanza un umbral predeterminado o un umbral de exploración. Identificar uno o más grupos de archivos para explorar puede incluir la selección de los archivos dentro del directorio común en base a los tipos de archivo que se han accedido o se están accediendo por la aplicación. Como alternativa, puede determinarse una selección de grupos a partir de una lista almacenada de los tipos o nombres de los archivos accedidos por diversas aplicaciones dentro del directorio común. Además, la etapa A3 puede incluir la finalización de la exploración después de que haya transcurrido un periodo de tiempo predeterminado, por ejemplo, si el directorio se ha accedido con frecuencia, pero no se ha accedido durante un período de tiempo que justifique la finalización de la exploración del directorio, entonces la exploración del uno o más grupos de archivos podría terminarse para evitar un procesamiento innecesario. Esto puede ocurrir cuando ha transcurrido un segundo período de tiempo después de que se ha activado la etapa de exploración.
El seguimiento del número de accesos detectados (o el recuento de visitas) al directorio común ayuda a determinar si las aplicaciones están accediendo de forma activa al directorio. Si el directorio tiene un suficientemente alto "recuento de visitas", debido a que se accede en un corto período de tiempo, entonces, para posteriores accesos a archivos en el directorio, el software anti-virus puede explorar simultáneamente un lote de archivos seleccionados de los tipos de archivos explorados frecuentemente o del tipo de archivo accedido y el archivo actual accedido. Como se menciona anteriormente, puede lograrse la exploración simultánea mediante la programación de múltiples procesos simultáneamente para explorar los archivos, es decir, una exploración por lotes o en paralelo. La exploración se activa una vez que el número de accesos detectado alcanza un umbral.
La exploración debe realizarse en un grupo de archivos si se detecta que el archivo actual al que está accediendo una aplicación es un archivo sin explorar. En este caso, se detecta o se intercepta el acceso a archivos mediante un controlador de filtro del núcleo, lo que genera una solicitud de exploración que se recibe por el software antivirus para explorar el archivo accedido actual. En lugar de explorar únicamente el archivo sin explorar, el anti-virus no solo explora el archivo sin explorar al que se ha accedido, sino que también carga un grupo o grupos de archivos para explorar. El software anti-virus ejecuta la exploración de la solicitud de exploración actual (la solicitud de exploración para el archivo accedido actual) y al mismo tiempo programa (o ejecuta) la exploración de varias "solicitudes de exploración combinadas" de archivos de una lista cargada. La lista cargada es una lista de archivos generados por el anti-virus que puede accederse desde el directorio, que puede incluir tipos de archivos accedidos frecuentemente. El antivirus carga una selección de archivos del directorio en base a la lista cargada.
Por ejemplo, si un directorio (o carpeta) tiene los archivos A, B, C, D, E, entonces, por el momento se han explorado los archivos A y B, puede considerarse que este directorio se ha accedido con frecuencia. Si se han puesto C, D y E en la lista de carga, entonces, cuando se activa la exploración por los accesos frecuentes, el anti-virus carga los archivos C, D, E (A, B se pasan por alto, porque ya se han explorado). Si se detecta que se accede el archivo C por la aplicación, a continuación, se recibirá una solicitud de exploración para el archivo C por el anti-virus para explorar, que explora el archivo C junto con los archivos de exploración D y E. Esto significa que cuando se accedan posteriormente los archivos D y E por una aplicación, entonces las solicitudes de exploración para estos archivos no se generarán por el controlador de filtro ya que estos archivos ya se han explorado.
El grupo o grupos de archivos son los archivos seleccionados desde el directorio al que la aplicación podría querer acceder posteriormente. La exploración del grupo o grupos "combina" la exploración del archivo de acceso actual, es decir, combina la solicitud de exploración del archivo actual. Esto evita las futuras solicitudes de exploración que se generan o se realizan de los archivos del grupo.
Incluso si no se acceden algunos de los archivos seleccionados para la exploración "combinada" por la aplicación, la pérdida de rendimiento en un único lote "combinado" es insignificante debido a la exploración por lotes o en paralelo. Cuando una aplicación realiza un procesamiento largo (por ejemplo, copiar una carpeta completa de datos), este tipo de exploración anticipada aumenta considerablemente el rendimiento general. El software anti-virus estima la pluralidad de archivos que se acceden en el directorio seleccionando los archivos más accedidos que comúnmente han accedido las aplicaciones en el directorio durante un determinado período de tiempo. Esto puede realizarse manteniendo una tabla de tiempo de ejecución de los accesos al directorio, que depende del comportamiento de las diversas aplicaciones que se están ejecutando.
La figura 5 es una tabla de acceso al directorio que ilustra la actualización y el mantenimiento de los accesos detectados por las aplicaciones a los archivos dentro de uno o más directorios de acuerdo con las realizaciones de la presente invención. La tabla de acceso al directorio puede implementarse como una tabla de consulta en tiempo de ejecución almacenada en la memoria. La tabla se mantiene por el software anti-virus para su uso en la determinación del número de veces que se acceden los archivos en un directorio.
El software anti-virus mantiene la tabla de acceso al directorio en tiempo de ejecución (o tabla de acceso al directorio), que sigue el acceso de los archivos dentro de los directorios por las aplicaciones. En esta realización, la tabla de acceso al directorio tiene los siguientes campos:
-
La ruta del directorio, que contiene el nombre o la localización lógica del directorio donde se tiene acceso a uno o más archivos;
-
La lista de extensiones de acceso, que contiene una lista de extensiones de archivo de los archivos que se han accedido y explorado en el directorio;
-
Recuento de visitas, que muestra el número de accesos a archivos en el directorio; y
-
El estado de la entrada, que define el ciclo de vida de la entrada del directorio
En esta realización, el campo de estado de la entrada tiene 3 estados lógicos señalado, recopilado y procesado. El estado señalado (es decir, un estado pre-exploración) indica que se ha tenido acceso al archivo en el directorio, pero que el recuento de visitas del directorio aún no es suficiente para justificar la exploración en paralelo o por lotes. Una vez que el recuento de visitas alcanza un umbral, el estado de la entrada del directorio se cambia al estado recopilado (es decir, un estado de exploración). El estado recopilado significa que el directorio se ha o se está accediendo activamente por una aplicación, que justifica la exploración en paralelo o por lotes. El software anti-virus precarga grupos de archivos que tienen las extensiones de archivo enumeradas en la lista de extensiones de acceso o extensiones de archivos del archivo actual al que se está accediendo para la exploración en paralelo o por lotes. El estado procesado significa que ya se ha realizado la exploración anticipada al directorio y los archivos deberían explorarse con normalidad.
Cada estado tiene un período de validez, después de que expire la entrada de directorio se elimina de la tabla de acceso, por ejemplo, si no se accede a ningún archivo en un directorio durante un período de tiempo, entonces se considera que la entrada ha caducado. El estado señalado tiene un corto periodo de validez y sirve simplemente para reconocer los directorios que pueden accederse con frecuencia. Los estados recopilado y procesado tienen largos periodos de validez debido a la frecuencia de accesos y para evitar re-exploraciones innecesarias de los archivos accedidos en el directorio. Debe apreciarse que estos períodos pueden variarse por el software antivirus en base a cualquier escala de tiempo.
Debe apreciarse que el campo de estado de la entrada se usa para excluir la recarga y la exploración de un directorio solo si se ha procesado recientemente, (por ejemplo, hace 10 minutos). Otras implementaciones de la tabla de acceso al directorio pueden excluir este campo y se basan en temporizadores u otros medios para evitar que un directorio se explore demasiado regularmente después de que se ha procesado.
La figura 6 es un diagrama de flujo que ilustra aún más el proceso de utilización de la tabla de la figura 5 en ejecución de la exploración de software malicioso en tiempo real en paralelo o por lotes de acuerdo con una realización de la presente invención. Las etapas se realizan por el software anti-virus de la siguiente manera:
B1. Para cada archivo interceptado para explorar en busca de software malicioso, por ejemplo, se genera una solicitud de exploración para un archivo abierto, se continúa en la etapa B2 para comprobar la tabla de acceso.
B2. Comprobar si el directorio del archivo se encuentra en la tabla de acceso, si el directorio no está en la tabla de acceso, entonces se continúa en la etapa B3 para crear una entrada de directorio, de lo contrario se continúa en la etapa B4.
B3. Crear una entrada en la tabla de acceso para el directorio del archivo, e inicializar el estado de entrada del directorio a señalado, el recuento de visitas = 0, la extensión de archivo del archivo se añade a la lista de extensiones de archivos (o a la lista de tipos de archivo explorados), continúa para realizar la exploración normal del software malicioso del archivo accedido.
B4. Comprobar si el estado de entrada del directorio se encuentra en estado señalado, si el estado de entrada es señalado, entonces se continúa en la etapa B5, de lo contrario se continúa en la etapa B8.
B5. Incrementar el recuento de visitas representando el número de accesos a archivos en el directorio por diversas aplicaciones y añadir la extensión de archivo del archivo a la lista de extensiones de acceso.
B6. Comprobar si el recuento de visitas (HC) alcanza un valor umbral N (por ejemplo HC > = N, donde N = 5). Si el recuento de visitas alcanza el valor umbral, entonces se continúa en la etapa B7, de lo contrario se realiza la exploración normal de software malicioso en el archivo accedido.
B7. El estado de entrada del directorio se cambia al estado recopilado y el proceso continúa en la etapa B8, en donde el software anti-virus carga un grupo de archivos incluyendo el archivo de acceso para la exploración en paralelo o por lotes del directorio.
B8. Comprobar si el estado de entrada del directorio se encuentra en el estado recopilado, si el estado de la entrada es recopilado, se continúa en la etapa B9, de lo contrario se continúa en la etapa B10.
B9. Realizar una exploración de software malicioso en paralelo (o por lotes) en un grupo o una selección de archivos no explorados incluyendo el archivo actual en el directorio.
Las siguientes reglas pueden utilizarse para seleccionar un grupo de archivos para la exploración en paralelo o por lotes:
-
Seleccionar archivos con tipos de extensiones o de archivos que coincidan con el archivo accedido actualmente;
-
Seleccionar archivos con tipos de extensiones o de archivos que figuren en la lista de extensiones de acceso.
B10. Comprobar si existen más grupos de archivos en el directorio. Los archivos pueden seleccionarse de la lista cargada. Si existen más grupos de archivos el método continúa en la etapa B11, de lo contrario el procedimiento continúa en la etapa B12.
B11. Se selecciona otro grupo de archivos no explorados de la lista cargada, y se realiza una exploración de software malicioso en paralelo o por lotes, el método continúa en la etapa B10. Aunque el software antivirus tiene la intención de evitar el bloqueo de la ejecución de una aplicación, esto puede lograrse si el soporte multi-núcleo es capaz de realizar multi-tarea entre la aplicación y el software antivirus. Es decir, la exploración en paralelo o por lotes de los archivos sin explorar adicionales de la lista podría realizarse en segundo plano de manera que la aplicación pueda continuar.
B12. Como no hay más archivos cargados o archivos no explorados que tengan las extensiones de archivo enumeradas en la lista de extensiones de acceso existentes en el directorio, entonces se cambia el estado de la entrada del directorio al estado procesado. Si un directorio se encuentra en el estado procesado el proceso realiza una exploración normal de software malicioso del archivo si es necesario.
Los resultados de la exploración del software malicioso se añaden a la caché de exploración y se comunican a la aplicación cuando accede a un archivo explorado en el directorio, lo que permite a la aplicación usar inmediatamente el archivo accedido.
La figura 7 es un diagrama de flujo alternativo que ilustra la exploración de software malicioso en tiempo real por lotes o en paralelo de acuerdo con una realización de la presente invención. Las etapas B1 a B12 del método que se realiza por el software antivirus son similares a las de la figura 6, aparte de las etapas B10 y B11 (la B11 se ha eliminado). La etapa B10 se describe como sigue:
B10. Comprobar si existen más grupos de archivos en el directorio. Los archivos pueden seleccionarse de la lista cargada. Si existen más grupos de archivos el método continúa explorando software malicioso normalmente hasta que se accede a un archivo adicional por la aplicación que necesita de exploración, entonces el método comienza de nuevo en la etapa B1.
La razón para no proceder a realizar una exploración en paralelo adicional de otros grupos de archivos es que la aplicación sólo necesita acceder a un número limitado de archivos en el directorio, este proceso evita al software anti-virus de una realización de una exploración en paralelo o por lotes en segundo plano de todos los archivos enumerados en la lista de extensiones de acceso hasta que sea absolutamente necesario, cuando se accede a otro archivo mediante una aplicación. Esto también minimiza el número de interrupciones de exploración de software malicioso durante la ejecución de una aplicación.
El siguiente ejemplo ilustra cómo el método mencionado anteriormente puede funcionar cuando se copia una pluralidad de archivos de un directorio común. Se realizan los siguientes supuestos:
a) el directorio común tiene un grupo de archivos *.exe y *.dll;
b) la tabla de acceso se mantiene mediante el programa antivirus;
c) la tabla de acceso ya tiene una entrada de directorio relacionada con el directorio común;
d) se mantiene un recuento de visitas que representa el número de accesos y una lista de extensiones de archivos accedidos en el directorio común.
El flujo lógico es el siguiente:
1.
Primero, se exploran normalmente algunos archivos "exe" accedidos hasta que el directorio recopila un número suficiente de visitas, es decir, el recuento de visitas alcanza un umbral;
2.
Tan pronto como el recuento de visitas alcanza un umbral, el software anti-virus carga los archivos del directorio
3.
Cada siguiente solicitud de exploración del archivo "exe" en el directorio activa una exploración "combinada" de otros archivos "exe" (un grupo de archivos) del directorio;
4.
Después de que se termina la copia, la entrada de directorio expira después de un período de tiempo.
Con más detalle, cuando se realiza la operación de copia, copy <from common directory> *.exe <to other directory>, la orden de copia (aplicación) accederá a los archivos "exe" de forma secuencial para leer y copiar los datos dentro del otro directorio. Cuando se accede al primer archivo "exe" en el directorio común, se generará una solicitud de exploración para el software anti-virus. Si el directorio común no tiene una entrada de directorio en la tabla de acceso, el software anti-virus creará e inicializará una entrada de directorio para el directorio común, el recuento de visitas de la entrada de directorio representa que se ha inicializado el número de accesos a archivos y el tipo de archivo, en este caso, se añade "exe" a una lista de extensiones relacionadas con la entrada del directorio. De lo contrario, el recuento de visitas de la entrada de directorio se incrementa y el tipo de archivo "exe" se añade a la lista de extensiones, si no está ya en la lista de extensiones.
El primer archivo "exe" accedido se explora, a continuación, normalmente en busca de software malicioso y se usa por la orden de copia. Se accede a los archivos "exe" posteriores, se realiza y se exploran normalmente las solicitudes de exploración mediante el software anti-virus y se incrementa el recuento de visitas para la entrada del directorio común en cada acceso hasta que la entrada del directorio relacionada con el directorio común recopila un número suficiente de accesos. Tan pronto como el recuento de visitas alcanza un umbral, el software anti-virus empieza a cargar o determinar uno o más grupos de archivos "exe" no explorados en el directorio común. Cada siguiente solicitud de exploración de un archivo "exe" no explorado activa al antivirus para realizar una exploración en paralelo (es decir, una exploración simultánea básicamente) del archivo "exe" no explorado y uno de los grupos de archivos no explorados del directorio común. La exploración continúa hasta que se han procesado los archivos "exe" relevantes en el directorio común o finaliza la orden de copia. Después de que finalice la orden de copia, la entrada de directorio en la tabla de acceso expira dentro de un plazo de tiempo predeterminado y se elimina de la tabla de acceso a la expiración.
Los sistemas informáticos tal como se describen en el presente documento pueden cada uno realizar una exploración en paralelo o por lotes de un grupo de archivos seleccionados que forman una pluralidad de archivos accedidos desde un directorio común en busca de software malicioso. Los procesadores de este tipo de sistemas están configurados para ejecutar instrucciones de programa informático en base a los métodos descritos en el presente documento, estando tales instrucciones contenidas en un medio legible por ordenador, tal como una memoria. Las instrucciones de programa informático podrían leerse a la memoria desde otro medio legible por ordenador o desde otro dispositivo a través de una interfaz de comunicaciones. Las instrucciones contenidas en la memoria provocan que el procesador de un sistema informático realice los procedimientos o métodos como se han descrito en el presente documento. Sin embargo, como alternativa, podría usarse circuitería cableada en lugar de o en combinación con las instrucciones de programa informático para implementar procesos consistentes con la presente invención. Por lo tanto, la presente invención no está limitada a ninguna combinación específica de circuitería de hardware y/o software.
En particular, un programa informático que incluye medios de código de programa informático adaptados para realizar las etapas de detectar accesos por la aplicación a archivos dentro de un directorio común, usar los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente, e instruir la exploración de dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos. El programa informático puede incluir además medios de código de programa informático adaptados adicionales para realizar la exploración de dicho uno o más grupos de archivos. El programa informático puede realizarse en un medio legible por ordenador.
Además, los métodos descritos anteriormente pueden explotar las capacidades de multi-procesador y multitarea, multi-proceso e híper-procesamiento de los sistemas informáticos modernos (como se describe en el presente documento, así como en la Intel® Hyper-Threading Technology, Guía del usuario técnico, de enero de 2003) para mejorar aún más el rendimiento de un sistema informático en la implementación de la exploración de software malicioso en tiempo real de archivos abiertos de sólo lectura, permitiendo la exploración de uno o más grupos de archivos en paralelo.
Se apreciará por un experto en la materia que pueden hacerse diversas modificaciones a las realizaciones descritas anteriormente sin apartarse del alcance de la presente invención.

Claims (22)

  1. REIVINDICACIONES
    1. Un método de exploración de búsqueda de software malicioso durante la ejecución de una aplicación en un sistema informático, comprendiendo el método:
    detectar accesos por la aplicación a archivos dentro de un directorio común;
    usar los accesos detectados para identificar uno o más grupos de archivos dentro del directorio común al que la aplicación podría querer acceder posteriormente; y
    explorar el uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos.
  2. 2.
    Un método de acuerdo con la reivindicación 1, donde la etapa de utilización de los accesos detectados para identificar el uno o más grupos de archivos incluye la etapa de selección del grupo o grupos de archivos en base a los tipos de archivo de los archivos accedidos por la aplicación.
  3. 3.
    Un método de acuerdo con la reivindicación 2, donde la etapa de selección de los archivos incluye además el emparejamiento de los tipos de archivo de los archivos accedidos por la aplicación con los tipos de archivo de los archivos dentro del directorio común.
  4. 4.
    Un método de acuerdo con cualquiera de las reivindicaciones 1 a 3, donde los archivos dentro del grupo o grupos de archivos son los archivos que necesitan de exploración.
  5. 5.
    Un método de acuerdo con cualquiera de las reivindicaciones 1 a 4, donde la etapa de identificación de uno o más grupos de archivos incluye la etapa de adición del archivo actual detectado para accederse por la aplicación al grupo de archivos a explorar cuando el archivo actual necesita de exploración.
  6. 6.
    Un método de acuerdo con cualquiera de las reivindicaciones 1 a 5, donde la etapa de utilización de los accesos detectados incluye la etapa de determinación del número de accesos detectados dentro del directorio común y la utilización de los resultados para activar la etapa de exploración del uno o más grupos.
  7. 7.
    Un método de acuerdo con la reivindicación 6, donde la etapa de activación de la etapa de exploración se produce cuando el número de accesos detectados alcanza un umbral predeterminado.
  8. 8.
    Un método de acuerdo con las reivindicaciones 6 o 7, donde la utilización de los accesos detectados para identificar uno o más grupos de archivos incluye la etapa de adición del archivo actual detectado para accederse por la aplicación a un grupo de archivos cuando se activa la etapa de exploración.
  9. 9.
    Un método de acuerdo con cualquiera de las reivindicaciones 6 a 8, donde la determinación del número de accesos detectados incluye la etapa de restablecimiento del número de accesos detectados cuando haya transcurrido un primer período de tiempo y no se haya activado la etapa de exploración.
  10. 10.
    Un método de acuerdo con cualquiera de las reivindicaciones 6 a 9, donde la etapa de exploración del uno o más grupos de archivos incluye la etapa de finalización de la exploración del grupo o grupos cuando haya transcurrido un segundo período de tiempo después de que se haya activado la etapa de exploración.
  11. 11.
    Un método de acuerdo con cualquiera de las reivindicaciones 1 a 10, donde la etapa de utilización de los accesos detectados para identificar uno o más grupos de archivos incluye la etapa de mantenimiento de una lista de tipos de archivo de los archivos detectados accedidos y la etapa de identificación de uno o más grupos de archivos incluye la etapa de selección de los archivos en base a la lista de tipos de archivo.
  12. 12.
    Un método de acuerdo con la reivindicación 11, donde la etapa de selección de los archivos incluye además el emparejamiento de la lista de los tipos de archivo de los archivos accedidos por la aplicación con los tipos de archivo de los archivos dentro del directorio común.
  13. 13.
    Un método de acuerdo con las reivindicaciones 11 o 12, donde los archivos dentro del grupo o grupos de archivos son archivos dentro del directorio común que necesitan de exploración.
  14. 14.
    Un método de acuerdo con cualquiera de las reivindicaciones 11 a 13, donde la etapa de identificación de uno o más grupos de archivos incluye la etapa de adición del archivo actual detectado para accederse por la aplicación al grupo de archivos a explorar.
  15. 15.
    Un método de acuerdo con cualquiera de las reivindicaciones 1 a 14, donde la etapa de detección de accesos por la aplicación a los archivos dentro del directorio común incluye la recepción de una solicitud de exploración para explorar un archivo accedido por la aplicación dentro del directorio común.
  16. 16.
    Un método de acuerdo con la reivindicación 15, donde la etapa de identificación de uno o más grupos de archivos incluye la etapa de adición del archivo correspondiente a la solicitud de exploración al grupo de archivos
    a explorar.
  17. 17.
    Un programa informático para explorar en busca de software malicioso durante la ejecución de una aplicación en un sistema informático que comprende medios de código de programa informático adaptados para realizar las siguientes etapas:
    detectar accesos por la aplicación a archivos dentro de un directorio común;
    usar los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente; e
    instruir la exploración de dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos.
  18. 18.
    Un programa informático de acuerdo con la reivindicación 17, que comprende además medios de código de programa informático adaptados para realizar la exploración de dicho uno o más grupos de archivos en busca de software malicioso en respuesta a la etapa de instrucción.
  19. 19.
    Un programa informático de acuerdo con las reivindicaciones 17 o 18 incorporado en un medio legible por ordenador.
  20. 20.
    Un sistema informático configurado para explorar archivos en busca de software malicioso durante la ejecución de una aplicación en un procesador, comprendiendo el sistema informático:
    una unidad de detección para detectar accesos por la aplicación a archivos dentro de un directorio común, y usar los accesos detectados para identificar uno o más grupos de archivos dentro de dicho directorio común al que la aplicación podría querer acceder posteriormente, e instruir a una unidad de exploración para explorar dicho uno o más grupos de archivos en busca de software malicioso antes de que la aplicación intente acceder a los archivos del grupo o grupos.
  21. 21.
    Un sistema informático de acuerdo con la reivindicación 20, que comprende además una unidad de exploración para explorar dicho uno o más grupos de archivos en respuesta a la instrucción de la unidad de detección.
  22. 22.
    Un producto de programa informático que comprende un código de instrucción, que cuando se ejecuta en un procesador, realiza el método de acuerdo con cualquiera de las reivindicaciones 1 a 16.
ES201390092A 2011-05-16 2012-03-29 Anticipar la exploración de software malicioso Active ES2463265B1 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/068,610 US8726388B2 (en) 2011-05-16 2011-05-16 Look ahead malware scanning
US13/068610 2011-05-16
PCT/EP2012/055733 WO2012156143A1 (en) 2011-05-16 2012-03-29 Look ahead malware scanning

Publications (3)

Publication Number Publication Date
ES2463265A2 true ES2463265A2 (es) 2014-05-27
ES2463265R1 ES2463265R1 (es) 2014-09-04
ES2463265B1 ES2463265B1 (es) 2015-06-02

Family

ID=45937341

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201390092A Active ES2463265B1 (es) 2011-05-16 2012-03-29 Anticipar la exploración de software malicioso

Country Status (7)

Country Link
US (1) US8726388B2 (es)
BR (1) BR112013029404A2 (es)
DE (1) DE112012002106B4 (es)
ES (1) ES2463265B1 (es)
RO (1) RO130379B1 (es)
RU (1) RU2621608C2 (es)
WO (1) WO2012156143A1 (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9679137B2 (en) * 2006-09-27 2017-06-13 Hewlett-Packard Development Company, L.P. Anti-viral scanning in Network Attached Storage
US8127358B1 (en) * 2007-05-30 2012-02-28 Trend Micro Incorporated Thin client for computer security applications
WO2013141545A1 (ko) * 2012-03-21 2013-09-26 삼성에스디에스 주식회사 안티-멀웨어 시스템 및 상기 시스템에서의 데이터 처리 방법
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US11126720B2 (en) 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
CN103780589A (zh) * 2012-10-24 2014-05-07 腾讯科技(深圳)有限公司 病毒提示方法、客户端设备和服务器
GB2517483B (en) * 2013-08-22 2015-07-22 F Secure Corp Detecting file encrypting malware
US9323929B2 (en) * 2013-11-26 2016-04-26 Qualcomm Incorporated Pre-identifying probable malicious rootkit behavior using behavioral contracts
CN103810428B (zh) * 2014-02-24 2017-05-24 珠海市君天电子科技有限公司 一种宏病毒检测方法及装置
US9710648B2 (en) * 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
CN104199894A (zh) * 2014-08-25 2014-12-10 百度在线网络技术(北京)有限公司 一种文件扫描方法及装置
JP6916112B2 (ja) 2014-11-21 2021-08-11 ブルヴェクター, インコーポレーテッドBluvector, Inc. ネットワークデータ特性評価のシステムと方法
US11023449B2 (en) * 2014-12-19 2021-06-01 EMC IP Holding Company LLC Method and system to search logs that contain a massive number of entries
US9715589B2 (en) 2015-01-23 2017-07-25 Red Hat, Inc. Operating system consistency and malware protection
US10032023B1 (en) * 2016-03-25 2018-07-24 Symantec Corporation Systems and methods for selectively applying malware signatures
US10200395B1 (en) * 2016-03-30 2019-02-05 Symantec Corporation Systems and methods for automated whitelisting of files
US10248787B1 (en) * 2016-12-20 2019-04-02 Symantec Corporation Systems and methods for determining reputations of files
US10511631B2 (en) 2017-01-25 2019-12-17 Microsoft Technology Licensing, Llc Safe data access through any data channel
EP3376424B1 (en) * 2017-03-14 2021-05-05 VirusTotal SLU Scanning files using antivirus software
CN109361643B (zh) * 2018-06-22 2021-05-25 中国移动通信集团广东有限公司 一种恶意样本的深度溯源方法
RU2726878C1 (ru) * 2019-04-15 2020-07-16 Акционерное общество "Лаборатория Касперского" Способ ускорения полной антивирусной проверки файлов на мобильном устройстве
US11288391B2 (en) 2019-09-13 2022-03-29 EMC IP Holding Company LLC Filename-based malware pre-scanning
US11210395B2 (en) * 2019-09-13 2021-12-28 EMC IP Holding Company LLC Filename-based malware pre-scanning
CN113468119A (zh) * 2021-05-31 2021-10-01 北京明朝万达科技股份有限公司 一种文件扫描方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968461B1 (en) * 2000-10-03 2005-11-22 Networks Associates Technology, Inc. Providing break points in a malware scanning operation
US7424706B2 (en) * 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files
US7681237B1 (en) 2004-05-13 2010-03-16 Symantec Corporation Semi-synchronous scanning of modified files in real time
GB0418066D0 (en) * 2004-08-13 2004-09-15 Ibm A prioritization system
US8037527B2 (en) * 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
US8572738B2 (en) 2006-12-07 2013-10-29 International Business Machines Corporation On demand virus scan
US8254858B2 (en) * 2007-12-21 2012-08-28 Hewlett-Packard Development Company, L.P. Techniques to manage power based on motion detection
GB2469322B (en) * 2009-04-09 2014-04-16 F Secure Oyj Malware determination
US8745743B2 (en) 2009-06-09 2014-06-03 F-Secure Oyj Anti-virus trusted files database
US8468602B2 (en) * 2010-03-08 2013-06-18 Raytheon Company System and method for host-level malware detection

Also Published As

Publication number Publication date
US20120297486A1 (en) 2012-11-22
RO130379A2 (ro) 2015-06-30
RU2013154735A (ru) 2015-06-27
RO130379B1 (ro) 2020-05-29
DE112012002106T5 (de) 2014-02-13
ES2463265R1 (es) 2014-09-04
WO2012156143A1 (en) 2012-11-22
ES2463265B1 (es) 2015-06-02
RU2621608C2 (ru) 2017-06-06
DE112012002106B4 (de) 2023-06-15
US8726388B2 (en) 2014-05-13
BR112013029404A2 (pt) 2017-01-31

Similar Documents

Publication Publication Date Title
ES2463265A2 (es) Anticipar la exploración de software malicioso
US11693962B2 (en) Malware clustering based on function call graph similarity
Kovah et al. New results for timing-based attestation
JP5976020B2 (ja) アンチマルウェアメタデータのルックアップを行うためのシステム及び方法
US9135443B2 (en) Identifying malicious threads
US9237171B2 (en) System and method for indirect interface monitoring and plumb-lining
US9811663B2 (en) Generic unpacking of applications for malware detection
US20180089430A1 (en) Computer security profiling
US11363058B2 (en) Detecting execution of modified executable code
EP2933747B1 (en) System and methods of distributing antivirus checking tasks among virtual machines in a virtual network
US11586735B2 (en) Malware clustering based on analysis of execution-behavior reports
US9900324B1 (en) System to discover and analyze evasive malware
EP3543883A1 (en) Detecting malware concealed by delay loops of software programs
Pike et al. Trackos: A security-aware real-time operating system
KR101563059B1 (ko) 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법
KR100660480B1 (ko) 병렬처리 시스템용 안티 바이러스 시스템
Pungila et al. Towards Building Efficient Malware Detection Engines Using Hybrid CPU/GPU-Accelerated Approaches

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2463265

Country of ref document: ES

Kind code of ref document: B1

Effective date: 20150602

PC2A Transfer of patent

Owner name: WITHSECURE CORPORATION

Effective date: 20220908