Zona de pruebas de seguridad del navegador
La seguridad del navegador está indisolublemente ligada a la arquitectura del navegador. En el navegador de arquitectura de proceso único original, un proceso era responsable de representar páginas, ejecutar JS para iniciar solicitudes de red, dibujar la interfaz de usuario, mostrar y otras tareas.
Si lo piensas detenidamente, es una situación muy peligrosa para un proceso recibir y analizar recursos complejos de Internet y además tener permisos a nivel de sistema operativo. La arquitectura de proceso único no solo tiene un rendimiento insuficiente, sino que también tiene importantes lagunas de seguridad, que se han extendido al nivel del sistema operativo. Las arquitecturas posteriores son todas arquitecturas multiproceso.
Las arquitecturas de navegador modernas son arquitecturas multiproceso. Se dividen varios procesos, como el proceso principal del navegador, el proceso de red y el proceso de representación. El navegador también se divide en dos partes: el núcleo del navegador y el proceso de renderizado.
El proceso de renderizado solo es responsable de tareas como el análisis de HTML, el análisis de CSS, la decodificación de imágenes y el renderizado de mapas de bits, mientras que otras tareas a nivel del sistema operativo eventualmente serán manejadas por el kernel del navegador.
Sí, el kernel del navegador contiene otros procesos mencionados anteriormente, que son responsables de la administración de ventanas del navegador, el inicio de solicitudes de red, el almacenamiento persistente local, la visualización y otras tareas. Cada uno de estos procesos realiza sus propias tareas y solo hace lo que se les ha asignado. Los datos que deben compartirse y las tareas que deben iniciarse se conectarán a otros procesos a través de la comunicación IPC (comunicación entre procesos).
En una arquitectura multiproceso, el proceso de renderizado no tiene permisos a nivel de sistema operativo y ha sido aislado del sistema operativo. Lo que aísla el proceso de renderizado y el sistema operativo es el entorno limitado de seguridad.
El entorno limitado de seguridad utiliza la tecnología de seguridad proporcionada por el sistema operativo para que el proceso de renderizado no pueda obtener ni modificar datos en el sistema operativo mientras se está ejecutando. La unidad de aislamiento más pequeña del entorno limitado de seguridad es un proceso, por lo que no puede proteger a los navegadores de un solo proceso.
El acceso a las cookies y la lectura y escritura de archivos se completan mediante el núcleo del navegador. El kernel del navegador devolverá los resultados al proceso de renderizado a través de la comunicación IPC.
El acceso a la red también lo completa el kernel del navegador.
El sistema operativo puede proporcionar algo llamado identificador de ventana, en el que las aplicaciones pueden dibujar y recibir mensajes del teclado y del mouse. Debido a la existencia de una zona de pruebas de seguridad, el proceso de representación no puede operar el identificador de la ventana y la interacción debe completarse indirectamente a través de la comunicación IPC y el kernel del navegador.
El mapa de bits generado por el proceso de renderizado no se puede mostrar directamente en la pantalla. Primero debe compartirse con el kernel del navegador, y el kernel del navegador mostrará la imagen en la pantalla.
Los eventos de entrada del usuario primero se pasarán al kernel del navegador, y el kernel del navegador luego realizará una programación de tareas específicas según el escenario actual. Este mecanismo limita en gran medida la capacidad del proceso de renderizado para monitorear la entrada del usuario.
El aislamiento del sitio significa que Chrome coloca las páginas asociadas con el mismo sitio (sitios con el mismo nombre de dominio raíz y la misma versión de protocolo incluida en la dirección) en el mismo proceso de representación.
La implementación del aislamiento de sitios puede aislar iframes maliciosos en sus propios procesos y evitar que accedan al contenido de otros iframes, evitando intrusiones en otros sitios.