El acceso a métodos privilegiados en una extensión de Chrome depende de dos factores:
- Los permisos de extensión activa.
- 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)