Infra - Segurança

Análise Forense Computacional de Logs em Sistemas Linux: As testemunhas da rede

No presente trabalho, exploramos as ferramentas nativas o sistema operacional linux, para demonstrar como o profissional de perícia pode coletar muitas informações a respeito do sistema.

por José Antonio Milagre



I – INTRODUÇÃO

Logs são registros, normalmente armazenados em arquivos ascii ou texto simples, capazes de armazenar o que se passa com sistemas computacionais e serviços de rede. A Correlação de logs de eventos, segurança e auditoria são fundamentais para que se possa reconstruir o que efetivamente ocorreu com um sistema computacional no passado.

Deve-se consignar, entretanto, que antes mesmo da analise dos logs, o perito deve pautar sua conduta pela manutenção da volatilidade, princípio computacional que nos informa, basicamente, que antes da análise de logs armazenados em discos rígidos, existem muitas outras coisas mais importantes para se fazer prioritariamente, como o dump da memória e o congelamento do estado da rede e processos.

Importa frizar também, que o perito deverá ter a intimidade em coletar dados em sistemas operacionais diversos, como Linux e Windows, e nestes, em aplicações diversas, como Squid ou um Servidor Exchange Server.

No presente trabalho, exploramos as ferramentas nativas o sistema operacional linux, para demonstrar como o profissional de perícia pode coletar muitas informações a respeito do sistema.

II – LOGS NO LINUX

O Linux é recheado de registros, muitos comandos simples nativos podem levantar muitas informações sobre o sistema, por exemplo, o comando last/lastlog, que pode ser utilizado para exibir a listagem dos últimos usuários que logaram no sistema:


Exemplo da execução do comando last, que informa a data e hora dos usuários que logaram no sistema

Já o comando lastb, pode listar a última tentativa de login que não obteve êxito. Igualmente, pode-se acessar diretamente o arquivo responsável por tais registros digitando # cat /var/log/btmp.

Com who, é possível verificar os usuários logados na máquina. Já com history | more, o perito tem acesso aos registros dos últimos comandos executados na seção atual.


Execução do comando history: Informa últimos comandos digitados pelo usuário.

Outro dado importante na análise de trojans e rootkits é monitorar quais arquivos determinados processos estão chamando. Por vezes, nada melhor que “executar” o trojan para efetivamente ter indícios do que ele realiza. Com o comando ps –aux é possível identificar os processos atuais executados por um usuário.

Posteriormente, podemos filtrar com o comando lsof –p somente os arquivos chamados pelo processo PID 11306 (E acabamos de detectar a utilização de MSN em ambiente empresarial, normalmente vedado pela Política de Segurança). Em nosso exemplo, ao executarmos o Amsn (Cliente Messenger para Linux), e executar o comando para listagem dos processos, encontramos o seguinte registro nos logs:


Correlação entre arquivos chamados por determinado processo.

Interessante, dependendo do escopo da perícia, correlacionar os arquivos abertos por um determinado usuário, onde podemos utilizar o comando id para identificar o UID (User Identification) do usuário e posteriormente o comando lsof –U UID.

No Linux , por default, a grande maioria dos registros do sistema se encontram em /var/log, dentre os quais vale destacar:


    Usuário tenta se logar no sistema como administrador às 18:26:46 porém não consegue. Posteriormente às 19:03:01 obtém acesso ao root, e em menos de 1(um) minuto, se desconecta do sistema.

    Já em /etc/log/daemon.log, podemos identificar os logs envolvendo os serviços em geral, desde logs da rede, como por exemplo, requisições de conexão ou de IPs, à identificação de que alguém plugou ou desconectou da máquina um pen-drive ou dispositivo móvel, vejamos:


    Daemons registrando todos os serviços e eventos do sistema

    Nos termos da NBR ISO/IE 17799:2005, especificamente em seus itens 9.7.1 e 10.10.0, é de boa prática a todo administrador de segurança a adoção de um proxy cache em uma rede, e por que ? Justamente para que se armazene registros de atividades dos usuários que tem acesso à rede mundial de computadores, eis que a empresa pode ser responsabilizada judicialmente pelo conteúdo que seus colaboradores acessam. O Squid é o servidor mais utilizado na plataforma livre e ele também deixa rastros:

    Primeiramente deve-se analisar /etc/squid/squid.conf, em busca de alterações nos paths padrões de armazenamento dos logs. Os logs do Squid são divididos em:

    · /var/log/squid/access.log = Arquivo de registro de conexões http

    · /var/log/squid/cache.log = Hora e data em que o arquivo cache foi iniciado

    · /var/log/squid/store.log = Registro dos objetos armazenados pelos clientes em consulta a sites (vídeos, conteúdos proibidos, mp3s, imagens, etc.)

    III – GREP: UM ALIADO

    O Grep é um binário encontrado na maioria das distribuições Linux e é considerado o salvador dos administradores de rede, auditores e peritos computacionais. Por meio do mesmo é possível fazer com que o arquivo de log, retorne por exemplo, apenas os registros que tragam determinada sting em sua linha.

    No nosso exemplo, podemos varrer o arquivo auth.log em busca de entradas e saídas de um dispositivo de armazenamento supostamente conhecido, que aqui chamamos de “LG”. Utilizamos o comando cat auth.log |grep “LG” e veja o que descobrimos:


    Grep: filtramos, ente um “mar de logs” somente os registros de conexão de desconexão de determinado dispositivo de armazenamento. No caso um pen drive “LG” com número serial identificado.

    IV– CONCLUSÕES: A IMPORTÂNCIA DOS LOGS

    Como verificado sistemas Unix tem muito a nos contar. Em uma investigação de incidentes eletrônicos a análise de logs é de extrema importância, eis que se a função do perito é apurar a ocorrência de fatos e identificar a autoria dos mesmos, a função dos logs é servir como “testemunhas eletrônicas”, aptas a depor sobre incidentes e crimes de tecnologia.

    Ainda, manter com segurança registros de atividades atende ao item 10.10 da IS0/IEC 17799:2005, que trata da detecção e registro de atividades não autorizadas, além de evitar responsabilização civil e criminal corporativa, a medida em que pode informar a autoria de delito praticado dos computadores da empresa.

    Porém não basta registrar, mas nos termos do item 10.10.3 da 17799:2005, proteger logs conta falsificação, adulteração e acesso não autorizado, por meio de medidas de descentralização e redundância das “testemunhas eletrônicas”.

José Antonio Milagre

José Antonio Milagre - Cursando MBA em Gestão de Tecnologia da Informação pela Universidade Anhanguera, Analista de Segurança e Programador, Perito Computacional em São Paulo, Bauru e Ribeirão Preto, Advogado Especializado em Direito da Tecnologia da Informação pelo IPEC-SP, graduado pela ITE-Bauru, Sócio da LegalTech Legal Proceedings & Consulting (www.legaltech.com.br), Pós-Graduado em Direito Penal e Processual Penal pela Faculdade Fênix-SP, com defesa de tese e área de concentração Crimes Eletrônicos, Valor Probatório e o Papel da Computer Forensics, Extensão em Processo Eletrônico pela Universidade Católica de Petrópolis-RJ. Vice-Presidente da Associação Brasileira de Forense Computacional e Presidente da Comissão de Propriedade Intelectual e Segurança da Informação da OAB/SP 21 a . Subsecção, membro do Comitê de Comércio Eletrônico da FECOMERCIO-SP, membro do GU LegislaNet da SUCESU- Co-Autor do Livro "Internet: O Encontro de dois mundos", pela Editora Brasport, ISBN 9788574523705, 2008.