Um grupo de cientistas americanos desenvolveu um ataque Pixnapping que lhes permite interceptar informações confidenciais de dispositivos Android exibindo-as na tela e lendo os dados exibidos pixel por pixel — ou, mais precisamente, pelo tempo que leva para renderizá-los.

Fonte da imagem: pixnapping.com
O ataque exige que o proprietário de um dispositivo Android tenha um aplicativo malicioso pré-instalado. Este aplicativo não requer permissões de sistema, mas permite que o invasor leia os dados da tela exibidos por qualquer outro aplicativo alvo. Pesquisadores demonstraram o ataque Pixnapping em smartphones Google Pixel e Samsung Galaxy S25; ele provavelmente poderia ser adaptado para outros modelos.
O aplicativo malicioso chama APIs do Android que forçam os sistemas de autenticação multifator e outros aplicativos a exibir informações confidenciais na tela do dispositivo. Em seguida, ele analisa os dados do pipeline gráfico e reconstrói os dados desejados pelo invasor pixel por pixel — dados não exibidos na tela não podem ser interceptados.
O ataque é realizado em três etapas. Na primeira, o aplicativo malicioso chama APIs do Android que acessam os aplicativos alvo ou verificam o dispositivo em busca desses aplicativos. Usando essas chamadas, o malware força os aplicativos alvo a exibir os dados necessários, como mensagens de mensagens instantâneas ou códigos de autenticação de dois fatores para login em um site.
Na segunda etapa, o algoritmo Pixnapping exibe uma imagem transparente ou semitransparente sobre a interface do aplicativo de destino e analisa os dados do pipeline gráfico para reconstruir as informações interceptadas pixel por pixel. Isso pode ser feito de várias maneiras. Por exemplo, o algoritmo analisa a área da tela onde o Google Authenticator exibe os códigos.A autenticação de dois fatores e o tempo de renderização determinam se um pixel em uma determinada coordenada é branco ou não — ou, em geral, se corresponde à cor original.
Na terceira etapa, é medido o tempo necessário para renderizar um quadro, que depende da cor do pixel em uma determinada coordenada. A vulnerabilidade surgiu devido a mecanismos de compressão no pipeline gráfico, que fazem com que o tempo de renderização do quadro dependa do seu conteúdo. Se um pixel corresponder à cor original, leva menos tempo para renderizar; se não corresponder, leva mais tempo. Essas medições são repetidas para melhorar estatisticamente a precisão do mecanismo de ataque. Usando esses dados, o algoritmo malicioso reconstrói a imagem exibida pelo aplicativo alvo e suas informações correspondentes, pixel por pixel.
A implementação prática desse ataque é complicada pelo fato de que alguns dos dados que o algoritmo malicioso foi projetado para interceptar permanecem válidos por um período muito curto — por exemplo, um código de autenticação de dois fatores pode expirar em apenas 30 segundos. Em alguns casos, os criadores do ataque conseguiram otimizá-lo reduzindo o número de passagens de varredura para ler o pixel alvo em uma determinada coordenada para 16 (anteriormente 34 ou até 64) e diminuindo o tempo entre as passagens de varredura de 1,5 s para 70 ms. O ataque, implementado no smartphone Google Pixel 6, ajudou a recuperar o código de seis dígitos do Google Authenticator em 73% dos casos, com um tempo médio de 14,3 s. Para outros smartphones do mesmo fabricante, as taxas de sucesso do ataque foram distribuídas da seguinte forma: Pixel 7 – 53% e 25,8 s; Pixel 8 – 29% e 24,9 s; Pixel 9 – 53% e 25,3 s.Assim, no caso do Samsung Galaxy S25, os autores do estudo não conseguiram concluir a análise em 30 segundos devido aos altos níveis de ruído.
O Google observou que a vulnerabilidade, com o número CVE-2025-48561, foi parcialmente corrigida na atualização de setembro do Android; é possível que seja totalmente corrigida na atualização de dezembro. Ainda não há confirmação de que esse esquema tenha sido explorado na prática.
