Un grupo de investigadores de cuatro universidades estadounidenses ha desarrollado una técnica de ataque llamada Pixnapping (CVE-2025-48561), que permite a aplicaciones de Android no privilegiadas y sin permisos adicionales determinar el contenido que otras aplicaciones muestran en la pantalla. Como ejemplo práctico de esta técnica, se ha demostrado cómo se pueden identificar los códigos de autenticación de dos factores que muestra la aplicación Google Authenticator. También se ha mostrado cómo se puede emplear este ataque para extraer datos confidenciales que aparecen en la pantalla al usar Gmail, Signal, Venmo y Google Maps.
Para determinar el contenido de la pantalla se utiliza un método de análisis pixelado, implementado en 2023 por el mismo equipo de investigadores en el ataque a través de canales secundarios GPU.zip, y que fue descrito por primera vez en 2013. La esencia del método radica en que, debido a las optimizaciones presentes en las GPU, la representación de un píxel con un color que ya se ha mostrado en la pantalla se realiza más rápidamente que la de un píxel con un color diferente. Evaluando la diferencia de tiempo en la representación de los píxeles, se puede reconstruir el contenido ya visible en la pantalla y formar una especie de captura de pantalla.
El ataque Pixnapping consiste en invocar la aplicación objetivo, superponer su ventana y realizar un análisis pixelado del contenido examinando el tiempo de ejecución de las operaciones gráficas en cada píxel. Este tipo de análisis permite determinar con alta probabilidad cuáles píxeles tienen un color de fondo blanco y cuáles forman parte de la visualización de caracteres. Para ocultar las manipulaciones de píxeles del usuario, se superponen capas con máscaras; durante el ataque, visualmente sigue mostrándose en la pantalla el contenido de la ventana de la aplicación que está siendo atacada.
Para activar la aplicación objetivo y hacer que los píxeles de su ventana entren en el canal de representación, se realiza un cambio entre actividades de Android mediante solicitudes de intent. Se muestran ventanas semitransparentes sobre la ventana de la aplicación objetivo que resaltan píxeles individuales y provocan la ejecución de operaciones gráficas con ellos a través de la API Window Blurs. Para medir el tiempo exacto de representación de un píxel se utilizan llamadas de retorno vinculadas a VSync.

La limitación del método propuesto anteriormente GPU.zip era el bajo rendimiento: al atacar el navegador, identificar el nombre con el que el usuario accedió a Wikipedia en otra pestaña requería 30 minutos en GPU AMD Ryzen 7 4800U y 215 minutos en GPU Intel i7-8700 a una precisión del 97-98%. Para ajustarse al intervalo de 30 segundos de actualización de códigos en Google Authenticator, el método fue mejorado y optimizado. El número de verificaciones de cada píxel se redujo de 64 a 16, y la latencia entre el procesamiento de píxeles se redujo de 1.5 segundos a 70 milisegundos. El escaneo se realizó no en toda la pantalla, sino solo en el área donde Google Authenticator muestra el código.
El método fue probado en smartphones Pixel 6, 7, 8 y 9 con versiones de Android 13-16 para determinar los seiscientos códigos de seis dígitos de autenticación de dos factores generados en Google Authenticator. La precisión para identificar códigos en los smartphones mencionados fue del 73%, 53%, 29% y 53%, con tiempos de determinación de 14.3, 25.8, 24.9 y 25.3 segundos, respectivamente. En el smartphone Samsung Galaxy S25, los investigadores no lograron ajustarse al intervalo de 30 segundos debido al ruido causado por el funcionamiento de otras aplicaciones, pero el dispositivo mostró opciones de ataque en otras aplicaciones, para las cuales no había limitaciones de tiempo. Los mecanismos utilizados en el ataque no son específicos de modelos de smartphones individuales y el ataque potencialmente afecta a cualquier dispositivo Android.
La compañía Google, en los parches de vulnerabilidades de septiembre, introdujo en Android una defensa inicial contra el ataque, basada en prohibir la operación de suavizado aplicada a un gran número de capas. En respuesta, los investigadores encontraron una manera de eludir esta limitación, por lo que Google planea implementar una protección más completa en la actualización de diciembre de Android. Los fabricantes de GPU aún no han anunciado la intención de eliminar el canal de fuga, a pesar de que el método de ataque es conocido desde hace más de 12 años.
Fuente: opennet.ru
