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 TimesUm 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-ForenseAlguns 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 !