May 19, 2015 10:36 am

Microsoft Edge: La construcción de un navegador más seguro

Por: Crispin Cowa, Gerente Senior de Programa de Microsoft Edge

Con Microsoft Edge, de manera fundamental, queremos mejorar la seguridad sobre los navegadores existentes y permitir a los usuarios experimentar la web desde Windows de manera confiable. Hemos diseñado Microsoft Edge para defender a los usuarios de los cada vez más sofisticados y predominantes ataques.

Este texto cubre algunas de las tecnologías avanzadas utilizadas para proteger Microsoft Edge, entre las que se encuentran “cajas de arena” líderes en la industria, compilador y técnicas de administración de memoria desarrolladas en una asociación cercana con Windows.

Amenazas de seguridad en la web

Aunque la web es de manera predominante un ambiente seguro, algunos sitios están diseñados para robar dinero e información personal. Por naturaleza, a los ladrones no les importan las reglas y utilizarán cualquier medio para aprovecharse de sus víctimas, por lo general a través de engaños o hackeos:

  • Engaños: En la vida real, un “estafador” utilizará trucos para aprovecharse de una víctima, por ejemplo “¿Quieres tener dos 10 por un 5?” En la web, los atacantes tratarán de engañar a las víctimas a través de cosas como ataques de “phishing” que convencen a los usuarios a ingresar su contraseña bancaria en un sitio web que se parece al de su banco, pero no lo es.
  • Hackeo: En la vida real, un ladrón podría asaltarlos y tomar su dinero o podría entrar a su hogar y robar sus cosas de valor. En la web, los atacantes presentan un navegador a la víctima con contenido mal formado, con la intención de explotar fallas imperceptibles en su navegador, o en varias extensiones que utiliza su navegador, como los codificadores de video. Esto permite al atacante correr su código en la computadora de la víctima, adelantarse y tomar su sesión de navegación y tal vez, al final, toda su computadora.

Estas son amenazas que enfrentan todos los navegadores. Vamos a explorar cómo Microsoft Edge aborda esas amenazas y ayuda a hacer de la web una experiencia más segura.

Defender a los usuarios contra engaños

Un navegador web puede ayudar a defender al usuario contra engaños al identificar y bloquear trucos conocidos y al utilizar fuertes protocolos de seguridad para asegurar que ustedes hablan con el sitio web que piensan que hablan. Aquí algunas de las maneras con las que Microsoft Edge les ayuda a lograr esto.

Credenciales más fuertes y convenientes.

Una de las maneras más comunes de atacar a los usuarios es el phishing: Persuadir al usuario a ingresar su contraseña en una versión falsa de un sitio web en el que confían. Los intentos de identificar de manera única los sitios web legítimos, como a través del símbolo original de candado de HTTPS, y de manera más reciente la barra verde de EV Cert, han cumplido pero con un éxito limitado: los atacantes son muy buenos para imitar una experiencia legítima y que la mayoría de los usuarios no puedan notar la diferencia.

Para en verdad defenderse contra esto se requiere remover la necesidad de que los usuarios ingresen contraseñas de sólo texto en los sitios web. En lugar de esto, Windows 10 brinda tecnología Microsoft Passport con criptografía asimétrica para autentificarlos en sus sitios web. Windows 10 también ofrecerá la manera más conveniente de desbloquear su dispositivo y acceder a su Microsoft Passport, con lo que brindará una experiencia en verdad constante que es más segura que las complicadas contraseñas del mundo actual.

Defensa contra sitios web y descargas maliciosas

Microsoft SmartScreen, presentado primero en IE8, está soportado en Microsoft Edge y por Windows 10 Shell. SmartScreen defiende a los usuarios contra sitios de phishing al realizar una revisión de reputación en los sitios que el navegador visita, y bloquea los sitios que se considera son de phishing. De manera similar, SmartScreen tanto en el navegador como en Windows Shell defiende a los usuarios contra descargas construidas de manera social de software malicioso y contra engaños para instalar software malicioso.

Defensa contra sitios falsos con reputación certificada

Los usuarios han aprendido a confiar en sitios que utilizan tráfico web encriptado. Por desgracia, esa confianza puede ser debilitada cuando los sitios maliciosos utilizan certificados fraudulentos u obtenidos de manera inapropiada. En 2014 anunciamos Certificate Reputation – de manera reciente hemos extendido este sistema al permitir a los desarrolladores web utilizar el reporte Bing Webmaster Tools de manera directa para alertar a Microsoft sobre certificados fraudulentos.

Estándares web

De manera reciente, anunciamos que Microsoft Edge contará con un nuevo motor de procesamiento, Microsoft EdgeHTML. Este motor está enfocado en los estándares web modernos, para permitir a los desarrolladores web construir un mantener un sitio consistente que soporte a todos los navegadores modernos. Esto simplifica de manera importante el arduo trabajo de construir sitios web de primera clase, lo que permite que los desarrolladores web dediquen más tiempo y energía para enfocarse en la confiabilidad y la seguridad en lugar de las complejidades de la interoperabilidad.

Microsoft EdgeHTML ayuda a defenderse contra ataques de “estafadores” a través de nuevas características de seguridad en los estándares W3C e IETF:

Defender al navegador contra hackeo

Microsoft Edge hace más que sólo facilitar a los usuarios estándares de compatibilidad con defensas contra engaños. También incluye una reparación mayor de la representación DOM en la memoria del navegador, para hacer más resistente el código del navegador a ataques de “robo” que busquen trastocar al navegador.

Pero Microsoft Edge ha hecho más que sólo reescribir el motor de procesamiento. A continuación describimos las mitigaciones de seguridad que se han realizado en el navegador Microsoft Edge.

Moverse a un modelo de extensión más seguro

Microsoft introdujo ActiveX en 1996 como parte de una ola de soporte para las extensiones de los navegadores web, que permitía a terceros experimentar con diferentes formas de alternar contenido en la web. Sin embargo, las extensiones de los navegadores venían con un costo de seguridad y confiabilidad: las extensiones binarias traían código y datos dentro del proceso del navegador, sin protección alguna, por lo que cualquier cosa que salga mal o es vulnerable en la extensión también puede tomar o comprometer al navegador. Es muy parecido a construir un porche en su casa sin cerrar la puerta hacia el porche: es muy fácil para el ladrón pasar por el porche y después robar su casa.

Para hacer más seguros los navegadores contra ataques, y también más confiables, es importante crear un modelo de extensión que sea más seguro, al compartir menos estado entre el navegador y las extensiones. De este modo, Microsoft Edge no brinda soporte para VML, VB Script, Barras de herramientas, BHO o ActiveX. La necesidad de esas extensiones es reducida de manera significativa por las ricas capacidades de HTML5, y la utilización de los resultados HTML5 en sitios que son interoperables a través de diferentes navegadores.

Para permitir la capacidad de extensión más allá de la que brinda HTML5, trabajamos en planes para un modelo de extensión moderno basado en HTML/JS. Brindaremos más detalles sobre estos planes, junto con guías para migrar sus escenarios de controles ActiveX a estándares y extensiones modernas en los próximos meses.

Microsoft Edge es una aplicación

El cambio más grande en la seguridad de Microsoft Edge es que el nuevo navegador es una aplicación Universal Windows. Esto cambia de manera fundamental el modelo del proceso, para que tanto el proceso de administrador externo y los procesos de contenido clasificado, vivan dentro de los contenedores tipo caja de arena de la aplicación. Esto brinda al usuario y la plataforma la confianza ofrecida por otras aplicaciones de la tienda Windows.

Contenedor tipo caja de arena en la aplicación por defecto

IE7 en Windows Vista fue el primer navegador web que brindó un área de prueba de navegación, llamada modo protegido, donde la parte del navegador que procesa el contenido web corre con menos privilegios que los controles del navegador (por ejemplo, el botón de regreso) y el usuario. Esto brinda al usuario un nivel de protección contra la posibilidad de que un sitio web malicioso explote un bug en el navegador o dentro de los plugin, que permite que el atacante se quede atascado en la caja de arena y no tenga acceso completo a todos los recursos del usuario.

El modo protegido de IE7 fue construido sobre el control mandatorio de integridad de Vista, que brinda un grado de protección, pero que es limitado. IE10 introdujo EPM (Modo Protegido Mejorado) basado en el contenedor tipo caja de arena de la aplicación de Windows 8. EPM brindó una caja de arena más fuerte que el modo protegido, que incluía por ejemplo negación por defecto y semánticas de no lectura. EPM estaba encendido por defecto en el navegador inmersivo, pero era sólo una opción en el escritorio en IE10 y en IE11 porque algunas extensiones de navegador no son compatibles con EPM.

Microsoft Edge reinicia nuestro modelo de extensión de navegador, lo que le permite correr sus procesos de contenido en contenedores de aplicación, no sólo por defecto sino todo el tiempo. De este modo, cada página de Internet que visite Microsoft Edge será procesada dentro de un contendor de aplicación, la caja de arena del lado del cliente, más reciente y segura en Windows.

64-bit por defecto

Microsoft Edge también es 64-bit, no sólo por defecto, sino todo el tiempo, cuando corre en un procesador de 64-bit. Los procesos de 64-bit en general, y los procesos de navegador en particular, reciben significativas ventajas de seguridad al hacer más fuerte Windows ASLR (Address Space Layout Randomization).

Los atacantes buscan inyectar código malicioso dentro de sus procesos de navegador a través de un bug de código y luego ejecutar código malicioso. ASLR vuelve más complicado esto al randomizar la disposición de la memoria del proceso, lo que dificulta el ataque a ubicaciones precisas de memoria para que los atacantes logren su cometido. En retorno, los procesos de 64-bit hacen al ASLR mucho más efectivo al hacer el espacio de dirección más grande de manera exponencial, lo que dificulta a los atacantes encontrar los componentes sensibles de memoria que necesitan.

Defensa contra la corrupción de memoria

La corrupción de memoria es un tipo de vulnerabilidad tan común que merece atención especial. Es endémico a aplicaciones escritas en C/C++, porque el lenguaje de programación no brinda seguridad de fuente o protección de sobrecarga de buffer. Para hablar de manera más amplia, los ataques de corrupción de memoria involucran que el atacante brinde entradas malformadas a un programa que este no maneja de manera adecuada, lo que resulta primero en corrupción del estado de la memoria del programa y de manera subsecuente en que el atacante obtenga control del programa. Una variedad más amplia de mitigaciones de corrupción de memoria han sido concebidas desde mediados de los noventa, y en la década pasada, Microsoft ha liderado el camino con avances que incluyen ASLR, DEP y SeHOP.

MemGC

Conforme han salido estas mitigaciones, los atacantes se han adaptado e inventado nuevas formas de ataque. Microsoft ha respondido con nuevas defensas para la seguridad de la memoria que mitigan las nuevas formas más comunes de ataque, que incluyen vulnerabilidades de uso después de liberación en especial.

MemGC (Memory Garbage Collector o Recolector de Basura de Memoria) es un sistema de recolección de basura de memoria que busca defender al navegador de vulnerabilidades UAF (Uso después de liberación) al tomar la responsabilidad de liberar memoria por parte del programador en lugar de automatizarlo, para sólo liberar memoria cuando la automatización ha detectado que no hay más referencias restantes que apunten a cierto bloque de memoria.

Guardia de flujo de control

La meta de la corrupción de memoria es que el atacante obtenga control del mostrador del programa del CPU y saltar a una ubicación de código que elija el atacante. CFG (Control Flow Guard) es una tecnología de Microsoft Visual Studio que compila revisiones alrededor del código que realiza saltos indirectos, basado en un apuntador, para restringir esos saltos a sólo saltos hacia puntos de entrada de función que han tomado la dirección. Esto hace que la toma de un programa por parte del atacante sea más difícil al contener de manera severa el momento en que un ataque de corrupción de memoria pueda saltar.

Estas nuevas protecciones para la seguridad de la memoria han sido habilitadas y lanzadas a los usuarios de Windows e IE en el último año y estarán a tiempo en Microsoft Edge.

Cazador de bugs

A pesar de todos los esfuerzos, habrá vulnerabilidades de seguridad en Microsoft Edge que todavía no conocemos. Para minimizar el impacto al cliente, ofreceremos un programa de Cacería de Bugs en Navegador en la versión previa Técnica de Windows 10, que busca incentivar a los investigadores en seguridad a reportar vulnerabilidades de navegador a Microsoft durante el periodo de versión previa técnica en lugar de hacerlo después de que se entregue Microsoft Edge como un producto de uso general. Los investigadores en seguridad interesados en el programa de cacería pueden buscar aquí más información.

La seguridad es un proceso, no un destino

Microsoft Edge es un nuevo navegador, con nuevas metas y requerimientos. Esto nos ha permitido incluir estas mejoras de seguridad, tanto nuevas características de seguridad y mover las características viejas de registro para que estén siempre en funcionamiento. Por esta razón, creemos que Microsoft Edge será el navegador web más seguro que Microsoft haya entregado. Y ya que la seguridad es un proceso, no un destino, continuaremos con nuestro trabajo en mejoras para la seguridad del navegador.