sábado, 26 de dezembro de 2009

Presente de Natal

O bom velhinho passou pela área de Forense Computacional e tirou do saco um bom presente. Trata-se da mais nova versão da excelente library do formato Advanced Forensic Format, a AFFLIB. Segundo Simson Garfinkel, a nova versão (3.5.5) tem as seguintes funcionalidades:


* Acesso transparente aos formatos AFF, E01 (EnCase) e split-raw;
* Integração transparente com o sistema Amazon S3;
* Criptografia real das imagens forenses usando passphrases ou PKI;
* Assinatura digital das imagens forenses;
* Suporte ao MD5, SHA-1 e SHA-256;
* Uso de arquivos de paridade a fim de permitir a recuperação de erros.

A nova versão roda (e foi testada) em MAC, Windows e diferentes sabores de Linux. Ela pode ser baixada aqui.

Alguém já usa esse formato e gostaria de comentar ? Eu penso que é o formato mais robusto e prático que existe no mercado, mas por algum motivo, ainda é bastante desconhecido.

Até o próximo post !

quinta-feira, 24 de dezembro de 2009

Ho Ho Ho

Desejo a toda a turma que acompanha esse blog um Feliz Natal, cheio de evidencias e vestígios comestíveis, e que tudo constitua uma prova forte de uma família abençoada e saudável ! Que todos possamos determinar o 5W1H de como cada presente sob a árvore apareceu e, no fim das contas, trazer o amigo-oculto à luz ! :D

Grande abraço,

Tony Rodrigues

terça-feira, 15 de dezembro de 2009

Café - parte III - DECAF

A polêmica do COFEE continua. Na verdade, agora não exatamente por ele.

Um grupo acabou de lançar o DECAF, um utilitário que monitora a máquina e faz uma série de coisas caso detecte a tentativa de uso do COFEE. A alegação inicial da turma é sempre a mesma: prover instrumentos de manutenção da privacidade. No caso, o COFEE estaria do lado dos vilões, ironicamente.

A versão disponibilizada é a 1.02 e depende do utilitário devcon, da MS. Com ele, o DECAF retira do ar o que quiser, cancela conexões de rede, remove acesso a drivers, limpa o log de eventos e informações nos caches. Enfim, faz uma enorme bagunça.

É lógico supor que vai existir um modo de perceber o DECAF e evitar que ele se esconda do COFEE.

O jogo de gato e rato vai continuar ...

Há dois pontos causando polêmica sobre esse DECAF que gostaria de comentar aqui:

* Um deles é que alguns não consideram o DECAF uma ferramenta de anti-forense. Entretanto, apesar de sua finalidade principal ser obfuscar o uso do COFEE, ele nitidamente vai, se acionado, destruir provas, o que o faz entrar na categoria de anti-forense, com certeza.

* O segundo ponto é relativo às técnicas usadas. O aparecimento do DECAF promete trazer a tona uma série de novas ferramentas que, como os rootkits, escondem as evidências em real-time. Isso pode provocar um pensamento errado de que não é eficiente realizar o procedimento comum de busca de informações voláteis. Há até alguns papers que comparam esse procedimento com o dump de memória e afirmam que somente este último é necessário.

Eu discordo dessa linha de pensamento. Imagino que atualmente há tantas ameaças a uma investigação que tudo que pudermos usar para correlacionar os vestígios é válido. Logicamente que o tempo para fazê-lo e o conhecimento de quem estará na "cena do crime" precisam ser levados em conta. Mas acredito ser temerário tirar conclusões específicas.

Durante a minha palestra no H2HC, comentei sobre uma técnica anti-forense que utiliza rootkit de kernel para se esconder e é poderoso a tal ponto de detectar que um dump de memória está acontecendo e, literalmente, se esconder do dump. Como o código está no nível do kernel, ele simplesmente pode analisar tudo que ocorre e filtrar-se do dump. Essa técnica foi parar em um excelente artigo na Hakin9, escrito pelos amigos Rodrigo BSDaemon e Filipe Balestra, organizadores do H2HC.

Para lidar com essa técnica, sugeri que além do dump de memória, seja feita a aquisição do disco também. Caso exista comportamentos não explicados, a imagem da máquina pode ser usada em uma máquina virtual, bootando-a pelo disco. Quando a máquina virtual estiver a pleno valor, ela deve ser pausada e o arquivo da memória analisado. Dessa forma, o possível malware não teria como se esconder e apareceria na análise.

Essa técnica demonstra que imagem de disco ou de memória, por si só, não fornecem uma técnica completa. Ele enganaria o perito em uma Live Analysis também. No entanto, também não quero insinuar que, para cada caso, teremos que fazer milhares de procedimentos e depois sair correlacionando tudo. Acredito que alguns procedimentos devem ser feitos por padrão e se, durante a análise, a correlação com outros vestígios mostrar que algumas peças estão fora do quebra-cabeças, pode ser necessário retornar ao ponto de partida e obter mais informações, talvez finalmente desligando o micro e partindo para uma dead analysis.

Enfim, não há receita de bolo. Temos que ficar atentos e verificar se podemos parar na Live Acquisition/Analysis, ou avançamos para a análise post-mortem, ou ainda se a análise do dump de memória já basta.


Comentários ?

=== Atualização em 18/12/2009 ====

Os criadores da ferramenta participaram de uma entrevista no Cyberspeak, famoso podcast, e também estava na mesma edição o Ovie Carroll, Diretor de Cybercrime do DoD. Não escutei o pod ainda, mas parece que a ferramenta foi imediatamente retirada do ar pelos seus criadores ...

=== Atualização em 29/12/2009 ====

É, ao que parece, não foi por conscientização que a ferramenta foi retirada. A nova versão, 2.0, já está no ar e há também um press release, indicando os motivos pelos quais a ferramenta foi removida. Nesta nova versão, o DECAF saiu do pé do COFEE e está agora atuando também contra o Helix, o EnCase e alguns outros. O CAINE e o DEFT, que também tem módulos para Resposta a Incidentes, estão fora da lista dessa versão do DECAF. Alguém já baixou o código, produziu alguma análise e gostaria de compartilhar ?


Até o próximo post !

quinta-feira, 10 de dezembro de 2009

PeriBr

Já falei brevemente sobre essa que é a mais nova distro brasileira em Live CD para Forense, comentando sobre alguns detalhes que li sobre a ferramenta. Agora é hora de passar as primeiras impressões, depois de alguns testes.



O boot tem opção de ir direto para o modo texto, o que pode facilitar aos mais avançados (e mais apressados também). Mesmo com a opção de boot pelo modo gráfico, achei a carga bem mais rápida que outras versões por aí.



Ele está baseado no Ubuntu, com kernel 2.6.28-15. O Gnome está na versão 2.26.1 e, como diferencial nessa parte gráfica, há um charmoso menu USP com tradução total para o português tupiniquim, o que vai facilitar muita gente. O teclado veio configurado corretamente para o meu US International. Não tenho aqui o ABNT2 para testar, e esse é o grande problema quando se fala em teclado, pois a maioria tem dificuldades com ele. Ainda assim, a exemplo do que a turma do CAINE implementou, há um atalho no desktop que permite a troca de teclado rapidamente.

O menu do PeriBr me impressionou positivamente. Há praticamente uma entrada para cada utilitário forense instalado. Mesmo se linha de comando, o menu abre uma tela com as options do utilitário, e em algumas vezes, abre também a página man. Além disso, um terminal root fica a disposição para que o comando escolhido seja digitado. A disposição do menu, além de separar por grupo de funcionalidades, também fornece um "tip" indicando o que a ferramenta faz. Isso é fantástico, já que não há Mb de cérebro que resista a quantidade de ferramentas que temos hoje na Computação Forense.



As melhores e mais conhecidas ferramentas estão presentes. Desde os xxxdeep, para hash, até o ssdeep, que nem todos os live cds trazem, temos Ophcrack, Wireshark, Guymager, dc3dd GUI e outros. Há vários utilitários para cada tarefa. Um ou outro está faltando nessa boa lista, incluindo o exiftool e alguma ferramenta para atividade de browser que não o IE. Falando em browser, o Firefox está a todo vapor, turbinando alguns dos melhores pacotes integrados disponíveis em Open Source: o Pyflag. Tudo bem que, para usá-lo bem, o live cd precisará ser instalado, mas isso vem sendo algo comum. Interessante que, na época do Helix baseado em Knoppix, era considerado sacrilégio instalá-lo ... Novos tempos ...

No melhor estilo dos comerciais das organizações Tabajara, podemos ainda dizer "Mas não é só isso !" ... Porque, além do Pyflag, a turma que construiu o PeriBr nos trouxe o PTK, o novíssimo browser/interface para o TSK. É o Icing on the cake ...


Pontos Positivos:

* Ferramentas em abundância;
* Menus em PT-BR;
* Política de montagem de volumes em coerência com as proteções de software forense;
* Pyflag e PTK, mesmo exigindo instalação.


Pontos Negativos:

* Versão 1.0 ... Isso chega a ser um fantasma. Será que o projeto vai romper a barreira e continuar ?
* Falta um site adequado, como no projeto do CAINE ou do DEFT;
* Roadmap divulgado. Isso pode ser um luxo para a versão 1.0, mas já seria uma boa forma de tranquilizar os usuários, dando mostras de que o projeto vai continuar;
* Ausência de suporte a ferramentas Python, ao RegRipper e o Volatility.

Espero que esse novo produto rompa com a barreira do 1.0 e vire um trabalho muito além de um trabalho de fim de curso. Toda a comunidade vai agradecer imensamente !

Comentários ?

Até o próximo post !

quinta-feira, 3 de dezembro de 2009

Tudo (ou quase tudo) que você sempre quis saber sobre Anti-Forense, mas não teve tempo de perguntar na palestra

Vamos conversar um pouco mais sobre Anti-Forense e algumas maneiras de tratá-la. Esse assunto rende muito e, para falar sobre ele em 45 min, muita coisa tem que ser passada bem rapidamente.

Esculhambando as MAC Times

Um dos mais úteis instrumentos de investigação é a linha de tempo. Ordenar cada um dos eventos e sequenciá-los pode indicar o que aconteceu e ajudar também a chegar na causa de um incidente. É como ler um diário de bordo, só que nesse caso, quem o escreve são os programas do computador.

A timeline mais comum é aquela baseada no que chamamos de MAC times, atributos de data e hora relacionados com eventos de arquivos. O M diz respeito a data/hora da última modificação do arquivo; O A é relativo a data/hora do último acesso e o C é relativo a data/hora de criação do arquivo. Vale a pena reforçar duas coisas:

1) Isso vale para o NTFS. Outros sistemas de arquivos podem não ter esses atributos;
2) Há ainda um outro atributo, conhecido por E e se refere a data/hora da última alteração de atributos do arquivo.

Como a maioria das ações em uma máquina corre por acessar, alterar e criar arquivos, levantar e ordenar essas ações dão uma linha de tempo excelente. Pense em casos de invasão ou infecção por vírus. Uma linha de tempo com foco em uma faixa de datas aproximada pode indicar a causa, o vetor de entrada e até mesmo arquivos afetados que nem imaginaríamos.

Como a Anti-Forense tem por objetivo principal acabar com as técnicas, processos e ferramentas de Computação Forense, uma técnica bem específica foi moldada para "esculhambar" com a já famosa e muito utilizada timeline. Imagine o seguinte:

1) Alguém liga para o Service Desk da empresa e avisa que sua máquina está com um comportamento muito estranho. São 9h00;
2) A turma responsável dá uma olhada, determina que houve uma infecção por malware, não capturado pelo Antivírus instalado na máquina. Para verificar a extensão do dano e saber quantos arquivos foram danificados pelo vírus, uma timeline é montada;
3) A timeline revela que a infecção se alastrou depois de um certo arquivo ser criado na máquina, às 8h30. Esse arquivo foi "baixado" por engano pelo próprio usuário, que caiu em um phishing;
4) Ainda usando a timeline, filtrando-a entre 8h30 e 9h, soube-se que os arquivos X, Y e Z foram afetados pelo mesmo malware.

A situação acima ficaria fora de controle se o malware usasse a técnica de Anti-Forense descrita. Logo de início, a turma de investigação veria que há um download suspeito por volta de 8h30, mas esse arquivo está com data de criação de 3 anos atrás. A mesma data está registrada no último acesso e última modificação. Ele ficou de fora da linha de tempo montada com foco entre 8h30 e 9h. Os vários arquivos X, Y e Z também, já que inexplicavelmente, eles tem suas datas indicando o ano de 1601 como data/hora dos atributos.

Nesse cenário com uso de Anti-Forense, por outras técnicas poderíamos chegar ao vetor inicial e a causa da infecção, mas provavelmente os arquivos corrompidos X, Y e Z não seriam detectados.

Falando especificamente de Windows e NTFS, a turma da Anti-Forense Metasploit Project liberou um utilitário para esse fim. O Timestomp permite tanto zerar as datas dos atributos quanto modificar para um valor específico todos ou apenas alguns dos atributos.

Anti-Anti-Forense


Alguns pontos podem ser levantados para indicar a presença de técnicas Anti-Forense. Principalmente, leva-se em conta que a ação de subverter das datas dos atributos não leva em consideração que o atacante terá tempo suficiente para pesquisar e setar uma data falsa, mas que ainda mantenha a lógica dos valores. Por isso, algumas idéias:

1) O NTFS mantém os mesmos 4 atributos de data/hora em dois lugares. Há os MACE times gravados no Standard Information Attribute (SIA) e há os MACE times gravados no FileName Attribute (FN). Embora eu não tenha localizado uma documentação que claramente estabeleça a diferença entre as duas e quando uma ou outra é alterada, fiz vários testes de comportamento desses atributos e pude perceber que o comportamento lógico deles (ou seria ilógico) é que, em quaisquer das operações setadas, os atributos da FN são trabalhados primeiro que os da SIA. Portanto, é lógico que as datas/hora do FN sejam mais antigas que as do SIA

2) A resolução de horas dos atributos vão até os milissegundos. É muito comum que, ao subverter uma data, o atacante informe uma data/hora até, no máximo, os segundos. Dessa forma, os atributos ficam com os milissegundos zerados. Isso pode ser usado como característica de detecção. Não é uma técnica definitiva, pois alguns produtos, ao criarem arquivos, também escrevem horas indo até os segundos, e nesse caso, também ficam com os milissegundos zerados.

3) As datas de criação de um arquivo ordinário, em geral, não podem ser mais antigas que a data de formatação do sistema de arquivos (ou seja, a data de quando o disco foi formatado). Há alguns casos onde arquivos copiados/movidos de outras mídias podem ferir essa regra.

4) As datas dos arquivos não podem estar no futuro. Alguns atacantes se confundem ao setar a data, com as posições de dia e mês, e acabam por colocar a data do arquivo no futuro. Normalmente, isso nem seria notado, mesmo em uma linha do tempo, que em geral também é limitada nas datas onde acreditamos que o incidente tenha acontecido.

5) Quando a opção de data zerada do timestomp é usada, isso deixa o Encase sem indicar data alguma. No caso de acesso via utilitários, é comum que o ano apareça como de 16o1. Essa é a maior marca de que a máquina foi vítima de Anti-Forense. Esse é um dos poucos casos onde não conheço possibilidade de falso positivo.

6) O conceito de linha do tempo precisa ser expandido. Há muitos eventos acontecendo em uma invasão ou outro incidente, não podemos ficar focados apenas no que os arquivos dizem. Seguindo essa lógica, todas as fontes de informação que registram ações com data/hora devem ser alinhadas e ordenadas em uma linha de tempo, principalmente as fontes externas à maquina suspeita, onde o atacante teria menos controle e recebem menos atenção. Linhas de tempo bem completas podem incluir acionamento de arquivos executáveis e DLLs vindos de um Prefetch, uso de arquivos obtidos pelo Registry, logs diversos, eventos do Windows, etc. Tem data/hora, então pode ser útil. Um exemplo da aplicação desse conceito:

- O atacante usa o reg para baixar o SAM da máquina para um arquivo SAM.txt, sendo que ele falha na primeira tentativa. Ele o abre, verifica o conteúdo, e o envia para um servidor remoto via HTTP. Em seguida, o atacante remove o arquivo SAM.txt e usa o timestomp, zerando os MAC times do reg.exe.

Nesse contexto, uma linha de tempo que englobe os atalhos de Recent, o log de acesso do proxy e
o log de eventos do Windows pode colocar no devido lugar a ação de gerar um arquivo que foi acessado e enviado, mas não existe mais.

Eu criei uma rotina que verifica os atributos MACE dos arquivos e indica os que são suspeitos de Anti-Forense. Baixe-a no conjunto de rotinas do Byte Investigator.

Comentários ? Alguém que já tenha encontrado alguma dessas situações em uma investigação e gostaria de compartilhar como tratou o problema ?

Até o próximo post !