Google ha presentado el lanzamiento de la versión 102 del navegador web Chrome. Al mismo tiempo, está disponible la versión estable del proyecto de código abierto Chromium, que sirve como base para Chrome. El navegador Chrome se diferencia de Chromium en el uso de logotipos de Google, un sistema de envío de notificaciones en caso de fallos, módulos para la reproducción de contenido de video protegido contra copia (DRM), un sistema de instalación automática de actualizaciones, aislamiento Sandbox siempre habilitado, entrega de claves para las API de Google y la transmisión de parámetros RLZ durante la búsqueda. Para aquellos que necesitan más tiempo para actualizar, se mantiene por separado la rama Extended Stable, que se acompaña de 8 semanas adicionales. La próxima versión de Chrome 103 está programada para el 21 de junio.
Principales cambios en Chrome 102:
- Para bloquear la explotación de vulnerabilidades causadas por el acceso a bloques de memoria ya liberados (use-after-free), se ha comenzado a utilizar en lugar de punteros normales el tipo MiraclePtr (raw_ptr). MiraclePtr proporciona un envoltorio sobre punteros que realiza comprobaciones adicionales al acceder a áreas de memoria liberadas y finaliza el proceso en caso de detectar tales accesos. El impacto del nuevo método de protección en el rendimiento y el consumo de memoria se considera insignificante. El mecanismo MiraclePtr no se aplica en todos los procesos, en particular no se utiliza en los procesos de renderizado, pero puede fortalecer significativamente la seguridad. Por ejemplo, en la versión actual, de 32 vulnerabilidades corregidas, 12 fueron causadas por problemas de la clase use-after-free.
- Se ha cambiado el diseño de la interfaz con información sobre las descargas. En lugar de la barra inferior con datos sobre el progreso de la descarga, se ha añadido un nuevo indicador en la barra de direcciones, al hacer clic en el cual se muestra el progreso de la descarga de archivos y un historial con la lista de archivos ya descargados. A diferencia de la barra inferior, el botón se muestra continuamente en la barra y permite acceder rápidamente al historial de descargas. La nueva interfaz se ha propuesto por defecto solo a un grupo de usuarios y se expandirá a todos en caso de no haber problemas. Para devolver a la interfaz anterior o activar la nueva, se ha previsto la configuración 'chrome://flags#download-bubble'.

- Al buscar imágenes a través del menú contextual («Search image with Google Lens» o «Encontrar a través de Google Lens»), los resultados ahora se muestran no en una página separada, sino en un panel lateral junto al contenido de la página original (en una sola ventana se puede ver tanto el contenido de la página como el resultado de la consulta al motor de búsqueda).

- En la configuración, en la sección «Privacidad y seguridad» se ha añadido la sección «Guía de privacidad» («Privacy Guide»), que ofrece una visión general de las principales configuraciones que afectan la privacidad con explicaciones detalladas sobre el impacto de cada configuración. Por ejemplo, en esta sección se puede definir la política de envío de datos a los servicios de Google, gestionar la sincronización, el manejo de cookies y el almacenamiento del historial. Esta función está disponible para algunos usuarios; para activarla, se puede usar la configuración «chrome://flags#privacy-guide».

- Se ha estructurado el historial de búsqueda y las páginas visitadas. Al intentar realizar una búsqueda nuevamente en la barra de direcciones, aparece la sugerencia «Continuar búsqueda en el historial» («Resume your journey»), que permite continuar la búsqueda desde donde fue interrumpida la última vez.

- En el catálogo de Chrome Web Store, se ha propuesto la página «Extensions Starter Kit» con una selección inicial de extensiones recomendadas.
- En modo de prueba, se ha habilitado el envío al servidor del sitio principal de la solicitud de confirmación de derechos CORS (Cross-Origin Resource Sharing) con el encabezado «Access-Control-Request-Private-Network: true», en caso de que se acceda desde una página a un recurso en la red interna (192.168.x.x, 10.x.x.x, 172.16.x.x) o a localhost (128.x.x.x). Al confirmar la operación en respuesta a esta solicitud, el servidor debe devolver el encabezado «Access-Control-Allow-Private-Network: true». En la versión de Chrome 102, el resultado de la confirmación aún no afecta el procesamiento de la solicitud; si no hay confirmación, se muestra una advertencia en la consola web, pero la solicitud del subrecurso no se bloquea. Se espera que la inclusión del bloqueo en ausencia de confirmación por parte del servidor no ocurra antes de la versión de Chrome 105. Para habilitar el bloqueo en versiones anteriores, se puede activar la configuración «chrome://flags/#private-network-access-respect-preflight-results».
Confirmación de derechos el servidor se ha introducido para mejorar la protección contra ataques relacionados con el acceso a recursos en la red local o en el ordenador del usuario (localhost) desde scripts cargados al abrir el sitio web. Tales solicitudes son utilizadas por los atacantes para llevar a cabo ataques CSRF en enrutadores, puntos de acceso, impresoras, interfaces web corporativas y otros dispositivos y servicios que aceptan solicitudes solo desde la red local. Para protegerse contra tales ataques, en caso de que se acceda a cualquier sub-recurso en la red interna, el navegador enviará una solicitud explícita de autorización para cargar esos sub-recursos.
- Al abrir enlaces en modo incógnito a través del menú contextual, se asegura la eliminación automática de ciertos parámetros de la URL que afectan la privacidad.
- Se ha cambiado la estrategia de entrega de actualizaciones para Windows y Android. Para una comparación más completa del comportamiento de la nueva y la antigua versión, ahora se generan varias compilaciones de la nueva versión para su descarga.
- Se ha estabilizado la tecnología de segmentación de red para proteger contra métodos de seguimiento del movimiento del usuario entre sitios, basados en el almacenamiento de identificadores en áreas no destinadas a almacenar información de forma permanente (“Supercookies”). Dado que los recursos en caché se almacenan en un espacio de nombres compartido, independientemente del dominio original, un sitio puede detectar la carga de recursos desde otro sitio mediante la verificación de la existencia de este recurso en la caché. La protección se basa en la aplicación de la segmentación de red, cuya esencia es añadir a las cachés compartidas un vínculo adicional de las entradas a el dominio, desde el cual se abrió la página principal, lo que limita el alcance de la caché para los scripts de seguimiento del movimiento únicamente al sitio actual (un script de iframe no podrá verificar si un recurso se cargó desde otro sitio). La separación del estado abarca conexiones de red (HTTP/1, HTTP/2, HTTP/3, websocket), caché DNS, datos ALPN/HTTP2, TLS/HTTP3, configuración, descargas e información en el encabezado Expect-CT.
- Para aplicaciones web progresivas (PWA), se ha habilitado la opción de modificar el diseño del área de encabezado de la ventana mediante componentes de Overlay de Controles de Ventana, que expanden el área visual de la aplicación web a toda la ventana. La aplicación web puede gestionar el renderizado y el manejo de la entrada en toda la ventana, a excepción de la superposición del bloque con los botones predeterminados de control de ventana (cerrar, minimizar, maximizar), para darle a la aplicación web la apariencia de una aplicación de escritorio normal.

- En el sistema de autocompletado de formularios se ha agregado soporte para la generación de números de tarjetas de crédito virtuales en los campos de información de pago en las tiendas en línea. El uso de una tarjeta virtual, cuyo número se genera para cada pago, permite no transmitir los datos de la tarjeta de crédito real, pero requiere que el banco proporcione el servicio necesario. Actualmente, la función solo puede ser utilizada por clientes de algunos bancos en los Estados Unidos. Para gestionar la activación de la función, se ha propuesto la configuración "chrome://flags/#autofill-enable-virtual-card".
- Se ha activado por defecto el mecanismo "Capture Handle", que permite transferir información a aplicaciones encargadas de capturar video. La API ofrece la posibilidad de organizar la interacción entre aplicaciones cuyo contenido se grabó y aplicaciones que realizan la grabación. Por ejemplo, una aplicación para videoconferencias que está capturando video para transmitir una presentación puede obtener información sobre los controles de la presentación y mostrarlos en la ventana del video.
- Por defecto se ha habilitado el soporte para reglas especulativas (Speculation rules), que proporcionan una sintaxis flexible para definir la posibilidad de cargar anticipadamente datos relacionados con un enlace, que se produce en la etapa antes de que el usuario navegue por el enlace.
- Se ha estabilizado el mecanismo de empaquetado de recursos en paquetes en formato Web Bundle, lo que permite aumentar la eficiencia de carga de un gran número de archivos relacionados (estilos CSS, JavaScript, imágenes, iframe). A diferencia de los paquetes en formato Webpack, el formato Web Bundle tiene las siguientes ventajas: en la caché HTTP no se aloja el paquete en sí, sino sus componentes; la compilación y ejecución de JavaScript comienza sin esperar a la carga completa del paquete; se permite la inclusión de recursos adicionales, como CSS e imágenes, que en webpack debían codificarse en forma de cadenas de JavaScript.
- Se ha añadido la posibilidad de definir una aplicación PWA como manejador de ciertos tipos MIME y extensiones de archivos. Tras definir el enlace a través del campo file_handlers en el manifiesto, la aplicación recibirá un evento especial cuando un usuario intente abrir un archivo asociado con la aplicación.
- Se ha añadido un nuevo atributo inert que permite marcar parte del árbol DOM como 'inactiva'. Para los nodos DOM en este estado, se desactivan los manejadores de selección de texto y de puntero, es decir, las propiedades CSS pointer-events y user-select siempre están establecidas en ‘none’. Si un nodo permitía la edición, en modo inert se vuelve no editable.
- Se ha añadido la API Navigation, que permite a las aplicaciones web interceptar operaciones de navegación en la ventana, iniciar transiciones y analizar el historial de acciones con la aplicación. La API proporciona una alternativa a las propiedades window.history y window.location, optimizada para aplicaciones web de una sola página.
- Se ha propuesto un nuevo flag 'until-found' para el atributo 'hidden', que hace que el elemento esté disponible para la búsqueda en la página y para el desplazamiento a través de una máscara de texto. Por ejemplo, se puede añadir texto oculto en la página que sea accesible en una búsqueda local.
- En la API WebHID, destinada a acceso de bajo nivel a dispositivos HID (dispositivos de interfaz humana, teclados, ratones, controladores de juegos, paneles táctiles) y organización de su funcionamiento sin la necesidad de controladores específicos en el sistema, se ha añadido la propiedad exclusionFilters al objeto requestDevice(), que permite excluir ciertos dispositivos al mostrar al navegador la lista de dispositivos disponibles. Por ejemplo, se pueden excluir los identificadores de dispositivos que tienen problemas conocidos.
- Se ha prohibido mostrar el formulario de pago a través de la llamada PaymentRequest.show() sin una acción explícita del usuario, como un clic en un elemento asociado con el manejador.
- Se ha dejado de dar soporte a una implementación alternativa del protocolo SDP (Session Description Protocol), utilizado para establecer sesiones en WebRTC. Chrome ofrecía dos variantes de SDP: una unificada con otros navegadores y otra específica de Chrome. Desde ahora, solo queda la variante portátil.
- Se han realizado mejoras en las herramientas para desarrolladores web. En el panel Styles se han añadido botones para simular la aplicación de temas oscuros y claros. Se ha reforzado la protección de la pestaña Preview en el modo de inspección de red (se ha habilitado la aplicación de Content Security Policy). En el depurador se ha implementado la finalización de la ejecución de scripts para reiniciar puntos de interrupción. Se ha propuesto una implementación preliminar del nuevo panel 'Performance insights', que permite analizar el rendimiento de ciertas operaciones en la página.

Además de las novedades y correcciones de errores, en la nueva versión se han solucionado 32 vulnerabilidades. Muchas de las vulnerabilidades se identificaron mediante pruebas automatizadas con herramientas como AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer y AFL. A una de las vulnerabilidades (CVE-2022-1853) se le ha asignado un nivel crítico de peligro, lo que implica la posibilidad de eludir todos los niveles de seguridad del navegador y ejecutar código en el sistema fuera del entorno sandbox. Los detalles sobre esta vulnerabilidad aún no se han revelado, solo se sabe que es causada por un acceso a un bloque de memoria liberado (use-after-free) en la implementación de la API Indexed DB.
Como parte del programa de recompensas por descubrir vulnerabilidades para la versión actual, Google ha otorgado 24 premios por un total de 65,600 dólares estadounidenses (un premio de 10,000 dólares, un premio de 7,500 dólares, dos premios de 7,000 dólares, tres premios de 5,000 dólares, cuatro premios de 3,000 dólares, dos premios de 2,000 dólares, dos premios de 1,000 dólares y dos premios de 500 dólares). El importe de 7 recompensas aún no está determinado.
Fuente: opennet.ru






