ES2683074T3 - Agentes de protección y modos de privilegio - Google Patents
Agentes de protección y modos de privilegio Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; 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)
- 5101520253035404550REIVINDICACIONES1. 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; yejecutar (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. 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. 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. 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. 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. 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. 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/orealizar 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. 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; yejecutar (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. 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. 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. 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. 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. 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. 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 aun 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/orealizar 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.
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)
| 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)
| 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 |
-
2007
- 2007-01-25 US US11/627,320 patent/US8380987B2/en active Active
- 2007-12-12 EP EP07869154.0A patent/EP2115570B1/en active Active
- 2007-12-12 WO PCT/US2007/087225 patent/WO2008091452A1/en not_active Ceased
- 2007-12-12 RU RU2009128673/08A patent/RU2468418C2/ru not_active IP Right Cessation
- 2007-12-12 JP JP2009547243A patent/JP5055380B2/ja not_active Expired - Fee Related
- 2007-12-12 ES ES07869154.0T patent/ES2683074T3/es active Active
- 2007-12-12 CN CN200780050472.6A patent/CN101589364B/zh active Active
- 2007-12-12 BR BRPI0720921A patent/BRPI0720921B1/pt not_active IP Right Cessation
- 2007-12-25 TW TW096150027A patent/TWI475388B/zh not_active IP Right Cessation
-
2008
- 2008-01-21 CL CL2008000168A patent/CL2008000168A1/es unknown
-
2012
- 2012-06-14 JP JP2012134970A patent/JP5249450B2/ja not_active Expired - Fee Related
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 |