Articulo de referencia

Aislamiento del sitio

Una representación de cómo el aislamiento del sitio separó diferentes sitios web en diferentes procesos. El aislamiento de sitios es una función de seguridad del navegador que a...

Este es un buen artículo. Haz clic aquí para obtener más información.

Una representación de cómo el aislamiento del sitio separó diferentes sitios web en diferentes procesos.

El aislamiento de sitios es una función de seguridad del navegador que agrupa los sitios web en procesos aislados según su origen . Esta técnica permite que el entorno aislado bloquee los ataques de omisión entre orígenes que, de otro modo, quedarían expuestos por vulnerabilidades explotables en el proceso aislado.

La función fue propuesta públicamente por primera vez por Charles Reis y otros, aunque Microsoft trabajaba de forma independiente en su implementación en el navegador de investigación Gazelle al mismo tiempo. Inicialmente, el enfoque no logró consolidarse debido al gran esfuerzo de ingeniería necesario para implementarlo en un navegador completo y a las preocupaciones sobre el impacto en el rendimiento real del uso potencialmente ilimitado de procesos. En 2018, tras el descubrimiento público de las vulnerabilidades Spectre y Meltdown , Google aceleró el trabajo, culminando con el lanzamiento de la función en 2019. En 2021, Firefox también lanzó su propia versión de aislamiento de sitios, en la que habían estado trabajando bajo el nombre en clave Project Fission .

A pesar de las ventajas de seguridad que ofrece esta función, también presenta limitaciones e inconvenientes. Si bien proporciona una protección básica contra ataques de canal lateral como Spectre y Meltdown , la protección total contra estos ataques requiere que los desarrolladores habiliten explícitamente ciertas protecciones avanzadas del navegador. El principal inconveniente del aislamiento de sitios web radica en el mayor consumo de recursos que implican los procesos adicionales. Esto limita su eficacia en algunos tipos de dispositivos y, en ciertos casos, puede utilizarse indebidamente para realizar ataques de agotamiento de recursos .

Fondo

Hasta 2017, la arquitectura de seguridad predominante de los principales navegadores se basaba en el modelo de un proceso por instancia de navegación. Esto implicaba que el navegador constaba de distintos procesos aislados , incluyendo el proceso del navegador, el proceso de la GPU, el proceso de red y el proceso de renderizado. El proceso de renderizado interactuaba con otros servicios privilegiados cuando era necesario para ejecutar acciones elevadas al visualizar una página web. [ 1 ] [ 2 ]

Aunque este modelo logró prevenir los problemas asociados con el acceso de JavaScript malicioso al sistema operativo, carecía de la capacidad de aislar adecuadamente los sitios web entre sí. [ 3 ] A pesar de estas preocupaciones, la adopción de un modelo más robusto tuvo una acogida limitada debido a los problemas percibidos con los modelos más recientes, particularmente aquellos relacionados con el rendimiento y la memoria. [ 4 ] [ 5 ]

En 2017, la revelación de las vulnerabilidades Spectre y Meltdown alteró este panorama. Anteriormente, acceder a memoria arbitraria era complicado, ya que requería un renderizador comprometido. Sin embargo, con Spectre, se desarrollaron ataques que abusaban de las características de JavaScript para leer casi toda la memoria en el proceso de renderizado, incluida la memoria que almacena información potencialmente sensible de páginas de origen cruzado renderizadas previamente. [ 6 ] [ 7 ] Esto expuso los problemas del modelo de seguridad de proceso por instancia. En consecuencia, se requirió una nueva arquitectura de seguridad que permitiera la separación del renderizado de diferentes páginas web en procesos completamente aislados. [ 8 ] [ 7 ]

Historia

En 2009, Reis et al. propusieron la primera versión del modelo de proceso por sitio para aislar páginas web según su origen web. [ 9 ] Este modelo fue mejorado en 2009 por el navegador de investigación Gazelle , que separaba marcos de documentos específicos según su principal web, una barrera de seguridad que correspondía al documento específico que se estaba cargando. [ 10 ] [ 11 ] Casi al mismo tiempo, también se trabajaba en los navegadores OP (que más tarde se convertiría en el navegador OP2), IBOS, Tahoma y SubOS, todos los cuales proponían diferentes paradigmas para resolver el problema de la separación de procesos entre sitios. [ 12 ] [ 13 ]

Implementación moderna

En mayo de 2013, un miembro del equipo de aislamiento de sitios de Google Chrome anunció en la lista de correo chromium-dev que comenzarían a implementar código para i-frames fuera de proceso (OOPIF). [ 14 ] Posteriormente, en enero de 2015, se celebró una Cumbre de Aislamiento de Sitios en BlinkOn, donde se presentó al equipo de ocho ingenieros y se describió la motivación, los objetivos, la arquitectura, el cronograma propuesto y el progreso realizado hasta el momento. La presentación también incluyó una demostración de Chrome ejecutándose con un prototipo inicial de aislamiento de sitios. [ 15 ]

En 2019, Reis y otros del proyecto Google Chrome presentaron un documento en USENIX Security [ 16 ] que detallaba cambios en su modelo de seguridad de navegador existente en respuesta a la investigación reciente que demostraba que el ataque Spectre podía usarse dentro del proceso de renderizado del navegador. [ 17 ] [ 18 ] El documento proponía cambios en el modelo que se basaban en el trabajo de Reis y otros en 2009. [ 19 ] La implementación de Chrome del aislamiento de sitios usaría los orígenes web como un diferenciador principal de un 'sitio' a nivel de proceso. [ 20 ] [ 21 ] Además, el equipo de Chrome también implementó la idea de que los marcos de los sitios web se ejecutaran fuera del proceso, una característica que había sido sugerida por los autores del navegador web Gazelle , así como de los navegadores web OP y OP2. [ 12 ] Esto requirió una reingeniería significativa del código de manejo de procesos de Chrome, involucrando más de 4000 confirmaciones de 320 colaboradores durante un período de 5 años. [ 22 ]

La implementación del aislamiento de sitios de Chrome le permitió eliminar múltiples ataques de secuencias de comandos entre sitios universales (uXSS). [ 23 ] Los ataques uXSS permiten a los atacantes comprometer la política del mismo origen , otorgando acceso sin restricciones para inyectar y cargar código JavaScript controlado por el atacante en otros sitios web. [ 24 ] El equipo de Chrome descubrió que los 94 ataques uXSS reportados entre 2014 y 2018 serían neutralizados mediante la implementación del aislamiento de sitios. [ 25 ] Además, el equipo de Chrome también afirmó que su implementación del aislamiento de sitios sería eficaz para prevenir variaciones del grupo de ataques de temporización Spectre y Meltdown que dependían de que el espacio de direcciones de la víctima estuviera en el mismo proceso que el proceso del atacante. [ 18 ]

En marzo de 2021, el equipo de desarrollo de Firefox anunció que también implementaría su función de aislamiento de sitios. Esta función había estado en desarrollo durante varios meses bajo el nombre en clave Proyecto Fission. [ 26 ] La implementación de Firefox corrigió algunas de las fallas que se habían encontrado en la implementación de Chrome, principalmente el hecho de que páginas web similares aún eran vulnerables a ataques uXSS. [ 27 ] [ 28 ] El proyecto también requirió una reescritura del código de manejo de procesos en Firefox. [ 29 ]

Recepción

Antes de 2019, el aislamiento de sitios solo se había implementado en navegadores de investigación. Se consideraba que el aislamiento de sitios consumía muchos recursos [ 5 ] debido a un aumento en la cantidad de espacio de memoria ocupado por los procesos. [ 30 ] Esta sobrecarga de rendimiento también se reflejó en implementaciones reales. [ 31 ] La implementación de aislamiento de sitios de Chrome, en promedio, requería de uno a dos núcleos más que la misma implementación sin aislamiento de sitios. [ 5 ] Además, los ingenieros que trabajaban en el proyecto de aislamiento de sitios observaron un aumento del 10 al 13 por ciento en el uso de memoria cuando se utilizaba el aislamiento de sitios. [ 32 ] [ 33 ]

Chrome fue el primer navegador web importante de la industria en adoptar el aislamiento de sitios como defensa contra ataques uXSS y de ejecución transitoria . [ 34 ] Para ello, superaron múltiples obstáculos de rendimiento y compatibilidad, y al hacerlo, impulsaron un esfuerzo a nivel de la industria para mejorar la seguridad de los navegadores . Sin embargo, a pesar de esto, se ha descubierto que ciertos aspectos de las defensas de Spectre son deficientes. [ 6 ] En particular, se ha descubierto que la capacidad del aislamiento de sitios para defenderse contra ataques de temporización es incompleta. [ 35 ] En 2021, Agarwal et al. lograron desarrollar un exploit llamado Spook.js que pudo romper las defensas Spectre de Chrome y exfiltrar datos a través de páginas web en diferentes orígenes. [ 36 ] En el mismo año, investigadores de Microsoft lograron aprovechar el aislamiento de sitios para realizar una variedad de ataques de temporización que les permitieron filtrar información de origen cruzado mediante la manipulación cuidadosa de los protocolos de comunicación entre procesos empleados por el aislamiento de sitios. [ 37 ]

En 2023, investigadores de la Universidad Ruhr de Bochum demostraron que podían aprovechar la arquitectura de procesos requerida por el aislamiento del sitio para agotar los recursos del sistema y también realizar ataques avanzados como el envenenamiento de DNS . [ 38 ]

Referencias

Citas

  1. ^ Reis y Gribble 2009 , págs.
  2. ^ Dong y col. 2013 , págs. 78–79.
  3. ^ Jia y col. 2016 , págs. 791–792.
  4. ^ Dong et al. 2013 , pág. 89.
  5. ^ a b c Zhu, Wei y Tiwari 2022 , p. 114.
  6. ^ Jin et al. 2022 , pág. 1525.
  7. ^ a b Röttger y Janc .
  8. ^ Rogowski y col. 2017 , págs. 336–367.
  9. ^ Reis y Gribble 2009 , págs.
  10. ^ Paul 2009 .
  11. ^ Wang et al. 2009 , págs. 1–2.
  12. ^ Reis , Moshchuk y Oskov 2019 , p. 1674.
  13. ^ Dong et al. 2013 , pág. 80.
  14. ^ Oskov, Nasko (1 de mayo de 2013). "PSA: Seguimiento de cambios para iframes fuera de proceso" . chromium-dev (Lista de correo) . Recuperado el 30 de agosto de 2024 .
  15. ^ Cumbre sobre el aislamiento de sitios (YouTube). 29 de enero de 2015. Consultado el 30 de agosto de 2024 .
  16. ^ Gierlings, Brinkmann y Schwenk 2023 , p. 7049.
  17. ^ Kocher y col. 2020 , págs. 96–97.
  18. ^ Reis , Moshchuk y Oskov 2019 , p. 1661.
  19. ^ Reis, Moshchuk y Oskov 2019 , págs.1663, 1664.
  20. ^ Bishop 2021 , págs. 25–26.
  21. ^ Rokicki, Maurice y Laperdrix 2021 , pág. 476.
  22. ^ Reis, Moshchuk y Oskov 2019 , p. 1667.
  23. ^ Kim y Lee 2023 , pág. 757.
  24. ^ Kim et al. 2022 , pág. 1007.
  25. ^ Reis, Moshchuk y Oskov 2019 , pág. 1668.
  26. ^ Cimpanu 2019 .
  27. ^ Narayan et al. 2020 , pág. 714.
  28. Kokatsu 2020 .
  29. ^ Layzell 2019 .
  30. ^ Reis y Gribble 2009 , págs.
  31. ^ Wang et al. 2009 , págs. 12–13.
  32. ^ Warren 2018 .
  33. ^ Reis, Moshchuk y Oskov 2019 , pág. 1671.
  34. ^ Jin et al. 2022 , pág. 1526.
  35. ^ Jin et al. 2022 , pág. 1527.
  36. ^ Agarwal et al. 2022 , págs. 1529, 1530.
  37. ^ Jin y otros. 2022 , págs. 1525, 1530.
  38. ^ Gierlings, Brinkmann y Schwenk 2023 , págs.

Fuentes

  • Reis, Charles; Gribble, Steven D. (abril de 2009). «Aislamiento de programas web en arquitecturas de navegadores modernos» . Actas de la 4.ª Conferencia Europea de la ACM sobre Sistemas Informáticos . ACM. págs.  219-232 . doi : 10.1145/1519065.1519090 . ISBN 978-1-60558-482-9. S2CID  8028056 . Archivado del original el 24-12-2023 . Recuperado el 24-12-2023 .
  • Rogowski, Roman; Morton, Micah; Li, Forrest; Monrose, Fabian; Snow, Kevin Z.; Polychronakis, Michalis (2017). «Revisando la seguridad del navegador en la era moderna: nuevos ataques y defensas basados ​​únicamente en datos». Simposio Europeo IEEE de Seguridad y Privacidad (EuroS&P) de 2017. págs.  366–381 . doi : 10.1109/EuroSP.2017.39 . ISBN 978-1-5090-5762-7. S2CID  7325479 .
  • Röttger, Stephen; Janc, Artur. "Una prueba de concepto de Spectre para una web a prueba de Spectre" . Blog de seguridad en línea de Google . Archivado del original el 24 de diciembre de 2023. Recuperado el 24 de diciembre de 2023 .
  • Dong, Xinshu; Hu, Hong; Saxena, Prateek; Liang, Zhenkai (2013). Crampton, Jason; Jajodia, Sushil; Mayes, Keith (eds.). Una evaluación cuantitativa de la separación de privilegios en diseños de navegadores web . Lecture Notes in Computer Science. Berlín, Heidelberg: Springer. pp.  75–93 . doi : 10.1007/978-3-642-40203-6_5 . ISBN 978-3-642-40203-6Archivado del original el 29/12/2023 . Consultado el 29/12/2023 .
  • Warren, Tom (12 de julio de 2018). "Chrome ahora usa más RAM debido a las correcciones de seguridad de Spectre" . The Verge . Archivado del original el 25 de octubre de 2022. Recuperado el 30 de diciembre de 2023 .
  • Reis, Charles; Moshchuk, Alexander; Oskov, Nasko (2019). Aislamiento de sitios: Separación de procesos para sitios web dentro del navegador . pp.  1661–1678 . ISBN 978-1-939133-06-9Archivado del original el 28/11/2023 . Consultado el 24/12/2023 .
  • Zhu, Yongye; Wei, Shijia; Tiwari, Mohit (2022). "Revisiting Browser Performance Benchmarking From an Architectural Perspective". IEEE Computer Architecture Letters . 21 (2): 113– 116. Bibcode : 2022ICAL...21..113Z . doi : 10.1109/LCA.2022.3210483 . S2CID  252641754 .
  • Paul, Ryan (10 de julio de 2009). "Dentro de Gazelle, el "sistema operativo basado en navegador" de Microsoft Research"." . Ars Technica . Consultado el 7 de marzo de 2024 .
  • Jin, Zihao; Kong, Ziqiao; Chen, Shuo; Duan, Haixin (2022). "Vulnerabilidades de privacidad de navegación basadas en el tiempo mediante el aislamiento del sitio". Simposio IEEE de 2022 sobre seguridad y privacidad (SP) . págs.  1525–1539 . doi : 10.1109/SP46214.2022.9833710 . ISBN 978-1-6654-1316-9. S2CID  247570554 .
  • Layzell, Nika (04-02-2019). "NIKA:\fission-news-1\>" . mystor.github.io . Archivado del original el 29-12-2023 . Recuperado el 30-12-2023 .
  • Agarwal, Ayush; o'Connell, Sioli; Kim, Jason; Yehezkel, Shaked; Genkin, Daniel; Ronen, Eyal; Yarom, Yuval (2022). "Spook.js: Ataque al aislamiento estricto de sitios de Chrome mediante ejecución especulativa". Simposio IEEE de 2022 sobre seguridad y privacidad (SP) . págs.  699–715 . doi : 10.1109/SP46214.2022.9833711 . ISBN 978-1-6654-1316-9. S2CID  251140823 .
  • Rokicki, Thomas; Maurice, Clémentine; Laperdrix, Pierre (2021). «SoK: En busca del tiempo perdido: Una revisión de los temporizadores de JavaScript en los navegadores» . Simposio Europeo IEEE de Seguridad y Privacidad (EuroS&P) de 2021 (PDF) . págs.  472–486 . doi : 10.1109/EuroSP51992.2021.00039 . ISBN 978-1-6654-1491-3. S2CID  263897590 . Archivado (PDF) del original el 17-12-2022 . Recuperado el 24-12-2023 .
  • Wang, Helen; Grier, Chris; Moshchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman; King, Sam (19 de febrero de 2009). "La construcción del sistema operativo multiprincipal del navegador web Gazelle" . SSYM'09: Actas de la 18.ª Conferencia sobre el Simposio de Seguridad USENIX . Archivado del original el 4 de septiembre de 2023. Consultado el 29 de diciembre de 2023 .
  • Jia, Yaoqi; Chua, Zheng Leong; Hu, Hong; Chen, Shuo; Saxena, Prateek; Liang, Zhenkai (24 de octubre de 2016). "«La frontera entre la web y lo local es difusa: un estudio de seguridad del sandboxing basado en procesos de Chrome» . Actas de la Conferencia ACM SIGSAC de 2016 sobre Seguridad Informática y de las Comunicaciones (CCS '16). Nueva York, NY, EE. UU.: Association for Computing Machinery. págs.  791-804 . doi : 10.1145/2976749.2978414 . ISBN 978-1-4503-4139-4. S2CID  7573477 .
  • Bishop, Douglas L. (2021). Mejoras en la seguridad y privacidad del usuario en un navegador web (Tesis). Universidad de Dayton. Archivado del original el 24 de diciembre de 2023. Recuperado el 24 de diciembre de 2023 .
  • Cimpanu, Catalin (06-02-2019). "Firefox tendrá una función de 'aislamiento de sitios', similar a la de Chrome" . ZDNET . Archivado del original el 29-12-2023 . Recuperado el 29-12-2023 .
  • Narayan, Shravan; Disselkoen, Craig; Garfinkel, Tal; Froyd, Nathan; Rahm, Eric; Lerner, Sorin; Shacham, Hovav; Stefan, Deian (2020). Adaptación del aislamiento de grano fino en el renderizador de Firefox . págs.  699–716 . ISBN 978-1-939133-17-5. Archivado del original el 24-12-2023 . Consultado el 24-12-2023 .
  • Gierlings, Matías; Brinkmann, Marcos; Schwenk, Jörg (2023). Aislado y agotado: atacar sistemas operativos mediante el aislamiento de sitios en el navegador . págs.  7037–7054 . ISBN 978-1-939133-37-3. Archivado del original el 24-12-2023 . Consultado el 24-12-2023 .
  • Kokatsu, Jun (10 de noviembre de 2020). "Análisis en profundidad del aislamiento de sitios (Parte 1)" . Investigación sobre vulnerabilidades del navegador de Microsoft . Archivado del original el 24 de diciembre de 2023. Consultado el 24 de diciembre de 2023 .
  • Kim, Young Min; Lee, Byoungyoung (2023). Extendiendo una mano a los atacantes: Ataques de escalada de privilegios del navegador mediante extensiones . pp.  7055–7071 . ISBN 978-1-939133-37-3. Archivado del original el 24-12-2023 . Consultado el 24-12-2023 .
  • Kocher, Paul; Horn, Jann; Fogh, Anders; Genkin, Daniel; Gruss, Daniel; Haas, Werner; Hamburg, Mike; Lipp, Moritz; Mangard, Stefan; Prescher, Thomas; Schwarz, Michael; Yarom, Yuval (2020-06-18). "Ataques Spectre: explotación de la ejecución especulativa" . Communications of the ACM . 63 (7): 93– 101. doi : 10.1145/3399742 . ISSN  0001-0782 . S2CID  373888 .
  • Kim, Sunwoo; Kim, Young Min; Hur, Jaewon; Song, Suhwan; Lee, Gwangmu; Lee, Byoungyoung (2022). {FuzzOrigin}: Detección de vulnerabilidades {UXSS} en navegadores mediante fuzzing de origen . pp.  1008–1023 . ISBN 978-1-939133-31-1.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Site_isolation&oldid=1308077298 "