A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Criptografia Numaboa

Detectando dados ocultos em imagens

Seg

21

Mar

2005


18:56

(7 votos, média 4.43 de 5) 


Não existe uma fórmula mágica para detectar a presença de dados escondidos em imagens, mas há dois procedimentos básicos para se começar: o ataque visual e o ataque estatístico.

Caso a mensagem seja anexada no final do arquivo de cobertura, os bytes dos pixels da imagem não são alterados, mas o tamanho do arquivo aumenta. Se não possuirmos a imagem original para comparar o tamanho das duas, ainda assim é possível localizar e extrair os dados usando, por exemplo, um editor hexadecimal. Mas, e se a técnica utilizada foi a LSB? (para conhecer os princípios desta técnica, leia "LSB - Técnica dos bits menos significativos" em Criptografia / Papers).

No segundo caso, a coisa é um pouco mais complicada e este artigo trata justamente deste assunto.

O ATAQUE VISUAL

Muitas vezes o método esteganográfico utilizado para ocultar dados em imagens provoca alterações tão insignificantes que não é possível dizer, apenas olhando, que a imagem foi alterada - nem mesmo comparando a imagem original e a que contém dados embutidos. Isto ocorre principalmente quando é usada a técnica chamada LBS, Least Significant Bits ou dos bits menos significativos.

Se houver bits menos significativos alterados, o que se pode fazer para torná-los visíveis? Esta pergunta martelava minha cabeça, o que me levou a apelar para o Google. Foi quando achei a página do Guillermito, que não só explicou tintim por tintim, como ainda disponibilizou vários pequenos aplicativos (com código fonte e tudo). Testei o programa BMP2enhancedLSB do Guillermito, escrito em Assembly, mas o aplicativo teimou em me informar que não era para win 32 bits. Foi daí que resolvi criar o stegoBMP em Delphi (que já está disponível na seção de downloads em Criptologia/Esteganografia).

Uma das características do stegoBMP é a de poder detectar a presença de mensagens ocultas na área de dados de arquivos bitmap BMP de 24 bits (mais sobre este formato em "Formato BMP" em Informática / Oráculo de Referências). No arquivo zipado há um bitmap de exemplo - o teste.bmp. Este arquivo foi criado com uma logo do Google, na qual foi inserida a letra do Hino Nacional Brasileiro (os arquivos bmp estão no pacote zipado; nesta página há apenas os transformados em formato gif para diminuirem de tamanho - não copie os gifs, eles não contêm mensagens ocultas - faça o download do pacote).

Logo Google
Logo do Google (virgem)
RX logo Google
Logo do Google (virgem) rastreada
..
Logo Google com texto
Logo da Google com texto embutido
RX Logo Google com texto
Rastreamento da Logo do Google com texto embutido

Observe que as duas imagens, a virgem e a com texto embutido, são praticamente idênticas. Já as imagens rastreadas, chamadas de Raio X, mostram uma diferença evidente. O RX da imagem virgem destaca apenas os elementos que compõem a logo do Google e o RX da mesma imagem com o texto embutido apresenta uma faixa de ruído na área superior. Esta faixa corresponde à área ocupada pela mensagem oculta.

O ATAQUE ESTATÍSTICO

Mas não é só do destaque de LSB que vive a estegoanálise. Sabemos que os LSB e os outros bits da imagem possuem uma ordem própria, senão a imagem não seria uma imagem e sim, uma maçaroca de cores. Quando introduzimos a mensagem na imagem, modificamos a "personalidade" dos LSB e bagunçamos a ordem destes bits. Tirar a ordem significa introduzir um fator randômico, ou seja, é o mesmo que espalhar randomicamente bits por todos os lados. Neste caso, a probabilidade passa a ser 50% de LSB 1 e 50% de LSB 0. Ah! Este é o pulo do gato e a dica para a aplicação de métodos estatísticos.

Quando se trata de comportamento randômico (também chamado de acaso ou de probabilidade), a estatística é soberana. Ela é capaz de separar a bagunça da ordem wink

Um dos testes mais simples é a média. Se os LSB estiverem dispostos ao acaso, sabemos que a média, tanto dos ligados quanto dos desligados, deve estar próxima de 0.5 (ou 50%). Quanto menos randômica for a distribuição dos LSB, mais distante de 0.5 estará a média. Então, se "cortarmos" uma imagem que contenha dados embutidos em "fatias" de 128 ou 256 bytes e calcularmos a média dos LSB, nas fatias onde há dados "estrangeiros", a média tenderá para 0.5 e, nas fatias onde existem apenas dados "originais", a média tenderá a se afastar de 0.5. Colocando cada um dos resultados obtidos num gráfico, pode-se observar este comportamento diferente e determinar visualmente a posição onde começam e onde acabam os dados enxertados. Observe as figuras abaixo:

Média LSB virgem
Distribuição da média dos LSB na logo do Google virgem

Média LSB com dados ocultos
Distribuição da média dos LSB na logo do Google com texto oculto

O famoso Teste Phi de Friedman, aplicado normalmente em criptogramas para se determinar a monoalfabeticidade (leia mais em Identificação de Classes), também pode ser utilizado como ferramenta estatística. É que o Teste Phi também separa amostras randômicas de amostras com uma ordem definida. Usando as mesmas "fatias" de 128 bytes das logos do Google que servem de exemplo e colocando num gráfico a diferença entre o Phi observado e o Phi randômico, obtém-se os seguintes gráficos:

Teste Phi virgem
Teste Phi na logo do Google virgem

Teste Phi
Teste Phi na logo do Google com dados ocultos

O ATAQUE DA COMPACTAÇÃO

Existe um outro aspecto interessante quanto aos arquivos modificados. Apesar das imagens (virgem e com dados) possuírem o mesmo número de bytes, quando são compactadas (por exemplo, zipados), os arquivos compactados dos originais são MENORES do que os compactados com dados ocultos. Isto se deve ao fato de que a mensagem oculta fornece dados randômicos, e dados randômicos não são compactados porque não possuem a redundância necessária para uma compactação mais efetiva.

CONSIDERAÇÕES FINAIS

Conhecendo-se o formato de cada tipo de imagem (bmp, gif, jpg, png, etc), é possível usar as mais diversas técnicas de ocultação de dados, assim como rastreá-las a procura de áreas suspeitas. Além disso, qualquer tipo de arquivo de formato padronizado pode ser utilizado como cobertura (doc, xls, rtf, etc).

Na seção de downloads, categoria Criptografia/Estegoanálise, você encontra o programa chi-square, da autoria de Guillermito, que identifica as áreas randomizadas através do cálculo do chi quadrado. Escrito em Assembly, este programa é minúsculo e muito rápido. Quando os testes anteriores falham, a salvação é o chi-square. Não deixe de experimentar.


Grande abraço a todos

vovo vovó Vicki

Вадим Логофет отецкупить тубулобановский александр отзывыноутбуков asusбыстровозводимые зданияMFX Brokerотзыв nikas

Informações adicionais