Blog bem humorado, na Lingua Portuguesa, destinado a assuntos de Segurança de Informações com ênfase em Resposta a Incidentes e Forense/Investigação Computacional.
domingo, 15 de março de 2009
CNASI nos dias 23 e 24 no Rio de Janeiro
Bem, questões de GNU a parte, o irritante é perceber que esta já era a estratégia há tempos, bem antes da versão 2008 ir para o ar. Esta versão é uma sombra do que era a anterior. Ainda neste fim de semana, eu fui compartilhar um diretório para analisar um arquivo pelo Windows e, para surpresa e espanto, o Samba não está instalado. Pois é ...
Espero encontrar com a turma de leitores do blog por lá. Estarei no evento inteiro, fique à vontade para papear comigo, até porque o cofee break é para isso mesmo.
Até o próximo post !
sábado, 7 de fevereiro de 2009
Helix em nova versão
Ontem saiu finalmente a constatação. A versão 2009R1 está liberada, traz algumas modificações nos bugs reportados e atualiza duas ferramentas. Não chega a ser uma mudança que justifique uma nova release. Está mais para marcar a mudança no formato de trabalho, pois agora só se consegue baixá-la se estiver registrado no fórum e comprar um "token", ou seja, tem custo.
O restante das novidades está por conta de algumas ferramentas comerciais: O Live Response, um software de aquisição de dados voláteis (incluindo memória, registry, etc) vendido em um pen drive (por pouco mais de 400 doletas) e o Helix Enterprise, baseado no Live CD do Helix, que nem preço tem divulgado abertamente.
Para fechar, há o anúncio do Helix Pro, uma ferramenta considerada a evolução do Helix Live CD, com foco em Live Response, para CD ou pen drive.
Alguém com intenções de adquirir o produto, ou que já o tenha adquirido, gostaria de comentá-lo ?
Até o próximo post !
sábado, 31 de janeiro de 2009
Helix 2.0

Criado e mantido pela equipe da e-fense (liderada por Drew Farrel), o Helix 2.0 (chamado de Helix3) é baseado no Ubuntu e conta com uma parte destinada à Resposta de Incidentes, em Windows. Em relação aos itens curriqueiros, o Helix está em excelente forma: o desktop é baseado no Gnome, limpo, menus bem montados e revisados, sem itens desnecessários; Firefox como browser, OpenOffice na parte de software para relatórios (office). Tudo indo muito bem ...

Entretanto, nem tudo são flores nessa nova versão. Algumas pequenas coisas ficaram de fora, e apesar de serem pequenas, demonstram que não houve tanto cuidado na montagem da nova versão, pelo menos o cuidado de portar alguns bons detalhes da versão anterior. O log do shell não é mais automático, os "alias" não funcionam mais e mesmo coisas simples, como o esquema de cores do ls, agora é preto e branco e olhe lá ... Como eu disse antes, são apenas detalhes, mas que facilitavam bastante a vida.
Fora dos pequenos detalhes está a documentação. Ela não está coerente com o que percebi, na prática. Vários utilitários não estão mais instalados no Helix, e no entanto nada ficou indicado na documentação (por ex: Air, sdd, mac-robber, magicrescue, fatback e outros). Por outro lado, há também novos utilitários não documentados (ntfsundelete, arping, regtool, e outros).

Bem, reclamações a parte (e devidas, afinal, o Helix precisa manter a sua posição de melhor ferramenta forense com distribuição livre), o Helix é um dos melhores e mais completos ambientes para trabalharmos. Contém utilitários e ferramentas para praticamente todos os tipos de investigação e análise, incluindo forense de memória, de browser e de rede. Também disponibiliza ferramentas de aquisição de imagem nos formatos mais utilizados atualmente.
Resposta a Incidentes

Algo que faz esse live cd ainda mais útil é a sua parte dedicada à Resposta a Incidentes. Baseada em Windows, ela contém diversos utilitários que permitem fazer levantamentos de importantes informações. Possui tanto ferramentas usadas em conjunto (caso do WFT) como aquelas usadas isoladamente (diversas da Foundstone, SysInternals - agora Microsoft, etc).


Pontos Positivos
- Boa documentação
- Interface para Resposta a Incidentes
- Muitos utilitários
Pontos Negativos
- Ausência de ferramentas mais novas (PTK, por exemplo)
- Poucas atualizações (não são frequentes)
- Está migrando para opção de suporte pago
Comentários ???
Até o próximo post !!!
quinta-feira, 29 de janeiro de 2009
Helix está roendo a corda
Recebi um email ontem com a notícia de que o Helix não tem como ser bancado pela e-fense, e os donativos foram abaixo do esperado, o que os forçou à algumas mudanças ...
Foi criado o Helix3 Membership. Se você resolver por contratar esse novo modelo antes de Abril, vai pagar 179 doletas por ano. Se demorar e contratar depois disso, vai ter de desembolsar 239 doletas. O que ganha quem paga isso ?
* Suporte pelo site
* Manual
* Créditos para futuras compras
* Acesso a artigos
* Acesso a webinars
* Serão os primeiros a ter acesso ao Helix3 Pro, que sairá em Abril.
Não ficou muito claro se o live CD vai continuar por muito tempo sendo free. O fato é que o suporte, a partir de agora, só pela Helix3 Membership.
Isso está me parecendo mais um passo na direção de tornar o Helix uma ferramenta paga. O que você acha ? Quais seriam os impactos disso na comunidade de Forense Computacional ?
Comente !!!
Até o próximo post !
sábado, 7 de junho de 2008
Helix x ReiserFS
A controvérsia é se o Helix altera ou não o journal do ReiserFS. Um dos participantes levantou a questão, trazida por um de seus alunos, e o criador e mantenedor do Helix, Drew Fahey, inicialmente negou de forma veemente que o Helix fizesse qualquer atualização ou alteração indevida em qualquer sistema de arquivos, mesmo os que mantêm estruturas de journaling.
Depois de uma briga boa, Drew finalizou os testes e acabou de postar os resultados. A versão 1.9a do Helix realmente permite a alteração do journaling, mesmo que montado como read-only. Ele identificou a raiz do problema e se comprometeu a incluir a correção na próxima release, que segundo ele estará liberada em 60 dias. Tendo dito isso, gostaria de deixar dois dedim de prosa:
1) Tomem cuidado quando estiverem manipulando imagens forenses. Digo isso porque esse problema não acontece quando se está fazendo a aquisição da imagem, pois ela não é montada nessa hora. O problema acontece quando o perito monta a imagem para iniciar sua análise. Não importa indicar o parâmetro de read-only, pois com esse problema, o hash da imagem nunca mais vai conferir com o hash da mídia original, o que pode comprometer todo o laudo pericial.
Solução de contorno 1: sempre faça suas análises em uma cópia da imagem, incluindo nos seus procedimentos um hash/conferência antes e outro no final da análise. Caso eles não sejam o mesmo, e a causa seja essa discutida aqui, envolvendo journaling, simplesmente descarte o arquivo no final. Logicamente, documente o que aconteceu no laudo ou relatório.
2) Esse assunto me despertou para uma reflexão. Estamos ainda fazendo verificação da integridade usando hashs sobre a imagem inteira, mas esse método ficará inválido em pouco tempo. Estamos cada vez mais caminhando para novos rumos em termos de Forense Computacional. Entre eles, a Forense de Memória e o Live Forensics, onde a análise é feita em uma máquina em operação. Ambos os métodos são aplicáveis e úteis, quando a situação os requer. No entanto, em ambos não temos como comprovar a integridade usando os métodos atuais.
Gostaria de receber comentários a respeito disso, e de quais rumos a verificação de integridade vai acabar tomando. Vamos debater !
Até o próximo post !
domingo, 20 de janeiro de 2008
Manutenção no Helix
Um Live CD é algo muito útil. É prático, seguro e contém, no caso do Helix, a palavra mágica "free". Isso significa que você realmente não precisa de um mega investimento para começar sua vida de Investigador Forense Computacional. Entretanto, tudo na vida tem um preço, mesmo quando se trata de coisas "free". Na maioria das vezes, no caso de softwares, o preço é não contar com atualizações constantes ou um suporte adequado.
O Helix tem um fórum bem interessante que pode ajudar, e em geral nossos questionamentos vão estar mais ligados nas ferramentas que o Helix disponibiliza do que propriamente em algo dele. Ainda assim, o fórum é razoável. Já tive perguntas respondidas em alguns poucos dias e já tive perguntas que nunca receberam resposta. O pior, com relação ao preço a se pagar, não é isso. Como o Helix não tem uma equipe trabalhando em tempo integral, as atualizações demoram um bocado. Em geral, são anuais. A versão atual, 1.9a, é de julho de 2007 e a anterior era de outubro de 2006. Em resumo, as novas versões dos utilitários e ferramentas são disponibilizadas com mais frequência, e ficamos um tempão sem elas. Daí, vem a pergunta: Está cansado de esperar pela nova versão do seu Live CD preferido ????
Seus problemas acabaram !!!
Vamos discutir neste artigo algumas técnicas para atualizar suas ferramentas sem depender da turma do live cd.
Atualizando o Helix - Parte Windows
Como comentei anteriormente, o Helix disponibiliza uma parte do CD para ser usada em uma operação de Resposta a Incidentes (ou até mesmo em uma Live Response). Nesse caso, para atualizar seu grupo de ferramentas, temos duas situações e duas opções de abordagem.
Situação 1 - Vamos incluir um produto que não está disponível no Helix;
Situação 2 - Vamos atualizar (fazer um upgrade) a versão da ferramenta disponível.
As duas opções de abordagem são:
Opção a) Tudo que for atualizado ficará em um pen drive;
Opção b) Tudo que for atualizado será implementado direto no CD.
IMPORTANTE: Sempre verifique os detalhes de licenciamento da ferramenta que você está atualizando. Algumas só podem ser livremente usadas em determinadas condições. Outras dependem de um registro prévio que libera funcionalidades.
A opção a) é mais fácil. Ela consiste em manter um pen drive com os programas devidamente instalados, e prontos para serem usados em um caso de Incident Response, junto com as demais ferramentas do Helix. Entretanto, como ponto negativo, ela insere alterações no sistema sendo analisado. Quando o investigador inserir o seu pen drive, o registry criará uma chave contendo alguns dados relativos a esse pen drive. Se você optar por essa técnica, recomendo verificar esses dados criados na chave LocalMachine/System/CurrentControlSet/Enum/USBSTOR do registry e indicar todas essas informações nos seus procedimentos. Dessa forma, com a alteração devidamente documentada, não há problemas. Fazer isso seria semelhante a tomar as impressões digitais de uma pessoa que entrou em uma cena de crime para socorrer uma vítima. De acordo com o Princípio da Troca de Locard, essa pessoa introduziu modificações na cena e elas precisam estar previstas de forma a serem isoladas.
Um dos problemas da opção a) é que, sendo o pen drive uma mídia com possibilidade de escrita, você o expõe a softwares maliciosos instalados na máquina sendo tratada. Nesse caso, não tem muito jeito, o melhor seria adaptar um USB Write Blocker e ficar tranquilo. Só lembrando, esse pen drive não conseguiria ser usado para coletar nada, já que o Write Blocker não deixará nada ser gravado nele.A opção b) é um pouco mais complicada, e envolve o uso de um software comercial (eu procurei bastante uma opção free, mas não achei). Apesar disso, você estará usando diretamente a partir do CD, o que o deixará despreocupado em relação aos problemas da opção a).
Não importando qual das opções você escolher, tenha sempre em mente:
1) Mantenha uma cópia do arquivo .iso original do Helix;
2) Crie seu próprio label de versionamento, de forma que você identifique corretamente o cd que está trabalhando;
Por exemplo, a versão atual do Helix é a 1.9a. Criei algo como 1.9aTR1, significando que é a minha primeira alteração do Helix 1.9a. Logicamente, esse ponto é válido para a nossa opção b), apenas.
3) Monte um ChangeLog bastante rígido;
Um ChangeLog é um arquivo onde você indica todas as modificações feitas naquela versão. Isso é muito importante porque você vai precisar de algo para comparar quando a próxima versão do seu Live CD for lançada.
4) Atualize seu inventário de ferramentas e o hashset delas.
É importantíssimo para um Perito manter um inventário de todas as ferramentas que ele usa, suas respectivas versões/releases e seus hashes. Isso sempre deve ser incluído como um dos anexos do relatório/parecer do Perito. É dessa forma que você poderá evitar questionamentos como:
- A ferramenta usada possui publicada uma falha exatamente no item sendo analisado. Como os resultados obtidos através dela podem ser dignos de crédito ?
- Como pode ser garantido que o programa usado não foi adulterado para exibir um resultado que mais convém ?
Identificando correntamente as versões de todas as ferramentas usadas e adicionando os seus respectivos hashes à documentação mantém os questionamentos acima respondidos de acordo. Esse tipo de inventário e seus hashes são fornecidos pelo Helix. Você deverá atualizá-los sempre que gerar uma nova versão particular do Live CD.
Agora vamos a prática.
Uma ferramenta bastante interessante para investigações diretamente no Windows é o WFA, e ele não está presente na parte Windows do Helix.
O WFA reúne visualizações de alguns itens importantes do Windows, incluindo arquivos thumbs.db e os arquivos do Recycle bin. Não vou entrar em muitos detalhes de como fazer em relação a opção a), já que basta copiar o utilitário para um diretório e ele estará pronto para ser usado. Vamos falar um pouco mais da opção b).
Adicionando uma nova ferramenta ao CD do Helix
1) Faça uma cópia do arquivo .iso da última versão disponível do Helix. Nomeie o novo arquivo .iso adicionando o seu código de versionamento. No exemplo que dei acima, ficaria Helix_V1.9-07-13a-2007-TR1.iso
2) Compre um ISO Editor (é, isso mesmo, compre ... Não consegui achar nenhum software free que fizesse edição de arquivos .iso. Se você souber de algum, indique nos comentários, por favor). Dos que eu verifiquei, o Iso Commander é um dos melhores e mais simples de serem usados. Faça o download e a instalação do mesmo.
3) Crie um diretório chamado MiTec logo abaixo do diretório IR, que está na raiz do CD. MiTec é o fabricante do WFA.
4) Copie para lá o WFA.exe.
5) Salve o trabalho. Seu .iso está pronto para ser gravado em um CD.
Note que estamos falando da situação 1 descrita lá em cima, que é adicionar um novo programa ao CD. Entretanto, para a situação 2, basta fazer os mesmos passos, jogando o novo utilitário no mesmo diretório onde está a versão a ser substituída.
Viu como é simples ? O mais trabalhoso acaba sendo manter a documentação toda atualizada.
No artigo seguinte, iremos explorar atualizações no lado Linux do Helix.
Até o próximo post !
quarta-feira, 1 de agosto de 2007
Nosso Amigo Hash - Parte IV
Quinto exemplo: Determinando e Selecionando Arquivos Conhecidos e Desconhecidos
Já comentei em um dos posts passados sobre um grande problema para os investigadores computacionais: O enorme número de arquivos e artefatos para serem analisados.
A técnica mais comum para diminuir a quantidade de arquivos é aplicar filtros que separem a mídia analisada, destacando os arquivos que são conhecidos dos desconhecidos. Dessa forma, esquecemos os conhecidos e mantemos o foco da análise nos desconhecidos, na busca de evidências.
Para ajudar nessa classificação (conhecido e desconhecido), entra em cena nosso amigo hash. A técnica consiste em:
1) Computa-se o hash do arquivo
2) Busca-se na base pelo hash computado. Se achou, o arquivo é classificado como conhecido
3) Se não achou, o arquivo é classificado como desconhecido e vai receber maior atenção durante a análise.
Dando nomes aos bois
Continuaremos usando o CD do Helix nos nossos exemplos.
Para aplicar a técnica, usamos o utilitário MD5Deep. Esse utilitário é muito semelhante ao já apresentado MD5Sum. Ele calcula o hash MD5 do arquivo indicado (ou do diretório), mas tem algumas vantagens sobre o MD5Sum:
- O MD5Deep tem a opção de calcular hashes para cada arquivo em um diretório indicado, podendo descer na estrutura dos subdiretórios, de forma recursiva.
- É possível passar ao MD5Deep uma lista de hashes e, através de parâmetros, fazê-lo verificar se o hash computado está ou não na lista passada.
A lista citada possui um formato conhecido e pode ser tanto gerada pelo próprio MD5Deep/MD5Sum ou então obtida fazendo o download das bases conhecidas como Hashsets.
Uma das mais acessíveis é a disponibilizada pela NSRL. Essa base, produzida e mantida pelo NIST, é uma grande lista de arquivos contendo o hash computado em MD5 e SHA-1, devidamente separados por Sistema Operacional, Pacote, versão de Software, etc. Ela é atualizada trimestralmente e está na versão 2.17 enquanto escrevo esse post.
Vamos a prática
Primeiro, vamos baixar e montar as bases da NSRL:
1) Faça o download dos 4 arquivos disponibilizados no site da NSRL, nesse link. Verifique que há quatro downloads para se ter a base completa (disc 1 a disc 4) . Lembre-se que os arquivos são muito grandes e podem levar bastante tempo.
2) Após os downloads, use o MD5Sum ou o MD5Deep para calcular o hash do arquivo baixado com o hash declarado no link signatures.
3) Cada arquivo é uma imagem de CD. Extraia dessa imagem os arquivos compactados que no final terão as bases de hashes.
4) Mantenha as bases em um diretório único, divididas nos respectivos subdiretórios, para facilitar.
Ao final dessa etapa, você deverá ter um diretório com 4 subdiretórios, e em cada um deles os arquivos descompactados e extraídos das imagens .iso baixadas. Vamos supor que temos /NSRLFILES com os subdiretórios A, B, C e D.
Na nossa prática, faremos a classificação dos arquivos do diretório /Arquivos de Programas e todos os seus subdiretórios. Todos os arquivos desconhecidos, isto é, que não estiverem na base NSRL, serão exibidos.
cd /Arquivos de Programas
MD5Deep -r -x /NSRLFILES/A/NSRLFile.txt -x /NSRLFILES/B/NSRLFile.txt -x /NSRLFILES/C/NSRLFile.txt -x /NSRLFILES/D/NSRLFile.txt *
A opção -r junto com o * no final do comando faz com que o MD5Deep calcule o hash de todos os arquivos do diretório /Arquivos de Programas e seus subdiretórios.
A opção -x passa uma base de hashes para o utilitário e indica a ele que liste o arquivo se ele não estiver relacionado na base. Como a base NSRL é dividida em 4, adicionamos todas as 4 através dos parâmetros -x. Todos os arquivos que forem listados a partir desse comando são arquivos desconhecidos que receberão maior foco na investigação.
Variações
Podemos, ao invés de classificar todos os arquivos de um diretório, classificar apenas um arquivo (ARQUIVO.EXE, no nosso exemplo). Nesse caso, o comando seria:
cd /Arquivos de Programas
MD5Deep -x /NSRLFILES/A/NSRLFile.txt -x /NSRLFILES/B/NSRLFile.txt -x /NSRLFILES/C/NSRLFile.txt -x /NSRLFILES/D/NSRLFile.txt ARQUIVO.EXE
Outra variação desse uso é carregar apenas a base específica do NSRL. Se você prestou bastante atenção, percebeu que a NSRL dividiu suas bases (non-English sw, operationg systems, application sw, images & graphics) e assim é possível passar para o utilitário MD5Deep apenas a base que se aplica.
Também é possível usar o MD5Deep para criar sua própria base de hashes, bastando redirecionar a saída do comando para um arquivo:
MD5Deep * > novabase.txt
Problemas
Um ponto muito ruim nessa técnica é que as bases são muito grandes e o utilitário carrega para a memória todas as bases passadas para ele antes de começar as comparações. Dessa forma, a memória rapidamente é exaurida com o comando acima que carrega várias bases. Esse problema ficou ainda pior se usado no Helix 1.8, pois nessa versão não há suporte ao swapon/swapoff, comandos que acionam a memória virtual (swap). Nesse caso, a RAM é usada até sua exaustão e o Helix trava.
Além de tentar carregar apenas uma base específica, uma opção para esse problema seria usar esse comando fora do Helix, em um sistema com a memória virtual devidamente configurada.
Ainda assim, há uma opção melhor através do uso de banco de dados, e estaremos falando nisso nos próximos posts.
Uma ultima observação
Os exemplos tratados aqui fazem referência a classificação entre arquivos conhecidos e desconhecidos. Algumas instituições, ao contrário da NSRL, oferecem bases classificadas entre conhecidos bons e conhecidos maus. Exemplos disso seriam uma base com hashes de códigos maliciosos ou hashes de imagens com conteúdo sobre pedofilia. Entretanto, nesses casos nosso interesse maior na investigação é justamente descobrir na imagem analisada os arquivos que tiverem hash coincidindo na base. O comando seria:
cd /Arquivos de Programas
MD5Deep -m /BASEVIRUS/base.txt *
Todos os arquivos do diretório que estiverem classificados na base serão listados. O investigador, a partir daí, intensifica sobre esse resultado sua análise.
Até o próximo post !
segunda-feira, 30 de julho de 2007
Nosso Amigo Hash - Parte III - Continuação
Quarto exemplo: Comprovando a integridade de uma imagem de um HD ou outra mídia
Comprovar a integridade de uma imagem através de hash é uso comum em dois momentos: quando se quer comprovar que a imagem é cópia exata da mídia original ou quando se quer comprovar que a manipulação aplicada sobre a imagem não introduziu qualquer mudança na mesma.
Neste exemplo, vamos trabalhar com algumas ferramentas fornecidas pelo live CD Helix.
Capturando imagem
A primeira situação, descrita acima, ocorre quando se faz a captura da imagem de uma mídia.
O procedimento de captura requer que a imagem obtida seja cópia fiel da mídia original (cópia bit a bit). Dessa forma, a análise da mídia, buscando evidências, garantidamente será feita sem prejuízo de sua integridade, como se fosse na própria mídia original.
É importante ressaltar que uma simples cópia ou uma imagem não-forense deixaria algumas partes da mídia original de fora (não seriam copiadas), e tais partes podem conter informações relevantes. Nesse tipo de imagem, a área não alocada da mídia não é copiada, por exemplo.
Somente com a comprovação da integridade da imagem podemos ter certeza de que o procedimento de captura não inseriu ou removeu artefatos que modificaram as conclusões.
Imagine:
1) Um caso onde um computador foi supostamente usado para cometer um crime. Imediatamente antes do computador ser confiscado, os arquivos (artefatos) que comprovariam o ocorrido são deletados. Se o procedimento de captura de imagem utilizado não for um procedimento forense, os dados contidos nas áreas não alocadas serão perdidos e não será possível comprovar a situação. Também podemos ter o contrário, onde os dados que refutariam a hipótese de participação (ou de culpabilidade) poderiam estar em arquivos recém apagados, prejudicando assim as conclusões.
2) Um caso onde um arquivo foi propositalmente adicionado à imagem para fraudulentamente indicar o envolvimento de alguém inocente em uma situação. Se o procedimento de captura utilizado incluir a verificação de integridade, essa manipulação fraudulenta será detectada.
Se fossemos fazer um paralelo da Forense Computacional com outras investigações não digitais, a captura de uma mídia através de procedimentos de imagem forense bit a bit é equivalente à exigência ao investigador de se usar luvas na cena de um crime para colher as impressões digitais.
dd
Existem várias formas de capturar uma imagem forense, mas sem dúvida a mais usada e difundida é o comando dd. Esse comando realiza a cópia exata (bit a bit) da origem para o destino. É possível, portanto, indicar como origem a path da mídia a ser capturada, e como destino um arquivo. Ao final da cópia, todo o conteúdo da mídia estará refletido nesse arquivo destino, incluindo ali seus espaços não alocados (arquivos deletados).
Ex: Para copiar um pendrive que está localizado em /dev/sda para um arquivo chamado imgblog.dd, usamos o seguinte:
dd if=/dev/sda of=/media/hda1/imagens/imgblog.dd conv=noerr bs=512
O comando acima criará a imagem, capturando-a de forma forense. Entretanto, ele está incompleto porque não faz a verificação de integridade. Essa verificação vai comprovar que a mídia não foi alterada durante o procedimento de cópia, e que o arquivo de saída (destino) é realmente a cópia exata da origem.
Para fazer a verificação de integridade, fazemos uso do utilitário de hash md5deep, que a semelhança do md5sum, computará o hash:
md5deep /dev/sda
dd if=/dev/sda of=/media/hda1/imagens/imgblog.dd conv=noerr bs=512
md5deep /media/hda1/imagens/imgblog.dd
Se o procedimento capturou a imagem corretamente, os valores de saída do primeiro md5deep, sobre a mídia, e do terceiro md5deep, sobre a imagem, serão idênticos e a integridade do procedimento está garantida.
Interface gráfica
Apesar de ser sempre interessante conhecer os pormenores das opções de linhas de comando, há boas interfaces gráficas para realizar a tarefa acima.
O utilitário Adepto, incluído no Helix, pode ser configurado para a captura através de uma tela amigável. O melhor disso é que o Adepto já traz opção para fazer a validação usando hash, sem necessidade de inserir comandos específicos. Basta um clique para acionar a opção e o hash da mídia será computado antes da captura e depois automaticamente comparado com o hash computado sobre a imagem. Uma mensagem de alerta será exibida no log caso os valores não coincidam. O log de utilização é bastante detalhado e traz detalhes da máquina onde o Adepto está sendo executado também.
Comprovando a integridade após a manipulação da imagem
Todo cuidado deve ser tomado durante a análise da imagem, para que a mesma não sofra qualquer tipo de alteração. Write-blockers são úteis, e para quem tem uma imagem a partir do dd, pode-se montá-la usando o loopback device com as opções de read-only.
Ainda assim, a comprovação de que a integridade da imagem continua preservada é feita através do cálculo do hash antes de montar a imagem, e imediatamente após. Os valores calculados precisam ser os mesmos se a imagem continua integra.
md5deep arquivoimagem.dd
mount arquivoimagem.dd /media/imagem -o ro,loop
... Faz as operações e análises ...
umount /media/imagem
md5deep arquivoimagem.dd
Uma advertência: O comando de montar imagem como read-only não previne alterações na imagem em caso de uso de sistemas de arquivo com journaling. O ext3, segundo li recentemente, tem esse recurso e introduz modificações na imagem mesmo quando montado com as opções read-only. Nesse caso, só mesmo um write-blocker.
Na próxima, vamos falar do uso prático de hashes na separação de arquivos conhecidos e desconhecidos.
Até o próximo post !
segunda-feira, 23 de julho de 2007
Nosso Amigo Hash - Parte III
Vamos agora partir para exemplos práticos de uso do hash. Para facilitar, vou fazer referência aos exemplos já citados no post anterior (Parte II).
O primeiro passo é obter um utilitário que faça o cálculo do hash. Existem alguns disponíveis, tanto para o algoritmo MD5 quanto para o SHA-1.
Usaremos o MD5Sum.exe, que pode ser baixado aqui
Esse programa tem um uso muito simples:
c:>md5sum arquivo.txt
763430d9cf670bb98094c15f9288ca75 *arquivo.txt
O arquivo.txt é qualquer arquivo, com qualquer conteúdo. Fotos, mp3, executáveis, enfim, qualquer informação pode existir nos arquivos.
Primeiro exemplo - Integridade de Arquivos transmitidos:
- João calcula o hash MD5 de um arquivo
c:>md5sum relacao.xls
3f39881820bdd7bdb842af37224daedc *relacao.xls
- e envia o arquivo por e-mail para José.
- Logo em seguida, liga para ele e dita o resultado (3f39881820bdd7bdb842af37224daedc).
- Assim que José recebe o e-mail, ele computa o hash MD5 novamente e confere com o valor anotado. Se for igual, o arquivo está integro.
Segundo exemplo - Integridade de arquivos baixados de um site:
- João visita o site da e-fense para fazer o download da imagem-iso do Helix. Após o download, ele computa o hash do arquivo e verifica se o valor é o mesmo do indicado no website
Terceiro exemplo - Comprovando a integridade das ferramentas:
O CD do Helix traz a relação de hashes MD5 para cada ferramenta usada. No caso de usar as ferramentas a partir de um CD, obviamente que um código malicioso não conseguiria alterá-las. Porém, imaginando que tenhamos um pen drive com as ferramentas, essa alteração pode acontecer.
Para detectar qualquer alteração indevida nas ferramentas, é interessante antes do uso aplicar o MD5Sum no diretório das ferramentas e comparar os resultados com a lista criada anteriormente:
e:/tools>md5sum *
ce338fe6899778aacfc28414f2d9498b *rrr.exe
ce338fe6899778aacfc28414f2d9498b *qqq.bat
3f39881820bdd7bdb842af37224daedc *www.EXE
3f39881820bdd7bdb842af37224daedc *yyy.EXE
1c17da341aa184c96a5f305cca04871f *xxx.exe
Na próxima, continuarei com os exemplos de integridade da imagem de um HD.
Até o próximo post !