quinta-feira, 17 de setembro de 2009

Blog da SANS troca de endereço

Aparentemente, andei cochilando quanto a isso. O endereço de um dos melhores blogs sobre Forense Computacional mudou e eu nem percebi, já que estou bastante atrasado nas minhas leituras diárias.

Bem, o link aqui do meu blog para o blog da SANS já foi atualizado. Se você consegue ler textos em inglês, esse blog é imperdível. Vale cada segundo lendo ...

Até o próximo post !

terça-feira, 15 de setembro de 2009

Vinho é um santo remédio !

As ferramentas que usamos em Forense Computacional são muito importantes para atingirmos o objetivo. Elas permitem que possamos avaliar e examinar vestígios de forma adequada. Uma situação bem comum é quando estamos realizando uma perícia e precisamos avaliar um vestígio, mas as ferramentas necessárias para isso não estão disponíveis no SO que estamos usando. Ou seja, quando estamos usando um Live CD baseado em Linux e nossa imagem e vestígios estão disponíveis, tudo está indo bem. No entanto, podemos topar com a necessidade de uma analise que requer uma ferramenta somente disponível em Windows. Aí o caldo começa a engrossar ...

Há algumas estratégias desenvolvidas para tratar isso. Todas tem prós e contras. Vou tentar resumir:

1) Podemos extrair os vestígios da imagem, salvando em uma partição FAT que depois será acessada pelo Windows e suas ferramentas.

2) Podemos extrair os vestígios da imagem ou mesmo montá-la, colocando os arquivos acessíveis em um compartilhamento (via Samba). Pelo Windows, mapearemos o compartilhamento e acessaremos os artefatos/vestígios, completando as análises.

3) Podemos extrair os vestígios para fora da imagem e depois acessar a partição Ext2/Ext3 usando utilitários Windows que conseguem ler e recuperar arquivos dessas partições.

Como já disse, cada uma dessas estratégias possui limitações e situações indesejadas. Elas precisam ser bem conhecidas para que o perito possa escolher qual usar quando for necessário. As estratégias que envolvem retirar os vestígios da imagem podem requerer grande quantidade de espaço em disco, seja na partição FAT ou na Ext2/Ext3. As estratégias que usam compartilhamento vão requerer que as estações forenses estejam em rede. Um problema a mais é que o Samba foi retirado das versões mais recentes do Helix e do Caine. O FCCU oferece dificuldades a mais em relação à rede.

Há outra alternativa para o problema e que não possui as características negativas acima: Vinho !

Vinho ???

Wine é o nome de um programa para Linux que, segundo documentações do site, compatibiliza o SO Linux, origem de nossos Live CDs de Forense, com as aplicações Windows. A documentação tenta ser bastante enfática no conceito, afirmando que o Wine não faz emulação de código, nem cria algum tipo de máquina virtual. O Wine cria condições para que um programa Windows possa rodar em Linux, numa boa. Ele é comparado a opção de executar um programa criado para o WinXP dentro do Vista. As opções de compatibilização fazem, por debaixo dos panos, o mesmo que o Wine faz, no Linux; Elas criam o mesmo ambiente básico que o programa espera encontrar para poder executar.

O que é necessário ?

Uma conexão de internet funcionando para o Live CD. Isso porque, como nenhum deles traz o Wine, será necessário atualizar o SO e baixar o Wine antes de poder usá-lo. Vamos a um passo a passo, que deve funcionar da mesma maneira em todos os Live CDs. Eu testei no Helix e no Caine:

1) Em um terminal root, execute apt-get update
O Live CD vai buscar algumas atualizações para o SO diretamente da internet.
2) Execute apt-get install wine
Esse demora um pouco mais e no final garante que o wine esteja completamente instalado no Live CD.

3) Execute qualquer utilitário Windows: wine UTILITARIO.EXE
O Wine monta um ambiente simulando um C:\ e executa o utilitário.

A página de download do Wine oferece outras formas de download e instalação do Wine. Clique aqui para ver. Use a linha do Ubuntu Hardy tanto para o Helix quanto para o Caine.

Essa é uma das melhores maneiras de reaproveitar ferramentas e resolver a questão que coloquei acima, quando não temos ferramenta para o vestígio que queremos investigar, nem no Live CD, nem fora, pelo menos em Perl ou Python. Eu testei algumas ferramentas:

- WFA: Funcionou perfeitamente e em todos os módulos;
- FastResolver e IPNetInfo: Não apresentaram todas as informações;
- HashCalc e Pre-Search, ambos do Deft: Funcionaram perfeitamente;

O site do Wine mantém um database com informações de programas que foram testados e podem ser considerados compatível. Embora eu não tenha testado, não tenho grandes expectativas de que programas do tipo filemon ou regmon funcionem no Wine. Imagino que, por eles usarem capacidades bastante elementares do Windows, não sejam facilmente portáveis.

Nem tudo são flores

Além da questão da compatibilidade, que descrevi acima, há outro detalhe: Estamos lidando com um Live CD. Todo o processo de instalação se perde quando a máquina é desligada. Isso pode fazer com que seja necessário repetir o processo de reinstalação toda nova sessão de investigação/perícia. Podemos evitar isso com:

- Um esquema para perpetuar a sessão. Não cheguei a pesquisar essa opção, mas havia essa possibilidade no Helix 1.9;
- Usar máquina virtual, e dar uma "pausa" na máquina quando ela não for mais necessária. Quando ela for utilizada novamente, o restore vai garantir que ela esteja com o Wine lá;
- Usar uma versão instalada do Helix ou do Caine. Nesse caso, o Wine não vai embora quando desligamos as luzes da sala ...

Gostaria de ouvir comentários de quem já usa essa ferramenta. Quais são os utilitários forenses que você tem usado com sucesso ? Que estratégia para manter o Wine você usa ?

Até o próximo post !

terça-feira, 1 de setembro de 2009

WTF e Timestamps

WTF não é um termo técnico, mas deve ser a expressão mais usada de 8 entre 10 Peritos e Investigadores em Forense Computacional. Li esse termo hoje em um artigo muito bom, que traduz a essência do que é ser Perito: Analisar bem os vestígios e saber como as ferramentas que temos nas mãos funciona.

A situação ocorre quando, por necessidade de uma ordem judicial, um micro é apreendido para ser investigado. O Perito já está de posse do depoimento do usuário/dono do micro, que entre outras coisas, diz que o micro é novinho em folha. Ele diz que tinha comprado um HD novo e decidiu instalar o Windows XP logo depois de um jogo na TV. Isso tinha acontecido no dia anterior ao micro ser apreendido.

De posse dessas informações, o perito anota no seu caderninho (é um cara bem antigo, não usa CaseNotes):

- Data da operação: Dia 1 de setembro.
- Data da instalação: Dia 31 de agosto, por volta de 18h30.

O Perito prossegue, analisando a imagem que foi feita da máquina, obviamente segundo o processo forense (ou seja, duplicação bit-a-bit). Ao analisar o Registry, encontra lá, dentro de muitas chaves, a que informa a hora exata da instalação do Sistema Operacional:
HKLM/Software/Microsoft/Windows NT/CurrentVersion/InstallDate: 31/08/2009 22h30. Como bom Perito, ele sabe que essa hora está no formato GMT e logo deduz que o vestígio encontrado indica que a instalação do SO ocorreu em 19h30 (Hora de Brasília).

- "Bem", ele pensa, "estamos indo conforme o depoimento, tudo ok até aqui". O próximo passo é olhar timestamps do NTFS, para montar seu timeline. Antes disso, passeando pelo Autopsy, ele decide verificar o timestamp dos objetos do NT ($MFT, $LogFile e outros). Ora, se tudo estiver correto, o timestamp deverá indicar por volta de 18h30, já que entre a criação do sistema de arquivos e a finalização da instalação do SO, temos por volta de uma hora. Ele anota a data/hora e, sabendo que todas estão em notação GMT, converte-as para o nosso fuso horário e tem o resultado: 31/08/2009 15h33.

WTF ???? (O artigo é em inglês, então faça um exercício de imaginação sobre essas siglas aí ...)

O que poderia estar acontecendo ??? Então o dono da máquina iniciou a instalação às 15h33, com a formatação do HD novo, e ela só foi terminada mais tarde, por volta das 19h30 ?? O que houve no meio do caminho ?? Ele teria mentido sobre o que aconteceu ????

A resposta é um sonoro não !

O caso é que, como a formatação é uma das primeiras coisas que acontecem na operação de instalação de um SO novo, no momento da criação dos objetos do NT, o programa de formatação não tem ainda a referencia ao fuso horário. Essa informação só fica estabelecida posteriormente. Por conta disso, ele pega a data da Bios e grava ela nos timestamps diretamente, sem nenhuma conversão. Quando a instalação é finalizada, ao escrever essa informação no Registry, o fuso já é conhecido. Portanto, o SO pega a hora da BIOS e converte para GMT, gravando-a em seguida.

Assim, mesmo que a regra geral seja de que os timestamps do NTFS estão todos em GMT, temos a exceção: Os timestamps dos objetos de NTFS criados em uma formatação antes da instalação do SO estarão em horário local.

Dessa forma, a hora que o Perito viu (18h33) não precisava ser convertida (no nosso caso, subtraindo 3 para usar como hora de Brasília) . 18h33 foi a data/hora correta de formatação do HD, conferindo com o depoimento.

Moral da História: Cuidado com conversões de timestamps, principalmente quando os utilitários as fazem automaticamente.

Pergunta de prova: O que aconteceria se, ao invés de uma instalação novíssima, do zero, estivesse sendo feita uma formatação completa para uma reinstalação ? Comente !

Até o próximo post !

quinta-feira, 20 de agosto de 2009

Treinamento em Forense Computacional - CFPF

Pessoal, o site da TISafe traz novos detalhes em relação ao nosso curso de Computação Forense. Veja no item CFPF - Curso de Formação de Peritos Forenses Computacionais.

A próxima turma começa em 13 de setembro, no Rio de Janeiro, com aulas no período noturno. O curso tem duração de 40h com teoria e muita, muita prática.

O conteúdo abrange Resposta a Incidentes na parte de captura e análise, e obviamente, Computação Forense em seus diversos aspectos. Neste ponto, o foco será na aquisição e na análise forense, com muitos exercícios práticos e estudos de caso. As práticas serão baseadas em software livre, principalmente em live CDs.

Para montar a ementa e o material, procurei aliar minha experiência como perito/investigador com minha experiência com ensino (já fui instrutor de cursos MOC, os cursos oficiais da Microsoft, já dei aula de banco de dados e, num passado distante, já montei um treinamento completo de Visual Basic, que na época ainda não era muito conhecido), e o resultado foi um material que está focado nas principais teorias e técnicas, tratando os assuntos com a profundidade na medida mais adequada à didática, e está recheado de exemplos e aplicações.

A TISafe, tradicional consultoria de Segurança de Informações do Rio de Janeiro com expertise diferenciado em criptografia e PKI, é minha parceira nesse treinamento. Ela também já oferece um treinamento de sucesso na área de formação de analistas de Segurança de Informações, o CFAS, do qual também sou instrutor, de forma que essa experiência será benéfica para o CFPF.

Estamos verificando a possibilidade de termos o treinamento em outros estados além do Rio de Janeiro, bem como turmas in-house. Se tiverem alguma dúvida, entrem em contato por email ou mesmo deixe um comentário aqui no blog.

Até o próximo post !

terça-feira, 18 de agosto de 2009

Byte Investigator III - OLEmergeSearch

Acabei de atualizar o pacote de scripts Perl Byte Investigator com uma rotina que vasculha em uma imagem forense, separando todos os arquivos Office, e em seguida testa cada um deles procurando por multiplos streams, o que pode indicar tentativa de obfuscar informações.

A rotina OLEmergesearch.pl usa o sorter, do TSK, para localizar os arquivos Office, e usa também o script perl OLEmerge.pl, do próprio Byte Investigator, para detectar as streams em cada arquivo. A resposta informa o inode de cada arquivo e quantas streams tem. Os arquivos que acusarem mais de uma stream devem ser extraídos e verificados com mais detalhes.

A rotina pode ser encontrada aqui

Até o próximo post !

sábado, 15 de agosto de 2009

Byte Investigator II - OLE Structured Storage

OLE Structured Storage é uma estrutura de arquivo bastante interessante. É baseada no conceito recursivo de diretório e arquivo. Um diretório pode conter vários arquivos e outros diretórios. Um arquivo (stream) é onde fica o conteúdo propriamente dito. É simples assim.

Várias aplicações escolheram esse formato para seus arquivos. Dentre elas, o Registry e os arquivos do Office (.DOC, .XLS e .PPT).

Especificamente sobre os arquivos do Office, essa característica dá margem a uma estratégia de obfuscação bastante interessante. Como um diretório pode conter mais de uma stream (ou arquivo) é possível juntar um arquivo dentro do outro, de forma que fique oculto. Por exemplo, podemos colocar uma planilha do Excel dentro de um documento Word. A visualização de conteúdo é determinada pela extensão do arquivo; Ou seja, se a extensão é a .xls, vemos a planilha ao dar um duplo clique no arquivo. Se a extensão for um .doc, o Word é carregado e o que seria o documento pode ser acessado.

Esse comportamento é muito útil em alguns casos maliciosos e se torna ainda mais interessante por quase não ser divulgado. Um funcionário pode usar esse estratagema para subtrair uma planilha confidencial, bastando para isso mesclá-la internamente com um .doc inofensivo (um currículo, por exemplo). Quer ver o currículo, coloque a extensão .doc; quer ver a planilha, troque a extensão para .xls e lá estará o ouro ... Um pedófilo mais preparado e informado pode colocar as várias fotos suspeitas em um .doc e, em seguida, camuflar esse conteúdo dentro de uma planilha de contas a pagar. Nos dois casos, captar o truque pode ser bastante complicado.

Pensando nisso, desenvolvi uma nova rotina para o Byte Investigator. Ela tem por objetivo listar as streams de documentos Office que existem dentro de um arquivo Office. O uso é muito simples, e como é baseada em Perl, ela não depende de nenhum outro arquivo ou API externo, funcionando bem em Windows (com o Perl, lógico) e em qualquer live CD que tenha o Perl instalado.

Digitando OLEmerge.pl , ela verifica e lista cada stream encontrada. É possível usar o parâmetro -e, que apenas indica se há uma ou mais streams disponibilizadas. Obviamente, sempre que houver mais de uma stream, o arquivo deve ser analisado com mais detalhes, procurando qual o conteúdo oculto.

Você pode baixar a rotina aqui.

Comentários ?

Até o próximo post !

sexta-feira, 14 de agosto de 2009

BackTrack 4

Hoje é, segundo um email postado na lista PericiaForense, o pré-lançamento da versão 4 do BackTrack, uma distro voltada para Pen Test e que também possui alguma coisa para Forense Computacional. Segue o email enviado:

BackTrack é atualmente a melhor distribuição de Linux com foco em testes de penetração em sistemas (Pentesting). Sem nenhuma instalação (LiveCD), a plataforma de análise é iniciada directamente do CD-ROM ou Pen Drive sendo completamente acessível em minutos. BackTrack é uma distribuição Linux live que também pode ser instalada se preferir.

Back Track é uma junção de duas antigas distribuições relacionadas com segurança, Whax e Auditor Security Collection, reunindo mais de 300 ferramentas para análise e testes de vulnerabilidades Esta nova edição BackTrack 4, segundo o site oficial já alcançou mais de 100.000 downloads.

Segundo o anúncio, o BackTrack 4 traz grandes avanços conceituais e tem algumas novas e excelentes características. A mais importante destas mudanças é a expansão do Pentesting LiveCD para uma plena “Distribuição”.

Agora, baseado em Debian (núcleo e pacotes) e utilizando os repositórios de softwares do Ubuntu, BackTrack 4 pode ser adaptado em caso de atualização. Quando sincronizado com os repositórios oficiais do BackTrack, o sistema irá receber regularmente actualizações de segurança e novas ferramentas.

Algumas das novas características incluem:

- - Kernel 2.6.29.4 com melhor suporte de hardware.
- - Suporte nativo para cartões Pico E12 e E16 está agora totalmente funcional, fazendo do BackTrack a primeira distro Pentesting em utilizar plenamente os recursos destas minúsculas máquinas.
- - Suporte para Boot PXE.
- - SAINT EXPLOIT – gentilmente fornecido pela corporação SAINT com um número limitado de IPs livre.
- - Maltego 2.0.2
- - Os últimos patches mac80211 wireless injection pacthes foram aplicados, juntamente com vários patches personalizados para o rtl8187 injection. O suporte à wireless injection nunca foi tão amplo e funcional.
- - Unicornscan – Totalmente funcional com suporte ao postgress logging e web front end.
- - Suporte RFID
- - Suporte Pyrit CUDA
- - Novas ferramentas e atualizações

A lista de software contido nesta distribuição, tem aplicações com tudo de bom e do melhor, Wireless, Passwords, Spoofing, Tunneling, Enumeration, Bruteforce, Sniffers, VOIP, Bluetooth, Fuzzers, Forensics, Cisco, Debuggers, Database, RFID, Penetration, GPU e outras mais de 300
ferramentas.

Alguém já usou a ferramenta e gostaria de comentar ?

Até o próximo post !