Menu
in

Gazelle: El Navegador ultra-seguro de Microsoft

No, no es un chiste. Al menos no uno intencional. Es una afirmación de Microsoft Research.  El navegador, que llevará el nombre Gazelle, estará compuesto por un kernel de 5.000 líneas en C# y, tal cual Chrome, crearía diferentes procesos por demanda, totalmente aislados de los recursos del sistema. Ambas cosas, supuestamente, le ayudarían a Gazelle a ser super seguro. Aún es un prototipo, no hay enlace de descarga, pero parece que la cosa viene en serio. Que no, no es broma.

Seguramente fue un shock. O tal vez pensaste que era el Día de los Inocentes. Pero no, eso de Navegador ultra-seguro de Microsoft no lo decimos nosotros, es una afirmación de Microsoft Research. La idea detrás de Gazelle, tal es el nombre de este navegador, es separar en diferentes procesos todas las demandas recibidas. Estas demandas serán administradas por el kernel del navegador (5.000 líneas en puro C#), que gestionaría todos los accesos directos al sistema operativo y a las redes. El rendereado de páginas solo podría acceder a los recursos indirectamente, vía API o solo Kernel mediante.

También, y a diferencia de Chrome, los procesos se crearían por dominio, y no por pestaña. Por ejemplo, una página que carga un vídeo de YouTube, estaría dividida en dos procesos. El vídeo de YouTube sería un huésped del sitio madre y no tendría acceso a ningún otro lugar del sitio, más allá del iframe. Por su parte, el sitio madre solo manejaría las dimensiones del iframe, pero no tendría acceso a su contenido. Esta separación de procesos por dominio sería tan severa que incluso los subdominios de un dominio serían tratados como procesos diferentes. Todos los procesos estarán aislados de sí mismos y del sistema.

Gazelle no separaría JavaScript, CSS y HTML en diferentes ítems a renderizar. Todo lo referente al rendereado partiría de una sola fuente, contenida en un solo proceso. Ese proceso, por su lado, forma parte de uno de los “principales”. Los principales podrían comunicarse con el Kernel y consigo mismo, pero solo mediante una API. Separar procesos y distinguir a estos principales serviría para manejar, entre otras cosas, los eventos generados por el usuario. Por ejemplo, un clic del ratón sería desviado al principal a cargo del área en la que se pinchó, imposibilitando así la acción de los scripts responsables del Clickjacking.

Todo esto, que puede resultar super confuso (y de dudosa implementación real), está ampliado y mucho mejor explicado en el paper The Multi-Principal OS Construction of the Gazelle Web Browser, que puedes descargar en el sitio de Microsoft Research. Aquellos que han probado el prototipo lo señalan como “pasable”. Ya veremos, en el futuro, cómo funciona.

Leave a Reply