jueves, enero 29, 2009

Seguridad de Chrome

Google Chrome se construyó con la idea de crear un navegador más seguro y realmente habría que aplaudir sus desarrolladores por la atención que han prestado a este aspecto. Google merece un gran reconocimiento por la abundante cantidad de información de seguridad que ha publicado en Internet y el el blog de Google Chrome; y por haber puesto el código fuente de Chrome a disposición de cualquiera para que lo examinen.

El modelo de seguridad seguido por Chrome es excelente: separa el programa de navegación principal, llamado kernel del navegador, de los procesos de generación de gráficos (rendering processes), basados en el motor open source WebKit. El kernel del navegador empieza sin ningún privilegio, un SID nulo (identificador de seguridad de Windows Vista que señala al usuario como no fiable) y múltiples SID de “denegación” y “restricción” activados.

Cada sitio Web tiene su propio proceso, espacio de memoria, estructuras de datos globales, token de acceso, pestaña, barra de URL, etc. Y los procesos están muy limitados en cuanto a lo que pueden y no pueden hacer. Tanto el kernel del navegador como los procesos se ejecutan con DEP (Data Execution Prevention) y ASLR (Address Space Layout Representation) activados; y con la virtualización desactivada.

Cualquier complemento de navegación suplementario se ejecuta en un proceso independiente con integridad media (o alta). Chrome tiene incluso su propio Gestor de tareas. Con respecto al modelo de seguridad de base, Chrome es el líder.
Algo cuestionable es la decisión de Google de permitir la instalación de Chrome sin requerir acceso con nivel de administrador.

Chrome instala también la aplicación Googleupdate.exe, que con frecuencia comprueba la existencia de actualizaciones para el navegador (y otras aplicaciones de Google) y las instala de forma silenciosa. Esto es ideal para mantener el navegador actualizado, pero molesta a los administradores de seguridad, dado que no reciben ninguna notificación de la búsqueda, ni de los parches disponibles, ni se pide su autorización para instalarlos.

Otro concepto interesante es la máquina virtual para JavaScript de Chrome, llamada V8, que incluso convierte el código de JavaScript en lenguaje máquina nativo (para mejorar la velocidad de carga de las páginas Web). V8 limita considerablemente lo que se puede hacer con JavaScript contra el sistema del usuario, evitando, por ejemplo, los habituales pop-ups.

Sin embargo, uno de los lapsus más sorprendentes es la imposibilidad de desactivar JavaScript, algo que sí permiten todos los otros navegadores, debido a que el JavaScript está relacionado con la mayoría de los ataques Web. No se entiende cómo Google puede haber pasado esto por alto, ya que en caso de descubrirse en Chrome una vulnerabilidad grave relacionada con JavaScript, la única recomendación que Google podrá ofrecer será dejar de usar su navegador.

Por otra parte, las opciones de configuración de seguridad personalizables (por el usuario) son muy limitadas y a menudo carecen de una opción por defecto.

Chrome tampoco permite asignar distintos sitios Web a diferentes dominios o zonas de seguridad, a diferencia de otros navegadores; la mayoría de ellos ofrecen dos zonas o la posibilidad de incluir los sitios en una lista negra o una lista segura.
Google se ha lavado las manos en cuanto a la seguridad de los complementos. Si bien es cierto que el propietario del navegador no debe ser responsable de los complementos y aplicaciones de terceros, Chrome no ofrece ningún gestor de complementos.

Muchos usuarios están preocupados por la gestión de sus contraseñas almacenadas. Con unos cuentos clics de ratón, Chrome permite al usuario mostrar los nombres de usuario y contraseñas almacenadas en un txt, algo muy útil para el usuario, pero también para cualquiera que encuentre el ordenador desatendido durante apenas unos segundos. Internet Explorer no lo permite y Firefox y Opera ofrecen la posibilidad de proteger las contraseñas almacenadas con otra contraseña.

Un punto a favor es que Chrome pasó con aprobado un buen número de test de seguridad para navegadores y evitó la instalación automática de cualquier malware. Además, con menos de un 2% de cuota de mercado, todavía no es un objetivo popular para los hackers.

Una de sus características principales no funciona como cabía de esperar. Google afirma que el aislamiento de procesos de Chrome evita que una sesión de navegación interfiera con otra o afecte a la totalidad del navegador. Sin embargo, una vulnerabilidad tras otra han demostrado que esta separación no es tan perfecta como sonaba en teoría. Páginas Web maliciosas de todo tipo han causado problemas DoS, bloqueos y fallos completos del sistema. Incluso se han observado bloqueos del navegador durante la navegación por páginas Web legítimas.

Lo más significativo en cuanto a problemas sistemáticos es que las vulnerabilidades descubiertas inicialmente en Chrome eran todas muy simples y, en su mayoría, vulnerabilidades muy conocidas, ya advertidas y resueltas en otros navegadores, por lo que no deberían haber estado ya en la primera versión del navegador de Google.

Esa es la paradoja de seguridad de Chrome. Parte de una gran idea y un excelente modelo de seguridad, para luego empañar dicha visión con decisiones cuestionables, una escasez de controles de seguridad detallados y el fracaso evidente al realizar una revisión de código importante. Puede que esta sea la primera versión del primer navegador de Google, pero la compañía tiene más experiencia en navegadores y contenidos maliciosos que cualquiera de sus rivales ¿Por qué crear un nuevo navegador Web y no aplastar a la competencia?

Fuente: PC World