En un esfuerzo por mitigar una gran clase de posibles problemas de secuencias de comandos en sitios cruzados en Firefox, Mozilla ha bloqueado la ejecución de todas las secuencias de comandos en línea y funciones de evaluación potencialmente peligrosas para «acerca de: páginas» incorporadas que son la puerta de entrada a preferencias sensibles, configuración y estática del navegador.
El navegador Firefox tiene 45 páginas internas de este tipo alojadas localmente , algunas de las cuales se enumeran a continuación que podría haber notado o utilizado en algún momento:
- about: config – panel para modificar las preferencias y configuraciones críticas de Firefox.
- acerca de: descargas: sus descargas recientes realizadas en Firefox.
- about: memory: muestra el uso de memoria de Firefox.
- about: newtab: la página predeterminada de la nueva pestaña.
- about: plugins: enumera todos sus complementos y otra información útil.
- about: privatebrowsing: abre una nueva ventana privada.
- about: networking: muestra información de redes.
Cabe señalar que estos cambios no afectan el funcionamiento de los sitios web de Internet en el navegador Firefox, pero en el futuro, Mozilla promete «auditar y evaluar de cerca» el uso de funciones dañinas en extensiones de terceros y otros mecanismos incorporados.
Firefox JavaScript en línea deshabilitado para seguridad
Dado que todas estas páginas están escritas en HTML / JavaScript y se representan en el contexto de seguridad del navegador, también son propensas a ataques de inyección de código que, en caso de vulnerabilidad, podrían permitir a los atacantes remotos inyectar y ejecutar código arbitrario en nombre de el usuario, es decir, ataques de secuencias de comandos entre sitios (XSS).
Para agregar una primera línea de defensa sólida contra los ataques de inyección de código, incluso cuando existe una vulnerabilidad, Mozilla ha bloqueado la ejecución de todos los scripts en línea, por lo tanto, también los scripts inyectados, implementando una estricta Política de Seguridad de Contenido (CSP) para garantizar el JavaScript El código solo se ejecuta cuando se carga desde un recurso empaquetado utilizando el protocolo interno.
Para lograr esto, Mozilla tuvo que reescribir todos los controladores de eventos en línea y mover todo el código JavaScript en línea fuera de línea en archivos empaquetados separados para las 45 páginas.
«No permitir ningún script en línea en ninguna de las páginas acerca de: limita la superficie de ataque de la ejecución de código arbitrario y, por lo tanto, proporciona una primera línea de defensa sólida contra los ataques de inyección de código», dijo Mozilla en una publicación de blog publicada hoy.
NO EVAL, NO MAL!
Cuando los atacantes no pueden inyectar script directamente, usan la función eval () de JavaScript y métodos similares para engañar a las aplicaciones de destino para que conviertan el texto en un JavaScript ejecutable para lograr la inyección de código.
Por lo tanto, además de las secuencias de comandos en línea, Mozilla también ha eliminado y bloqueado las funciones de evaluación, que el fabricante del navegador cree que es otra «herramienta peligrosa», ya que analiza y ejecuta una cadena arbitraria en el mismo contexto de seguridad que él mismo.
«Si ejecuta eval () con una cadena que podría verse afectada por una parte maliciosa, puede terminar ejecutando código malicioso en la máquina del usuario con los permisos de su página web / extensión», explica Mozilla en sus documentos web de MDN.
Google también comparte el mismo pensamiento, como dice el gigante de la tecnología , «evaluar es peligroso dentro de una extensión porque el código que ejecuta tiene acceso a todo en el entorno de alto permiso de la extensión».
Para esto, Mozilla reescribió todo el uso de funciones de evaluación de contextos privilegiados del sistema y el proceso padre en la base de código de su navegador web Firefox.
Además de esto, la compañía también agregó aserciones eval () que no permitirán el uso de la función eval () y sus parientes en contextos de script con privilegios del sistema e informarán al Equipo de Seguridad de Mozilla de instancias aún desconocidas de eval ().
Fuente: thehackernews.com