Anticipar la exploración de software malicioso.

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.

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2012/055733.

Solicitante: F-Secure Corporation.

Nacionalidad solicitante: Finlandia.

Dirección: TAMMASAARENKATU 7, PL24 FI -00181 HELSINKI FINLANDIA.

Inventor/es: TURBIN,Pavel.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > G06F21/00 (Disposiciones de seguridad para la protección de computadores sus componentes, programas o datos contra actividades no autorizadas)
google+ twitter facebookPin it
Anticipar la exploración de software malicioso.

Fragmento de la descripción:

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 sourceV.* 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:\ sourceV. ) read file data cióse 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 21, 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...

 


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. 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. 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. 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. 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. 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. 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. 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. 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.

1. 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. Un método de acuerdo con cualquiera de las reivindicaciones 1 a 1, 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. 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. 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. 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. 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. 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. 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. 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. Un programa informático de acuerdo con las reivindicaciones 17 o 18 incorporado en un medio legible por ordenador.

2. 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. Un sistema informático de acuerdo con la reivindicación 2, 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. 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.