Críticas a la inclusión de la API de detección de inactividad en Chrome 94. Experimentando con Rust en Chrome

La inclusión predeterminada de la API de detección de inactividad en Chrome 94 ha provocado una ola de críticas, citando objeciones de los desarrolladores de Firefox y WebKit/Safari.

La API de detección inactiva permite a los sitios detectar el momento en que un usuario está inactivo, es decir, No interactúa con el teclado/ratón ni realiza trabajos en otro monitor. La API también le permite saber si se está ejecutando un protector de pantalla en el sistema o no. La información sobre la inactividad se realiza mediante el envío de una notificación después de alcanzar un umbral de inactividad específico, cuyo valor mínimo se establece en 1 minuto.

Es importante tener en cuenta que el uso de la API de detección inactiva requiere la concesión explícita de permisos de usuario, es decir. Si la aplicación intenta detectar inactividad por primera vez, se presentará al usuario una ventana preguntando si otorga permisos o bloquea la operación. Para deshabilitar completamente la API de detección de inactividad, se proporciona una opción especial ("chrome://settings/content/idleDetection") en la sección de configuración "Privacidad y seguridad".

Las áreas de aplicación incluyen aplicaciones de chat, redes sociales y comunicaciones que pueden cambiar el estado del usuario dependiendo de su presencia en la computadora o retrasar la notificación de nuevos mensajes hasta que llegue el usuario. La API también se puede utilizar en aplicaciones de quiosco para volver a la pantalla original después de un período de inactividad o para deshabilitar operaciones interactivas que consumen muchos recursos, como volver a dibujar gráficos complejos y que se actualizan constantemente, cuando el usuario no está frente a la computadora.

La posición de quienes se oponen a habilitar la API de detección de inactividad es que la información sobre si el usuario está frente a la computadora o no puede considerarse confidencial. Además de las aplicaciones útiles, esta API también se puede utilizar con malos propósitos, por ejemplo, para intentar explotar vulnerabilidades mientras el usuario está ausente o para ocultar actividades maliciosas notorias, como la minería. Utilizando la API en cuestión también se puede recopilar información sobre los patrones de comportamiento del usuario y el ritmo diario de su trabajo. Por ejemplo, se puede saber cuándo el usuario suele ir a almorzar o salir del lugar de trabajo. En el contexto de una solicitud obligatoria de prueba de autorización, Google considera estas preocupaciones como insignificantes.

Además, puede consultar la nota de los desarrolladores de Chrome sobre la promoción de nuevas técnicas para garantizar un funcionamiento seguro con la memoria. Según Google, el 70% de los problemas de seguridad en Chrome se deben a errores de memoria, como el uso de un buffer después de liberar la memoria asociada a él (use-after-free). Se identifican tres estrategias principales para abordar estos errores: reforzar las comprobaciones en la etapa de compilación, bloquear errores en tiempo de ejecución y utilizar un lenguaje seguro para la memoria.

Se informa que han comenzado los experimentos para agregar la capacidad de desarrollar componentes en el lenguaje Rust al código base de Chromium. El código Rust aún no está incluido en las compilaciones entregadas a los usuarios y su objetivo principal es probar la posibilidad de desarrollar partes individuales del navegador en Rust y su integración con otras partes escritas en C++. Paralelamente, para el código C++, continúa desarrollándose un proyecto para utilizar el tipo MiraclePtr en lugar de punteros sin formato para bloquear la posibilidad de explotar vulnerabilidades causadas por el acceso a bloques de memoria ya liberados, y también se proponen nuevos métodos para detectar errores en la etapa de compilación.

Además, Google está iniciando un experimento para probar la posible interrupción de los sitios después de que el navegador alcance una versión que consta de tres dígitos en lugar de dos. En particular, en las versiones de prueba de Chrome 96, apareció la configuración "chrome://flags#force-major-version-to-100", cuando se especifica en el encabezado User-Agent, versión 100 (Chrome/100.0.4650.4) comienza a mostrarse. En agosto, se realizó un experimento similar en Firefox, que reveló problemas con el procesamiento de versiones de tres dígitos en algunos sitios.

Fuente: opennet.ru

Añadir un comentario