¿Las extensiones de Chrome / browser rompen la caja de arena de la pestaña?

4

Por lo que sé, Chrome y posiblemente otros navegadores tienen un proceso de privilegios muy bajo generado para cada pestaña.

¿Cómo interactúan las extensiones de navegador con respecto a este sandboxing? No estoy hablando de comprometer directamente una extensión, sino de Chrome, y luego escapar de la caja de arena de la pestaña al comprometer la extensión.

    
pregunta domen 28.02.2014 - 17:57
fuente

2 respuestas

5

El acceso a métodos privilegiados en una extensión de Chrome depende de dos factores:

  1. Los permisos de extensión activa.
  2. El proceso actual.

Las extensiones de Chrome solo pueden solicitar acceso a API privilegiadas después de declarar los permisos necesarios en el archivo de manifiesto. También hay un conjunto de API privadas que solo están disponibles para una extensión cuando su ID de extensión está en la lista blanca (codificado en el código fuente de Chromium). Esto no es realmente relevante si quiere escapar de la caja de arena, simplemente define los límites del impacto de un compromiso.

Hay dos "cajas de arena". Uno que sea visible para los desarrolladores de extensiones, que apunta a proteger a los usuarios de los sitios web que intentan aprovechar los métodos de extensión privilegiados. El otro es transparente para los desarrolladores de extensiones y brinda protección contra procesos comprometidos (procesamiento).

Chrome es una aplicación de proceso múltiple, que consta de un proceso de navegador (de alto privilegio) y múltiples procesos de procesamiento. Cada pestaña / sitio se ejecuta en su propio proceso vea Modelos de proceso para obtener más detalles , con los mínimos privilegios necesarios para ejecutar su tarea.

Las extensiones pueden usar los llamados scripts de contenido para modificar la apariencia o funcionalidad de los sitios web. Estos scripts de contenido comparten el mismo proceso que el sitio web en el que están actuando, pero el código JavaScript se ejecuta en un contexto separado. Esto permite que el sistema de extensión ofrezca un conjunto muy limitado de métodos de JavaScript privilegiados al script de contenido, por ejemplo. en forma de la extensión API de paso de mensajes y AJAX de origen cruzado . Cuando se compromete un proceso de pestañas, el daño es limitado. Podría hacer solicitudes de dominio cruzado (si la extensión tuviera permiso para hacerlo) y enviar mensajes al proceso background de la extensión. , pero no lea archivos de su sistema de archivos, ni utilice ninguna de las API de extensión más potentes. Cuando el proceso de una pestaña (procesador) está comprometido, el daño generalmente se limita a esa única pestaña / origen, gracias a la arquitectura de seguridad.

Otras partes de la extensión (por ejemplo, páginas de fondo , páginas emergentes y las páginas donde el omnibox muestra chrome-extension://[EXTENSIONID]/... ) se ejecutan en el proceso de extensión. Las páginas dentro del proceso de extensión pueden usar APIs poderosas siempre que tengan permisos solicitados para usarlos , incluido el acceso de lectura a los archivos en su sistema de archivos local (siempre que haya solicitado el acceso y usted haya marcado explícitamente la casilla de verificación "Permitir acceso a las URL de los archivos" en la página de configuración de la extensión. Esto no sucede por accidente, no lo haga. te preocupes).
Cuando se compromete un proceso de extensión, el daño se limita a lo que puede hacer una extensión. No puede escribir en archivos arbitrarios en su sistema de archivos, por ejemplo.

(tenga en cuenta que un desarrollador de extensiones maliciosas no tiene que esforzarse para comprometer un proceso de extensión, porque si instala una extensión maliciosa que solicita "Acceda a sus datos en todos los sitios web" y "Acceda a sus pestañas y la actividad de navegación ", entonces ya tiene el poder suficiente para entrometerse con sus sitios web, por ejemplo, robando contraseñas al escribirlas.

Recursos externos

  • enlace
    Describe los diferentes modelos de procesos que admite Chromium para crear procesos de renderizado.
  • enlace
    Describe cómo el sistema de extensión de Chromium está diseñado desde el enfoque de seguridad primero.
  • enlace
    Describe la arquitectura de seguridad de Chromium (no solo las extensiones, sino el navegador en su totalidad).
  • enlace
    Aislamiento del sitio (no específico de la extensión, pero relevante para la evaluación de seguridad de los scripts de contenido)
respondido por el Rob W 28.02.2014 - 22:51
fuente
2

Puede que no esté respondiendo correctamente a tu pregunta, pero diría que no lo hacen. Las extensiones son Sandboxxed y siguen una Política de seguridad de contenido estricta.

De Eval Sandboxing :

  

... La solución que se ofrece es un espacio aislado en el que eval puede ejecutar código sin acceso a los datos de la extensión o a las API de alto valor de la extensión. Sin datos, sin API, sin problemas.

     

Lo logramos al enumerar archivos HTML específicos dentro del paquete de extensión como un espacio aislado. Cada vez que se carga una página de espacio aislado, se moverá a un origen único y se le negará el acceso a Chrome. * APIs.

Ese mismo artículo tiene un video muy informativo vinculado aquí en YouTube sobre el desarrollo de extensiones de Chrome seguras que profundizan detalle sobre la seguridad de la extensión.

    
respondido por el Gray 28.02.2014 - 18:34
fuente

Lea otras preguntas en las etiquetas