Aislamiento


  Share  
|


Procesos del aislante de los sistemas de dos maneras. En el primer, el proceso se presenta con un ambiente que aparezca ser una computadora que funciona solamente que proceso o esos procesos que se aislarán. En el segundo, se proporciona un ambiente en el cual las acciones de proceso se analizan para determinarse si se escapan la información. El primer tipo de ambiente evita que el proceso tenga acceso al sistema informático subyacente y cualquier proceso o los recursos que no son parte de ese ambiente. El segundo tipo de ambiente no emula una computadora. Altera simplemente el interfaz entre la computadora existente y el process(es).

Máquinas Virtuales

El primer tipo de ambiente se llama una máquina virtual.

Una máquina virtual es un programa que simula el hardware del sistema informático de a (posiblemente abstracta).

Una máquina virtual utiliza un sistema operativo especial llamado un monitor virtual de la máquina para proporcionar una máquina virtual en la cual los sistemas operativos convencionales puedan funcionar

La ventaja primaria de una máquina virtual es ésa los sistemas operativos existentes no necesita ser modificada. Funcionan en el monitor virtual de la máquina. El monitor virtual de la máquina hace cumplir la política deseada de la seguridad. Esto es transparente al usuario. El monitor virtual de la máquina funciona como un núcleo de la seguridad.

En términos de la política, el monitor virtual de la máquina se ocupa de los temas (los temas que son las máquinas virtuales). Incluso si una máquina virtual está funcionando centenares de procesos, el monitor virtual de la máquina sabe solamente sobre la máquina virtual. Así, puede aplicar cheques de la seguridad a sus temas, y esos controles se aplican a los procesos que esos temas están funcionando. Esto satisface la regla del confinamiento transitivo.

EJEMPLO: El KVM/370 era una versión seguridad-realzada del monitor virtual de la máquina de la IBM VM/370. Este sistema proporcionó las máquinas virtuales para sus usuarios, y una de sus metas era prevenir comunicaciones entre las máquinas virtuales de diversas clases de la seguridad, así que los usuarios en diversas clases de la seguridad podrían utilizar el sistema en el mismo tiempo. Como VM/370, proveió de las máquinas virtuales los minidisks y permitió que los sistemas compartieran algunas áreas del disco. Desemejante de VM/370, utilizó una política de la seguridad para mediar el acceso a las áreas compartidas del disco para limitar comunicaciones entre los sistemas.


EJEMPLO: Karger y los colegas en la Digital Equipment Corporation Desarrollaron un monitor virtual de la máquina (VMM) para la DEC VAX. El monitor es un núcleo de la seguridad y puede funcionar el VMS o el sistema operativo de Ultrix. Los funcionamientos VMM en el hardware nativo de VAX y se invocan siempre que la máquina virtual ejecute una instrucción privilegiada. Su estructura es típica de las máquinas virtuales diseñadas para proporcionar seguridad.

El VAX tiene cuatro niveles de privilegio: usuario, supervisor, ejecutivo, y modos del núcleo. Para proporcionar una máquina virtual compatible, las máquinas virtuales deben también tener cuatro niveles de privilegio. Sin embargo, el modo del núcleo permite que un proceso tenga acceso a instrucciones privilegiadas en el hardware de VAX directamente. Solamente el VMM se permite hacer esto. Las máquinas virtuales no pueden tener acceso a modo del núcleo. La solución es proporcionar modos virtuales. Estos modos son usuario de la VM (que corresponde al modo del usuario), modo del supervisor de la VM, y ejecutivo de la VM y los modos del núcleo de la VM (ambos el modo realmente ejecutivo).

Los temas VMM son usuarios y máquinas virtuales. VMM tiene un sistema del fichero básico, "plano" para su propio uso y particiones la espacio de disco restante entre las máquinas virtuales. Esas máquinas pueden utilizar cualquier estructura de archivo que deseen, y cada máquina virtual tiene su propio sistema de sistemas de ficheros. Cada tema y objeto hace que una etiqueta de niveles múltiples de la seguridad y de la integridad, y los niveles de la seguridad y de la integridad forme una clase del acceso. Dos entidades tienen la misma clase del acceso si y solamente si su seguridad y las etiquetas de la integridad es igual, y una entidad domina otra si y solamente si las clases de la seguridad y de la integridad dominan.

Un componente integral de el VMM es un mecanismo de revisión. Este mecanismo registra las acciones para un análisis más último.


Porque las máquinas virtuales proporcionan el mismo interfaz para la comunicación con otras máquinas virtuales que las computadoras proporcionen, esos canales de la comunicación pueden ser controlados o separaron. Según lo mencionado anterior, si un solo anfitrión hace funcionar las máquinas virtuales múltiples, esas máquinas virtuales comparten los recursos físicos del anfitrión en el cual funcionan. (pueden también compartir recursos lógicos, dependiendo de cómo se pone en ejecucio'n el núcleo virtualizing.) Esto proporciona una tierra fértil para los canales secretos.

Sandboxes

Un sandbox del patio proporciona un ambiente seguro para los niños para permanecer adentro. Si los niños dejan el sandbox sin la supervisión, pueden hacer cosas que los no suponen hacer. El sandbox de la computadora es similar. Proporciona un ambiente seguro para los programas para ejecutarse adentro. Si los programas "salen" del sandbox, pueden hacer las cosas que no se suponen para hacer. Ambos tipos de sandboxes restringen las acciones de sus inquilinos.

Un sandbox es un ambiente en el cual las acciones de un proceso son el acordar restricto a una política de la seguridad.

Los sistemas pueden hacer cumplir restricciones de dos maneras. Primero, el sandbox puede limitar el ambiente de la ejecución según lo necesitado. Esto es hecha generalmente agregando mecanismos de seguridad-comprobacio'n del suplemento a las bibliotecas o al núcleo. El programa sí mismo no se modifica. Por ejemplo, el núcleo VMM discutido anterior es un sandbox porque obliga los accesos de los sistemas operativos (sin modificar) que funcionan en él. La máquina virtual de Java es un sandbox porque su encargado de la seguridad limita el acceso de programas descargados a los recursos de sistema según lo dictado por una política de la seguridad.

EJEMPLO: El núcleo operacional del cortafuego de Sidewinder utiliza el tipo aplicación para confinar procesos. Éste es un ejemplo de un sandbox construido en un núcleo, y tiene la característica que el sandbox es definido por el vendedor. No se piensa para ser alterado en el sitio. Tal diseño es típico para un sistema de llavero, que es el uso previsto para un cortafuego de Sidewinder.

La máquina virtual de Java, en la cual descargó los applet se ejecuta, es otro ejemplo de un sandbox. El sandbox restringe el sistema de los archivos a que el applet puede tener acceso y de los anfitriones con los cuales el applet puede conectar. Otros mecanismos de la seguridad realzan el sandbox.

El DTE, el tipo mecanismo de aplicación para DTEL, es un ejemplo en el cual las modificaciones del núcleo permiten a administradores de sistema configurar sus propios sandboxes. El núcleo hace cumplir los apremios.


El segundo método de la aplicación es modificar el programa (o el proceso) que se ejecutarán. Las depuraciones dinámicas y algunos profilers utilizan esta técnica agregando límites de facturación al código y, cuando ocurre la trampa, analizando el estado del proceso corriente. Un variable, conocido como aislamiento de fallas del software, agrega las instrucciones que realizan cheques del acceso de memoria u otra comprueba mientras que el programa funciona, así que cualquier tentativa de violar la política de la seguridad causa un error.

EJEMPLO: Janus pone un sandbox en ejecucio'n. Es un ambiente de la ejecución en el cual se atrapan y se comprueban las llamadas del sistema. Los usuarios lo ejecutan para restringir los objetos y los modos del acceso del untrusted programa. Janus consiste en un marco, que hace la comprobación runtime, y los módulos, que se determinan qué accesos deben ser permitidos.

Janus primero lee un archivo de la configuración. Este archivo le manda para cargar ciertos módulos. Junto con el módulo la identificación es una lista de apremios. El archivo siguiente de la configuración del ejemplo define a IFS de la variable de entorno para el niño y restringe el acceso del niño al sistema de ficheros. El niño no puede tener acceso a ninguna archivos excepto los que se nombren abajo. El niño puede leer o escribir a cualquier archivo en el sistema de ficheros de /usr a excepción de ésos en el /usr/lib y los directorios de /usr/local/lib (que se leen solamente) y en /usr/bin (leído y ejecutarse). El niño puede leer cualquier archivo en el directorio de /lib y puede leer y ejecutar cualquier archivo en los directorios de /sbin y de /bin. En el archivo de la configuración abajo, la primera palabra en cada línea de instrucción es el nombre del módulo y las otras palabras son las discusiones pasadas a los módulos ("#" comienza un comentario).

# módulo básico básico
# defina el putenv IFS="\t\n" 
PATH=/sbin:/bin:/usr/bin TZ=PST8PDT de las variables de entorno del 
subprocess
# niegue el acceso a todo a menos que los archivos
debajo de la trayectoria de /usr nieguen leído, escriben * la 
trayectoria permite leído, escribe /usr/* # permiten que el 
subprocess lea archivos en directorios de biblioteca # necesitado para
la trayectoria dinámica del cargamento permiten leen /lib/* 
/usr/lib/* /usr/local/lib/* # necesitado así que el niño puede 
ejecutar los programas que la trayectoria permite leído, exec /sbin/*
/bin/* /usr/bin/*

Cada módulo obliga llamadas del sistema. El marco utiliza los módulos para construir una lista encadenada para cada llamada supervisada del sistema. La lista define acciones permitidas y rechazadas. Una vez que se haya construido esta lista, el marco de Janus invoca el programa de una manera tal que se atrapen todas las llamadas supervisadas del sistema.

Cuando el programa ejecuta una llamada supervisada del sistema, se invoca las trampas del programa y el marco de Janus. Tiene acceso a las discusiones provistas a la llamada del sysem. Valida que la llamada del sistema, con estos parámetros específicos, está permitida. Si la llamada del sistema no se permite, el marco fija el ambiente del niño de modo que la llamada del sistema aparezca haber fallado. Si se permite la llamada del sistema, el marco vuelve control al niño, que alternadamente pasa control al núcleo. En vuelta, el control va al marco, que pone al día cualquier estado interno y vuelve los resultados al niño.

Un uso del ejemplo estaría en correo del MIME de la lectura. Uno habría podido fijar el programa de la lectura del correo para pasar control a un motor de la exhibición de la posdata. Algunos tales motores tienen un mecanismo para ejecutar los comandos a nivel sistema encajados en el archivo de la posdata. Por lo tanto, un atacante podía poner un comando de la canceladura del archivo en el archivo de la posdata. El recipiente funcionaría el motor de la exhibición para leer el archivo, y suprimirían algo de ella los archivos. Sin embargo, el usuario (o el administrador de sistema) puede instalar el archivo de la configuración de Janus rechaza la ejecución de cualquier subprograma. Después el comando encajado será detectado (en la llamada del sistema para ejecutarlo) y rechazado.


Como un monitor virtual de la máquina, un sandbox forma la parte de la base que computa confiada en. Si el sandbox falla, proporciona menos protección que se cree para proporcionar. Por lo tanto, asegurar que el sandbox ponga en ejecucio'n correctamente de una política deseada de la seguridad es crítico a la seguridad del sistema.

esto es un artículo agregado por Fred Foster


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions