Acessar um mesmo conteúdo em dispositivos de sistemas operacionais diferentes normalmente não gera grandes alterações no que você enxerga. A interface do navegador pode mudar, assim como a resolução do display afeta a qualidade do que é exibido. Porém, a substância em si não é alterada.... certo?
O engenheiro especializado em criptografia David Buchanan quer quebrar esse padrão. O especialista criou uma simples imagem em formato PNG que tem o conteúdo alterado dependendo do dispositivo.
Se você abrir a imagem para ser visualizada em um aparelho com Windows ou Android, por exemplo, verá a mensagem "Hello World" (Olá, mundo). Ao acessar em um modelo com iOS ou Mac, ou utilizando o navegador Safari, o recado muda e vira "Hello Apple" (Olá, Apple). Experimente abaixo:
O que você vê? Hello World ou Hello Apple?Fonte: David Buchanan
Em nossos testes, conseguimos reproduzir as duas versões usando um computador com Windows 10 e um iPad Air de segunda geração com o navegador Safari aberto. Os resultados, porém, podem variar de acordo com o dispositivo e a versão do sistema.
O engenheiro também criou uma segunda versão que leva em conta uma rivalidade histórica da computação. Na foto abaixo, você vê um PC da IBM ou o Macintosh da Apple? O resultado pode ser diferente dependendo do dispositivo.
E agora?Fonte: David Buchanan
Que bruxaria é essa?
De acordo com o site Bleeping Computer, o trabalho de Buchanan foi relativamente simples e envolve o conceito de "PNGs de decodificação paralela".
Dependendo de como é a programação implementada para renderizar imagens, um mesmo arquivo visual pode apresentar conteúdos finais diferentes.
As possíveis interpretações do PNG em aparelhos diferentes.Fonte: David Buchanan
Esse bug, que o especialista não sabe ainda se pode ser uma vulnerabilidade de segurança ou apenas uma descoberta sem grandes aplicações, ocorre porque a Apple utiliza uma implementação própria de como "ler" PNGs.
Na criação da imagem, ele conseguiu implementar ambas as interpretações para uma mesma imagem. Caso uma delas seja lida normalmente em aparelhos com Windows ou Android, nada acontece. Se o mecanismo for diferente, como é o caso da Apple, a segunda alternativa é utilizada.
O código manual para criação do PNG.Fonte: David Buchanan
Buchanan até mostrou o código em Python utilizado, gerando a "mensagem secreta", e colocou o trabalho no GitHub sob o nome de Ambiguous PNG Packer, para qualquer pessoa criar as imagens com duas interpretações.
Fontes