MX2013013970A - Sistema y metodo para conservar referencias en los aislamientos de procesos. - Google Patents

Sistema y metodo para conservar referencias en los aislamientos de procesos.

Info

Publication number
MX2013013970A
MX2013013970A MX2013013970A MX2013013970A MX2013013970A MX 2013013970 A MX2013013970 A MX 2013013970A MX 2013013970 A MX2013013970 A MX 2013013970A MX 2013013970 A MX2013013970 A MX 2013013970A MX 2013013970 A MX2013013970 A MX 2013013970A
Authority
MX
Mexico
Prior art keywords
references
list
document
process isolation
isolation environment
Prior art date
Application number
MX2013013970A
Other languages
English (en)
Inventor
Ivan Krstic
Pierre-Oliver J Martel
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of MX2013013970A publication Critical patent/MX2013013970A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)

Abstract

En el presente de describen sistemas, métodos, y medios de almacenamiento legibles por computadora no transitorios para conservar referencias en aislamientos de procesos. Un sistema que pone en práctica el método que recibe un documento para utilizar en un ambiente de aislamiento de procesos y pasa el documento a un analizador sintáctico, a través de un coordinador. El analizador sintáctico encuentra referencias en el documento a otros recursos y elabora a lista de referencias. El sistema pasa la lista de referencias a un verificador que verifica cada referencia y elabora una lista de referencias verificadas. El sistema pasa la lista de referencias verificadas a la aplicación con aislamiento de procesos que extiende el aislamiento de procesos para incluir los recursos en la lista de referencias verificadas. En una modalidad, el sistema mantiene referencias en aislamiento de procesos sin el uso de un coordinador.

Description

SISTEMA Y MÉTODO PARA CONSERVAR REFERENCIAS EN LOS AISLAMIENTOS DE PROCESOS CAMPO DE LA INVENCIÓN La presente descripción se relaciona con la seguridad informática y más específicamente con conservar referencias en documentos para uso en un ambiente de aislamiento de procesos.
ANTECEDENTES DE LA INVENCIÓN La seguridad informática es un aspecto crítico del mundo de la cómputo. Muchas industrias diferentes, incluyendo las industrias de comunicación, entretenimiento, transporte, financieras y médicas dependen de las computadoras. La seguridad informática involucra la protección de estos sistemas de cómputo vitales mediante la prevención y detección de ataques informáticos. Los intrusos dañan los sistemas de cómputo de maneras diferentes como robando contraseñas, emitiendo ataques de denegación de servicio y distribuyendo software malintencionado como virus y gusanos.
La protección de los sistemas de cómputo de los intrusos es una tarea desafiante y siempre cambiante. Existe una diversidad de métodos de protección de sistemas de cómputo, desde requerir a los usuarios cambiar frecuentemente las contraseñas hasta el empleo de complejos algoritmos criptográficos en un sistema de computación. Un método para proteger un sistema de computación es aislar los procesos de un programa de cómputo para proteger un sistema de computación de un programa potencialmente malintencionado. Un aislamiento de procesos es un mecanismo utilizado para separar un programa de cómputo en funcionamiento de otros programas y/o recursos de cómputo. Algunos sistemas de cómputo seguros ejecutan programas no confiables o programas distribuidos por personas no confiables, en los aislamientos de procesos. Las restricciones del aislamiento de procesos limitan los recursos a los que puede acceder un programa de cómputo. Un ejemplo de un ambiente de aislamiento de procesos es un applet (pequeño programa de Java) que funciona en una máquina virtual o un interprete como Adobe® Flash® o Microsoft® Silverlight®.
Los documentos almacenados en formatos de intercambio tales como Formato de Documento Portátil (PDF por sus siglas en inglés) o Apple® Quicktime® pueden contener referencias embebidas en otros archivos. Cuando un sistema de computación no confía en dicho archivo, puede aislar el proceso de la aplicación que accede al archivo no confiable. Cuando estos documentos se abren mediante la aplicación con aislamiento de procesos, la aplicación no puede seguir las referencias hacia otros archivos debido a las restricciones colocadas por el sistema de computación en la aplicación con aislamiento de procesos. La inaccesibilidad de las referencias a los otros documentos en una aplicación con aislamiento de procesos puede ser frustrante para los usuarios. Los usuarios inexpertos pueden simplemente darse por vencidos y tener una mala impresión de la plataforma de cómputo, mientras que usuarios más experimentados o técnicamente enfocados pueden intentar evadir el aislamiento de procesos, causando inadvertidamente de este modo una vulnerabilidad de seguridad potencialmente seria. Los usuarios que desean información adicional acerca de las referencias incluidas en un documento no tienen forma de acceder a estas referencias en una aplicación con aislamiento de procesos.
SUMARIO DE LA INVENCIÓN Características y ventajas adicionales de la divulgación serán establecidas en la siguiente descripción y en parte serán evidentes de la descripción o se pueden aprender de las prácticas de los principios divulgados en el presente. Las características y ventajas de la divulgación se pueden alcanzar y obtener por medio de los instrumentos y combinaciones señalados particularmente en las reivindicaciones anexas. Estas y otras características de la divulgación serán más evidentes a partir de la siguiente descripción y las reivindicaciones anexas o se pueden aprender mediante la práctica de los principios establecidos en el presente.
Se divulgan sistemas, métodos, y medios de almacenamiento legibles por computadora no transitorios para conservar referencias en aislamientos de procesos. Un sistema que emplea el método recibe un documento, como un PDF, para utilizarse en un ambiente de aislamiento de procesos. El sistema pasa el documento a un coordinador que a su vez pasa el documento a un analizador sintáctico. El analizador sintáctico identifica referencias en el documento a otros recursos y regresa una lista de referencias al coordinador. Entonces, el coordinador pasa la lista de referencias a un verificador y de manera opcional pasa otros parámetros que indican el tipo de documento original, una seguridad deseada y/o el nivel de confianza para manejar la lista de referencias, una cuenta de usuario y así sucesivamente. El verificador verifica cada recurso asociado a cada referencia y regresa al coordinador la lista de referencias verificadas. El verificador puede verificar referencias cuando el formato de archivo de referencia es de un tipo esperado y/o el sistema de computación se comporta de una forma esperada cuando se abre el archivo. El verificador puede revisar otros atributos de recursos asociados mediante la lista de referencias. Por ejemplo, el verificador puede confirmar que los recursos se han firmado de manera apropiada, una suma de comprobación del recurso, los atributos del archivo del recurso y/u otras características que pueden indicar que el recurso es confiable, esperado, y/o auténtico. El verificador pasa la lista de referencias verificadas de regreso al coordinador que a su vez pasa la lista de referencias verificadas a la aplicación. La aplicación puede entonces modificar el ambiente de aislamiento de procesos basada en la lista de referencias verificadas para producir un ambiente de aislamiento de procesos modificado que incluye las referencias verificadas además del documento original o proporciona acceso a los recursos indicados por las referencias verificadas.
En una modalidad, el sistema pasa el documento directamente al analizador sintáctico, sin la utilización de un coordinador. El analizador sintáctico encuentra referencias en el documento a otros recursos y elabora una lista de referencias. El sistema pasa la lista de referencias directamente al verificador, sin la utilización de un coordinador. El verificador verifica cada recurso asociado con cada referencia y elabora una lista de referencias verificadas. El verificador pasa la lista de referencias verificadas directamente a la aplicación, que entonces a su vez extiende el ambiente de aislamiento de procesos para incluir las referencias verificadas además del documento original. En esta modalidad no se utiliza un coordinador; en su lugar, la aplicación se comunica directamente con el analizador sintáctico y el verificador. Aunque es potencialmente menos seguro este enfoque modificado para preservar las referencias en los aislamientos de procesos, es más simple que el enfoque original y puede ser ventajoso para propósitos de implementación.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Con el fin de describir la forma en que se pueden obtener lo mencionado anteriormente y otras ventajas y características de la descripción, se procesará por referencia una descripción más particular de los principios descritos brevemente con anterioridad para modalidades específicas que se ilustran en los dibujos anexos. En el entendido de que estos dibujos solamente representan modalidades ejemplares de la descripción y por lo tanto no deben considerarse como limitantes de este ámbito, los principios en el presente se describen y explican con particularidad y detalle adicionales a través del uso de los dibujos que se acompañan en los cuales: La Figura 1 ilustra un ejemplo de la modalidad del sistema; La Figura 2 ilustra un primer ejemplo de una modalidad del sistema de servicios confiables incluyendo un coordinador; La Figura 3 ilustra un ejemplo de un ambiente de aislamiento de procesos no modificado para ver un documento con referencias embebidas; La Figura 4 ilustra un ejemplo de un ambiente de aislamiento de procesos modificado para ver un documento con referencias embebidas; La Figura 5 ilustra una modalidad de un método de conservación de referencia; La Figura 6 ilustra un ejemplo sistema de arquitectura para analizar sintácticamente y verificar referencias en un documento para utilizarse en un ambiente de aislamiento de procesos; La Figura 7 ilustra un ejemplo de un ambiente de aislamiento de procesos; La Figura 8 ¡lustra un ejemplo de un ambiente de aislamiento de procesos modificado que muestra referencias verificadas y no verificadas; y La Figura 9 ¡lustra un segundo ejemplo de una modalidad de un sistema de servicios confiables sin un coordinador.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN Varias modalidades de la descripción se discuten a detalle a continuación. Mientras se discuten implementaciones específicas, se debe entender que esto únicamente se realiza con fines ilustrativos. Un experto en la técnica reconocerá que se pueden utilizar otros componentes y configuraciones sin alejarse del espíritu y el ámbito de la descripción.
La presente divulgación responde a la necesidad en la técnica para conservar referencias en aislamientos de procesos. Se divulgan un sistema, un método y un medio legible por computadora no transitorio que conservan referencias en documentos para utilizarse en un ambiente de aislamiento de procesos. Una breve descripción introductoria de un sistema de uso general básico o un dispositivo de cómputo en La Figura 1 que se puede utilizar para practicar los conceptos se divulga en el presente. Después sigue una descripción más detallada de cómo conservar referencias en aislamientos de procesos. Ahora la divulgación recurre a la Figura 1.
Con referencia a la Figura 1 , un sistema ejemplar 100 incluye un dispositivo de cómputo de uso general 100, que incluye una unidad de proceso (CPU o procesador) 120 y un bus de sistema 110 que acopla varios componentes del sistema incluyendo la memoria del sistema 130 tal como memoria de solo lectura (ROM por sus siglas en inglés) 140 y memoria de acceso aleatorio (RAM por sus siglas en inglés) 150 al procesador 120. El sistema 100 puede incluir una caché 122 de memoria de alta velocidad conectada directamente con, en cercana proximidad a, o integrada como parte del procesador 120. El sistema 100 copia información de la memoria 130 y/o el dispositivo de almacenamiento 160 a la caché 122 para un rápido acceso por parte del procesador 120. De esta forma, la caché proporciona un aumento en el desempeño que evita demoras del procesador 120 mientras espera la información. Estos y otros módulos pueden controlar o pueden configurarse para controlar al procesador 120 para realizar varias acciones. También puede estar disponible para su utilización otra memoria del sistema 130. La memoria 130 puede incluir múltiples tipos de memoria diferentes con diferentes características de desempeño. Se puede apreciar que la divulgación puede operar en un dispositivo de cómputo 100 con más de un procesador 120 o en un grupo o clúster de dispositivos de cómputo conectados en red para proporcionar una mayor capacidad de procesamiento. El procesador 120 puede incluir cualquier procesador de uso general y un módulo de hardware o módulo de software, tal como el módulo 1 162, el módulo 2 164, y el módulo 3 166 almacenados en el dispositivo de almacenamiento 160, configurado para controlar el procesador 120 al igual que un procesador de propósito especial donde se incorporan instrucciones de software dentro del diseño del procesador real. El procesador 120 puede esencialmente ser un sistema de computación totalmente autónomo, que contiene núcleos o procesadores múltiples, un bus, controlador de memoria, caché, etc. Un procesador multinúcleo puede ser simétrico o asimétrico.
El bus del sistema 110 puede ser de cualquiera de varios tipos de estructuras bus incluyendo un bus memoria o controlador de memoria, un bus periférico y un bus local que utilice cualquiera de las variedades de arquitecturas bus. Un sistema básico de entrada/salida (BIOS por sus siglas en inglés) almacenado en ROM 140 o similares, pueden proporcionar la rutina básica que ayuda a la transferencia de información entre los elementos dentro del dispositivo de cómputo 100, como durante el arranque. El dispositivo de cómputo 100 además incluye dispositivos de almacenamiento 160 tales como una unidad de disco duro, una unidad de disco magnético, una unidad de disco óptico, una unidad de cinta o similares. El dispositivo de almacenamiento 160 puede incluir módulos de software 162, 164, 166 para controlar el procesador 120. Se contemplan otros módulos de hardware o software. El dispositivo de almacenamiento 160 está conectado al bus de sistema 110 mediante una interfaz de unidad de disco. Las unidades de disco y los medios de almacenamiento legibles por computadora asociados proporcionan almacenamiento no volátil de instrucciones legibles por computadora, estructuras de información, módulos de programa y otra información para el dispositivo de cómputo 100. En un aspecto, un módulo de hardware que realiza una función en particular incluye el componente de software almacenado en un medio legible por computadora no transitorio en relación con los componentes de hardware necesarios, tales como el procesador 120, el bus 110, pantalla 170 y demás, para llevar a cabo la función. Los componentes básicos son conocidos por los expertos en la técnica y se contemplan variaciones apropiadas dependiendo del tipo de dispositivo, tal como si el dispositivo 100 es un pequeño dispositivo de cómputo de mano, una computadora de escritorio o un servidor.
Aunque la modalidad ejemplar descrita en el presente emplea el disco duro 160, los expertos en la técnica deben notar que también se pueden utilizar en el ambiente operativo ejemplar otros tipos de medios legibles por computadora que pueden almacenar información que son accesibles por una computadora, tales como casetes magnéticos, tarjetas de memoria de destello, discos versátiles digitales, cartuchos, memorias de acceso aleatorio (RAMs) 150, memoria de solo lectura (ROM) 140, un cable o señal inalámbrica que contiene un flujo de bits y similares. Medios de almacenamiento legibles por computadora no transitorios excluyen expresamente medios tales como energía, señales portadoras, señales electromagnéticas, y señales per se.
Para permitir la interacción con el dispositivo de cómputo 100, un dispositivo de entrada 190 representa cualquier número de mecanismos de entrada, tales como un micrófono para hablar, una pantalla sensible al tacto para entradas de expresión o gráficas, teclado, ratón, entrada de movimiento, habla y demás. Un dispositivo de salida 170 puede también tener uno o más mecanismos de salida conocidos por los expertos en la técnica. En algunos casos, los sistemas multimodales permiten a un usuario proporcionar múltiples tipos de entrada para comunicarse con el dispositivo de cómputo 100. La interfaz de comunicaciones 180 generalmente controla y dirige las entradas del usuario y las salidas del sistema. No existe restricción alguna para operar en cualquier disposición de hardware en particular y por lo tanto las características básicas aquí pueden ser fácilmente sustituidas por hardware mejorado o disposiciones de firmware al tiempo que se desarrollan.
Para mayor claridad de la explicación, la modalidad del sistema ilustrativo se presenta como incluyendo bloques funcionales individuales que incluyen bloques funcionales etiquetados como un "procesador" o procesador 120. Las funciones que estos bloques representan se pueden proporcionar a través del uso ya sea de hardware compartido o dedicado, incluyendo, sin limitar, hardware capaz de ejecutar software y hardware, tal como un procesador 120, que es construido expresamente para operar como un equivalente al software que se ejecuta en un procesador de uso general. Por ejemplo las funciones de uno o más procesadores presentados en la Figura 1 pueden ser proporcionados por un solo procesador compartido o por procesadores múltiples. (El uso del término "procesador" no se debe interpretar para referirse exclusivamente a hardware capaz de ejecutar software.) Modalidades ilustrativas pueden incluir un microprocesador y/o un hardware de procesador de señales digitales (DSP por sus siglas en inglés), memoria de solo lectura (ROM) 140 para almacenar software que realiza las operaciones analizadas a continuación y memoria de acceso aleatorio (RAM) 150 para almacenar los resultados. También pueden proporcionarse modalidades de hardware de integración en escala muy grande (VLSI por sus siglas en inglés), al igual que circuitos VLSI (integración a muy grande escala) personalizados en combinación con un circuito DSP de uso general.
Las operaciones lógicas de las varias modalidades se llevan a cabo como: (1 ) una secuencia de etapas, operaciones o procedimientos implementados por computadora funcionando en un circuito programable dentro de una computadora de uso general, (2) una secuencia de etapas, operaciones o procedimientos implementados por computadora funcionando en un circuito programable de uso específico; y/o (3) motores de programa o módulos de máquinas interconectados dentro de los circuitos programables. El sistema 100 mostrado en la Figura 1 puede practicar todos o parte de los métodos referidos, puede ser parte de los sistemas referidos y/o puede operar de conformidad con las instrucciones en los medios de almacenamiento legibles por computadora no transitorios referidos. Dichas operaciones lógicas se pueden implementar como módulos configurados para controlar el procesador 120 para llevar a cabo funciones particulares de conformidad con la programación del módulo. Por ejemplo, la Figura 1 ilustra tres módulos, módulo 1 162, módulo 2 164 y módulo 3 166, que son módulos configurados para controlar el procesador 120. Estos módulos se pueden almacenar en el dispositivo de almacenamiento 160 y cargar en RAM 150 o en la memoria 130 durante el tiempo de ejecución o pueden ser almacenados, como se conoce en la técnica, en otras localizaciones de memoria legibles por computadora.
Habiendo revelado algunos componentes de un sistema de computación, la divulgación regresa a una discusión del manejo de referencias en un documento en un ambiente de aislamiento de procesos. La Figura 2 ilustra un trío se servicios confiables para mantener referencias en un aislamiento de procesos. El trío de servicios confiables son un coordinador 202 que coordina el proceso de mantenimiento de referencia, un analizador sintáctico 204 que analiza sintácticamente un documento que contiene referencias embebidas a otros recursos y un verificador 206 que verifica cada referencia embebida a otros recursos. El coordinador, analizador sintáctico y verificador son considerados confiables y cada uno opera dentro de su propio aislamiento de procesos individual, que restringe los recursos a los que pueden acceder cada servicio. Los documentos almacenados en formatos de intercambio como PDF o formato de película Quicktime® pueden contener referencias embebidas a otros recursos, en donde las referencias son rutas de archivos. Cuando este tipo de documentos se abren en una aplicación con aislamiento de procesos, el sistema no puede seguir las referencias debido a que el aislamiento de procesos no permite el acceso al recurso referenciado que se encuentra afuera del ambiente de aislamiento de procesos. Cuando las referencias embebidas son internas al documento, la aplicación con aislamiento de procesos tiene acceso al recurso, porque la referencia es interna. Los recursos internos no requieren una extensión de aislamiento de procesos, así que el analizador sintáctico puede simplemente ignorarlos y/o el verificador puede saltarlos. Sin embargo, en el remoto evento de que un documento contenga un enlace que se orienta hacia sí mismo, el sistema puede de manera opcional extender el aislamiento de procesos también para ese enlace. El proceso de mantenimiento de referencia descrito en el presente permite que una aplicación con aislamiento de procesos tenga acceso a referencias verificadas.
La Figura 3 ¡lustra un documento que almacena referencias que se abre en una aplicación limitada a un ambiente de aislamiento de procesos inicial y la Figura 4 ilustra el documento abierto en una aplicación limitada a un ambiente de aislamiento de procesos modificado. La aplicación 302 no puede acceder a los recursos 304 que son externos al ambiente de aislamiento de procesos, debido a que el sistema de computación ha colocado restricciones en la aplicación en el aislamiento de procesos. Sin embargo, las referencias internas 310 se tratan de forma diferente, debido a que no necesitan acceso a un recurso externo no verificado. Una vez que los servicios confiables llevan a cabo el proceso de conservar referencias en el documento, la aplicación modifica o extiende el ambiente de aislamiento de procesos de tal forma que el aislamiento de procesos incluya los recursos verificados por parte de los servicios confiables. Un usuario que accede al documento 406 en un ambiente de aislamiento de procesos modificado tiene acceso a las referencias verificadas 408 archivo 1 , archivo 2 y archivo 3. El sistema puede llevar a cabo el proceso de mantenimiento de referencia con referencias a recursos localmente o sobre una conexión de red tal como referencias a recursos en Internet.
La Figura 5 ilustra la modalidad de un método ejemplar. En aras de la claridad, el método se discute en términos de un sistema ejemplar 100 como se muestra en la Figura 1 configurado para practicar el método. Las etapas resumidas en el presente son ejemplares y se pueden implementar en cualquier combinación de las mismas, incluyendo combinaciones que excluyen, añaden o modifican ciertas etapas. Un sistema 100 que practica el método recibe un documento para utilizarse en un ambiente de aislamiento de procesos (502), pasa el documento a un analizador sintáctico que encuentra referencias en el documento para producir una lista de referencias (504) y pasa la lista de referencias a un verificador que verifica las referencias para producir una lista de referencias verificadas (506). Entonces el sistema 100 puede modificar el ambiente de aislamiento de procesos basado en la lista de referencias verificadas (508). Un documento puede ser cualquier archivo de computadora o archivos múltiples que contienen referencias a otros recursos, tales como documentos PDF y Quicktime®, sin limitar a estos formatos específicos. Un documento que requiere un ambiente de aislamiento de procesos puede ser un documento de una fuente no confiable o un documento que posiblemente ha sido alterado o un sistema puede requerir que todos los documentos se sometan al proceso de mantenimiento de referencia. El sistema puede colocar todos los documentos de un tipo específico en un ambiente de aislamiento de procesos. Las configuraciones de una aplicación específica o de un sistema operativo pueden influir en la decisión de si se utiliza un aislamiento de procesos al acceder a un archivo. El archivo mismo puede incluir un señalador o una etiqueta que indica si el archivo se debe usar en un aislamiento de procesos o no. Las referencias a otros recursos en un documento pueden ser referencias a otros archivos de computadora o referencias a otros archivos o recursos dentro del documento. Los recursos pueden ser tanto en el mismo formato que el documento original como en un formato diferente. Por ejemplo, un documento original en formato PDF puede contener referencias a otros archivos PDF o cualquier otro formato de archivo especificado por el usuario, la aplicación, el coordinador o el verificador tales como de Excel o de Word. El sistema 100 puede requerir que los documentos almacenados en formato de archivo Quicktime®, por ejemplo, solamente puedan acceder a otros formatos de video tales como AVI.
La Figura 6 ilustra referencias de conservación en un aislamiento de procesos. Una aplicación 602 envía el documento a un coordinador 604, que a su vez coordina la verificación de referencias a los recursos. El coordinador 604 pasa el documento a un analizador sintáctico 606 que encuentra referencias en el documento a otros recursos para producir una lista de referencias (504). El analizador sintáctico 606 puede operar por razones de seguridad dentro de su propio aislamiento de procesos de forma que el analizador sintáctico no tiene acceso a cualquier otro recurso que no sea el documento o la porción del documento que pasó el coordinador. El analizador sintáctico 606 analiza sintácticamente el documento encontrando referencias a otros archivos y produce una lista de referencias encontradas en el documento. Por ejemplo, el analizador sintáctico 606 puede analizar sintácticamente el lenguaje de marcas de hipertexto (HTML por siglas en inglés) para enlaces a documentos o imágenes, puede analizar sintácticamente el lenguaje de marcas extensible (XML por sus siglas en inglés) para etiquetas específicas o información o puede analizar sintácticamente el formato de documento portátil (PDF) para referencias a otros recursos. El analizador sintáctico 606 envía la lista de referencias de regreso al coordinador 604 que a su vez entonces envía la lista de referencias al verificador 608 para verificación de la salida de referencias en la lista por parte del analizador sintáctico (506).
El verificador también puede operar en su propio aislamiento de procesos de forma que al abrir un archivo de computadora potencialmente malintencionado o dañino no dañe el sistema de computación. Poniendo en funcionamiento al analizador sintáctico y/o al verificador en sus propios ambientes de aislamiento de procesos se puede proteger el resto del sistema de computación si la fuente contiene una amenaza o no es segura de alguna otra forma. En un ambiente de aislamiento de procesos, un virus puede desplazarse libremente sin embargo el sistema no permite cualquier acción fuera del aislamiento de procesos, protegiendo así el resto del sistema.
El verificador 608 abre cada recurso o archivo, en la lista de referencias y compara el comportamiento del sistema real con el comportamiento del sistema esperado. El verificador también puede verificar que un archivo sea un tipo de archivo esperado. Por ejemplo, el sistema 100 puede requerir que todas las referencias en la lista de referencias para un documento en particular sean archivos PDF. El verificador puede verificar que todas las referencias en la lista sean archivos PDF comprobando la extensión de nombre del archivo y/o abriendo el archivo. El verificador puede recibir parámetros y/o instrucciones por parte del coordinador 604 en relación con cuales aspectos de las referencias deben verificarse, como verificar las referencias y que tolerancias (si las hay) aplicar al momento de verificar las referencias. Por ejemplo, el verificador puede observar el comportamiento del sistema cuando se abre cada recurso y comparar ese comportamiento con el comportamiento del sistema esperado. El verificador no verificará una referencia que no se comporte de forma esperada, tal como la caída de un programa. En una variación, el verificador simplemente comprueba que un archivo exista en una ruta en particular indicada por la referencia. Una vez que el verificador completa la verificación de la lista de referencias, envía una lista de referencias verificadas de regreso al coordinador 604, que entonces envía la lista de referencias verificadas de regreso a la aplicación 602. La aplicación extiende el aislamiento de procesos original para el documento basado en la lista de referencias verificadas (508), creando un ambiente de aislamiento de procesos modificado. El ambiente de aislamiento de procesos modificado incluye y/o proporciona acceso a los recursos asociados con la lista de referencias verificada por el verificador.
La Figura 7 ilustra un archivo ejemplar abierto con la aplicación con aislamiento de procesos. El sistema abre el archivo weather.pdf con una aplicación con aislamiento de procesos 702. El archivo weather contiene referencias embebidas a tornadoes.pdf 704, wind.docx 706, tsunami_warning.pdf 708 y temperature.xlsx 710. El ambiente de aislamiento de procesos no permite a la aplicación acceder a las referencias embebidas, lo que puede crear frustración por parte del usuario que trata de acceder las referencias embebidas. Permitir el acceso a referencias dentro de una aplicación de aislamiento de procesos puede ser beneficioso para usuarios que desean información adicional que la brinda el documento.
La Figura 8 ilustra un sistema después de extraer, analizar sintácticamente y verificar las referencias en el documento y de extender el ambiente de aislamiento de procesos. La aplicación envía el archivo weather.pdf al coordinador, que a su vez envía el archivo al analizador sintáctico. El analizador sintáctico abre el archivo en un ambiente de aislamiento de procesos, encuentra las referencias embebidas a recursos, en este ejemplo los archivos tomadoes.pdf 704, wind.docx 706, tsunami_warning.pdf 708, y temperature.xlsx 710. El analizador sintáctico genera una lista de referencias embebidas a estos archivos y envía la lista de referencias al coordinador. El coordinador envía la lista de referencias al verificador 608 el cual opera en su propio ambiente de aislamiento de procesos. El verificador puede comprobar que el formato de archivo de cada archivo es de formato esperado y/o realizar medidas adicionales de verificación. Por ejemplo, si el sistema requiere que el verificador solamente verifique los archivos PDF en un documento en particular, comprueba que cada archivo sea en formato PDF. El verificador puede recibir instrucciones para verificar solamente archivos PDF o para verificar archivos PDF y de Microsoft Word, por ejemplo. En este ejemplo, el sistema requiere que el verificador solamente verifique PDF archivos. El verificador también puede abrir cada archivo en la lista de referencias y observar el comportamiento del sistema. Si el sistema se comporta como es esperado y el formato del archivo es del tipo esperado, el verificador puede verificar el archivo. El verificador envía una lista de referencias verificadas al coordinador, en este caso la lista de referencias verificadas son los archivos tornadoes.pdf 804 y tsunami_warning.pdf 808. Los archivos wind.docx 806 y temperature.xlsx 810 no están incluidos en la lista de referencias verificadas debido a que no son el tipo de archivo esperado, en este ejemplo, PDF. El coordinador envía la lista de referencias verificadas a la aplicación. La aplicación extiende el aislamiento de procesos 712 para crear un aislamiento de procesos modificado 812 que incluye las referencias verificadas tornadoes.pdf 804 y tsunami_warning.pdf 808. Los archivos wind.docx 806 y temperature.xlsx 810 no se permiten dentro del aislamiento de procesos modificado debido a que no fueron incluidos en la lista de referencias verificadas enviadas al coordinador por el verificador. La aplicación 802 dentro del aislamiento de procesos modificado 812 ahora tiene acceso a las referencias verificadas tornadoes.pdf 804 y tsunami_warning.pdf 808.
Desde la perspectiva de un usuario, hacer clic en un enlace en weather.pdf a tornadoes.pdf 804 o a tsunami_warning.pdf 808 sería transparente. El usuario podría hacer clic en enlaces a aquellos archivos y el sistema los puede abrir debido a que aquellos recursos se encuentran en el aislamiento de procesos modificado 812. Sin embargo, si el usuario hace clic en un enlace a wind.docx 806 o a temperature.xlsx 810, el sistema puede negar la solicitud de abrir ese recurso. Por ejemplo, el sistema puede simplemente ignorar solicitudes para acceder a recursos fuera del aislamiento de procesos. Alternativamente, el sistema puede presentar al usuario un mensaje de error que indica que el recurso deseado es inaccesible. El sistema puede presentar un mensaje al usuario que indica porque el recurso deseado es inaccesible, probablemente basado en un código o un mensaje el verificador que regresa. Asimismo, el sistema puede presentar esta y/u otra información al usuario y motivar o no al usuario a extender el ambiente de aislamiento de procesos modificado para proporcionar acceso al recurso inaccesible.
En un aspecto, el sistema puede guardar una copia de respaldo temporal de los otros recursos que no son accesibles en el aislamiento de procesos modificado como parte de extender o modificar el ambiente de aislamiento de procesos para incluir otros recursos referenciados en el documento. De esta forma, aún si el código malintencionado se ejecuta de alguna forma en el ambiente de aislamiento de procesos modificado y cambia los recursos, el sistema puede revertirse a la copia de respaldo temporal.
En otra modalidad, el sistema 100 conserva referencias en aislamientos de procesos sin necesidad del uso de un coordinador, como se muestra en la Figura 9. La aplicación 902 en un ambiente de aislamiento de procesos envía todo o parte del documento que tiene referencias embebidas al analizador sintáctico 904. El analizador sintáctico 904 encuentra referencias en el documento y elabora una lista de referencias. El analizador sintáctico 904 envía la lista de referencias directamente al verificador 906. El verificador 906 verifica al menos una referencia en la lista de referencias y genera una lista de referencias verificadas. La lista de referencias verificadas puede incluir cero, una o más referencias. El verificador 906 envía la lista de referencias verificadas a la aplicación 902, que a su vez extiende el aislamiento de procesos para crear un ambiente de aislamiento de procesos modificado si se incluye en la lista al menos una referencia verificada. El ambiente de aislamiento de procesos se extiende para incluir las referencias verificadas. A expensas de la seguridad, este enfoque modificado para conservar referencias en aislamientos de procesos es un esquema para poner en marcha más simple y potencialmente más fácil que no requiere el uso de un coordinador. El coordinador es el único proceso que en realidad no toca los recursos. El coordinador no analiza sintácticamente el documento, ni tampoco trata de inspeccionar los recursos externos. Por lo tanto, el coordinador es un proceso que no es probable que sea blanco de elementos de aprovechamiento de vulnerabilidad (exploits). Por consiguiente, el coordinador puede realizar algunas verificaciones adicionales que pueden o no estar relacionadas con la seguridad, con una disminución en el riesgo de elementos de aprovechamiento de vulnerabilidad u otros ataques.
En un aspecto relacionado con la experiencia del usuario y/o el desempeño percibido, al momento de procesar un documento para su uso en un aislamiento de procesos, el sistema puede inicialmente cargar el documento dentro de un aislamiento de procesos no modificado antes de analizar sintácticamente o verificar referencias de forma que el usuario pueda rápidamente cargar el documento para su visualización. Entonces, mientras que el usuario visualiza el documento, el sistema puede analizar sintácticamente y verificar referencias en el documento en el fondo y expandir el ambiente de aislamiento de procesos basándose en las referencias analizadas sintácticamente y verificadas. Esto proporciona al usuario la percepción de que el documento es cargado rápidamente, al tiempo que proporciona acceso retrasado a los recursos indicados por las referencias. El sistema puede analizar sintácticamente y verificar referencias en el fondo en la modalidad por lotes o una referencia a la vez. Por ejemplo, en la modalidad por lotes, el sistema analiza sintácticamente todas las referencias del documento, verifica todas las referencias y después extiende el ambiente de aislamiento de procesos como corresponde. Alternativamente, tan pronto como el sistema analiza sintácticamente una referencia, entonces el verificador puede verificar esa referencia y el sistema puede extender el ambiente de aislamiento de procesos para esa sola referencia, mientras que el analizador sintáctico continúa buscando otras referencias. En ambos casos, el ambiente de aislamiento de procesos primero se carga para visualizar el documento, después el ambiente de aislamiento de procesos se expande o de lo contrario se modifica en el fondo después de cargar el documento y mientras que el usuario puede navegar, visualizar o acceder al documento.
Modalidades dentro del ámbito de la presente divulgación pueden también incluir medios de almacenamiento legibles por computadora no transitorios y/o tangibles para portar o tener Instrucciones ejecutables por computadora o estructuras de información almacenadas al respecto. Dichos medios de almacenamiento legibles por computadora no transitorios pueden ser cualquier medio disponible al que se pueda acceder por medio de una computadora de uso general o de uso especial, incluyendo el diseño funcional de cualquier procesador de uso especial como se discutió con anterioridad. A modo de ejemplo y sin limitar, dicho medio legible por computadora no transitorio puede incluir dispositivos RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnéticos o cualquier otro medio que se pueda utilizar para llevar o almacenar medios de código de programación deseados en forma de Instrucciones ejecutables por computadora, estructuras de información o diseño de chip procesador. Cuando la información se transfiere o se proporciona a través de una red o cualquier otra conexión de comunicaciones (ya sea estructurada, inalámbrica o una combinación de las mismas) a una computadora, la computadora de forma adecuada visualiza la conexión como un medio legible por computadora. Por consiguiente, cualquiera de tales conexiones es llamada de manera apropiada un medio legible por computadora. Las combinaciones de lo anterior deben también incluirse también dentro del ámbito de los medios legibles por computadora.
Las instrucciones ejecutables por computadora incluyen, por ejemplo, instrucciones e información que provocan que una computadora de uso general, una computadora de uso especial o un dispositivo procesador de uso especial realice una función específica o un grupo of funciones. Las instrucciones ejecutables por computadora incluyen también módulos de programas que pueden ejecutar las computadoras en entornos autónomos o de red. Generalmente, los módulos de programa incluyen rutinas, programas, componentes, estructuras de información, objetos y las funciones inherentes en el diseño de procesadores con fines especiales, etc. que llevan a cabo tareas particulares o implementan tipos de información abstracta en particular. Las instrucciones ejecutables por computadora, las estructuras de información asociadas y los módulos de programa representan ejemplos de medios de códigos de programa para ejecutar etapas de los métodos divulgados en el presente. La secuencia particular de dichas instrucciones ejecutables o las estructuras de información asociadas representan ejemplos de los actos correspondientes para implementar las funciones descritas en dichas etapas.
Los expertos en la técnica entenderán que otras modalidades de la divulgación se pueden practicar en medios de entornos de computación de red con varios tipos de configuraciones de sistemas de cómputo, incluyendo computadoras personales, dispositivos de mano, sistemas de procesador múltiple, electrónicos basados en micro procesadores o de consumo programables, computadoras personales de red, minicomputadoras y similares. También se pueden practicar modalidades en entornos de computación distribuidos donde las tareas se realizan mediante dispositivos de procesamiento remotos y locales que están asociados (ya sea mediante enlaces estructurados, enlaces inalámbricos o por medio de una combinación de los mismos) a través de redes de comunicación. En un entorno de cómputo distribuido, los módulos de programa pueden estar localizados en ambos dispositivos de almacenamiento de memoria locales y remotos.
Las diversas modalidades descritas anteriormente solamente se ofrecen a manera de ilustración y no deben interpretarse con el fin de limitar el ámbito de la divulgación. Por ejemplo, los principios en el presente pueden aplicar a cualquier aplicación que utiliza el método de aislamiento de procesos para proteger un sistema de computación. Los expertos en la técnica fácilmente reconocerán varias modificaciones y cambios que se pueden realizar a los principios descritos en el presente si necesidad de seguir las modalidades ejemplares y las aplicaciones ilustradas y descritas en el presente y sin apartarse del espíritu y el ámbito de la divulgación.

Claims (15)

REIVINDICACIONES
1. Un método que comprende: recibir, a través de un procesador de un dispositivo de cómputo, un documento para utilizar en un ambiente de aislamiento de procesos; pasar el documento a un analizador sintáctico que encuentra referencias en el documento a otros recursos para producir una lista de referencias; pasar la lista de las referencias a un verificador que verifica que un recurso asociado a cada referencia en la lista de las referencias exista para producir una lista de referencias verificadas; y modificar el ambiente de aislamiento de procesos basado en la lista de referencias verificadas para producir un ambiente de aislamiento de procesos modificado.
2. El método de conformidad con la reivindicación 1 además comprende cargar el documento en el ambiente de aislamiento de procesos modificado basado en la lista de referencias verificadas.
3. El método de conformidad con la reivindicación 2, en donde el ambiente de aislamiento de procesos modificado proporciona acceso a las referencias verificadas además de al documento.
4. El método de conformidad con cualquiera de las reivindicaciones 1-3, en donde el ambiente de aislamiento de procesos proporciona acceso para operar dentro de un grupo restringido predefinido de recursos de cómputo.
5. El método de conformidad con la reivindicación 4, en donde el grupo restringido predefinido de recursos de cómputo comprende la lista de referencias.
6. Un sistema que comprende: un procesador; un medio de almacenamiento legible por computadora no transitorio que almacena instrucciones para controlar el procesador para realizar etapas que comprenden: recibir, por parte de un coordinador, una lista de referencias a otros recursos, en donde la lista de referencias se sacó de un documento para utilizarse en un ambiente de aislamiento de procesos; verificar un recurso respectivo indicado por cada referencia en la lista de referencias para producir una lista de referencias verificadas; y establecer un ambiente de aislamiento de procesos para el documento basado en la lista de referencias verificadas.
7. El sistema de conformidad con la reivindicación 6, en donde la verificación el recurso respectivo comprende comparar un formato de recurso real con un formato de recurso esperado.
8. El sistema de conformidad con la reivindicación 7, en donde el formato de recurso esperado corresponde con un formato del documento.
9. El sistema de conformidad con la reivindicación 7, en donde el formato recurso esperado es diferente a un formato del documento.
10. El sistema de conformidad con la reivindicación 6, en donde verificar el recurso respectivo comprende abrir el recurso respectivo y comparar el comportamiento del sistema real con el comportamiento del sistema esperado.
11. Un medio de almacenamiento legible por computadora no transitorio que almacena instrucciones que, cuando un dispositivo de computadora lo ejecuta, provoca que el dispositivo de computadora mantenga las referencias en un ambiente de aislamiento de procesos, las instrucciones comprenden: pasar un documento que contiene referencias para su uso en un ambiente de aislamiento de procesos a un coordinador; pasar el documento a un analizador sintáctico, a través del coordinador, en donde el analizador sintáctico encuentra referencias a otros recursos en el documento para producir una lista de referencias a otros recursos; pasar la lista de referencias a otros recursos a un verificador, a través del coordinador, en donde el verificador verifica los recursos indicados por la lista de referencias para producir una lista de referencias verificadas; y extender el ambiente de aislamiento de procesos para el documento basado en la lista de referencias verificadas.
12. El medio de almacenamiento legible por computadora no transitorio de conformidad con la reivindicación 1 1 , en donde el analizador sintáctico opera en un ambiente de aislamiento de procesos individual.
13. El medio de almacenamiento legible por computadora no transitorio de conformidad con la reivindicación 12, en donde el ambiente de aislamiento de procesos individual permite al analizador sintáctico acceder solamente al documento.
14. El medio de almacenamiento legible por computadora no transitorio de conformidad con cualquiera de las reivindicaciones 1 1 -13, en donde el verificador operar en un ambiente de aislamiento de procesos individual.
15. El medio de almacenamiento legible por computadora no transitorio de conformidad con la reivindicación 14, en donde el ambiente de aislamiento de procesos individual permite al verificador acceder solamente a la lista de referencias.
MX2013013970A 2011-06-03 2012-05-10 Sistema y metodo para conservar referencias en los aislamientos de procesos. MX2013013970A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/153,274 US8601579B2 (en) 2011-06-03 2011-06-03 System and method for preserving references in sandboxes
PCT/US2012/037400 WO2012166316A1 (en) 2011-06-03 2012-05-10 System and method for preserving references in sandboxes

Publications (1)

Publication Number Publication Date
MX2013013970A true MX2013013970A (es) 2014-02-27

Family

ID=46177527

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2013013970A MX2013013970A (es) 2011-06-03 2012-05-10 Sistema y metodo para conservar referencias en los aislamientos de procesos.

Country Status (9)

Country Link
US (1) US8601579B2 (es)
EP (1) EP2715589B1 (es)
JP (1) JP5748905B2 (es)
KR (1) KR101565230B1 (es)
CN (1) CN103582888B (es)
AU (1) AU2012262867B2 (es)
BR (1) BR112013030584B1 (es)
MX (1) MX2013013970A (es)
WO (1) WO2012166316A1 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
EP3757116A1 (en) * 2013-12-09 2020-12-30 Sangamo Therapeutics, Inc. Methods and compositions for genome engineering
KR102149679B1 (ko) 2014-02-13 2020-08-31 삼성전자주식회사 데이터 저장 장치, 그 동작 방법, 및 이를 포함하는 데이터 처리 시스템
US9766981B2 (en) 2014-06-10 2017-09-19 Institute For Information Industry Synchronization apparatus, method, and non-transitory computer readable storage medium
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9633200B2 (en) * 2014-09-26 2017-04-25 Oracle International Corporation Multidimensional sandboxing for financial planning
CN104967615B (zh) * 2015-06-03 2018-02-23 浪潮集团有限公司 一种安全sdn控制器及基于该控制器的网络安全方法
US20170060112A1 (en) * 2015-08-24 2017-03-02 Katrina Danielle PIRNER Control program for accessing browser data and for controlling appliance
CN105844151B (zh) * 2016-03-18 2020-01-21 山东华软金盾软件股份有限公司 一种文件存储保护实现方法和系统
US10162653B2 (en) 2016-03-31 2018-12-25 Vmware, Inc. Capturing components of an application using a sandboxed environment
CN107358095B (zh) 2016-05-10 2019-10-25 华为技术有限公司 一种威胁检测方法、装置及网络系统
US10700894B2 (en) 2016-06-01 2020-06-30 At&T Intellectual Property I, L.P. Network caching of outbound content from endpoint device to prevent unauthorized extraction
US11366789B2 (en) * 2017-06-29 2022-06-21 Microsoft Technology Licensing, Llc Content access
EP3602320B1 (en) * 2017-08-22 2021-12-29 Google LLC Reducing remote procedure calls for multimedia content delivery
EP3958880A4 (en) * 2019-04-24 2023-06-14 Seattle Children's Hospital d/b/a Seattle Children's Research Institute WISKOTT-ALDRICH SYNDROME GENE ECOTROPISM ENDONUCLEASE VARIANTS, COMPOSITIONS AND METHODS OF USE
US10788957B1 (en) * 2019-08-22 2020-09-29 Intel Corporation Web page designing with sandboxed custom editors
EP4143710A1 (en) * 2020-06-21 2023-03-08 Apple Inc. Application specific network data filtering

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US7444678B2 (en) * 2003-10-28 2008-10-28 Aol Llc Securing resources from untrusted scripts behind firewalls
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
US7702692B2 (en) 2006-02-16 2010-04-20 Oracle International Corporation Method and apparatus for preventing unauthorized access to computer system resources
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
JP2009031952A (ja) * 2007-07-25 2009-02-12 Tokai Television Broadcasting Co Ltd 情報提供システムおよび情報提供方法
US8200522B2 (en) * 2007-10-26 2012-06-12 International Business Machines Corporation Repeatable and standardized approach for deployment of a portable SOA infrastructure within a client environment
US8326872B2 (en) 2008-02-22 2012-12-04 Microsoft Corporation Database sandbox
JP5225003B2 (ja) * 2008-10-01 2013-07-03 キヤノン株式会社 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
US8341738B2 (en) 2009-09-29 2012-12-25 Oracle America, Inc. API signature verification for high-security platforms
US9098719B2 (en) * 2011-02-03 2015-08-04 Apple Inc. Securing unrusted content for collaborative documents

Also Published As

Publication number Publication date
KR101565230B1 (ko) 2015-11-02
KR20140016380A (ko) 2014-02-07
WO2012166316A1 (en) 2012-12-06
EP2715589B1 (en) 2018-05-09
AU2012262867B2 (en) 2015-12-17
CN103582888A (zh) 2014-02-12
BR112013030584B1 (pt) 2021-04-27
US20120311702A1 (en) 2012-12-06
JP2014519120A (ja) 2014-08-07
EP2715589A1 (en) 2014-04-09
CN103582888B (zh) 2017-02-15
JP5748905B2 (ja) 2015-07-15
US8601579B2 (en) 2013-12-03
BR112013030584A2 (pt) 2016-09-27

Similar Documents

Publication Publication Date Title
MX2013013970A (es) Sistema y metodo para conservar referencias en los aislamientos de procesos.
AU2012262867A1 (en) System and method for preserving references in sandboxes
Jung et al. Repackaging attack on android banking applications and its countermeasures
Andronio et al. Heldroid: Dissecting and detecting mobile ransomware
US10846402B2 (en) Security scanning method and apparatus for mini program, and electronic device
JP5985631B2 (ja) 信頼レベルのアクティブ化
US20170090929A1 (en) Hardware-assisted software verification and secure execution
US20160048677A1 (en) Method and System for Executing Applications Using Native Code Modules
US8347380B1 (en) Protecting users from accidentally disclosing personal information in an insecure environment
US9135030B2 (en) Method, an apparatus and a computer program product for extending an application in a client device
JP6588945B2 (ja) 仮想マシンにおける悪意のあるファイルを分析するシステム及び方法
KR20200052957A (ko) 보안 제어 방법 및 컴퓨터 시스템
EP2420931A1 (en) Solving hybrid constraints to generate test cases for validating a software module
WO2015150391A9 (en) Software protection
JP6568564B2 (ja) ファイルのウイルス対策スキャン実行のため仮想マシン上にログを生成するシステム及び方法
US9197446B2 (en) Address pinning
US10339305B2 (en) Sub-execution environment controller
US11163645B2 (en) Apparatus and method of control flow integrity enforcement utilizing boundary checking
Hamadouche et al. Virus in a smart card: Myth or reality?
US9436669B1 (en) Systems and methods for interfacing with dynamic web forms
Maass et al. In-nimbo sandboxing
Zhan et al. Splitting third-party libraries’ privileges from android apps
WO2023031679A1 (en) Systems and methods for inhibiting exploitations in runtime environments
Mo et al. Machine Learning with Confidential Computing: A Systematization of Knowledge
Sharma Generating smartphone phishing applications for deception based defense

Legal Events

Date Code Title Description
FG Grant or registration