segunda-feira, 15 de outubro de 2007

Esteganografia

A conscientização das pessoas em relação à Segurança de informações é algo muito bom. Vem acontecendo a passos lentos, é verdade, mas aos poucos podemos perceber que as pessoas estão se inteirando mais dos assuntos, procurando entender melhor qual seria o comportamento ideal ao navegar pela Web.

Na vida, entretanto, nem tudo são flores. O efeito colateral que tenho percebido no aumento da conscientização é que as técnicas para driblar a vigilância digital, ou ainda para esconder as pistas digitais, estão ficando mais comuns. Nos EUA, por exemplo, as técnicas de esteganografia são bastante utilizadas. Aqui em nossas terras ainda é possível ouvir um "estego o quê ???" ao falar sobre isso.

Mas não vai demorar muito.

E é fundamental que o bom investigador de Forense Computacional esteja preparado para esse momento. Por isso imaginei ser importante dar uma breve palhinha sobre esse assunto ( e que vai puxar outros semelhantes).

Estego o quê ????

Esteganografia. Basicamente, é uma escrita escondida. Esteganografia é esconder uma mensagem, usando algumas técnicas, para que somente o seu destinatário possa reconhecê-la. Lembro-me da época de moleque, quando brincávamos de escrever usando certos componentes, e logo tudo ficava invisível. A mensagem só aparecia se esfregássemos um pedaço de batata. Isso é esteganografia. Nos meios militares também há muita utilização, e muitas vezes chamada de covert channels.

Um ponto importante é não confundir esteganografia com criptografia. Na primeira, apenas escondemos a mensagem. Se pesquisado com atenção, ou conhecendo-se o método, facilmente chega-se a mensagem. No caso da criptografia, o texto cifrado só pode ser revelado se estivermos de posse da chave para descriptografar. A mensagem cifrada pode, e em geral, circula totalmente visível, mas seu significado fica conhecido apenas a quem tem a chave.

Algumas formas de esteganografia:

Técnica: Usa métodos científicos para esconder a mensagem. A brincadeira da tinta invisível é uma delas.

Linguistica: Esconde a mensagem no meio portador. Pode ser sub-classificada em Semagramas ou Código Aberto

Semagramas: Usa símbolos e sinais para esconder a mensagem. Um Semagrama visual usa um objeto aparentemente inocente, do dia a dia, para passar a mensagem. Por exemplo, colocar um porta retratos na esquerda da mesa pode indicar uma resposta afirmativa e na direita negativa. Um Semagrama de texto pode esconder uma mensagem simplesmente alterando características do texto, como o tamanho da fonte, o tipo, ou a existência de espaços extras em uma frase.

Código Aberto: Esconde a mensagem em um portador legítimo de forma a passar despercebido para um observador normal. Vemos alguns exemplos desse tipo de comunicação em vários filmes, como por exemplo "O Bom Pastor". Essa classificação também pode ser dividida em Códigos de Jargão ou Cifradores Fechados ou Encobertos.

Códigos de Jargão: É o uso de expressões que só farão sentido para um determinado grupo, ou que só terão o sentido correto para o grupo alvo. Para os outros, será uma mensagem comum. Esse jargão pode ser pré-combinado. Um dos exemplos desse caso são comunicações de rádios-amadores, que conversam sobre assuntos específicos em códigos criados para só fazer sentido ao grupo realmente envolvido.

Cifradores Encobertos escondem a mensagem no portador de forma a somente serem descobertas por quem conhece o método. Nesse grupo está a forma de passar uma grande mensagem, parentemente inócua, mas se tomadas as primeiras letras de cada palavra da frase, formamos a mensagem real escondida. Uma outra forma é a de montar um modelo a ser aplicado sobre uma mensagem inócua. O modelo separa quais letras formarão a mensagem secreta. No filme Con Air, um dos presos recebe uma carta aparentemente inócua, mas a mensagem origianl era obtida pelas letras que ficavam visíveis ao por, sobre a carta, uma figura da Santa Ceia que tinha buracos nos olhos.

A esteganografia que dá mais dor de cabeça para os investigadores computacionais é realmente essa ultima. Usando como portadores arquivos, principalmente figuras jpg e sons mp3 ou wav, vários usuários estão escondendo outros arquivos (que funcionam como sendo as mensagens).

A equação fica: Arquivo-mensagem + arquivo-portador => Arquivo resultado.

Em geral, as alterações são tão bem feitas que ficam praticamente imperceptíveis. Ou seja, após o uso da esteganografia, a figura do arquivo-portador fica praticamente inalterada. As poucas diferenças são praticamente imperceptíveis a olho nu. Também não é fácil perceber, ao escutar um arquivo de som alterado por esteganografia, que o mesmo agora contém uma mensagem escondida.

Por isso, não está sendo incomum encontrar conteúdos impróprios inseridos em arquivos de fotos ou sons. Alguns usuários o fazem para poderem livremente mandar arquivos pelo e-mail da empresa, sabendo que o mesmo é monitorado, e dessa forma poder sair com informações privilegiadas sem perigo de ser descoberto. Há casos de pedófilos que guardam suas fotos criminosas inseridas em arquivos de fotos comuns.

Embora, como disse no início do artigo, ainda não seja tão frequente aqui no Brasil, esse tipo de estratégia já é muito comum lá fora. Minha sugestão é que todo investigador computacional busque e avalie pela existência de arquivos com possível conteúdo inserido via esteganografia.

É possível achar ?

É. Bom, pelo menos até agora. Como tudo em tecnologia e Segurança de Informações nunca é definitivo, e sempre há alguém para criar uma técnica que quebre a que criamos, que quebrava a de alguém, o grande segredo é ficar antenado nas novas técnicas e verificar meios de combatê-las.

As técnicas atuais de esteganografia podem ser detectadas pela análise do arquivo. Em geral, é feita uma análise estatística da distribuição dos bytes. Os que tem essa distribuição fora do que seria considerado normal são contabilizados como portadores de mensagens escondidas. Logicamente, há falsos positivos, e enquanto os pesquisadores do bem trabalham para diminuir os falsos positivos, os caras do mal trabalham em como piorar essa situação. Existem programas que escondem os bits da mensagem (ou arquivo a ser escondido) respeitando a distribuição estatística do arquivo portador, de forma a não cair na verificação. É, vai ser sempre assim, gato e rato mesmo.

Dentro de minha linha de ficar sempre que possível no software livre, vou indicar os softwares do Niels Provos. O OutGuess é encontrado já pronto para uso no Helix, e além de usá-lo para a esteganografia, você pode tentar o StegDetect a partir do raiz da sua imagem montada, mandando-o achar quem supostamente poderia ter mensagens escondidas.

Você verá que o número de falso positivos não é baixo, de forma que uma boa sugestão é filtrar antes os arquivos, e aplicar o stegdetect apenas nos Unknown Files (veja o artigo sobre isso aqui mesmo nesse blog).

Seria interessante que alguém pudesse compartilhar estatísticas do que tem sido encontrado escondido na forma de esteganografia, aqui no Brasil. Quem pode ajudar ?

Um abraço e até o próximo post !

Nenhum comentário: