É possível armazenar dados arbitrários em um arquivo de imagem?

25

É possível armazenar dados arbitrários, como documentos ou um programa, na forma de um arquivo de imagem, como uma imagem PNG? Minha preocupação é que alguém possa codificar dados para uso por malware em uma imagem e enviá-los para um site como o Flickr.

bwDraco
fonte
3
Confira a exploração do MICE que deu à Microsoft um olho roxo há alguns anos.
Synetech
1
Sim, isso estava entre os links na página MICE. Se você estiver adicionando arbitrariamente links a partir dessa página, também poderá adicionar isto , isto , isto , isto , isto , isto e acima de tudo isso .
Synetech
@ Synetech: Desculpe; o link no comentário (agora excluído) era de uma pesquisa no Google, não do artigo da Wikipedia.
bwDraco
Oh tudo bem; não se preocupe. O artigo da Wikipedia tem ótimas especificações técnicas (vinculei a maioria das melhores da Microsoft, Sysinternals e GRC). Isso realmente causou mais hype do que danos reais, pelo que me lembro. O último link no meu comentário foi o patch de terceiros que alguém resolveu fazer até a Microsoft lançar e o Windows Update oficial para corrigi-lo. :-P
Synetech

Respostas:

22

Para a maioria dos formatos de arquivo, sim. Por exemplo, os arquivos PNG são compostos por pedaços digitados, portanto, você pode adicionar um pedaço chamado aAAAou lOLZcom dados arbitrários. O JPEG possui segmentos "específicos do aplicativo" ; as tags Exif em JPEG são na verdade uma estrutura TIFF completa dentro dessa tag. Outros formatos, como GIF, não são extensíveis, mas geralmente possuem um campo para comentários em texto; isso já foi abusado .APPn

No entanto, existem maneiras de se proteger contra isso - por exemplo, sites como o Imgur processam automaticamente todos os envios com pngcrushferramentas semelhantes ou que descartam tudo o que não é absolutamente necessário.

Mas, no final, a troca de dados não pode ser impedida. Além da esteganografia de imagem acima mencionada, você tem o Twitter e seus clones, dezenas de pastas (nas quais as postagens incompreensíveis são consideradas razoavelmente normais), formas de comentários de postagens antigas do blog (ainda estou tentando lembrar o livro em que isso foi sugerido), ... de maneira mais realista, a maioria dos malwares simplesmente entra em contato com seus "próprios" servidores.

gravidade
fonte
19

Não existem dados maliciosos. Os dados não se tornam maliciosos até que sejam executados; nesse ponto, não são mais dados. O problema com esse tipo de coisa não seria a imagem, seria o software (Windows, Photoshop, o que seja) que contém um bug que faz com que os dados sejam executados. Essa é obviamente uma preocupação importante dos principais fornecedores de software, e você pode ter certeza de que eles corrigem esses erros logo após serem descobertos.

Dito isto, como indicado nas outras respostas, é possível adicionar dados que não fazem parte da própria imagem ao arquivo. No entanto, isso geralmente é útil ou mesmo prática padrão. Eu acho muito mais importante ter cuidado com os executáveis ​​do que com as imagens aleatórias que você encontra na internet. O risco aqui não é tão grande.

Jouke van der Maas
fonte
"os dados não podem ser maliciosos" e os malwares que usam esteganografia para enviar informações como o número do seu cartão de crédito por canais inocentes?
precisa saber é
12

Os arquivos de imagem, incluindo PNG, têm um formato específico. A parte do cabeçalho do arquivo descreve a imagem e quaisquer dados a seguir serão interpretados como dados da imagem (com base nos cabeçalhos).

No entanto, você pode anexar dados arbitrários ao final de um PNG, além dos dados da imagem, que poderão ser lidos posteriormente. Isso seria bastante fácil de detectar - não deve haver dados após o final dos dados da imagem.

Como alternativa, você pode codificar dados arbitrários na própria imagem, usando a esteganografia . Isso altera sutilmente a própria imagem de uma maneira que é amplamente indetectável, a menos que você saiba exatamente o que procurar (geralmente é necessário um conhecimento prévio do método de codificação).

Paulo
fonte
Sei que o Adobe Fireworks realmente armazena dados extras em arquivos png (que não fazem parte da imagem).
Jouke van der Maas
Esteganografia: stegosploit.info obviamente
Mars Robertson