ES2683074T3 - Agentes de protección y modos de privilegio - Google Patents

Agentes de protección y modos de privilegio Download PDF

Info

Publication number
ES2683074T3
ES2683074T3 ES07869154.0T ES07869154T ES2683074T3 ES 2683074 T3 ES2683074 T3 ES 2683074T3 ES 07869154 T ES07869154 T ES 07869154T ES 2683074 T3 ES2683074 T3 ES 2683074T3
Authority
ES
Spain
Prior art keywords
protection agent
operating system
virtual machine
privilege mode
machine monitor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES07869154.0T
Other languages
English (en)
Inventor
Eric Traut
Forrest Foltz
Andrew Thornton
Suyash Sinha
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2683074T3 publication Critical patent/ES2683074T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Uno o más medios legibles por ordenador que tienen instrucciones legibles por ordenador en los mismos que, cuando se ejecutan por un dispositivo (102) informático, provocan que el dispositivo (102) informático realice actos que comprenden: recibir (902), en un monitor (108) de máquina virtual que opera en un modo (124) de privilegio de monitor de máquina virtual, una solicitud desde un agente de protección de que un rango de memoria (206, 306) puede hacerse inalterable desde o inaccesible desde un modo (126) de privilegio de sistema operativo, residiendo el agente de protección en el rango de memoria (206, 306); hacer (904), por el monitor de máquina virtual, el rango de memoria (206, 306) inalterable desde o inaccesible desde el modo (126) de privilegio de sistema operativo y establecer, por el monitor de máquina virtual, un temporizador para ejecutar el agente de protección; y ejecutar (908), cuando se agota el temporizador, el agente (144) de protección que opera en un modo (132) de privilegio de agente de protección; en el que el modo (132) de privilegio de agente de protección es más privilegiado que el modo (126) de privilegio de sistema operativo pero menos privilegiado que el modo (124) de privilegio de monitor de máquina virtual.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Agentes de proteccion y modos de privilegio Antecedentes
Los procesadores en dispositivos informaticos a menudo incluyen modos privilegiados y modos no privilegiados. El software que se ejecuta en un modo privilegiado en general puede ejecutar cada instruccion soportada por el procesador. Tfpicamente, el nucleo del sistema operativo se ejecuta en el modo privilegiado, que en ocasiones se denomina como "Anillo 0", "Modo de Supervisor", o "Modo de Nucleo".
En contraste, algun software que se ejecute en el dispositivo informatico puede estar restringido a ejecutarse unicamente en un modo no privilegiado. Este modo en general permite que el software ejecute un subconjunto de las instrucciones del procesador. Un sistema operativo puede por lo tanto usar el modo no privilegiado para limitar la actividad de software que se ejecuta en este modo. Por ejemplo, el software puede estar restringido a un subconjunto particular de la memoria del dispositivo informatico. Este modo no privilegiado en ocasiones es conocido como "Anillo 3" o "Modo de Usuario". En general, las aplicaciones de usuario de dispositivo informatico operan en este modo no privilegiado.
Si una aplicacion de software opera en este modo no privilegiado, la aplicacion puede solicitar acceso a una porcion de memoria que no puede accederse directamente desde el modo no privilegiado. La aplicacion puede desear realizar, por ejemplo, una operacion en esta porcion de memoria tal como "crear un nuevo fichero". Esta solicitud se encamina tipicamente a traves de una puerta de llamada u otra instruccion de llamada de sistema, que pasa este codigo de modo no privilegiado a codigo de modo privilegiado. Este paso asegura que el modo no privilegiado no tiene acceso directo a memoria que esta designada como accesible desde modo privilegiado unicamente.
De acuerdo con estos modos, un autor de codigo malicioso puede acceder al modo privilegiado e instalar software maligno que cambia el comportamiento del dispositivo informatico. Este software maligno puede modificar, por ejemplo, la localizacion de ficheros, ficheros ocultos, modificar ficheros, cambiar pulsaciones de teclas o similares. Alguno de este software maligno puede comprender un "encubridor de inicio" (rootkit), que no cambia unicamente el comportamiento del dispositivo informatico sino tambien se oculta a sf mismo en la memoria del modo privilegiado. Las aplicaciones de antivirus que se ejecutan en el dispositivo informatico pueden en consecuencia fallar al descubrir este encubridor de inicio oculto, permitiendo por lo tanto que el software maligno continue sus acciones maliciosas. Adicionalmente, tal software maligno puede parchearse a traves de un sistema de proteccion integrado del sistema operativo, como se analiza a continuacion.
Un autor de software maligno puede acceder al modo privilegiado y cargar software maligno en un dispositivo informatico en una diversidad de maneras, incluyendo enganando al usuario del dispositivo informatico para que instale inconscientemente el software maligno en el propio dispositivo informatico del usuario. Como resultado, los sistemas operativos actuales a menudo emplean uno o mas sistemas de proteccion para detectar tal software maligno. Estos sistemas de proteccion en general monitorizan ciertos recursos de sistema operativo importantes para detectar cualquier cambio a estos recursos. Si un sistema de proteccion de este tipo detecta un cambio de este tipo, entonces el sistema de proteccion puede decidir que el recurso particular ha sido infectado por software maligno. Estos sistemas de proteccion pueden proporcionar tambien, a la aplicacion de antivirus del usuario, una lista de aplicaciones actualmente residentes en la memoria del modo no privilegiado. Por supuesto, si el software maligno estaba oculto con exito, entonces no aparecera en la lista proporcionada. Adicionalmente, si el software maligno tuvo exito al parchear el sistema de proteccion, entonces el sistema de proteccion puede fallar al ejecutar o de otra manera fallar al detectar cualquier cambio a los recursos de sistema operativo importantes.
Aunque estos sistemas de proteccion pueden ser eficaces, tambien sufren de unas pocas debilidades. En primer lugar, estos sistemas se basan a menudo en la oscuridad y por lo tanto son vulnerables a que se aprovechen si se identifican por el software maligno. Es decir, si el software maligno descifra la identidad de, y localiza el sistema de proteccion, puede desactivar el mismo sistema de proteccion. El autor de software maligno puede ensenar a otros como hacer lo mismo. Adicionalmente y relacionado con lo primero, estos sistemas de proteccion operan en general en un mismo dominio de proteccion que el del sistema operativo (por ejemplo, en el mismo modo privilegiado). Por lo tanto, el sistema de proteccion se ve sometido a sf mismo a ataque si el software maligno obtiene acceso al modo privilegiado y puede desenmascarar el sistema de proteccion oscurecido. Finalmente, estos sistemas de proteccion se inicializan al mismo tiempo que el sistema operativo o el modo privilegiado. Por lo tanto, si el software maligno o el autor de software maligno obtiene control del dispositivo informatico antes de esta inicializacion, puede evitar que se inicialice el sistema de proteccion.
El documento WO 2006/063274 A1 se refiere a tecnicas para ejecutar componentes de un monitor de maquina virtual a un nivel de privilegio reducido. La funcionalidad de un monitor de maquina virtual (VMM) tradicional se particiona en una pequena parte dependiente de la plataforma denominada un micro-hipervisor (MH) y una o mas partes independientes de plataforma denominadas maquinas virtuales de servicio (SVM). El MH es un modulo que sirve de solicitud de intermediario entre maquinas virtuales, incluyendo SVM, y aplica aislamiento y poltticas de seguridad. El micro-hipervisor se ejecuta en el modo mas privilegiado. El micro-hipervisor puede implementarse
5
10
15
20
25
30
35
40
45
50
55
como un modulo que se carga de manera temprana en el arranque de sistema, se lanza como un controlador desde un SO de anfitrion o como parte del firmware de sistema. En un ejemplo, hay dos niveles de privilegio de maquina virtual. El nivel de privilegio de maquina virtual mas alto se denomina como operacion de rafz mientras que el nivel de privilegio de maquina virtual inferior se denomina como una operacion no de rafz. La VMM o el micro-hipervisor se ejecutan en operacion de rafz. El micro-hipervisor proporciona a una SVM la capacidad de acceder a componentes de la plataforma de hardware subyacente que no son accesibles para todas las VM. El micro- hipervisor proporciona funcionalidad de seguridad necesaria para asegurar la integridad del sistema de maquina virtual sin interacciones con una VM de servicio.
El documento EP 1271313 A2 se refiere a tecnicas para ejecutar un procedimiento. Un procedimiento se ejecuta directamente en un sistema operativo anfitrion, hasta que el procedimiento intenta una operacion que puede afectar a la seguridad del sistema operativo anfitrion. Un sistema operativo invitado se proporciona a continuacion ejecutandose como una sesion de maquina virtual en un compartimento del sistema operativo anfitrion y que ejecuta el procedimiento continuo usando el sistema operativo de invitado. Las operaciones del procedimiento que pueden afectar la seguridad del sistema operativo anfitrion se realizan en su lugar en el sistema operativo de invitado, proporcionando mayor seguridad. El sistema operativo invitado se invoca unicamente de manera selectiva, conduciendo a mayor eficacia global.
El documento US 2007/005919 A1 se refiere a la proteccion de sistemas informaticos. Un sistema informatico protegido comprende un monitor de maquina virtual, una maquina virtual y un sistema de proteccion. El monitor de maquina virtual esta configurado para virtualizar al menos una porcion de hardware del sistema informatico. La maquina virtual esta configurada como un cliente del monitor de maquina virtual y se ejecuta en un sistema operativo invitado. El sistema de proteccion esta acoplado al monitor de maquina virtual y esta configurado para evitar el acceso de escritura al area de memoria por un sistema operativo invitado de nucleo que se ejecuta dentro de la maquina virtual.
Sumario
Es el objeto de la presente invencion mejorar la seguridad de los sistemas de la tecnica anterior. Este objeto se soluciona mediante la materia objeto de las reivindicaciones independientes. Se definen realizaciones preferidas en las reivindicaciones dependientes.
El presente documento describe herramientas que pueden hacer una porcion de memoria de sistema operativo asociada con un agente de proteccion inalterable o inaccesible de un modo de privilegio de sistema operativo. En algunas realizaciones, estas herramientas pueden crear un modo de privilegio de agente de proteccion solicitando que un monitor de maquina virtual proteja esta porcion de memoria de sistema operativo. En otras realizaciones, estas herramientas pueden crear el modo de privilegio de agente de proteccion virtualizando un procesador ffsico en multiples procesadores virtuales, al menos uno de los cuales es un procesador virtual de agente de proteccion designado para ejecutar el agente de proteccion. Haciendo esta porcion de memoria de sistema operativo inalterable o inaccesible desde el modo de privilegio de sistema operativo, el agente de proteccion puede ser menos vulnerable a ataques por entidades que operan en el modo de privilegio de sistema operativo.
Este resumen se proporciona para introducir una seleccion de conceptos en una forma simplificada que se describen adicionalmente a continuacion en la descripcion detallada. Este sumario no se pretende para identificar caractensticas clave o esenciales de la materia objeto reivindicada, ni se pretende que se use como una ayuda al determinar el alcance de la materia objeto reivindicada. El termino "herramientas", por ejemplo, puede hacer referencia a sistema o sistemas, procedimiento o procedimientos, instrucciones legibles por ordenador, y/o tecnica o tecnicas segun se permite por el contexto anterior y a traves de todo el documento.
Breve descripcion de los dibujos
La Figura 1 ilustra un entorno de operacion ejemplar en el que pueden operar diversas realizaciones de las herramientas.
La Figura 2 demuestra derechos de memoria de dispositivo informatico variables de los modulos ilustrados en la Figura 1.
La Figura 3 representa porciones de memoria de dispositivo informatico variables en las que residen algunos de los modulos ilustrados en la Figura 1.
La Figura 4 es un diagrama de flujo que ilustra una manera ejemplar en la que un monitor de maquina virtual puede proteger una porcion de memoria asociada con un agente de proteccion y establecer un temporizador para ejecutar el agente.
La Figura 5 ilustra una arquitectura ejemplar que tiene un monitor de maquina virtual que puede virtualizar procesadores ffsicos en multiples procesadores virtuales de sistema operativo y un procesador virtual de agente de proteccion.
La Figura 6 ilustra como el ancho de banda de los procesadores ffsicos de la Figura 5 puede asignarse entre los diversos procesadores virtuales.
La Figura 7 es un procedimiento ejemplar que ilustra algunas maneras en las que las herramientas pueden activar y ejecutar un agente de proteccion que reside en una localizacion que es inaccesible desde un modo de
5
10
15
20
25
30
35
40
45
50
55
privilegio de sistema operativo.
La Figura 8 es un procedimiento ejemplar que ilustra algunas maneras en las que las herramientas pueden modificar un monitor de maquina virtual para activar y ejecutar un agente de proteccion que reside en una localizacion que es inaccesible desde un modo de privilegio de sistema operativo.
La Figura 9 es un procedimiento ejemplar que ilustra algunas maneras en las que las herramientas pueden crear un modo de privilegio de agente de proteccion haciendo una solicitud a un monitor de maquina virtual.
La Figura l0 es un procedimiento ejemplar que ilustra algunas maneras en las que las herramientas pueden crear un modo de privilegio de agente de proteccion virtualizando un procesador informatico real en procesadores informaticos virtuales, al menos uno de los cuales es para ejecutar un agente de proteccion.
La Figura 11 es un procedimiento ejemplar que ilustra algunas maneras en las que las herramientas pueden activar una adicion de un modo de privilegio no presente en un procesador ffsico subyacente.
Los mismos numeros se usan a traves de toda la divulgacion y las figuras para hacer referencia a componentes y caractensticas similares.
Descripcion detallada
Vista general
El siguiente documento describe herramientas que pueden operar un agente de proteccion de tal manera que hacen al agente de proteccion inalterable o inaccesible desde un modo de privilegio de sistema operativo. Estas herramientas por lo tanto posibilitan proteccion del mismo agente de proteccion, asegurando de esta manera la capacidad del agente de proteccion para detectar modificaciones a recursos de sistema operativo importantes. Ademas, estas herramientas pueden apagar un sistema operativo o un modo de privilegio de sistema operativo en respuesta a detectar modificaciones de recursos o en respuesta a una modificacion intentada del mismo agente de proteccion. Adicionalmente, estas herramientas pueden posibilitar que el agente de proteccion aplique invariancia en recursos de sistema operativo, sin la necesidad de detectar modificacion de recursos posteriormente.
Un entorno en el que las herramientas pueden posibilitar estas y otras acciones se expone a continuacion en una seccion titulada Entorno de operacion ejemplar. Sigue una seccion titulada Agentes de proteccion autonomos e incluye dos sub-secciones. La primera sub-seccion, titulada Agentes de proteccion de monitor de maquina virtual, describe una manera ejemplar en la que un agente de proteccion puede residir y ejecutarse en un monitor de maquina virtual. Esta es seguida por otra sub-seccion, titulada Agentes de proteccion de particion virtual, que describe una manera ejemplar en la que un agente de proteccion puede ocupar y ejecutarse en una particion virtual separada de una particion del sistema operativo.
Sigue otra seccion titulada Modos de privilegio de agente de proteccion autonomos y tambien incluye dos sub- secciones. La primera sub-seccion describe una manera ejemplar que un temporizador de monitor de maquina virtual puede anadir un modo de privilegio de agente de proteccion a un procesador subyacente, y se titula Solicitudes de proteccion a un monitor de maquina virtual. Sigue una sub-seccion titulada Procesadores virtuales de agente de proteccion y describe otra manera en la que puede crearse un modo de privilegio de agente de proteccion, en este caso con el uso de multiples procesadores virtuales, incluyendo uno configurado para ejecutar el agente de proteccion en el modo de privilegio de agente de proteccion. Sigue una seccion titulada Uso ejemplar de las herramientas y describe un ejemplo de las herramientas previamente descritas en la operacion. Finalmente, una seccion titulada Otras realizaciones de las herramientas describe diversas otras realizaciones y maneras en las que pueden actuar las herramientas. Esta vista general, incluyendo estos tttulos de seccion y resumenes, se proporciona para la conveniencia del lector y no se pretende que limite el alcance de las reivindicaciones o las secciones tituladas.
Entorno de operacion ejemplar
Antes de describir las herramientas en detalle, se proporciona el siguiente analisis de un entorno de operacion ejemplar para ayudar al lector a entender algunas maneras en las que pueden emplearse diversos aspectos inventivos de las herramientas. El entorno descrito a continuacion constituye solamente un ejemplo y no se pretende para limitar la aplicacion de las herramientas a un entorno de operacion particular cualquiera. Pueden usarse otros entornos sin alejarse del alcance de la materia objeto reivindicada. Por ejemplo, aunque las siguientes secciones describen realizaciones con un agente de proteccion, pueden utilizarse tambien multiples agentes de proteccion. En algunos casos, estos agentes de proteccion pueden ejecutarse independientemente y en cooperacion. En tales casos, los agentes de proteccion tipicamente pueden unicamente acceder a memoria en su respectiva particion. Adicionalmente, las tecnicas descritas a continuacion pueden utilizarse de manera concurrente. Es decir, diferentes agentes de proteccion pueden utilizar diferentes tecnicas dentro de un mismo entorno de operacion.
Volviendo al ejemplo actual, la Figura 1 ilustra un entorno de operacion ejemplar de este tipo en general en 100. Este entorno incluye un dispositivo 102 informatico, que por sf mismo incluye uno o mas procesadores 104 asf como el medio 106 legible por ordenador. El medio 106 legible por ordenador incluye un monitor 108 de maquina virtual (por ejemplo, un hipervisor), que puede posibilitar la virtualizacion del uno o mas procesadores en multiples procesadores virtuales. El monitor 108 de maquina virtual puede posibilitar tambien multiples particiones virtuales. Uno o mas
5
10
15
20
25
30
35
40
45
50
55
60
procesadores pueden estar asociados con cada particion, y estos procesadores virtuales se planifican en los procesadores ffsicos disponibles. Como se ilustra, en algunas realizaciones el monitor de maquina virtual puede posibilitar una primera particion 110 virtual y una segunda particion 112 virtual. Como se analiza en detalle a continuacion, estas particiones pueden servir para separar funciones de sistema operativo de servicios de agente de proteccion.
Tambien como se ilustra, el medio 106 legible por ordenador incluye adicionalmente un sistema operativo (SO) 114 asf como una o mas aplicaciones 116 de usuario. El sistema 114 operativo proporciona servicios 118 de sistema operativo a las aplicaciones 116 de usuario, permitiendo por lo tanto que las aplicaciones se ejecuten en el dispositivo informatico. Ademas, uno o mas recursos 120 de sistema operativo residen en el sistema operativo. Recursos ejemplares incluyen una tabla de despacho de servicio de sistema (SSDT), una tabla de despacho de interrupcion (IDT), una tabla de descriptor global (GDT), y similares. Tambien como se ilustra, el sistema operativo puede incluir software maligno 122 (es decir, codigo con intencion maliciosa), que puede haberse cargado en el dispositivo informatico en las maneras anteriormente analizadas o de otra manera. Uno o mas agentes de proteccion, analizados a continuacion, pueden detectar cambios realizados a los recursos del sistema operativo por el software maligno y, en respuesta a la deteccion, tomar una accion defensiva. Si el agente hace una determinacion de este tipo, a continuacion el agente de proteccion puede apagar el sistema operativo y/o el dispositivo informatico o puede tomar otra accion contrarrestante.
Habiendo analizado la estructura del dispositivo informatico, la atencion ahora gira a modos de privilegio variables presentes en el uno o mas procesadores 104 ffsicos subyacentes. El modo 124 de privilegio de monitor de maquina virtual representa el modo mas privilegiado ilustrado en la figura 1. Este modo de privilegio tiene acceso a todos o sustancialmente todos los recursos y memoria del dispositivo. A partir del modo 124 de privilegio de monitor de maquina virtual, el monitor de maquina virtual puede planificar los procesadores y puede permitir acceso a areas de memoria para cada particion virtual. Mientras que un sistema operativo que se ejecuta en una particion puede creer que controla todos los recursos de un procesador ffsico, en realidad unicamente controla una porcion como se determina por el monitor de maquina virtual.
Menos privilegiado que el modo de privilegio de monitor de maquina virtual, el modo 126 de privilegio de sistema operativo tiene acceso a todos los recursos 120 del sistema operativo y a la mayona o a toda la memoria de sistema operativo. Este modo de privilegio, sin embargo, no tiene acceso a ningun recurso o memoria asociada con otra particion, tal como la segunda particion 112 virtual. Sin embargo, puesto que este modo de privilegio en general tiene acceso a toda la memoria de sistema operativo, en ocasiones se denomina como el "Modo privilegiado". "Anillo 0", "Modo de Supervisor", o "Modo de nucleo" pueden describir tambien este modo de privilegio. Como se ha analizado anteriormente, una aplicacion de usuario que opera en el modo 126 de privilegio de sistema operativo generalmente puede ejecutar la mayona de las instrucciones proporcionadas por el procesador, con la excepcion de aquellas instrucciones reservadas para modo de monitor de maquina virtual.
Este modo de privilegio de sistema operativo esta en contraste con el modo 128 de privilegio de usuario, en ocasiones denominado como "Modo no privilegiado", "Anillo 3", o simplemente "Modo de usuario". Tambien como se ha analizado anteriormente, la aplicacion de usuario puede no acceder o modificar cierta memoria asociada con el sistema operativo cuando opera desde el modo 128 de privilegio de usuario. En general, las aplicaciones de usuario de dispositivo informatico operan en este modo de privilegio de usuario cuando realizan operaciones basicas.
Ademas de los modos anteriormente analizados, la figura 1 tambien ilustra un modo 130 de privilegio de segunda particion virtual y un modo 132 de privilegio de agente de proteccion. Como se analiza en detalle a continuacion, el modo 132 de privilegio de agente de proteccion puede tener acceso a una porcion de memoria que el modo de privilegio de sistema operativo no tiene, aunque en general no tiene tanto acceso a memoria como el modo de privilegio de monitor de maquina virtual. Como tal, este modo de privilegio puede estar mas privilegiado que el modo de privilegio de sistema operativo pero menos privilegiado que el modo de privilegio de monitor de maquina virtual.
Tambien como se analiza en detalle a continuacion, el modo de privilegio de la segunda particion virtual en general tiene acceso a memoria asociada con la segunda particion 112 virtual. Ademas, este modo puede tener acceso a la primera particion virtual. Tal acceso adicional puede permitir, por ejemplo, a un agente de proteccion que reside en la segunda particion virtual explorar memoria asociada con la primera particion virtual y su correspondiente sistema operativo. Este modo en general no tiene acceso al monitor de maquina virtual, y por lo tanto esta menos privilegiado que el modo de privilegio de monitor de maquina virtual. Sin embargo, el modo de privilegio de la segunda particion virtual aun tiene acceso a una porcion de memoria que el modo de privilegio de sistema operativo no tiene.
Mientras tanto, la figura 2 ilustra los derechos 200 de memoria del dispositivo informatico. Esta figura por lo tanto representa la cantidad de memoria accesible por los modulos de la figura 1. Como se ilustra, el monitor 108 de maquina virtual que opera en modo 124 de privilegio de monitor de maquina virtual tiene la mayona de los derechos de memoria de todos los modulos ilustrados. De hecho, el monitor de maquina virtual reside en, y en solitario tiene acceso a, una porcion de memoria 202. A continuacion, el agente 204 de proteccion (por ejemplo, cualquiera de los agentes de proteccion ilustrados en la figura 1) opera en modo 132 de privilegio de agente de proteccion y tiene acceso a toda la memoria distinta de la porcion 202 que corresponde al monitor de maquina virtual. El agente de proteccion, sin embargo, tiene acceso a una porcion 206 de memoria, que es la porcion de memoria en la que reside
5
10
15
20
25
30
35
40
45
50
55
el mismo el agente de proteccion.
El sistema 114 operativo, mientras tanto, opera en el modo 126 de privilegio de sistema operativo y tiene acceso a toda la memoria distinta de la porcion 202 y la porcion 206. Aunque el sistema operativo puede no tener acceso a la porcion 206 de memoria asociada con el agente de proteccion, el sistema operativo y su modo de privilegio asociado no tienen acceso a una porcion 208 de memoria. Esta porcion 208 de memoria en ocasiones es conocida como memoria de nucleo o el componente de nivel mas inferior de un sistema operativo y en general contiene los recursos mostrados en la figura 1. Incluso si el software maligno se carga y opera en la porcion 208 de memoria, sin embargo, el software maligno no puede acceder a la porcion 206 de memoria asociada con el agente de proteccion.
Finalmente, la figura 2 ilustra que las aplicaciones 116 de usuario unicamente tienen acceso a una porcion 210 de memoria. Estas aplicaciones de usuario y el correspondiente modo de privilegio de usuario no tienen acceso a la porcion 208 de memoria asociada con el componente de nivel mas inferior del sistema operativo. Con este entorno de operacion en mente, las siguientes cuatro secciones describen en detalle maneras ejemplares que un agente de proteccion puede hacerse inalterable o inaccesible del modo de privilegio de sistema operativo.
Agentes de proteccion autonomos
La siguiente seccion describe herramientas que pueden determinar, desde memoria inaccesible por una entidad que opera en un modo de privilegio de sistema operativo, si uno o mas recursos de sistema operativo han sido modificados. Como tal, las herramientas pueden permitir que un agente de proteccion resida en una localizacion distinta de la localizacion de la misma memoria de sistema operativo. Mas particularmente, las siguientes sub- secciones describen como pueden residir los agentes de proteccion en un monitor de maquina virtual o en una particion virtual autonoma.
Agentes de proteccion de monitor de maquina virtual
Esta sub-seccion describe como un agente 134 de proteccion puede residir en el mismo monitor de maquina virtual, como ilustra la figura 1. Puesto que el modo de privilegio de sistema operativo no puede acceder al monitor de maquina virtual, esta localizacion protege el agente de proteccion de cualquier software maligno localizado en la memoria de sistema operativo. Para operar desde esta localizacion, el agente de proteccion recibe una identificacion del uno o mas recursos 120 de sistema operativo que el agente 134 de proteccion puede monitorizar. Esta identificacion puede recibirse mediante el identificador 136 de recurso. Como se ilustra, el sistema operativo puede proporcionar esta informacion al monitor de maquina virtual a traves de llamadas de Interfaz de Programacion de Aplicacion (API), o el sistema operativo puede proporcionar la informacion en forma de un manifiesto 138. Como se ha analizado anteriormente, estos recursos pueden incluir la SSDT, IDT y GDT.
Una vez que ha recibido la identificacion de recursos, el agente 134 de proteccion amplfa los servicios 140 de agente de proteccion al sistema 114 operativo. Estos servicios de agente de proteccion generalmente comprenden determinar si cualquiera de los recursos identificados han sido modificados. Si se realiza una determinacion de este tipo, el agente de proteccion o monitor de maquina virtual puede, por ejemplo, apagar el sistema operativo. Los servicios de agente de proteccion pueden incluir tambien aplicar invariancia frente a cualesquiera recursos marcados como inmodificables (por ejemplo, "de solo lectura").
Emplear una tecnica de este tipo empieza con la carga e inicializacion del monitor de maquina virtual, que puede alojar uno o mas sistemas operativos. En este ejemplo, el monitor de maquina virtual aloja el unico sistema 114 operativo, que por sf mismo empieza la inicializacion despues de que carga el monitor de maquina virtual. Durante la inicializacion del sistema operativo, la porcion 208 de memoria asociada con el componente de nivel mas inferior del sistema operativo (por ejemplo, el nucleo) se carga en primer lugar. Algunos o todos los recursos 120 de sistema operativo (por ejemplo, la SSDT, GDT, IDT) generalmente ocupan esta porcion 208 de memoria.
Antes o mientras el sistema operativo se inicializa, el agente 134 de proteccion puede empezar a ejecutarse desde dentro del monitor de maquina virtual. Como se ha analizado anteriormente, el agente de proteccion generalmente recibe una identificacion de un conjunto de uno o mas recursos de sistema operativo y determina si uno o mas de los recursos identificados han sido modificados. Observese que cada recurso identificado a menudo comprende multiples componentes en multiples localizaciones, cada una de las cuales el agente de proteccion puede monitorizar para proteger completamente todo el recurso. Por ejemplo, si el manifiesto identifica una SSDT como un recurso a monitorizarse y protegerse, el agente de proteccion no unicamente protege la tabla real sino tambien otros componentes de la SSDT. Por ejemplo, el agente de proteccion puede tambien monitorizar y explorar el registro que apunta a la localizacion de la tabla. Adicionalmente, el agente de proteccion puede tambien monitorizar las estructuras de datos de traduccion de memoria (por ejemplo, tablas de pagina) que traducen la direccion virtual de la SSDT a una direccion ffsica. Si el agente de proteccion falla al hacer esto, entonces el codigo malicioso puede crear otra tabla con diferentes mapeos de tabla de pagina (es decir, omitir la propia SSDT).
Ademas de la identificacion, el agente de proteccion puede recibir tambien un atributo de proteccion que instruye al agente de proteccion sobre como proteger un recurso correspondiente. Por ejemplo, el agente de proteccion puede recibir una identificacion de un recurso de SSDT, asf como un correspondiente atributo de proteccion de "solo lectura". El agente de proteccion por lo tanto aprende que la SSDT debena permanecer en solo lectura y, como tal,
5
10
15
20
25
30
35
40
45
50
55
no debena modificarse. "Iniciar solo lectura" es otro posible atributo de proteccion, que instruye al agente de proteccion que el correspondiente recurso puede escribirse una vez durante la inicializacion, pero despues de tal tiempo el recurso debena permanecer como de solo lectura.
El agente de proteccion puede recibir esta identificacion de los recursos y atributos de proteccion de recurso en un numero de maneras, tanto de manera positiva como pasiva. Por ejemplo, el sistema operativo puede proporcionar un manifiesto firmado digitalmente que identifica los recursos que puede monitorizar el agente de proteccion. Este manifiesto firmado digitalmente puede identificar los recursos en una multitud de maneras, tal como por nombre (por ejemplo, SSDT, IDT, GDT, etc.) o por direccion, que mapea recursos a correspondientes localizaciones en la porcion 208 de memoria. En los ultimos casos, el manifiesto puede identificar una direccion ffsica de invitado del recurso, direccion virtual de invitado o direccion ffsica de sistema. Observese que en algunos casos, una direccion ffsica de invitado puede mapearse a una direccion ffsica de sistema real para descubrir la localizacion ffsica real del correspondiente componente de recurso.
Despues de que el monitor de maquina virtual o el agente de proteccion reciben el manifiesto, estos componentes pueden determinar si el manifiesto ha sido manipulado o modificado. Si el monitor de maquina virtual o el agente de proteccion hacen una determinacion de este tipo, el monitor de maquina virtual o el agente de proteccion pueden optar por fallar el inicio del sistema operativo. Ademas, la encriptacion asociada con la lista de recursos puede invalidarse, protegiendo por lo tanto su seguridad.
Ademas o como alternativa al manifiesto, el agente de proteccion puede recibir identificacion de recurso y de atributo de proteccion mediante una o mas llamadas de interfaz de programacion de aplicacion (API) en el monitor de maquina virtual (por ejemplo, "hiperllamadas"). A medida que el sistema operativo se inicializa, el sistema operativo (y tal vez el componente de nivel mas inferior del sistema 208 operativo) puede hacer hiperllamadas en el monitor de maquina virtual que informan al agente de proteccion de ciertos recursos que pueden monitorizarse y protegerse. Estas hiperllamadas pueden identificar los recursos pertinentes en las mismas maneras anteriormente analizadas. Tambien como se ha analizado anteriormente, estas hiperllamadas pueden identificar tambien atributos de proteccion de los recursos.
En las realizaciones que utilizan un manifiesto firmado digitalmente, asf como una o mas hiperllamadas, el agente de proteccion puede explorar en primer lugar los recursos identificados en el manifiesto antes o mientras se arranca el sistema operativo. Despues de esta exploracion inicial, el sistema operativo puede a continuacion hacer hiperllamadas en el monitor de maquina virtual que instruyen al agente de proteccion a determinar si las paginas identificadas de hiperllamada han sido modificadas. El manifiesto por lo tanto identifica recursos a explorar tras cada arranque de sistema operativo, mientras que las hiperllamadas identifican recursos a explorar dinamicamente tras su respectiva inicializacion.
Habiendo identificado los recursos a monitorizarse, el agente de proteccion a continuacion determina si los recursos han sido modificados o no (por ejemplo, todas las porciones de la SSDT anteriormente analizada). El agente de proteccion puede aplicar tambien una invariancia frente a los recursos identificados. Por ejemplo, el agente de proteccion puede asegurar que cualquier recurso designado como "de solo lectura" no cambie a "escribible".
Para monitorizar y proteger los recursos de esta manera, la ejecucion de codigo en el monitor de maquina virtual puede emplear un gestor de intercepcion de monitor de maquina virtual (por ejemplo, el gestor 146 de la figura 1). Si se instruye asf, este gestor de intercepcion puede registrar intercepciones en los diversos componentes de los recursos identificados. Debido a este registro, el agente de proteccion en el monitor de maquina virtual puede ahora recibir intercepciones si se realizan intentos para acceder o modificar estos recursos identificados. Como tal, el agente de proteccion puede inspeccionar y explorar los diversos componentes de recursos identificados. Tambien puede bloquear de manera activa intentos para modificar estos recursos.
En algunas realizaciones, el agente de proteccion explora los recursos y determina un estado inicial de los recursos para su uso al comparar los resultados de exploraciones futuras. En otras realizaciones, el agente de proteccion ya tiene conocimiento de un estado inicial de los recursos para comparar los resultados de exploraciones futuras. En cualquier caso, el agente de proteccion puede calcular un valor de troceo o de suma de comprobacion de este estado inicial. Despues de este calculo, el agente de proteccion explora los recursos antes, despues o mientras se arranca el sistema operativo. Despues de la exploracion, el agente de proteccion calcula un troceo o suma de comprobacion de los resultados y compara este al valor de troceo o de suma de comprobacion del estado inicial. Si son iguales, el agente de proteccion determina que los correspondientes recursos no han sido modificados. Por supuesto, el agente de proteccion puede omitir los valores de troceo o de suma de comprobacion y comparar directamente en su lugar el estado inicial a la exploracion.
Si los valores son diferentes, sin embargo, el agente de proteccion y/o el monitor de maquina virtual pueden tomar una o mas acciones de respuesta. En primer lugar, el mismo agente de proteccion puede apagar el sistema operativo o modo de privilegio de sistema operativo, o puede instruir al monitor de maquina virtual para hacer eso. De nuevo, puesto que el agente de proteccion reside en el monitor de maquina virtual y puesto que el monitor de maquina virtual aloja el sistema operativo, estos dos componentes pueden hacer esto apagando el sistema operativo. Adicionalmente, puesto que el agente de proteccion reside en el monitor de maquina virtual, el apagado
5
10
15
20
25
30
35
40
45
50
55
del sistema operativo no puede manipulate desde incluso el modo de privilegio de sistema operativo.
Ademas de apagar el sistema operativo, el agente de proteccion y/o monitor de maquina virtual pueden advertir en primer lugar al sistema operativo del apagado inminente. Un canal de comunicacion entre el monitor de maquina virtual y el sistema operativo puede permitir una comunicacion de este tipo. Como alternativa, el agente de proteccion y/o el monitor de maquina virtual pueden escribir una advertencia a una localizacion de memoria o senalizar un evento que el sistema operativo monitoriza.
Sin importar si se ha proporcionado o no una advertencia, el apagado del sistema operativo puede ser abrupto o elegante. En el primer caso, el monitor de maquina virtual puede simplemente desconectar el sistema operativo inmediatamente despues del aprendizaje de los valores de troceo o de suma de comprobacion dispares. En el ultimo caso, el monitor de maquina virtual puede permitir al sistema operativo una cierta cantidad de tiempo para apagarse a sf mismo de manera limpia. En este tiempo, el sistema operativo puede cerrar, por ejemplo, cualquier fichero abierto y evacuar cualquier dato correspondiente. El sistema operativo puede tambien liberar recursos asignados. Adicionalmente, el apagado puede utilizar ambos enfoques. Por ejemplo, si el monitor de maquina virtual aloja multiples particiones, puede apagar inmediatamente la particion con los valores de troceo o de suma de comprobacion dispares mientras permite que las otras particiones tiempo se apaguen de manera limpia. En cualquier caso, la manera de apagado puede ser configurable por polttica y puede ser ajustable.
Ademas de un apagado y advertencia correspondiente, el agente de proteccion y/o monitor de maquina virtual pueden tomar acciones post-arranque en respuesta a una modificacion no permitida de un recurso identificado. Por ejemplo, el monitor de maquina virtual y/o el agente de proteccion pueden notificar, tras reinicio del sistema operativo, al sistema operativo de la modificacion de recurso. En respuesta, el sistema operativo puede realizar una exploracion de antivirus para detectar si algun software maligno no reside de hecho en la memoria de sistema operativo, tal como la porcion 208 (por ejemplo, el nucleo). Adicionalmente, el monitor de maquina virtual puede arrancar el sistema operativo en un modo seguro, o el sistema operativo puede elegir por sf mismo arrancar en el modo seguro. Tambien en respuesta a la notificacion, el sistema operativo puede identificarse a sf mismo como que ha sido atacado y, como tal, puede no permitirse a sf mismo acceder a alguna red a la que esta acoplado.
Agentes de proteccion de particion virtual
En lugar de residir en el mismo monitor de maquina virtual, un agente de proteccion (por ejemplo, el agente 142 de proteccion de la figura 1) puede residir en una particion virtual separada (por ejemplo, la segunda particion 112 virtual de la figura 1). En estas realizaciones, esta particion separada actua como un delegado confiable del monitor de maquina virtual. El agente 142 de proteccion por lo tanto es inaccesible del modo de privilegio de sistema operativo. Como se ha analizado anteriormente, el monitor 108 de maquina virtual proporciona una virtualizacion de este tipo del dispositivo 102 informatico. Mientras que el monitor de maquina virtual puede virtualizar el dispositivo informatico en cualquier numero de particiones, la figura 1 ilustra una primera particion que aloja el sistema operativo y una segunda particion que aloja el agente de proteccion. La segunda particion virtual en la que reside el agente de proteccion puede ser, en algunos casos, una particion de seguridad especializada cuya funcion principal o unica es ejecutar el agente de proteccion. En otras realizaciones, esta segunda particion virtual puede realizar funciones adicionales, tales como alojar otro sistema operativo.
El agente 142 de proteccion que reside en la segunda particion virtual puede realizar muchas o todas las mismas funciones como se han descrito anteriormente con respecto al agente 134 de proteccion que reside en el monitor de maquina virtual. Es decir, el agente 142 de proteccion puede recibir de manera positiva o pasiva una identificacion de uno o mas recursos 120 de sistema operativo. En respuesta a la identificacion, el agente de proteccion puede de nuevo ampliar los servicios 140 del agente de proteccion, que en general comprenden determinar si uno o mas de los recursos identificados han sido modificados o no y, en caso afirmativo, tomar accion de respuesta. Estos servicios pueden incluir tambien aplicar invariancia de recursos especificados. El agente 142 de proteccion puede realizar estas funciones mediante tecnicas similares a aquellas anteriormente descritas.
Como se ilustra, el agente 142 de proteccion es accesible desde el modo 130 de privilegio de la segunda particion virtual, pero inaccesible desde el modo 126 de privilegio de sistema operativo. Como tal, la arquitectura resultante permite proteccion del agente de proteccion a sf mismo desde cualquier software maligno localizado en el sistema operativo, incluso si el software maligno reside en la porcion 208 de memoria asociada con el componente de nivel mas inferior del sistema operativo.
Modos de privilegio de agente de proteccion autonomo
Esta seccion describe herramientas que pueden hacer una porcion de memoria de sistema operativo asociada con un agente de proteccion inalterable o inaccesible desde un modo de privilegio de sistema operativo, mientras aun permite que esta porcion de memoria resida ffsicamente en un espacio de memoria ffsica de sistema operativo. Estas herramientas por lo tanto crean un modo de privilegio de agente de proteccion autonomo que tiene acceso a la porcion de memoria asociada con el agente de proteccion asf como al resto de la memoria que es accesible en el modo de privilegio de sistema operativo. Este modo de privilegio por lo tanto es mas privilegiado que el modo de privilegio de sistema operativo.
5
10
15
20
25
30
35
40
45
50
55
La primera sub-seccion describe herramientas que pueden crear el modo de privilegio de agente de proteccion solicitando que un monitor de maquina virtual proteja una porcion de memoria asociada con el agente de proteccion. La segunda sub-seccion, mientras tanto, describe herramientas que permiten la creacion del modo de privilegio de agente de proteccion mediante virtualizacion de un procesador ffsico en multiples procesadores virtuales, incluyendo un procesador virtual especializado para ejecutar el agente de proteccion.
Solicitudes de proteccion a un monitor de maquina virtual
Esta sub-seccion describe como un agente de proteccion puede solicitar a un monitor de maquina virtual que proteja memoria asociada con el agente de proteccion y, como tal, al mismo agente de proteccion. Esta proteccion da como resultado un agente 144 de proteccion que opera en el modo 132 de privilegio de agente de proteccion, como se ilustra en la figura 1. Como se ilustra, el agente 144 de proteccion puede residir inicialmente en el modo de privilegio de sistema operativo, antes de desplazarse al modo de privilegio de agente de proteccion. Cuando se opera en este ultimo modo de privilegio, el agente de proteccion es en general impermeable a los ataques de entidades que operan con el modo 126 de privilegio de sistema operativo.
Cuando opera en el modo 132 de privilegio de agente de proteccion, una entidad tiene ligeramente mas privilegios que si opera en el modo 126 de privilegio de sistema operativo, pero aun menos privilegios que en el modo 124 de privilegio de monitor de maquina virtual. Como ilustra la figura 2, un agente de proteccion que opera en este modo de privilegio tiene acceso a toda la memoria asociada con el sistema operativo, ademas de la misma porcion 206 de memoria asociada con el agente de proteccion. El monitor 108 de maquina virtual aplica la accesibilidad de proteccion de agente anadida.
Las Figuras 3 y 4 ilustran una manera ejemplar de crear este modo de privilegio de agente de proteccion. La Figura 3 representa toda o sustancialmente toda la memoria 300 del dispositivo informatico. La memoria 300 de dispositivo informatico incluye una porcion de memoria 302 asociada con el modo de privilegio de sistema operativo (por ejemplo, el nucleo) y una porcion de memoria 304 asociada con el modo de privilegio de usuario. La porcion de memoria 302 tambien incluye, como se ilustra, una porcion 306 de memoria asociada con el agente 144 de proteccion asf como una porcion de memoria 308 en la que se cargan los controladores.
Como ilustra la figura 4, un procedimiento 400 de creacion del modo 132 de privilegio de agente de proteccion comienza en el acto 1 mediante la inicializacion de la porcion de memoria 302 (por ejemplo, el nucleo). En el acto 2, la porcion 306 de memoria o el mismo agente 144 de proteccion llama al monitor 108 de maquina virtual para solicitar que el monitor de maquina virtual proteja la porcion de memoria asociada con el agente de proteccion. Al solicitar esto, el agente de proteccion o la memoria correspondiente pide que no se permita que el codigo que se ejecuta en el modo de privilegio de sistema operativo modifique o toque de otra manera esta porcion 306 de memoria. El agente de proteccion puede verificar tambien por sf mismo (por ejemplo, por una firma digital) al monitor 108 de maquina virtual. Esta porcion de memoria, o el mismo agente de proteccion, puede solicitar tambien que el monitor de maquina virtual establezca un temporizador y ejecute el agente de proteccion cuando el temporizador se agota. El acto 3 representa el monitor de maquina virtual que protege la memoria de entidades que operan en el modo de privilegio de sistema operativo y establecer un temporizador en respuesta a la solicitud. Observese que puesto que esta porcion 306 de memoria asociada con el agente de proteccion ahora es inalterable y/o inaccesible del modo de privilegio de sistema operativo, el agente de proteccion ahora reside en el modo de privilegio de agente de proteccion.
En el acto 4, se cargan los controladores en la porcion de memoria 308. Observese que la solicitud del acto 2 y la correspondiente proteccion del acto 3 en general tienen lugar antes de que los controladores se carguen en memoria, ya que el software maligno puede existir en forma de un controlador. Como se analiza en la seccion "Uso ejemplar de las herramientas" a continuacion, los autores de software maligno a menudo enganan a los usuarios para que instalen controladores maliciosos en un dispositivo informatico. Si uno o mas controladores maliciosos se cargan de hecho en memoria antes de que la porcion 306 de memoria este protegida, entonces los controladores maliciosos pueden potencialmente parchear la solicitud para la misma proteccion. Tal parcheo impedina de esta manera la ejecucion periodica del agente de proteccion mediante el monitor de maquina virtual y, por lo tanto, la creacion del modo de privilegio de agente de proteccion. Solicitando que el monitor de maquina virtual establezca un temporizador desde el principio, sin embargo, este procedimiento asegura que el codigo en el modo de privilegio de sistema operativo no puede desactivar de esta manera la ejecucion periodica del agente de proteccion.
El acto 5, mientras tanto, probablemente tiene lugar algun tiempo despues de que se hayan cargado los controladores. Como se ilustra, el acto 5 representa la expiracion del temporizador de monitor de maquina virtual y, por lo tanto, la ejecucion del agente de proteccion. Cuando se ejecuta, el agente 144 de proteccion realiza funciones similares o identicas a aquellas analizadas en las secciones anteriores. Tambien como se ha analizado anteriormente, el agente de proteccion puede tomar acciones en respuesta a una determinacion de que se han modificado uno o mas recursos identificados. El agente de proteccion puede tomar tambien tal accion en respuesta a un acceso intentado o modificacion del agente de proteccion, o su correspondiente memoria, de entidades que operan en el modo de privilegio de sistema operativo.
5
10
15
20
25
30
35
40
45
50
55
El acto 6 representa el agente de proteccion que notifica al monitor de maquina virtual cuando el agente de proteccion finaliza la ejecucion. Finalmente, el acto 7 representa la repeticion de los actos 3, 5 y 6. Como tal, el monitor de maquina virtual puede resetear su temporizador y ejecutar el agente de proteccion a intervalos periodicos, tal como cada 100 milisegundos (ms).
Estableciendo un temporizador frente a fallos en el monitor de maquina virtual, el procedimiento 400 elimina de esta manera la capacidad del codigo de sistema operativo para manipular con la porcion de memoria asociada con el agente de proteccion. Como tal, este procedimiento asegura que el agente de proteccion continuara ejecutandose y no se parcheara por el software maligno que actua en el modo de privilegio de sistema operativo. En su lugar, el agente de proteccion se ejecutara en un modo de privilegio autonomo mientras aun reside en memoria ffsica asignada al sistema operativo.
Procesadores virtuales de agente de proteccion
Esta sub-seccion describe como un monitor de maquina virtual puede crear un modo de privilegio de agente de proteccion planificando un procesador virtual para ejecutar el agente 144 de proteccion. La Figura 5 ilustra una arquitectura 500 que incluye el monitor 108 de maquina virtual que virtualiza el dispositivo 102 informatico en dos particiones, incluyendo cada una un sistema operativo. Como se ilustra, el dispositivo informatico en este ejemplo incluye dos procesadores 104(a) y 104(b) reales, despues de los cuales cada uno de los procesadores virtuales puede planificar multiples procesadores virtuales. Tambien como se ilustra, el monitor de maquina virtual crea una primera particion 502 virtual y una segunda particion 504 virtual. La primera particion virtual incluye un primer procesador 506 virtual para ejecutar un primer sistema operativo. De manera similar, la segunda particion virtual incluye un segundo procesador 508 virtual para ejecutar un segundo sistema operativo. En este caso, sin embargo, el monitor de maquina virtual tambien incluye un procesador 510 virtual de agente de proteccion para ejecutar un agente de proteccion, tal como el agente 144 de proteccion de la figura 1.
Para crear la arquitectura 500, el monitor de maquina virtual en primer lugar se carga e inicializa. Como se ilustra en la figura 6, el monitor de maquina virtual a continuacion virtualiza los diversos procesadores virtuales y, al hacer esto, asigna el ancho de banda 600 de procesador real. Para comenzar esta virtualizacion y asignacion, el monitor de maquina virtual virtualiza el primer procesador virtual en el primer procesador real. En el ejemplo actual, esta virtualizacion se hace en una base uno a uno como se ilustra por la figura 6. Es decir, unicamente este unico procesador 506 virtual corresponde al procesador 104(a) real y, como tal, el monitor de maquina virtual asigna todo el ancho de banda del procesador real a este procesador virtual. El monitor de maquina virtual a continuacion virtualiza el segundo procesador 508 virtual en el segundo procesador 104(b) real. En lugar de una base uno a uno, sin embargo, el monitor de maquina virtual retiene alguna porcion del ancho de banda del segundo procesador real. El monitor de maquina virtual a continuacion virtualiza el procesador 510 virtual de agente de proteccion en este ancho de banda restante del segundo procesador 104(b) real, como se ilustra por la figura 6.
Cada procesador virtual que opera en el segundo procesador real en general actua en una base por segmentos de tiempo. Es decir, el segundo procesador virtual puede operar en el segundo procesador real durante alguna cantidad de tiempo, antes de que se suspenda la operacion del segundo procesador virtual. En este punto, el segundo procesador real conmuta a la operacion del procesador virtual de agente de proteccion durante alguna otra cantidad de tiempo. Por ejemplo, el segundo procesador virtual puede operar en el segundo procesador real durante 90 ms, punto en el cual la operacion de este segundo procesador virtual se suspende y la operacion del procesador virtual de agente de proteccion comienza durante 10 ms. El procesador virtual de agente de proteccion en general es transparente para ambas particiones de sistema operativo y tanto para el primer como el segundo procesadores virtuales. Como tal, ambos sistemas operativos creen que sus procesadores virtuales correspondientes corresponden a un procesador real respectivo.
Ademas de asignar el ancho de banda de procesador real, el monitor de maquina virtual tambien gestiona la porcion de memoria que puede acceder cada procesador virtual. En el ejemplo actual, el primer procesador virtual puede acceder a toda la memoria asociada con el primer sistema operativo. El segundo procesador virtual, mientras tanto, puede acceder a toda la memoria asociada con el segundo sistema operativo, distinta de la porcion de memoria asociada con el agente de proteccion. El procesador virtual de agente de proteccion en solitario tiene acceso a la porcion de memoria asociada con el agente de proteccion, ademas de la memoria asignada al segundo sistema operativo.
Adicionalmente, el primer y segundo procesadores virtuales unicamente tienen la capacidad de modificar su memoria asociada. Como tal, ninguno de los procesadores virtuales que operan sus respectivos sistemas operativos puede modificar la porcion de memoria asociada con el agente de proteccion. El procesador virtual de agente de proteccion, sin embargo, puede modificar la memoria asociada con el agente de proteccion y, en algunas realizaciones, la memoria asociada con el segundo procesador virtual tambien.
Mediante su naturaleza programada, el procesador virtual de agente de proteccion ejecutara periodicamente el agente de proteccion. Aunque en algunos casos el procesador virtual de agente de proteccion puede ejecutar otras aplicaciones, el ejemplo actual ilustra un procesador virtual de agente de proteccion especializado. Como tal, este procesador virtual en general unicamente sirve para ejecutar periodicamente el agente de proteccion. De nuevo, el
5
10
15
20
25
30
35
40
45
50
55
60
agente de proteccion puede realizar funciones similares o identicas, en maneras similares o identicas, como los agentes de proteccion anteriormente descritos.
Planificando un procesador virtual de agente de proteccion especializado, el monitor de maquina virtual asegura que el agente de proteccion ejecutara periodicamente el control de este procesador y en un modo de privilegio de agente de proteccion autonomo. Adicionalmente, puesto que unicamente este procesador virtual de agente de proteccion tiene acceso a la porcion de memoria asociada con el agente de proteccion, el monitor de maquina virtual protege esta memoria de codigo en un sistema operativo. Por lo tanto, el software maligno que opera en un modo de privilegio de sistema operativo no puede parchearse a traves del agente de proteccion y evitar que el agente de proteccion se ejecute. Como tal, esta tecnica esencialmente elimina una capacidad del sistema operativo para manipular el agente de proteccion.
Uso eiemplar de las herramientas
Habiendo descrito previamente las herramientas que pueden asegurar la proteccion de un agente de proteccion, la siguiente seccion describe solamente un ejemplo de estas herramientas en la operacion. En primer lugar, imagmese que un usuario de ordenador navega por Internet y, mientras esta navegando por un cierto sitio web, aparece un cuadro de dialogo con intencion maliciosa en la pantalla del usuario. El cuadro de dialogo solicita permiso del usuario para instalar alguna clase de software maligno en el ordenador del usuario. Aunque esta solicitud puede ser directa, imagmese que el cuadro de dialogo disfraza la solicitud como es tfpicamente el caso. El cuadro de dialogo puede, por ejemplo, informar de manera falsa al usuario de que el o ella gano un regalo. Al informar asf, el cuadro de dialogo instruye de manera maliciosa a que el usuario haga clic el boton de "OK" en el cuadro de dialogo para recibir el regalo. Imagmese que el usuario de hecho selecciona el boton de OK y que el usuario elige continuar las operaciones solicitadas a pesar de una o mas advertencias de software (por ejemplo, una aplicacion de antivirus) que se ejecuta en el dispositivo informatico.
En este punto, el dispositivo informatico comienza la instalacion de un controlador que contiene el software maligno. Como se cumple en general con los controladores, se concede acceso a este controlador malicioso a un modo de privilegio de sistema operativo y se carga en memoria asociada con este modo de privilegio (por ejemplo, el nucleo). Una vez cargado en el nucleo, el controlador malicioso y su software maligno adjunto esencialmente tienen acceso de carta blanca a la memoria y al sistema operativo del ordenador. Desafortunadamente para el usuario, imagmese que este software maligno incluye un registrador de teclas que registra las pulsaciones de tecla de un usuario. Imagmese ahora que el usuario navega a su sitio web del banco y firma en su cuenta bancaria. Debido a su capacidad para registrar pulsaciones de teclas, el registrador de teclas aprende la contrasena de la cuenta bancaria del usuario y envfa esta contrasena a traves de la Internet al autor del controlador malicioso.
Para hacer la situacion peor, imagmese que el software maligno es un "encubridor de inicio"- o software maligno que intenta ocultar de manera activa un agente de proteccion y el software de antivirus del usuario. En sistemas convencionales, un agente de proteccion reside en el nucleo (es decir, en memoria a la que el controlador malicioso tiene acceso). Por lo tanto, en estos sistemas convencionales el software maligno tiene acceso al agente de proteccion y puede intentar ocultarse a sf mismo del agente de proteccion. Si es satisfactorio, el software maligno parecena que no existe para el agente de proteccion en el nucleo. Por lo tanto, cuando el software de antivirus del usuario llama al agente de proteccion y solicita una lista de todas las aplicaciones presentes en la memoria del ordenador, el software maligno estana ausente. Esta ausencia hace que el software de antivirus sea impotente de conocer y eliminar el software maligno. Adicionalmente, el software maligno puede parchear a traves del agente de proteccion, evitando de esta manera que el agente de proteccion se ejecute en absoluto. Como tal, el agente de proteccion puede fallar al avisar si el software maligno modifica cualesquiera recursos de sistema operativo.
En lugar de residir en el nucleo como en sistemas convencionales, sin embargo, imagmese que el agente de proteccion en el dispositivo informatico del usuario reside en memoria o se ejecuta en un modo que es inaccesible del modo de privilegio de sistema operativo. Por lo tanto, cuando el controlador malicioso se carga en el nucleo, no tiene acceso a la memoria en la que reside el agente de proteccion o el modo en el que se ejecuta el agente de proteccion. Por lo tanto, el controlador y su software maligno adjunto no tienen acceso al mismo agente de proteccion. El software maligno por lo tanto no puede ocultarse a sf mismo del agente de proteccion y, por lo tanto, el software de antivirus tambien. Por lo tanto, cuando el software de antivirus pide al agente de proteccion una lista de todas las aplicaciones presentes en la memoria del ordenador, la lista devuelta incluye el software maligno. El software de antivirus a continuacion reconoce este codigo como software maligno y en consecuencia lo elimina del dispositivo informatico del usuario. Adicionalmente, el agente de proteccion puede notificar por sf mismo si el software maligno modifica recursos de sistema operativo y, en respuesta, puede apagar el dispositivo informatico del usuario.
Por lo tanto, residiendo en memoria o ejecutando en un modo que es inaccesible del modo de privilegio de sistema operativo, las realizaciones descritas en el presente documento evitan que el software maligno se oculte a sf mismo desde o parcheandose a traves del agente de proteccion. En el ejemplo anterior, el dispositivo informatico del usuario puede eliminar por lo tanto el software maligno de la maquina o, en algunos casos, apagar el sistema cuando el software maligno modifica recursos importantes. En cualquier caso, estas realizaciones sirven para reducir la efectividad del software maligno en su deseo de provocar dano.
5
10
15
20
25
30
35
40
45
50
55
60
Otras realizaciones de las herramientas
Las secciones anteriores describen unos pocos ejemplos particulares donde un agente de proteccion se hace inalterable o inaccesible del modo de privilegio de sistema operativo. En esta seccion, se describen otras realizaciones de las herramientas, tal como anadir un modo de privilegio a un procesador que no esta presente en un procesador subyacente.
Estas realizaciones ejemplares se describen como parte de los procedimientos 700 a 1100 de las figuras 7 a 11. Estos procedimientos, asf como procedimientos ejemplares descritos o ilustrados con referencia a las figuras 1 a 6, pueden implementarse en cualquier hardware, software, firmware, o combinacion de los mismos adecuada; en el caso de software y firmware, estos procedimientos representan conjuntos de operaciones implementadas como instrucciones ejecutables por ordenador almacenadas en medio legible por ordenador y ejecutables por uno o mas procesadores. Estas realizaciones de las herramientas descritas en esta seccion no se pretenden para limitar el alcance de las herramientas o las reivindicaciones.
Con referencia a la figura 7, el bloque 702 recibe una polftica de cumplimiento que identifica uno o mas recursos de sistema operativo. Esta polftica de cumplimiento, que puede comprender datos encriptados, puede recibirse mediante un manifiesto firmado digitalmente o exponiendo una interfaz de programa de aplicacion (API) al sistema operativo (por ejemplo, una hiperllamada). El bloque 704 identifica, de la memoria inaccesible desde una entidad que opera en un modo de privilegio de sistema operativo, uno o mas recursos de sistema operativo. Los recursos ejemplares incluyen una tabla de despacho de servicio de sistema (SSDT), una tabla de despacho de interrupcion (IDT), y/o una tabla de descriptor global (GDT). Como se ha descrito anteriormente, esta identificacion puede tener lugar en un monitor de maquina virtual (por ejemplo, por el agente 134 de proteccion de la figura 1) o en una particion virtual separada (por ejemplo, por el agente 142 de proteccion de la figura 1).
El bloque 706, mientras tanto, representa la determinacion de si alguno de los recursos identificados ha sido modificado. De nuevo, esto puede tener lugar en un monitor de maquina virtual o en una particion separada. Si el bloque 706 determina que uno o mas de los recursos identificados de hecho han sido modificados, a continuacion el bloque 708 termina el sistema operativo en respuesta a esta determinacion. Finalmente, el bloque 710 notifica al sistema operativo de una operacion ilegal tras reinicio del sistema operativo.
La Figura 8 ilustra un procedimiento 800 para permitir que un agente de proteccion se ejecute en un monitor de maquina virtual. El bloque 802 modifica un gestor de intercepcion de monitor de maquina virtual efectivo para permitir la recepcion de una indicacion que una pagina de memoria o registro asociado con un recurso de sistema operativo ha sido modificado. Este recurso puede comprender uno de los recursos descritos con referencia a la figura 7, o puede ser otro recurso de sistema operativo. En cualquier caso, el bloque 804 recibe una polftica de cumplimiento que identifica el recurso de sistema operativo y posiblemente uno o mas otros recursos de sistema operativo. De nuevo, esta identificacion puede hacerse mediante las tecnicas anteriormente analizadas. Como se ha descrito anteriormente, un atributo de proteccion (por ejemplo, "solo lectura" o "iniciar solo lectura") del recurso puede acompanar la identificacion del recurso. El bloque 806, mientras tanto, representa la recepcion de una indicacion de que la pagina de memoria o el registro asociado con el recurso de sistema operativo ha sido de hecho modificado. En respuesta, el bloque 808 apaga un modo de privilegio de sistema operativo eficaz para apagar un sistema operativo asociado con el recurso de sistema operativo. En algunos casos, el monitor 108 de maquina virtual de la figura 1 puede conseguir este apagado del modo de privilegio de sistema operativo.
A continuacion, la figura 9 describe un procedimiento 900 ejemplar para crear un modo de privilegio de agente de proteccion, tal como el modo 132 de privilegio de agente de proteccion ilustrado en la figura 1. El bloque 902 recibe una solicitud de que un rango de memoria particular puede hacerse inalterable o inaccesible de un modo de privilegio de sistema operativo. De nuevo, un monitor de maquina virtual puede recibir esta solicitud, que puede originarse desde el mismo rango de memoria o desde un agente de proteccion que reside con el rango de memoria. El bloque 904 protege el rango de memoria y establece un temporizador para ejecutar periodicamente el agente de proteccion que reside con el rango de memoria. De nuevo, un monitor de maquina virtual puede establecer un temporizador de este tipo, que puede ordenar al monitor de maquina virtual que ejecute el agente de proteccion a intervalos regulares.
Mientras tanto, el bloque 906 recibe una polftica de cumplimiento que describe un recurso de sistema operativo. De nuevo, la polftica de cumplimiento y recurso descritos pueden ser similares o identicos a aquellos anteriormente analizados. El bloque 908 ejecuta el agente de proteccion, que puede conseguirse por el monitor de maquina virtual. El bloque 910 decision cuestiona si el recurso de sistema operativo ha sido modificado. El agente de proteccion puede hacer esta determinacion funcionando en las maneras anteriormente descritas en detalle. Si el bloque 910 de hecho determina que ha tenido lugar una modificacion, a continuacion el bloque 912 apaga el sistema operativo. Si, sin embargo, no se realiza una determinacion de este tipo, entonces el bloque 914 recibe una notificacion de que el agente de proteccion ha finalizado la ejecucion. En algunos casos y como se ha descrito anteriormente, el mismo agente de proteccion puede notificar de esta manera al monitor de maquina virtual. El bloque 916, mientras tanto, representa la realizacion de ciclos entre ejecutar el agente de proteccion y no ejecutar el agente de proteccion. Finalmente, observese que aunque el agente de proteccion no se ejecuta, el monitor de maquina virtual puede apagar el sistema operativo en respuesta a un acceso intentado, desde una entidad que opera en el modo de
5
10
15
20
25
30
35
40
45
privilegio de sistema operativo, del rango de memoria asociada con el agente de proteccion.
La Figura 10 ilustra otro procedimiento 1000 ejemplar para crear un modo de privilegio de agente de proteccion, tal como el modo 132 de privilegio de agente de proteccion ilustrado en la figura 1. El bloque 1002 virtualiza un procesador informatico real en multiples procesadores informaticos virtuales. Estos procesadores virtuales pueden comprender uno o mas procesadores virtuales de sistema operativo teniendo cada uno un privilegio para modificar su propia memoria de sistema operativo y usar una porcion de un ancho de banda de procesamiento de los procesadores reales, como se ilustra en la figura 6. Los procesadores virtuales pueden incluir tambien al menos un procesador virtual de agente de proteccion que tiene un privilegio para modificar su propia memoria de agente de proteccion y usar una porcion diferente del ancho de banda de procesamiento de los procesadores reales. Aunque todos los procesadores virtuales pueden planificarse por el monitor de maquina virtual, el procesador virtual de agente de proteccion puede ser transparente para los procesadores virtuales de sistema operativo. En algunos casos, los procesadores virtuales de sistema operativo no pueden modificar la memoria asignada al procesador virtual de agente de proteccion. Adicionalmente, el procesador virtual de agente de proteccion puede ser un procesador especializado cuyo unico fin y primario es provocar que se ejecute el agente de proteccion, como se ha analizado anteriormente.
A continuacion, el bloque 1004 provoca que el procesador virtual de agente de proteccion ejecute un agente de proteccion, que puede ser eficaz para determinar si una porcion de dicha memoria de sistema operativo ha sido modificada o no. El bloque 1006, mientras tanto, recibe una indicacion de que una porcion de la memoria de sistema operativo ha sido modificada.
En respuesta, el bloque 1008 apaga un correspondiente sistema operativo.
Finalmente, la figura 11 representa un procedimiento 1100 para anadir un modo de privilegio a un procesador informatico real. El bloque 1102 representa la determinacion, identificacion o clasificacion de uno o mas modos de privilegio presentes en un procesador ffsico subyacente. Estos modos de privilegio se definen en general por el mismo procesador ffsico subyacente. A cualquier velocidad, el bloque 1104 anade un modo de privilegio que no esta presente en el procesador ffsico subyacente. En algunos casos, el modo de privilegio anadido puede modificar una porcion de memoria del dispositivo informatico que es diferente de una porcion de memoria que puede modificarse por el uno o mas modos de privilegio presentes. El modo de privilegio anadido tambien puede anadir y ejecutar instrucciones que no exisffan previamente o que no eran ejecutables en el procesador subyacente.
Adicionalmente, el uno o mas modos de privilegio presentes en el procesador ffsico subyacente pueden incluir un modo de privilegio de usuario y un modo de privilegio de sistema operativo. En estas realizaciones, el modo de privilegio anadido puede ser mas privilegiado tanto que el modo de usuario privilegiado como el modo de privilegio de sistema operativo, mas privilegiado que el modo de privilegio de usuario pero menos privilegiado que el modo de privilegio de sistema operativo, o menos privilegiado que tanto los modos de privilegio de usuario como de sistema operativo. Finalmente, observese que un caso de la adicion del modo de privilegio puede comprender anadir un modo de privilegio de agente de proteccion (por ejemplo, el modo 132 de privilegio de agente de proteccion ilustrado en la figura 1) en una multitud de maneras anteriormente analizadas. Por ejemplo, un agente de proteccion o su rango de memoria asociado puede solicitar que el rango de memoria pueda hacerse inaccesible de entidades que operan en el modo de privilegio de sistema operativo. Un monitor de maquina virtual puede tambien crear este modo de privilegio planificando un procesador virtual de agente de proteccion para ejecutar el agente de proteccion.
Conclusion
Las herramientas anteriormente descritas pueden hacer a un agente de proteccion no modificable o inaccesible de un modo de privilegio de sistema operativo, ya sea posibilitando que el agente de proteccion resida en una localizacion que es inaccesible del modo de privilegio de sistema operativo, o creando un modo de privilegio de agente de proteccion. Aunque las herramientas se han descrito en lenguaje espedfico a caractensticas estructurales y/o actos metodologicos, se ha de entender que las herramientas definidas en las reivindicaciones adjuntas no estan necesariamente limitadas a las caractensticas espedficas o actos descritos. En su lugar, las caractensticas espedficas y actos se desvelan como formas ejemplares de implementar las herramientas.

Claims (14)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Uno o mas medios legibles por ordenador que tienen instrucciones legibles por ordenador en los mismos que, cuando se ejecutan por un dispositivo (102) informatico, provocan que el dispositivo (102) informatico realice actos que comprenden:
    recibir (902), en un monitor (108) de maquina virtual que opera en un modo (124) de privilegio de monitor de maquina virtual, una solicitud desde un agente de proteccion de que un rango de memoria (206, 306) puede hacerse inalterable desde o inaccesible desde un modo (126) de privilegio de sistema operativo, residiendo el agente de proteccion en el rango de memoria (206, 306);
    hacer (904), por el monitor de maquina virtual, el rango de memoria (206, 306) inalterable desde o inaccesible desde el modo (126) de privilegio de sistema operativo y establecer, por el monitor de maquina virtual, un temporizador para ejecutar el agente de proteccion; y
    ejecutar (908), cuando se agota el temporizador, el agente (144) de proteccion que opera en un modo (132) de privilegio de agente de proteccion;
    en el que el modo (132) de privilegio de agente de proteccion es mas privilegiado que el modo (126) de privilegio de sistema operativo pero menos privilegiado que el modo (124) de privilegio de monitor de maquina virtual.
  2. 2. El medio de la reivindicacion 1, en el que el temporizador ordena al monitor (108) de maquina virtual ejecutar el agente (144) de proteccion a intervalos regulares.
  3. 3. El medio de la reivindicacion 1, en el que el agente (144) de proteccion esta configurado para recibir (906) una polftica de cumplimiento que describe uno o mas recursos (120) accesibles desde el modo (126) de privilegio de sistema operativo y, en respuesta a la recepcion de la polftica de cumplimiento, determinar (910) si uno o mas del uno o mas recursos (120) han sido modificados.
  4. 4. El medio de la reivindicacion 3, que comprende adicionalmente apagar (912) un sistema (114) operativo asociado con el modo (126) de privilegio de sistema operativo en respuesta a una determinacion por el agente (144) de proteccion de que uno o mas del uno o mas recursos (120) han sido modificados.
  5. 5. El medio de la reivindicacion 3, en el que el uno o mas recursos (120) incluyen una tabla de despacho de servicio de sistema SSDT, una tabla de despacho de interrupcion IDT, o una tabla de descriptor global GDT.
  6. 6. El medio de la reivindicacion 1, que comprende adicionalmente recibir (914), en el monitor (108) de maquina virtual y despues de la ejecucion (908) del agente (144) de proteccion, una notificacion de que el agente (144) de proteccion ha finalizado la ejecucion.
  7. 7. El medio de la reivindicacion 1, que comprende adicionalmente:
    apagar un sistema (114) operativo asociado con el modo (126) de privilegio de sistema operativo en respuesta a un intento de acceso, desde el modo (126) de privilegio de sistema operativo, del rango de memoria (206, 306) o el agente (144) de proteccion; y/o
    realizar ciclos (916) entre la ejecucion (908) del agente (144) de proteccion y la no ejecucion del agente (144) de proteccion, de manera que al menos cuando se ejecuta el agente (144) de proteccion es inalterable o inaccesible desde el modo (126) de privilegio de sistema operativo.
  8. 8. Un procedimiento que comprende:
    recibir (902), en un monitor (108) de maquina virtual que opera en un modo (124) de privilegio de monitor de maquina virtual, una solicitud desde un agente de proteccion de que un rango de memoria (206, 306) puede hacerse inalterable desde o inaccesible desde un modo (126) de privilegio de sistema operativo, residiendo el agente de proteccion en el rango de memoria (206, 306);
    hacer (904), por el monitor de maquina virtual, el rango de memoria (206, 306) inalterable desde o inaccesible desde el modo (126) de privilegio de sistema operativo y establecer, por el monitor de maquina virtual, un temporizador para ejecutar el agente de proteccion; y
    ejecutar (908), cuando se agota el temporizador, el agente (144) de proteccion que opera en un modo (132) de privilegio de agente de proteccion;
    en el que el modo (132) de privilegio de agente de proteccion es mas privilegiado que el modo (126) de privilegio de sistema operativo pero menos privilegiado que el modo (124) de privilegio de monitor de maquina virtual.
  9. 9. El procedimiento de la reivindicacion 8, en el que el temporizador ordena que el monitor (108) de maquina virtual ejecute el agente (144) de proteccion a intervalos regulares.
  10. 10. El procedimiento de la reivindicacion 8, en el que el agente (144) de proteccion esta configurado para recibir (906) una polftica de cumplimiento que describe uno o mas recursos (120) accesibles desde el modo (126) de privilegio de sistema operativo y, en respuesta a la recepcion de la polftica de cumplimiento, determinar (910) si uno o mas del uno o mas recursos (120) han sido modificados.
  11. 11. El procedimiento de la reivindicacion 10, que comprende adicionalmente apagar (912) un sistema (114) operativo asociado con el modo (126) de privilegio de sistema operativo en respuesta a una determinacion por el agente (144) de proteccion de que uno o mas del uno o mas recursos (120) han sido modificados.
  12. 12. El procedimiento de la reivindicacion 10, en el que el uno o mas recursos (120) incluyen una tabla de despacho 5 de servicio de sistema SSDT, una tabla de despacho de interrupcion IDT, o una tabla de descriptor global GDT.
  13. 13. El procedimiento de la reivindicacion 8, que comprende adicionalmente recibir (914), en el monitor (108) de maquina virtual y despues de la ejecucion (908) del agente (144) de proteccion, una notificacion de que el agente (144) de proteccion ha finalizado la ejecucion.
  14. 14. El procedimiento de la reivindicacion 8, que comprende adicionalmente:
    10 apagar un sistema (114) operativo asociado con el modo (126) de privilegio de sistema operativo en respuesta a
    un intento de acceso , desde el modo (126) de privilegio de sistema operativo, del rango de memoria (206, 306) o el agente (144) de proteccion; y/o
    realizar ciclos (916) entre la ejecucion (908) del agente (144) de proteccion y la no ejecucion del agente (144) de proteccion, de manera que al menos cuando se ejecuta el agente (144) de proteccion es inalterable o inaccesible 15 desde el modo (126) de privilegio de sistema operativo.
ES07869154.0T 2007-01-25 2007-12-12 Agentes de protección y modos de privilegio Active ES2683074T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/627,320 US8380987B2 (en) 2007-01-25 2007-01-25 Protection agents and privilege modes
US627320 2007-01-25
PCT/US2007/087225 WO2008091452A1 (en) 2007-01-25 2007-12-12 Protection agents and privilege modes

Publications (1)

Publication Number Publication Date
ES2683074T3 true ES2683074T3 (es) 2018-09-24

Family

ID=39644770

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07869154.0T Active ES2683074T3 (es) 2007-01-25 2007-12-12 Agentes de protección y modos de privilegio

Country Status (10)

Country Link
US (1) US8380987B2 (es)
EP (1) EP2115570B1 (es)
JP (2) JP5055380B2 (es)
CN (1) CN101589364B (es)
BR (1) BRPI0720921B1 (es)
CL (1) CL2008000168A1 (es)
ES (1) ES2683074T3 (es)
RU (1) RU2468418C2 (es)
TW (1) TWI475388B (es)
WO (1) WO2008091452A1 (es)

Families Citing this family (268)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8539582B1 (en) * 2004-04-01 2013-09-17 Fireeye, Inc. Malware containment and security analysis on connection
US9027135B1 (en) 2004-04-01 2015-05-05 Fireeye, Inc. Prospective client identification using malware attack detection
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US7873955B1 (en) 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US7856661B1 (en) 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7870387B1 (en) 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8190778B2 (en) * 2007-03-06 2012-05-29 Intel Corporation Method and apparatus for network filtering and firewall protection on a secure partition
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
US9164784B2 (en) * 2007-10-12 2015-10-20 International Business Machines Corporation Signalizing an external event using a dedicated virtual central processing unit
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
US8515075B1 (en) 2008-01-31 2013-08-20 Mcafee, Inc. Method of and system for malicious software detection using critical address space protection
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
US8776028B1 (en) * 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
US8341749B2 (en) * 2009-06-26 2012-12-25 Vmware, Inc. Preventing malware attacks in virtualized mobile devices
US8381284B2 (en) * 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8341627B2 (en) 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US8621460B2 (en) * 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US9552497B2 (en) 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8495750B2 (en) 2010-08-31 2013-07-23 International Business Machines Corporation Filesystem management and security system
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US20120144489A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
EP3651042A1 (en) * 2011-03-22 2020-05-13 Telefonaktiebolaget LM Ericsson (publ) Method for switching between virtualized and non-virtualized system operation
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US20120255003A1 (en) * 2011-03-31 2012-10-04 Mcafee, Inc. System and method for securing access to the objects of an operating system
US8863283B2 (en) 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US8966629B2 (en) * 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8650642B2 (en) * 2011-03-31 2014-02-11 Mcafee, Inc. System and method for below-operating system protection of an operating system kernel
US9298910B2 (en) 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
JP6063941B2 (ja) 2011-08-30 2017-01-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. システム管理要求のための仮想高特権モード
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8788763B2 (en) * 2011-10-13 2014-07-22 International Business Machines Corporation Protecting memory of a virtual guest
US8782351B2 (en) * 2011-10-13 2014-07-15 International Business Machines Corporation Protecting memory of a virtual guest
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
CN102521531B (zh) * 2011-11-24 2014-11-12 华中科技大学 基于硬件虚拟化的密码保护系统
US9916454B2 (en) 2011-12-22 2018-03-13 Intel Corporation User controllable platform-level trigger to set policy for protecting platform from malware
EP2795511A4 (en) 2011-12-22 2015-12-16 Intel Corp USER-CONTROLLABLE PLATFORM LEVEL SHIFTER FOR SETTING GUIDELINES FOR THE PROTECTION OF THE PLATFORM FROM DAMAGE PROGRAMS
CN104025041B (zh) * 2011-12-29 2018-05-25 英特尔公司 管理员模式执行保护
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US20130312099A1 (en) * 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US9405682B2 (en) * 2012-06-23 2016-08-02 Microsoft Technology Licensing, Llc Storage device access using unprivileged software code
EP2864876B1 (en) * 2012-06-26 2017-10-04 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
US8832837B2 (en) * 2012-06-29 2014-09-09 Mcafee Inc. Preventing attacks on devices with multiple CPUs
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9183161B2 (en) * 2012-12-28 2015-11-10 Intel Corporation Apparatus and method for page walk extension for enhanced security checks
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9170956B2 (en) * 2013-02-07 2015-10-27 Texas Instruments Incorporated System and method for virtual hardware memory protection
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9824209B1 (en) 2013-02-23 2017-11-21 Fireeye, Inc. Framework for efficient security coverage of mobile software applications that is usable to harden in the field code
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9009822B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9407505B2 (en) * 2013-03-04 2016-08-02 Amazon Technologies, Inc. Configuration and verification by trusted provider
US9565202B1 (en) 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
WO2014142817A1 (en) * 2013-03-13 2014-09-18 Intel Corporation Managing device driver cross ring accesses
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
WO2014145805A1 (en) 2013-03-15 2014-09-18 Mandiant, Llc System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9251343B1 (en) 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
EP2981925B1 (en) * 2013-04-05 2019-08-28 OLogN Technologies AG Systems, methods and apparatuses for protection of antivirus software
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US9542230B2 (en) * 2013-05-15 2017-01-10 Apple Inc. System and method for selective timer coalescing
US9904575B2 (en) 2013-05-15 2018-02-27 Apple Inc. System and method for selective timer rate limiting
RU2541120C2 (ru) 2013-06-06 2015-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных исполняемых файлов на основании сходства ресурсов исполняемых файлов
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9536091B2 (en) 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US9888016B1 (en) 2013-06-28 2018-02-06 Fireeye, Inc. System and method for detecting phishing using password prediction
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9117080B2 (en) * 2013-07-05 2015-08-25 Bitdefender IPR Management Ltd. Process evaluation for malware detection in virtual machines
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US10192052B1 (en) 2013-09-30 2019-01-29 Fireeye, Inc. System, apparatus and method for classifying a file as malicious using static scanning
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US10089461B1 (en) 2013-09-30 2018-10-02 Fireeye, Inc. Page replacement code injection
EP3061030A4 (en) 2013-10-24 2017-04-19 McAfee, Inc. Agent assisted malicious application blocking in a network environment
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
JP5963313B2 (ja) * 2013-12-19 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、方法、及び、プログラム
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9756069B1 (en) * 2014-01-10 2017-09-05 Trend Micro Inc. Instant raw scan on host PC with virtualization technology
US9292686B2 (en) * 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
WO2016004263A1 (en) 2014-07-01 2016-01-07 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
US9213840B2 (en) 2014-05-15 2015-12-15 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US9203855B1 (en) 2014-05-15 2015-12-01 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
US9390267B2 (en) 2014-05-15 2016-07-12 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
RU2585978C2 (ru) * 2014-09-30 2016-06-10 Закрытое акционерное общество "Лаборатория Касперского" Способ вызова системных функций в условиях использования средств защиты ядра операционной системы
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10725770B2 (en) 2015-01-19 2020-07-28 Vmware, Inc. Hot-swapping operating systems using inter-partition application migration
US10445123B2 (en) 2015-01-19 2019-10-15 Vmware, Inc. Hypervisor exchange with virtual-machine consolidation
US10007546B2 (en) * 2015-01-19 2018-06-26 Vmware, Inc. Operating-system exchanges using memory-pointer transfers
US9779240B2 (en) * 2015-01-30 2017-10-03 Vmware, Inc. System and method for hypervisor-based security
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US9958933B2 (en) 2015-06-04 2018-05-01 Apple Inc. Opportunistic waking of an application processor
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539436B (en) * 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10216927B1 (en) 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10395029B1 (en) * 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
EP3369028B1 (en) * 2015-10-29 2021-01-20 Hewlett-Packard Development Company, L.P. Checking a security value calculated for a part of a program code
US9536088B1 (en) 2015-11-09 2017-01-03 AO Kaspersky Lab System and method for protection of memory in a hypervisor
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
RU2610228C1 (ru) * 2015-12-18 2017-02-08 Акционерное общество "Лаборатория Касперского" Система и способ выполнения запросов процессов операционной системы к файловой системе
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US12248560B2 (en) * 2016-03-07 2025-03-11 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US12339979B2 (en) 2016-03-07 2025-06-24 Crowdstrike, Inc. Hypervisor-based interception of memory and register accesses
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
RU2626350C1 (ru) * 2016-04-11 2017-07-26 Андрей Сергеевич Моляков Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса
US10705867B2 (en) 2016-06-22 2020-07-07 Vmware, Inc. Hypervisor exchange with virtual machines in memory
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10387186B2 (en) 2017-06-28 2019-08-20 Vmware, Inc. Hypervisor with virtual-memory file system
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US10534730B1 (en) * 2018-12-20 2020-01-14 Ati Technologies Ulc Storing microcode for a virtual function in a trusted memory region
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US12074887B1 (en) 2018-12-21 2024-08-27 Musarubra Us Llc System and method for selectively processing content after identification and removal of malicious content
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
JP7416480B2 (ja) * 2019-08-16 2024-01-17 フィドゥシアエッジ テクノロジーズ カンパニー リミテッド オープンインターコネクトを介してヘテロジニアスプロセッサ上でリモート認証及び情報分離を備えた信頼できるコンピューティングを実行するためのシステム及び方法
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
CN113867828B (zh) * 2020-06-30 2025-05-16 深圳引望智能技术有限公司 一种运行进程的方法及装置
CN112799776B (zh) * 2020-12-31 2022-03-25 科东(广州)软件科技有限公司 多分区操作系统监控方法、装置、计算设备及存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US5469556A (en) 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5684948A (en) 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
GB2325061B (en) 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
RU2134931C1 (ru) 1999-03-15 1999-08-20 ОАО "Всероссийский научно-исследовательский институт автоматизации управления в непромышленной сфере" Способ обеспечения доступа к объектам в операционной системе мсвс
US7210040B2 (en) 2000-07-14 2007-04-24 Computer Associates Think, Inc. Detection of suspicious privileged access to restricted computer resources
TW472190B (en) * 2000-09-08 2002-01-11 Inventec Corp Method for directly accessing mass storage under protection mode
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7631160B2 (en) 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
KR100389206B1 (ko) 2001-04-25 2003-06-27 주식회사 성진씨앤씨 컴퓨터 운영 시스템 보호 방법 및 장치
GB2376761A (en) 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
GB2378535A (en) 2001-08-06 2003-02-12 Ibm Method and apparatus for suspending a software virtual machine
US7272832B2 (en) 2001-10-25 2007-09-18 Hewlett-Packard Development Company, L.P. Method of protecting user process data in a secure platform inaccessible to the operating system and other tasks on top of the secure platform
JP4256107B2 (ja) 2002-03-07 2009-04-22 富士通株式会社 データサーバへの不正侵入対処方法、及びプログラム
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US20050160423A1 (en) 2002-12-16 2005-07-21 Bantz David F. Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations
US7793286B2 (en) 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
US20050114687A1 (en) 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
US20050132122A1 (en) 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7222062B2 (en) 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7802250B2 (en) 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7694121B2 (en) 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
US8955104B2 (en) 2004-07-07 2015-02-10 University Of Maryland College Park Method and system for monitoring system memory integrity
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7409719B2 (en) 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US8856473B2 (en) 2005-07-01 2014-10-07 Red Hat, Inc. Computer system protection based on virtualization
AU2006100099A4 (en) 2006-02-08 2006-03-16 Pc Tools Technology Pty Limited Automated Threat Analysis System
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources

Also Published As

Publication number Publication date
BRPI0720921B1 (pt) 2018-11-13
CL2008000168A1 (es) 2009-01-09
JP5055380B2 (ja) 2012-10-24
TW200836064A (en) 2008-09-01
JP2010517162A (ja) 2010-05-20
CN101589364A (zh) 2009-11-25
JP2012198927A (ja) 2012-10-18
US8380987B2 (en) 2013-02-19
EP2115570B1 (en) 2018-06-13
EP2115570A4 (en) 2010-06-16
BRPI0720921A2 (pt) 2014-08-05
TWI475388B (zh) 2015-03-01
US20080184373A1 (en) 2008-07-31
RU2009128673A (ru) 2011-01-27
CN101589364B (zh) 2016-03-09
JP5249450B2 (ja) 2013-07-31
EP2115570A1 (en) 2009-11-11
RU2468418C2 (ru) 2012-11-27
BRPI0720921A8 (pt) 2017-01-17
WO2008091452A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
ES2683074T3 (es) Agentes de protección y modos de privilegio
CN101589365B (zh) 用于保护操作系统资源的方法
US10296470B2 (en) Systems and methods for dynamically protecting a stack from below the operating system
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
US9946562B2 (en) System and method for kernel rootkit protection in a hypervisor environment
EP2766843B1 (en) System and method for kernel rootkit protection in a hypervisor environment
US10108800B1 (en) ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods