quinta-feira, 17 de novembro de 2011

Computação forense em Linux: arquivos e diretórios importantes

Muitos arquivos armazenados pelo sistema Linux podem fornecer informações valiosas sobre o perfil, propósito e uso do computador. Tais como arquivos de configuração de ambiente, configuração dos programas, arquivos gerados pelo sistema etc.

Também alguns locais específicos podem conter arquivos de interesse forense, como diretórios de arquivos temporários, de log, de uso da rede etc.

Configuração do sistema:

/etc/

O diretório '/etc/' contém todos os arquivos de configuração do sistema operacional. Também existe o subdiretório '/etc/skel/' que contém os arquivos que irão popular inicialmente o '/home/usuario' de um usuário recém criado. O diretório '/etc/' é um diretório importante pois contém todas as configurações realizadas pelo administrador do sistema.

Contas de usuários e grupos:

/etc/passwd

O arquivo '/etc/passwd' contém as contas dos usuários configurados no sistema. Cada definição de conta fica em uma linha e o conteúdo das linhas estão separados em campos.

/etc/shadow

O arquivo '/etc/shadow' armazena as senhas em um formato criptografado, com algumas informações adicionais relacionadas as senhas dos usuários. Contém uma entrada por linha, separada em campos, para cada usuário definido no '/etc/passwd'.

/etc/group

O arquivo '/etc/group' define os grupos os quais os usuários pertencem. Cada grupo é definido em uma linha separada por campos.

/etc/gshadow

O arquivo '/etc/gshadow' armazena as senhas dos grupos em um formato criptografado. Contém uma entrada por linha, separada em campos, para cada grupo definido no '/etc/group'.

Ambiente dos usuários:

/etc/bashrc

O arquivo '/etc/bashrc' é um arquivo de inicialização do shell de alcance em todo o sistema. É executado por todos os usuários quando um novo shell é aberto. É usado para definir funções e apelidos.

/etc/profile

O arquivo '/etc/profile' contém configurações de ambiente e chamadas de inicialização de programas de alcance em todo o sistema. É usado por todos os usuários. Este arquivo somente é executado durante o login do usuário. Configurações complexas devem ser definidas no diretório '/etc/profile.d/'.

/etc/profile.d/

Todas as configurações complexas de ambiente são colocadas em arquivos neste diretório. Os scripts deste diretório são acionados por um laço "for" no arquivo '/etc/profile'.

Os arquivos '/etc/bashrc' e '/etc/profile' possuem arquivos equivalentes para o diretório pessoal do usuário. São os arquivos '~/.bashrc' e '~/.bash_profile'. Existe também o arquivo '~/.bash_logout' que é lido e executado toda vez que o usuário sai de um shell. Estes arquivos funcionam apenas para a sessão do próprio usuário.

Serviços em execução:

Os serviços são programas (daemons) que são iniciados e mantidos em execução em segundo plano, ficam monitorando o computador e respondem às mudanças.

Para organizar o controle dos serviços, muitas variantes do Unix System V, e isto inclui diversas distribuições do Linux, usam scripts nos diretórios '/etc/rcN.d/' para controlar quais serviços serão iniciados dentre os níveis de execução.

Se um serviço deve ser iniciado no nível de execução 5 então é colocado o seu script em '/etc/rc5.d/'.

Existe também o script '/etc/rc.d/rc.local', que é executado após os outros scripts de inicialização de serviço.

Para evitar múltiplas cópias do mesmo script, foi adotado o padrão de colocar todos os scripts de controle dos serviços no diretório '/etc/init.d/' e usar links simbólicos para estes scripts nos diretórios '/etc/rcN.d/'.

Na distribuição Fedora os links e os scripts estão nos diretórios '/etc/rc.d/rcN.d/' e '/etc/rc.d/init.d/', porém é mantido no diretório '/etc/' os links simbólicos para estes diretórios.

Outras distros adotam uma estrutura distinta: No Slackware os scripts ficam em '/etc/rc.d/' e são executados se estiverem com permissão de execução. No Debian os scripts ficam em '/etc/init.d/' e são executados se tiverem links em '/etc/rcN.d/'. E no openSUSE os scripts ficam em '/etc/init.d/' e são executados se tiverem links em '/etc/init.d/rcN.d/'.

Configuração de rede:

Alguns arquivos, localizados a partir do diretório '/etc/', são para armazenar as configurações de rede. (estrutura Red Hat/Fedora)

/etc/hosts                       Lista de endereços IP e os nomes do host
/etc/host.conf                   Especifica como o sistema determina os nomes do host
/etc/resolv.conf                 Especifica o servidor do serviço de DNS
/etc/networks                    Lista de endereços IP e os nomes das redes
/etc/sysconfig/network           Ativa a rede, especifica nomes do host e do gateway
/etc/sysconfig/network-scripts/  Configurações e scripts do serviço "network"
/etc/sysconfig/networking/       Configurações geradas pela ferramenta gráfica de rede
/etc/sysconfig/iptables          Regras do firewall

Servidores de rede:

Uma máquina com sistema Linux pode estar preparada para prestar diversos serviços de rede. Cada servidor possui diretórios específicos para configuração do serviço:

/etc/samba/                      Software para operar com máquinas Windows pela rede
/etc/httpd/                      Servidor HTTP Apache
/etc/vsftpd/                     Servidor FTP vsftpd
/etc/squid/                      Servidor proxy Squid
/etc/ssh/                        Servidor SSH
/etc/dhcp/                       Servidor DHCP
/etc/ltsp/                       Servidor LTSP (Linux Terminal Server)

Os servidores possuem também diretórios para armazenamento dos arquivos compartilhados:

/var/www/                        Páginas servidas pelo Apache
/var/ftp/                        Arquivos servidos por FTP
/var/spool/squid/                Cache do Squid
/var/lib/dhcpd/dhcpd.leases      IPs atribuídos por DHCP
/var/lib/tftpboot/ltsp/          Configuração dos terminais LTSP
/opt/ltsp/                       Imagens de sistema para LTSP

Arquivos temporários e log:

Um sistema ativo, com diversos processos em execução, armazena automaticamente muitas informações e dados dos processos. Arquivos de log registram o uso do sistema, de uma forma geral ou especificamente para determinada aplicação. Diversas aplicações armazenam cópias dos arquivos processados em cache ou geram arquivos temporários.

/var/log/                        Arquivos de log diversos
/var/log/messages                Arquivo de log geral do sistema
/var/spool/                      Dados que esperam por processamento
/var/run/                        Dados que descrevem o sistema desde sua inicialização
/var/cache/                      Cache de dados de aplicativos
/var/tmp/                        Arquivos temporários preservados entre reinicializações
/tmp/                            Arquivos temporários gerais

Aplicações para Internet:

Todos os aplicativos de Internet para acesso à web, e-mail, mensagens instantâneas, possuem diretórios e arquivos para armazenar o conteúdo gerenciado. Os navegadores podem armazenar o histórico das páginas visitadas e os respectivos arquivos baixados em cache. Os mensageiros instantâneos podem armazenar a lista de contatos e as mensagens trocadas. Os clientes de e-mail podem armazenar o catálogo de endereços e os e-mails enviados e recebidos. Até alguns plugins podem armazenar o conteúdo multimídia acessado. Cada usuário terá o seu conjunto de diretórios para estes aplicativos.

Navegador Firefox

~/.mozilla/firefox/xxxxxxxx.default/Cache/
~/.mozilla/firefox/xxxxxxxx.default/

Navegador Opera

~/.opera/cache/
~/.opera/

Navegador Google Chrome

~/.cache/google-chrome/Cache/
~/.config/google-chrome/Default/

Comunicador aMSN

~/.amsn/

Comunicador Kopete

~/.kde/share/apps/kopete
~/.kde/share/config/kopeterc

Comunicador Pidgin

~/.purple/

Cliente de e-mail Thunderbird

~/.thunderbird/xxxxxxxx.default/
~/.thunderbird/xxxxxxxx.default/Mail/
~/.thunderbird/xxxxxxxx.default/Cache/

Plugin Adobe Flash Player

~/.macromedia/Flash_Player/#SharedObjects/

Plugin Java

~/.java/deployment/cache/6.0/

Conhecer os locais das configurações e demais dados das diversas aplicações é muito importante para o examinador forense. O sistema é capaz de armazenar informações valiosas, muitas de forma automática e transparente para o administrador e usuário.

Nenhum comentário:

Postar um comentário