Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR DETECTING MALICIOUS PROGRAMS INTEGRATED INTO AN ELECTRONIC DOCUMENT
Document Type and Number:
WIPO Patent Application WO/2018/115534
Kind Code:
A1
Abstract:
The present invention relates to the detection of malicious programs in electronic documents and comprises: detecting an executable code in the electronic document provided to a client module; extracting a piece of information from the electronic document comprising the executable code, and metadata of the electronic document; creating a binary vector associated with the electronic document; comparing, in a classifier module (200), the binary vector with one or more groups of previously classified vectors stored in a database (400); classifying the vector into one of the groups, each group being associated with a verdict on the presence of malicious programs; and determining whether the document contains a malicious program, according to the verdict associated with the group in which the associated vector thereof has been classified.

Inventors:
DE LOS SANTOS VILCHEZ SERGIO (ES)
PÉREZ GARCÍA PEDRO (ES)
TORRES VELASCO JOSÉ (ES)
Application Number:
PCT/ES2016/070908
Publication Date:
June 28, 2018
Filing Date:
December 19, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TELEFONICA DIGITAL ESPANA SLU (ES)
International Classes:
G06F21/56
Foreign References:
US20160335432A12016-11-17
US20100192222A12010-07-29
US6697950B12004-02-24
US7493658B22009-02-17
Other References:
NISSIM NIR ET AL.: "Detection of malicious PDF files and directions for enhancements: A state-of-the art survey", COMPUTERS & SECURITY, vol. 48, 3 November 2014 (2014-11-03), AMSTERDAM, NL, pages 246 - 266, XP029110101, ISSN: 0167-4048
"Cluster analysis", WIKIPEDIA, 13 November 2016 (2016-11-13), XP055454723, Retrieved from the Internet [retrieved on 20170804]
PESCE L., ET AL.: "document metadata, the silent killer...", SANS INSTITUTE INFOSEC READING ROOM, 27 March 2008 (2008-03-27), XP055511818, [retrieved on 20170804]
"Servidor de aplicaciones", WIKIPEDIA, 20 September 2015 (2015-09-20), XP055512524, Retrieved from the Internet [retrieved on 20150804]
See also references of EP 3557466A4
Attorney, Agent or Firm:
CARPINTERO LOPEZ, Mario (ES)
Download PDF:
Claims:
REIVINDICACIONES

1. - Método para detectar un programa malicioso en un documento electrónico, el método comprende:

a) detectar un código ejecutable en el documento electrónico proporcionado a un módulo cliente (100);

b) extraer, en el módulo cliente, una información del documento electrónico que comprende el código ejecutable y unos metadatos del documento electrónico;

c) crear, en el módulo cliente, un vector binario, asociado al documento electrónico, basado en unas ciertas características obtenidas de la información extraída;

d) comparar, en un módulo clasificador (200), el vector binario con uno o más grupos de vectores clasificados previamente y almacenados en una base de datos (400);

e) como resultado de la comparación, clasificar el vector binario en uno de los grupos de vectores clasificados previamente, donde cada grupo de vectores tiene asociado un veredicto, en la base de datos, sobre la presencia de programas maliciosos;

f) determinar, en la base de datos, que el documento electrónico contiene un programa malicioso en función del veredicto asociado al grupo en el que se ha clasificado su vector binario asociado.

2. - Método de acuerdo a la reivindicación anterior donde los pasos a)-c) se ejecutan localmente en un equipo de usuario y los pasos d)-f) son ejecutados en un servidor remoto.

3. - Método de acuerdo a cualquiera de las reivindicaciones anteriores que además comprende almacenar en la base de datos el código ejecutable, un código resumen del documento electrónico, un código en bruto asociado al documento electrónico y el vector binario.

4.- Método de acuerdo a cualquiera de las reivindicaciones anteriores donde comparar el vector binario con uno o más grupos de vectores clasificados previamente comprende calcular una distancia entre el vector binario y cada uno de los grupos de vectores clasificados previamente.

5. - Método de acuerdo a la reivindicación 4 donde clasificar el vector binario en uno de los grupos de vectores clasificados previamente, comprende clasificar el vector binario en uno de los grupos de acuerdo a una distancia máxima de grupo.

6. - Método de acuerdo a cualquiera de las reivindicaciones anteriores donde clasificar el vector binario en uno de los grupos de vectores clasificados previamente, además comprende actualizar el veredicto asignado al grupo correspondiente.

7. - Método de acuerdo a cualquiera de las reivindicaciones anteriores donde los metadatos extraídos del documento electrónico comprenden al menos una fecha de creación del documento electrónico y/o una fecha de modificación del documento electrónico.

8. - Método de acuerdo a cualquiera de las reivindicaciones anteriores donde el veredicto sobre la presencia de programas maliciosos asignado a cada uno de los grupos de vectores comprende detectar en el código ejecutable un cierto número y tamaño de macros o scripts integrados en el documento electrónico, detectar código ofuscado, detectar desfases entre la fecha creación del documento electrónico y la fecha de creación del código ejecutable y/o detectar la presencia de ciertas palabras reservadas relacionadas con uno o varios de los siguientes acciones: ejecución de archivos, eventos, gestión de archivos, descarga de archivos y llamadas a librerías.

9. - Método de acuerdo a cualquier de las reivindicaciones anteriores donde el veredicto sobre la presencia de programas maliciosos asignado a cada uno de los grupos de vectores comprende un análisis manual de la base de datos por un analista.

10. - Método de acuerdo a cualquiera de las reivindicaciones anteriores donde el documento electrónico está programado, al menos en parte, con un lenguaje de script a seleccionar entre Visual Basic for Applications y JavaScript.

11. - Sistema para detectar un programa malicioso en un documento electrónico, el sistema comprende:

- un módulo cliente (100) configurado para recibir el documento electrónico; detectar un código ejecutable en el documento electrónico; extraer una cierta información que comprende el código ejecutable y unos metadatos del documento electrónico; crear un vector binario, asociado al documento electrónico, basado en unas ciertas características obtenidas de la información extraída; - un módulo clasificador (200) configurado para comparar el vector binario con uno o más grupos de vectores clasificados previamente; como resultado de la comparación, clasificar el vector en uno de los grupos de vectores clasificados previamente; y

- una base datos (400) configurada para asociar un veredicto a cada grupo de vectores sobre la presencia de programas maliciosos; y determinar que el documento electrónico contiene un programa malicioso en función del veredicto asociado al grupo en el que se ha clasificado su vector asociado.

12. - Sistema de acuerdo a la reivindicación 10 que además comprende una interfaz de programación de aplicación configurada para interconectar el módulo cliente con el módulo clasificador y la base de datos.

13. - Sistema de acuerdo a cualquiera de las reivindicaciones 11-12 que además comprende un servidor, donde al menos la base de datos y el módulo clasificador se encuentran alojados en dicho servidor.

14. - Sistema de acuerdo a cualquiera de las reivindicaciones 11-13 donde el módulo cliente está configurado para funcionar localmente en un equipo de usuario.

15. Programa informático caracterizado por que comprende medios de código de programa adaptados para realizar las etapas del método según cualquiera de las reivindicaciones 1 a 10, cuando dicho programa se ejecuta en un procesador de propósito general, un procesador de señal digital, una FPGA, un ASIC, un microprocesador, un microcontrolador, o cualquier otra forma de hardware programable.

Description:
MÉTODO Y SISTEMA PARA DETECTAR PROGRAMAS MALICIOSOS INTEGRADOS EN UN DOCUMENTO ELECTRÓNICO

DESCRIPCIÓN

Campo técnico de la invención

La presente invención tiene aplicación en el sector técnico la seguridad informática y más concretamente se refiere a la detección de programas maliciosos integrados en documentos electrónicos, como por ejemplo hojas de Excel o documentos pdf.

Antecedentes de la invención

Los lenguajes de script integrados en documentos se comenzaron a utilizar para agregar funcionalidades adicionales a estos documentos y proporcionarles así propiedades dinámicas que permiten, por ejemplo, realizar acciones en un conjunto de celdas en un documento de Excel, permitir que un archivo PDF sea editable o incrustar objetos multimedia en archivos de Word.

Actualmente, estas funcionalidades se han convertido en un objetivo de ataque utilizado por los creadores de código malicioso ("malware" en inglés) para ejecutar sus creaciones en los sistemas. Así, los atacantes programan documentos y archivos con lenguajes dinámicos integrados que extienden su funcionalidad para la ejecución de acciones maliciosas en el sistema, como descargar y ejecutar ciertos contenidos o enviar correo basura a contactos almacenados en el cliente de correo.

Los lenguajes más utilizados son Visual Basic para Aplicaciones (VBA) y Javascript. VBA es el idioma con el que se crean macros en Office. Dependiendo de la versión Office utilizada, pueden encontrarse diferentes formatos y extensiones. Hasta ahora, los archivos con extensión .doc creados con Office antes de 2007 (y por lo tanto normalmente objetos OLE en sí mismos) podrían contener macros o no, sin que el usuario pudiera notar ninguna diferencia en su nombre o extensión. Desde Office 2007, hay un tipo específico de archivo con la extensión .DOCM, lo que implica que un documento contiene macros y cuyo icono incluye una señal de advertencia. Sin embargo, los conjuntos de Office actuales son totalmente compatibles con el formato .doc, por lo que todavía es utilizado por los atacantes. También utilizan formatos (en menor medida) .docm, confiando en que el usuario no detectará el peligro que representa la extensión. JavaScript, desarrollado para crear páginas web interactivas de una manera sencilla, puede ser integrado en los documentos PDF para dotarlos de funcionalidades extra como por ejemplo permitir que sean interactivos. El uso más común de JavaScript en este tipo de documentos es en la incorporación de formularios al documento, lo que se traduce a su vez en dar formato a datos, calcular datos, validarlos y asignar acciones a determinados eventos. El código JavaScript, al contrario que los plugins puede ser embebido directamente en el documento PDF y distribuido directamente con él. Históricamente, JavaScript ha sido utilizado por atacantes para lanzar atacar vulnerabilidades en lectores de PDF que son aprovechadas a través de documentos en este formato.

El estado del arte de la industria antivirus, comprende algunas soluciones de aparatos, sistemas o flujos de control que permiten analizar y detectar el malware en documentos y más concretamente en macros. Entre las más destacables resulta la US6697950B1 , donde se describe cómo se extrae la macro de un documento, se analizan el flujo y las operaciones del código comparándolos con una base de datos previamente categorizada y se emite un veredicto. Este análisis del código, además de no contemplar ninguna medida para preservar la privacidad del usuario, es bastante básico y toda su carga computacional se limita a una simple comparación con la base de datos.

Otra soluciones se decantan por detectar malware en una macro basándose en el código empleado para crearla. Así, la patente US7493658B2 procesa el código fuente de las macros, separando el código en comentarios, nombres de variables y de funciones. Estudia la frecuencia y distribución de caracteres y permite discernir si se trata de malware o no.

Si un usuario desea saber si un documento contiene código malicioso incrustado de secuencias de comandos, enviar el archivo a escáneres o soluciones de malware "tradicionales" puede comprometer la seguridad de la información contenida en él, porque la mayoría de las soluciones tradicionales requieren todo el documento para emitir veredicto fiable. Por lo tanto, esto puede convertirse en un dilema para los usuarios que quieren escanear archivos pero sin dar o perder el control sobre la información privada o confidencial potencial contenida en los documentos.

Sumario de la invención

La presente invención resuelve los problemas mencionados anteriormente aprovechando las particularidades de los documentos maliciosos, a la vez que preserva la privacidad del documento, ya que no es necesario utilizar su contenido para ofrecer una respuesta rápida sobre si dicho documento puede contener algún tipo de programas maliciosos. Para ello se presenta, en un primer aspecto de la presente invención, un método para detectar un programa malicioso en un documento electrónico que comprende:

a) detectar un código ejecutable en el documento electrónico proporcionado a un módulo cliente;

b) extraer, en el módulo cliente, una información del documento electrónico que comprende el código ejecutable y unos metadatos del documento electrónico;

c) crear, en el módulo cliente, un vector binario, asociado al documento electrónico, basado en unas ciertas características obtenidas de la información extraída;

d) comparar, en un módulo clasificador, el vector binario con uno o más grupos de vectores clasificados previamente y almacenados en una base de datos;

e) como resultado de la comparación, clasificar el vector binario en uno de los grupos de vectores clasificados previamente, donde cada grupo de vectores tiene asociado un veredicto, en la base de datos, sobre la presencia de programas maliciosos;

f) determinar, en la base de datos, que el documento electrónico contiene un programa malicioso en función del veredicto asociado al grupo en el que se ha clasificado su vector binario asociado.

Una de las realizaciones de la invención contempla ejecutar los pasos a)-c) localmente en un equipo de usuario y ejecutar los pasos d)-f) en un servidor remoto. Ventajosamente, el usuario puede de esta manera preservar su privacidad, ya que su documento electrónico nunca llega a abandonar su equipo, sino únicamente su vector asociado.

Adicionalmente, una de las realizaciones de la invención comprende almacenar en la base de datos el código ejecutable, un código resumen del documento electrónico, un código en bruto asociado al documento electrónico y el vector binario. Ventajosamente, esto permite, por un lado alimentar la base datos con información para afinar los veredictos emitidos eventualmente por los algoritmos y/o un analista, y por otro lado conservar identificado el documento electrónico, mediante el código resumen, sin necesidad de compartir el documento electrónico.

De acuerdo a una de las realizaciones de la invención, comparar el vector binario con uno o más grupos de vectores clasificados previamente comprende calcular una distancia entre el vector binario y cada uno de los grupos de vectores clasificados previamente. Así, se obtiene una medida del grado de similitud entre los documentos asociados. Una vez obtenida esta distancia, de acuerdo a una de las realizaciones, la clasificación del vector binario en uno de los grupos se realiza en función de una distancia máxima de grupo. Ventajosamente, esto hace que dos vectores se agrupen en un mismo grupo si sus distancias son inferiores o iguales a un valor definido previamente y, por tanto, sus documentos asociados se considera que tienen características suficientemente similares como para ser tratados igual.

Adicionalmente, de acuerdo a una de las realizaciones de la invención, clasificar el vector binario en uno de los grupos de vectores clasificados previamente, además comprende actualizar el veredicto asignado al grupo correspondiente.

De acuerdo a una de las realizaciones de la presente invención, se contempla que los metadatos extraídos del documento electrónico comprendan al menos una fecha de creación del documento electrónico y/o una fecha de modificación del documento electrónico.

De acuerdo a una de las realizaciones de la presente invención, se contempla que el veredicto sobre la presencia de programas maliciosos asignado a cada uno de los grupos de vectores comprenda detectar en el código ejecutable un cierto número y tamaño de macros o scripts integrados en el documento electrónico, detectar código ofuscado, detectar desfases entre la fecha creación del documento electrónico y la fecha de creación del código ejecutable y/o detectar la presencia de ciertas palabras reservadas relacionadas con uno o varios de los siguientes acciones: ejecución de archivos, eventos, gestión de archivos, descarga de archivos y llamadas a librerías.

La presente invención contempla en una de sus posibles realizaciones, la posibilidad de que el veredicto sobre la presencia de programas maliciosos asignado a cada uno de los grupos de vectores comprenda un análisis manual de la base de datos por un analista. Así ventajosamente se pueden entrenar y mejorar los servicios de clasificación y agrupación de la presente invención.

En una de las realizaciones de la presente invención, el documento electrónico está programado, al menos en parte, con un lenguaje de script a seleccionar entre Visual Basic for Applications y JavaScript.

Un segundo aspecto de la presente invención se refiere a un sistema para detectar un programa malicioso en un documento electrónico, el sistema comprende:

- un módulo cliente (100) configurado para recibir el documento electrónico; detectar un código ejecutable en el documento electrónico; extraer una cierta información que comprende el código ejecutable y unos metadatos del documento electrónico; crear un vector binario, asociado al documento electrónico, basado en unas ciertas características obtenidas de la información extraída;

- un módulo clasificador (200) configurado para comparar el vector binario con uno o más grupos de vectores clasificados previamente; como resultado de la comparación, clasificar el vector en uno de los grupos de vectores clasificados previamente; y

- una base datos (400) configurada para asociar un veredicto a cada grupo de vectores sobre la presencia de programas maliciosos; y determinar que el documento electrónico contiene un programa malicioso en función del veredicto asociado al grupo en el que se ha clasificado su vector asociado. Adicionalmente, en una de las realizaciones de la invención, se contempla una interfaz de programación de aplicación configurada para interconectar el módulo cliente con el módulo clasificador y la base de datos.

En una de las realizaciones de la invención, el sistema además comprende un servidor, donde al menos la base de datos y el módulo clasificador se encuentran alojados en dicho servidor.

Se contempla, en una de las realizaciones particulares de la invención, que el módulo cliente esté configurado para funcionar localmente en un equipo de usuario. Finalmente, se presenta un programa de ordenador que comprende instrucciones ejecutables por ordenador para implementar el método descrito, al ejecutarse en un ordenador, un procesador digital de la señal, un circuito integrado específico de la aplicación, un microprocesador, un microcontrolador o cualquier otra forma de hardware programable. Dichas instrucciones pueden estar almacenadas en un medio de almacenamiento de datos digitales.

De todo lo anterior se desprenden una serie de ventajas de la presente invención, entre las que cabe señalar que la solución propuesta no necesita recurrir al conocido "sandboxing" o aislamiento de procesos, ofrece un respeto absoluto por la privacidad de los documentos y usuarios, necesita un nivel computacional muy bajo, no necesita prácticamente información del propio documento a analizar y es resistente a programas que ofuscan el código en reiteradas veces.

Para un entendimiento más completo de estos y otros aspectos de la invención, sus objetos y ventajas, puede tenerse referencia a la siguiente memoria descriptiva y a los dibujos adjuntos.

Descripción de los dibujos Para completar la descripción que se está efectuando, y con el objeto de contribuir a una mejor comprensión de las características de la invención, de acuerdo a un ejemplo de una de las realizaciones de la misma, acompañando a dicha descripción como parte integral de la misma, se incluyen unos dibujos en los que, a modo de ilustración y no de forma restrictiva, se representa lo siguiente: Figura 1 - muestra un esquema general del módulo cliente y el preprocesado realizado preferentemente de manera local en un equipo de usuario.

Figura 2 - muestra un módulo clasificador de acuerdo a la presente invención.

Figura 3.- muestra un ejemplo de clusterización de acuerdo a una realización de la invención.

Figura 4 - muestra la base de datos de acuerdo a una realización particular de la invención.

Figura 5.- muestra un diagrama de bloques de la presente invención que incluye una interfaz de programación de aplicaciones para comunicar los módulos cliente y el resto del sistema.

Descripción detallada de la invención Lo definido en esta descripción detallada se proporciona para ayudar a una comprensión exhaustiva de la invención. En consecuencia, las personas medianamente expertas en la técnica reconocerán que son posibles variaciones, cambios y modificaciones de las realizaciones descritas en la presente memoria sin apartarse del ámbito de la invención. Además, la descripción de funciones y elementos bien conocidos en el estado del arte se omite por claridad y concisión.

Por supuesto, las realizaciones de la invención pueden ser implementadas en una amplia variedad de plataformas arquitectónicas, protocolos, dispositivos y sistemas, por lo que los diseños e implementaciones específicas presentadas en este documento, se proporcionan únicamente con fines de ilustración y comprensión, y nunca para limitar aspectos de la invención.

La presente invención se fundamenta en el estudio del comportamiento y las técnicas que los atacantes usan al crear programas maliciosos integrados (como macros o JavaScript) y la forma en que funcionan, lo que se aprovecha para detectar estos documentos maliciosos y agruparlos, preservando la privacidad del documento, ya que no es necesario utilizar su contenido para ofrecer una respuesta rápida sobre si dicho documento puede contener algún tipo de programas maliciosos. Así, la presente invención mantiene el contenido de la información seguro y analiza la carga útil, aprovechando las particularidades del código malicioso embebido, para detectar malware con un enfoque diferente a los tradicionales métodos, basado en parámetros distintos a las firmas o heurísticos, para complementar la detección que realizan los antivirus generales y permitir así una identificación más efectiva, en otra capa y con otros medios, como por ejemplo el aprendizaje automático. Además, se destina específicamente a preservar la privacidad y por lo tanto, no se usan datos del contenido del documento ni datos personales del usuario que puedan insertarse en metadatos.

La presente invención, además de clasificar los documentos con código script (o código de secuencias o código ejecutable) incrustado, en función de si son susceptibles de contener código malicioso o no, también contempla el almacenar el código descodificado en un servidor, que será utilizado en futuras detecciones y eventualmente por los analistas de malware.

Para la clasificación y el aprendizaje máquina, se utiliza un conjunto de características relacionadas con ciertos aspectos del lenguaje de script embebido, como por ejemplo:

• La presencia de ciertas palabras.

• El número de veces que un determinado grupo de palabras aparece.

• El número y el tamaño de los módulos incorporados.

• La presencia de código ofuscado. A pesar de la ofuscación parece hacer más difícil para los analizadores saber cómo y qué hace el código, puede convertirse en una ventaja para analizar el código de ofuscación en sí. Varias características del código resultante de los algoritmos de ofuscación pueden compartir características o incluso hacer aún más fácil determinar y clasificar el código.

Esto hace posible convertir los propios documentos en vectores binarios anónimos, que pueden no estar asociados a ningún documento en particular, sino que se agrupan en clusters etiquetados como sospechosos (malware) o no (goodware) de contener código malicioso. Así, los vectores pueden ser compartidos en diferentes grados, o "distancia", por diferentes documentos o archivos. Esto permite clasificar aún más rápidamente y con mayor precisión los vectores extraídos, ya que manejando unos rangos controlados bajo un concepto de "distancia máxima", se puede considerar que dos vectores pertenecen al mismo grupo si sus distancias son inferiores o iguales a un valor definido previamente como "Distancia Máxima de Grupo".

En cuanto a la preservación de la privacidad del documento y del usuario, el documento se preprocesa localmente en el equipo del cliente. De esta manera, la inteligencia aplicada en el servidor sólo recibe datos anónimos (un vector de características) junto con otros datos tales como la función hash o (código resumen) del documento y las macros que contiene, que en ningún caso permiten identificarlo o asociarlo al documento original, preservando completamente su privacidad.

En la figura 1 puede verse este preprocesado que se realiza preferentemente de manera local en el equipo del cliente, el cual comienza (101) cuando un usuario, que quiere analizar un documento electrónico, entrega el documento deseado a un módulo cliente (100). Se analiza si el documento contiene algún tipo de código ejecutable (102) y, en caso de detectarlo, se procede a extraer (103) los metadatos y características del documento y crear (104) un vector binario.

Las características extraídas pueden tomarse del código ejecutable incrustado en el documento, aparte de algunos metadatos del documento en sí, pero siempre evitando los metadatos del documento que puedan incluir información sensible del contenido o de la persona responsable de él, por lo que el usuario está seguro de que los datos privados nunca se filtran fuera del control del módulo cliente. El módulo cliente puede residir en diferentes programas de software como un complemento o extensión. Puede estar presente también en servidores que procesan o reenvían archivos para ser utilizados como proxy en, por ejemplo, servidores de compartición de archivos, servidores de almacenamiento o servidores de correo. Los programas con código malicioso incrustado difieren del malware tradicional en algunos aspectos, como por ejemplo que al estar programados con un lenguaje script, no se compila o puede descompilarse fácilmente; a menudo presentan ofuscación del código para hacer que el malware sea más difícil de analizar; que la parte útil del documento está presente en una parte muy particular de la estructura de archivos (completamente separada del contenido en sí); o que los atacantes no pueden ir a niveles demasiado bajos de programación para evitar la detección, por lo que se ven obligados a incluir llamadas a librerías y funciones de un modo bastante estándar. Así, los datos extraídos por la presente invención, para aprovechar estas particularidades, pueden comprender, aunque no se limita a ellos, los siguientes contenidos:

- Presencia de palabras, frases o llamadas de funciones reservadas en VBA, JavaScript o cualquier lenguaje de scripting o incrustado relacionadas con la ejecución de archivos, tales como: Shell, vbNormal, vbNormalFocus, vbHide, vbMinimizedFocus, vbMaximizedFocus, vbNormaINoFocus, vbMinimizedNoFocus, WScript.Shell, Run, eval, start, open, exec or require.

- Presencia de palabras reservadas, frases o llamadas de funciones en VBA, JavaScript o cualquier lenguaje de scripting o incrustado relacionado con eventos como por ejemplo: createEvent, initEvent, event, event.initEvent, element.dispatchEvent, dispatchEvent, elemento. fireEvent, fireEvent, eventType, addEventListener or Custom Event.

- Presencia de palabras reservadas, frases o llamadas de funciones en VBA, JavaScript o cualquier scripting o lenguaje incrustado relacionado con el evento de apertura o cierre, tales como: AutoExec, AutoOpen, Document

Open, DocumentOpen, AutoExit, AutoClose, Document Cióse, DocumentBeforeClose, DocumentChange, AutoNew , Document New or NewDocument.

- Presencia de palabras reservadas, oraciones o llamadas de funciones en VBA, JavaScript o cualquier lenguaje de scripting o incrustado relacionado con la gestión de archivos como: Environ, Open, Write, Put, Output, Print, Binary, FileCopy or CopyFile.

- Kill, CreateTextFile, ADODB.Stream, WriteText, SaveToFile, FileReader, File, FileWriter, FileList, Blob, onload, readAsText, DirectoryReader, FileEntry/DirectoryEntry, LocalFileSystem, getFile, requestFileSystem, createWriter, moveTo, copyTo or remove.

- Presencia de palabras reservadas, frases o llamadas de funciones en VBA, JavaScript o cualquier lenguaje de scripting o incrustado relacionados con la descarga de archivos como: URLDownloadToFileA, Msxml2.XMLHTTP, Microsoft.XMLHTTP, MSXML2.ServerXMLHTTP or User-Agent

- Presencia de palabras reservadas, frases o llamadas de funciones en VBA, JavaScript o cualquier lenguaje de scripting o incrustado relacionado con invocaciones de biblioteca.

- Número y tamaño de las macros o scripts incrustados.

- Desfase de tiempo entre la creación de un archivo o documentos y la creación del código ejecutable.

- Si se detecta código ofuscado, la presencia de palabras equivalentes. Por tanto, de dicha información se obtienen un conjunto de características, como las referenciadas, de forma no limitante, anteriormente y con ellas se genera un vector binario. Los documentos son entonces anonimizados mediante su transformación a un vector binario con las características necesarias y que no puede ser asociado unívocamente a ningún documento en particular.

Por otro lado, el cliente pasa a través de una función hash el documento a una base datos alojada en un servidor para obtener una referencia del mismo, pero que no permite recuperar la información contenida de dicho documento. Por tanto los documentos, aunque anonimizados, quedan representados a través de su hash. En la figura 2 se describe el módulo clasificador (200), el cual, alojado preferentemente en un servidor, obtiene un vector de entrada (201) de un módulo cliente, e intenta clasificarlo, mediante un algoritmo de clasificación y agruparlo con otros vectores o grupos de vectores, utilizando técnicas de agrupamiento ("clustering" en inglés). El vector no tiene por qué corresponder a un único documento en concreto, así un vector 201 puede ser común, por ejemplo, a un primer documento

(202) y un segundo documento (203). El uso de un vector y la consulta a la base de datos, alojada preferentemente en el mismo servidor, hace posible obtener una respuesta rápida (204), pero en el caso de que una respuesta no sea directa, puede usar un clasificador rápido para determinar si el documento contiene o no una carga útil maliciosa. El código ejecutable (205) con los metadatos y el hash (206) del documento (opcional, válido por ejemplo para gestiones internas) generado se almacenan en la base de datos descrita más abajo. Los vectores se pueden considerar como una huella digital vectorial, pero en lugar de asociada a un vector, se asocia a un conjunto de documentos que bien comparten vector o bien la distancia calculada entre sus vectores es menor o igual que un rango establecido como Distancia Máxima de Clustering (MDC). De este modo, los documentos se pueden agrupar, de una forma altamente eficiente en grupos de documentos o clusters de características similares tal y como se representa a modo de ejemplo, en la figura 3. La clusterización de los documentos 301-310 del ejemplo, con una MDC establecida igual a 3, resulta en los clusters 31 1-313, El cluster 311 agrupa los documentos 301-303 en un único vector (314). El cluster 312 agrupa los documentos 304-306 en dos vectores diferentes, un primer vector (315) compartido por los documentos 304 y 305 y un segundo vector (306) asociado al documento 306 que no es igual al vector 315, pero la distancia entre ellos es menor o igual a la MDC establecida en este caso e igual a 3. Por último, el cluster 313 agrupa los vectores asociados a los documentos 307-310, donde un primer vector (317) es compartido por los documentos 307 y 308 y los documentos 309 y 310 están asociados a los vectores 318 y 319 respectivamente, los cuales tienen una distancia entre ellos y respecto al vector 317 menor o igual a la MDC establecida en este caso e igual a 3.

El algoritmo de clasificación utilizado en una de las realizaciones de la invención comprende varios algoritmos de aprendizaje de máquina que utilizan técnicas estándar impulsadas por la supervisión del analista. El clasificador puede utilizar cualquier algoritmo que satisfaga las necesidades de cada momento y cualquier algoritmo con la mayor tasa de éxito en cada momento. Dichos algoritmos, en esencia, utilizan la información de los grupos de vectores almacenados en la base de datos para clasificar cuáles de ellos son susceptibles de que los documentos de los que provienen contengan malware o no. A partir de ahí, esta información es usada por el clasificador, de tal forma que cuando se recibe el vector del documento desde un módulo cliente identifica en qué grupo se clasificaría y, por tanto, se identifica rápida y fácilmente si el documento asociado a ese vector está afectado por malware, informándose al módulo cliente.

La base de datos (400) representada la figura 4 actúa como un repositorio central en un servidor (401) y entre sus funciones se encuentran: - almacenar código en bruto: el código se almacena en bruto en la base de datos, por lo que los analistas pueden entrenar y mejorar los servicios de clasificación y agrupación. Dicho repositorio permite analizar reputación, comparativas, inteligencia y así sucesivamente.

- almacenar vectores: permite comparar los vectores y la distancia entre vectores, de forma ultra rápida y ligera. Comparar no sólo los vectores mismos, sino también la distancia entre los vectores en diferentes grupos, permite clasificar y agrupar los documentos de forma anónima.

En una realización de la invención, la base de datos alberga adicionalmente los códigos ejecutables, códigos resumen de los documentos analizados, los veredictos obtenidos mediante los algoritmos utilizados y las posibles correcciones introducidas manualmente por un analista.

La figura 5 ilustra el marco de acceso provisto en una realización de la invención. El servidor proporciona una interfaz de programación de aplicaciones (500) o "API" para comunicarse con los módulos clientes. Esta API permite al cliente interactuar con el resto del sistema. La API tiene permiso para obtener datos y producir una respuesta con un veredicto sobre la carga útil presente en los documentos. Adicionalmente, se contempla que la API permita a los usuarios interactuar con diferentes grados de privacidad, tal como exija el propio usuario, así, desde un cliente (escritorio) o un cliente (en un servidor que procesa o reenvía el documento), el módulo cliente puede usar la API para enviar el documento completo al servidor, enviar el código en bruto o enviar directamente un vector binario. Allí, la información enviada (documento completo, código en bruto o vector) se procesa y se compara con otros documentos, código en bruto o vectores. En caso de proporcionar el documento completo, la comparación es más fiable ya que se compara tanto con otros documentos como con código en bruto y vectores almacenados. En cambio, si se proporciona directamente código en bruto, la comparación se limita a otros códigos en bruto y vectores. Por última, la alternativa con mayor grado de privacidad implica proporcionar directamente un vector, pero la comparación sólo podrá realizarse con otros vectores almacenados previamente.

Dependiendo de las coincidencias obtenidas en la comparación puede derivarse una respuesta directa o, si no se puede clasificar directamente, se agrupará, de acuerdo a la distancia mínima establecida, en un grupo de vectores con características similares y se entregará una respuesta.

Algunas realizaciones preferidas de la invención se describen en las reivindicaciones dependientes que se incluyen seguidamente.

En este texto, la palabra "comprende" y sus variantes (como "comprendiendo", etc.) no deben interpretarse de forma excluyente, es decir, no excluyen la posibilidad de que lo descrito incluya otros elementos, pasos, etc.

La descripción y los dibujos simplemente ilustran los principios de la invención. Por lo tanto, debe apreciarse que los expertos en la técnica podrán concebir varias disposiciones que, aunque no se hayan descrito o mostrado explícitamente en este documento, representan los principios de la invención y están incluidas dentro de su alcance. Además, todos los ejemplos descritos en este documento se proporcionan principalmente por motivos pedagógicos para ayudar al lector a entender los principios de la invención y los conceptos aportados por el (los) inventor(es) para mejorar la técnica, y deben considerarse como no limitativos con respecto a tales ejemplos y condiciones descritos de manera específica. Además, todo lo expuesto en este documento relacionado con los principios, aspectos y realizaciones de la invención, así como los ejemplos específicos de los mismos, abarcan equivalencias de los mismos.

Aunque la presente invención se ha descrito con referencia a realizaciones específicas, los expertos en la técnica deben entender que los anteriores y diversos otros cambios, omisiones y adiciones en la forma y el detalle de las mismas pueden realizarse sin apartarse del alcance de la invención tal como se definen mediante las siguientes reivindicaciones.