El aislamiento de procesos es un conjunto de diferentes tecnologías de hardware y software [ 1 ] diseñadas para proteger cada proceso de otros procesos en el sistema operativo . Esto se logra impidiendo que el proceso A escriba en el proceso B. La seguridad es más fácil de garantizar al prohibir el acceso a la memoria entre procesos, a diferencia de las arquitecturas en las que cualquier proceso puede escribir en cualquier memoria de cualquier otro proceso. [ 2 ]
El aislamiento de procesos se puede implementar asignando a cada proceso su propio espacio de direcciones virtuales , donde el espacio de direcciones del proceso A es diferente del espacio de direcciones del proceso B, lo que impide que A escriba en B.
Comunicación entre procesos limitada
En un sistema con aislamiento de procesos, aún se permite una interacción limitada (controlada) entre procesos a través de canales de comunicación entre procesos (IPC), como memoria compartida , sockets locales o sockets de Internet . En este esquema, toda la memoria del proceso está aislada de otros procesos, excepto cuando el proceso permite la entrada de datos de procesos colaboradores.
Las políticas del sistema pueden prohibir la comunicación entre procesos (IPC) en determinadas circunstancias. Por ejemplo, en sistemas de control de acceso obligatorio , es posible que no se permita la comunicación entre sujetos con diferentes niveles de sensibilidad. Las implicaciones de seguridad en estas circunstancias son amplias y abarcan aplicaciones en sistemas de cifrado de claves de red, así como algoritmos de almacenamiento en caché distribuido. Los protocolos definidos por interfaz, como la arquitectura básica de acceso a la nube y el uso compartido de la red, se ven afectados de manera similar. [ 3 ]
Sistemas operativos
Los sistemas operativos que admiten el aislamiento de procesos al proporcionar espacios de direcciones separados para cada proceso incluyen:
- Sistemas tipo Unix como Linux , los sistemas BSD , macOS , Solaris y AIX.
- VMS
- Windows NT
Aplicaciones
En un sistema que admite el aislamiento de procesos, una aplicación puede utilizar varios procesos para aislar los componentes de la aplicación entre sí.
navegadores web
Internet Explorer 4 utilizaba el aislamiento de procesos para permitir que las distintas instancias del navegador tuvieran sus propios procesos; sin embargo, en plena guerra de navegadores , esta funcionalidad se abandonó en versiones posteriores para competir con Netscape Navigator (que buscaba concentrar todo el conjunto de herramientas de Internet en un solo proceso). Esta idea de un proceso por instancia no se retomaría hasta una década después, cuando la navegación por pestañas se generalizó.
En la arquitectura multiproceso de Google Chrome [ 4 ] y en la arquitectura de Internet Explorer 8 de acoplamiento flexible (LCIE) [ 5 ] , las pestañas que contienen páginas web se encuentran dentro de sus propios procesos, los cuales están aislados del proceso principal del navegador para evitar que el fallo de una pestaña o página provoque el fallo de todo el navegador. Este método (conocido popularmente como multiproceso o proceso por pestaña ) tiene como objetivo gestionar la memoria y el procesamiento, permitiendo que las pestañas problemáticas se cierren independientemente del navegador y de las demás pestañas, y a la vez gestionar la seguridad.
En Firefox , la ejecución de los complementos NPAPI como Flash y Silverlight se aisló en procesos separados para cada complemento, [ 6 ] a partir de la versión 3.6.4 . [ 7 ] La base de este aislamiento de procesos se convirtió finalmente en un proyecto llamado Electrolysis o e10s para abreviar, que extendió el aislamiento de procesos al contenido web, la apariencia del navegador y los complementos. Esto se habilitó por defecto para todos los usuarios a partir de la versión 57, con el efecto secundario de que los complementos debían reescribirse a las extensiones web más limitadas . [ 8 ] Posteriormente, e10s se extendió al aislamiento de procesos por origen (también conocido como "aislamiento de sitio") con Project Fission, que se lanzó en la versión 95. [ 9 ]
Navegadores con aislamiento de procesos
- Google Chrome
- Internet Explorer 8 y versiones posteriores
- Safari
- Mozilla Firefox (complementos desde la versión 3.6.4, predeterminado para contenido web y todo lo demás desde la versión 57)
- Maxthon
- Luna pálida (solo para complementos desde la versión 3.6.4)
Crítica
Pale Moon es un navegador web notable que intencionalmente no ha aislado la interfaz de usuario, el contenido web, los complementos y otros componentes que no son plugins en sus propios procesos. Afirma que un navegador multiproceso se encontrará con problemas tales como la naturaleza asíncrona de la comunicación entre procesos que entra en conflicto con los estándares web que requieren un estado síncrono (por ejemplo, establecer cookies ), mayor lentitud en la interacción de la interfaz de usuario debido a que los mensajes deben pasarse de un lado a otro entre el proceso principal de la interfaz de usuario y el contenido web, mayor uso de recursos debido a que los motores de análisis, diseño y renderizado del navegador se duplican en varios procesos, y no tener control sobre la seguridad de la comunicación entre procesos (que necesariamente reemplazará el estricto aislamiento entre el código de la aplicación y el contenido del documento que se encuentra en el navegador o visor de documentos habitual de un solo proceso) manejado por el sistema operativo. [ 10 ]
Lenguajes de programación
Erlang (lenguaje de programación) ofrece un concepto similar en el espacio de usuario, mediante la implementación de procesos ligeros estrictamente separados.
Tecnologías relacionadas
- La memoria virtual permite el aislamiento del espacio de memoria al proporcionar a cada proceso su propio espacio de direcciones virtuales .
- La poliinstanciación permite crear réplicas de recursos compartidos, de modo que los cambios realizados por el proceso A no serán visibles para el proceso B.
Véase también
Referencias
- ↑ Aiken, Mark; Fähndrich, Manuel; Hawblitzel, Chris; Hunt, Galen; Larus, James R. (octubre de 2006). Deconstruyendo el aislamiento de procesos (PDF) . Taller ACM SIGPLAN sobre rendimiento y corrección de sistemas de memoria. doi : 10.1145/1178597.1178599 .
- ↑ Guía completa para el examen CISSP, 3.ª edición, Shon Harris
- ↑ Pahl, Claus; Lee, Brian (2015). Contenedores y clústeres para arquitecturas de nube de borde: una revisión tecnológica (PDF) . 3.ª Conferencia Internacional sobre el Futuro de la Internet de las Cosas y la Nube. doi : 10.1109/FiCloud.2015.35 .
- ↑ "Arquitectura multiproceso" . Blog de Chromium . 11 de septiembre de 2008.
- ↑ Andy Zeigler (11 de marzo de 2008). "IE8 y IE de acoplamiento flexible (LCIE)" . Archivado del original el 13 de marzo de 2010.
- ↑ "Firefox 3.6 saldrá este mes; después llegará 'Lorentz'"" . CNET . 13 de enero de 2010. Archivado del original el 26 de abril de 2011 . Consultado el 29 de diciembre de 2025 .
- ↑ "Chrome se actualiza, Firefox 'Lorentz' entra en fase beta" . Archivado del original el 4 de octubre de 2012. Consultado el 21 de abril de 2010 .
- ↑ "Electrólisis" . Wiki de Mozilla . Consultado el 29 de diciembre de 2025 .
{{cite web}}: CS1 mantenimiento: estado de la URL ( enlace ) - ↑ "Proyecto Fisión" . Wiki de Mozilla . Consultado el 29 de diciembre de 2025 .
{{cite web}}: CS1 mantenimiento: estado de la URL ( enlace ) - ↑ "Multiproceso, o: los inconvenientes de los que nadie habla" . Foro de Pale Moon . Consultado el 29 de diciembre de 2025 .
{{cite web}}: CS1 mantenimiento: estado de la URL ( enlace )
- Seguridad del sistema operativo