WO2018115534A1 - Método y sistema para detectar programas maliciosos integrados en un documento electrónico - Google Patents

Método y sistema para detectar programas maliciosos integrados en un documento electrónico Download PDF

Info

Publication number
WO2018115534A1
WO2018115534A1 PCT/ES2016/070908 ES2016070908W WO2018115534A1 WO 2018115534 A1 WO2018115534 A1 WO 2018115534A1 ES 2016070908 W ES2016070908 W ES 2016070908W WO 2018115534 A1 WO2018115534 A1 WO 2018115534A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic document
groups
vectors
binary vector
vector
Prior art date
Application number
PCT/ES2016/070908
Other languages
English (en)
French (fr)
Inventor
Sergio De Los Santos Vilchez
Pedro Pablo PÉREZ GARCÍA
José TORRES VELASCO
Original Assignee
Telefonica Digital España, S.L.U.
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 Telefonica Digital España, S.L.U. filed Critical Telefonica Digital España, S.L.U.
Priority to US16/471,000 priority Critical patent/US11301565B2/en
Priority to BR112019012654-6A priority patent/BR112019012654B1/pt
Priority to PCT/ES2016/070908 priority patent/WO2018115534A1/es
Priority to EP16924353.2A priority patent/EP3557466A4/en
Publication of WO2018115534A1 publication Critical patent/WO2018115534A1/es

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
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

La presente invención se refiere a la detección de programas maliciosos en documentos electrónicos y comprende: detectar un código ejecutable en el documento electrónico proporcionado a un módulo cliente; extraer, una información del documento electrónico que comprende el código ejecutable y unos metadatos del documento electrónico; crear un vector binario, asociado al documento electrónico; 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); clasificar el vector en uno de los grupos, donde cada grupo tiene asociado un veredicto sobre la presencia de programas maliciosos; y determinar que el documento contiene un programa malicioso en función del veredicto asociado al grupo en el que se ha clasificado su vector asociado.

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.

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.
PCT/ES2016/070908 2016-12-19 2016-12-19 Método y sistema para detectar programas maliciosos integrados en un documento electrónico WO2018115534A1 (es)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/471,000 US11301565B2 (en) 2016-12-19 2016-12-19 Method and system for detecting malicious software integrated in an electronic document
BR112019012654-6A BR112019012654B1 (pt) 2016-12-19 2016-12-19 Método e sistema para detectar um programa malicioso em um documento eletrônico e programa de informática
PCT/ES2016/070908 WO2018115534A1 (es) 2016-12-19 2016-12-19 Método y sistema para detectar programas maliciosos integrados en un documento electrónico
EP16924353.2A EP3557466A4 (en) 2016-12-19 2016-12-19 METHOD AND SYSTEM FOR DETECTING MALICIOUS SOFTWARE EMBEDDED IN AN ELECTRONIC DOCUMENT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/ES2016/070908 WO2018115534A1 (es) 2016-12-19 2016-12-19 Método y sistema para detectar programas maliciosos integrados en un documento electrónico

Publications (1)

Publication Number Publication Date
WO2018115534A1 true WO2018115534A1 (es) 2018-06-28

Family

ID=62624780

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2016/070908 WO2018115534A1 (es) 2016-12-19 2016-12-19 Método y sistema para detectar programas maliciosos integrados en un documento electrónico

Country Status (4)

Country Link
US (1) US11301565B2 (es)
EP (1) EP3557466A4 (es)
BR (1) BR112019012654B1 (es)
WO (1) WO2018115534A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301565B2 (en) 2016-12-19 2022-04-12 Telefonica Cybersecurity & Cloud Tech S.L.U. Method and system for detecting malicious software integrated in an electronic document

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10621349B2 (en) * 2017-01-24 2020-04-14 Cylance Inc. Detection of malware using feature hashing
US11178112B2 (en) * 2019-07-23 2021-11-16 Microsoft Technology Licensing, Llc Enforcing security policies on client-side generated content in cloud application communications
US11349865B1 (en) 2021-02-24 2022-05-31 Netskope, Inc. Signatureless detection of malicious MS Office documents containing embedded OLE objects
US11222112B1 (en) * 2021-02-24 2022-01-11 Netskope, Inc. Signatureless detection of malicious MS office documents containing advanced threats in macros
CN116305291B (zh) * 2023-05-16 2023-07-21 北京安天网络安全技术有限公司 一种office文档安全存储方法及装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697950B1 (en) 1999-12-22 2004-02-24 Networks Associates Technology, Inc. Method and apparatus for detecting a macro computer virus using static analysis
US7493658B2 (en) 2003-04-03 2009-02-17 Messagelabs Limited System for and method of detecting malware in macros and executable scripts
US20100192222A1 (en) * 2009-01-23 2010-07-29 Microsoft Corporation Malware detection using multiple classifiers
US20160335432A1 (en) * 2015-05-17 2016-11-17 Bitdefender IPR Management Ltd. Cascading Classifiers For Computer Security Applications

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997219B2 (en) * 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8695096B1 (en) * 2011-05-24 2014-04-08 Palo Alto Networks, Inc. Automatic signature generation for malicious PDF files
CN103221960B (zh) * 2012-12-10 2016-05-25 华为技术有限公司 恶意代码的检测方法及装置
US9672358B1 (en) * 2015-11-04 2017-06-06 Invincea, Inc. Methods and apparatus for detecting malware samples with similar image sets
EP3557466A4 (en) 2016-12-19 2020-07-22 Telefonica Digital, S.L.U. METHOD AND SYSTEM FOR DETECTING MALICIOUS SOFTWARE EMBEDDED IN AN ELECTRONIC DOCUMENT

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697950B1 (en) 1999-12-22 2004-02-24 Networks Associates Technology, Inc. Method and apparatus for detecting a macro computer virus using static analysis
US7493658B2 (en) 2003-04-03 2009-02-17 Messagelabs Limited System for and method of detecting malware in macros and executable scripts
US20100192222A1 (en) * 2009-01-23 2010-07-29 Microsoft Corporation Malware detection using multiple classifiers
US20160335432A1 (en) * 2015-05-17 2016-11-17 Bitdefender IPR Management Ltd. Cascading Classifiers For Computer Security Applications

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Cluster analysis", WIKIPEDIA, 13 November 2016 (2016-11-13), XP055454723, Retrieved from the Internet <URL:https://in.wikipedia.org/w/index.php?title=Cluster_analysis&oldid=755487658> [retrieved on 20170804] *
"Servidor de aplicaciones", WIKIPEDIA, 20 September 2015 (2015-09-20), XP055512524, Retrieved from the Internet <URL:https://es.wikipedia.org/w/index.php?title=Servidor_de_aplicaciones&oldid=85248031> [retrieved on 20150804] *
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 *
PESCE L., ET AL.: "document metadata, the silent killer...", SANS INSTITUTE INFOSEC READING ROOM, 27 March 2008 (2008-03-27), XP055511818, [retrieved on 20170804] *
See also references of EP3557466A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301565B2 (en) 2016-12-19 2022-04-12 Telefonica Cybersecurity & Cloud Tech S.L.U. Method and system for detecting malicious software integrated in an electronic document

Also Published As

Publication number Publication date
US20200089880A1 (en) 2020-03-19
BR112019012654B1 (pt) 2023-12-19
EP3557466A4 (en) 2020-07-22
BR112019012654A2 (pt) 2019-12-10
US11301565B2 (en) 2022-04-12
EP3557466A1 (en) 2019-10-23

Similar Documents

Publication Publication Date Title
WO2018115534A1 (es) Método y sistema para detectar programas maliciosos integrados en un documento electrónico
Rehman et al. Machine learning-assisted signature and heuristic-based detection of malwares in Android devices
Firdaus et al. Root exploit detection and features optimization: mobile device and blockchain based medical data management
Chumachenko Machine learning methods for malware detection and classification
US20180183815A1 (en) System and method for detecting malware
Varma et al. Android mobile security by detecting and classification of malware based on permissions using machine learning algorithms
Nissim et al. Keeping pace with the creation of new malicious PDF files using an active-learning based detection framework
Poudyal et al. Analysis of crypto-ransomware using ML-based multi-level profiling
Du et al. A static Android malicious code detection method based on multi‐source fusion
Brown et al. An artificial immunity approach to malware detection in a mobile platform
Marquis-Boire et al. Big game hunting: The peculiarities in nation-state malware research
Miura et al. Macros finder: Do you remember loveletter?
Khalid et al. An insight into the machine-learning-based fileless malware detection
Rehman et al. Backdoor attacks in neural networks–a systematic evaluation on multiple traffic sign datasets
Wu et al. Detection of fake IoT app based on multidimensional similarity
Ferreira Malicious URL detection using machine learning algorithms
Tsai et al. PowerDP: de-obfuscating and profiling malicious PowerShell commands with multi-label classifiers
Ehsan et al. Detecting Malware by Analyzing App Permissions on Android Platform: A Systematic Literature Review
Anandhi et al. Performance evaluation of deep neural network on malware detection: visual feature approach
KR101641295B1 (ko) 문서에 포함된 악성 공격 코드 탐지 시스템 및 방법
Monika et al. Ensemble-based stegomalware detection system for hidden ransomware attack
Habtor et al. Machine-learning classifiers for malware detection using data features
Monika et al. An ensemble-based stegware detection system for information hiding malware attacks
Coglio et al. Early-Stage Ransomware Detection Based on Pre-attack Internal API Calls
Mogren Malicious JavaScript detection using machine learning

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16924353

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112019012654

Country of ref document: BR

WWE Wipo information: entry into national phase

Ref document number: 2016924353

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 112019012654

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20190618