Desconhecendo os rigores por traz da Internet, alguns usuários (clientes web) tentam utilizar do “anonimato” para cometer alguns crimes como falsidade ideológica, injúria, calunia e difamação, ofensa contra a dignidade (acho que é isso), envio/recebimento de fotos de pedofilia, roubo de dados sigilosos de empresas, entre outros nomes mais técnicos.

Através da análise do cabeçalho do e-mail é possível encontrar indícios que potencialmente apresente a verdadeira identidade do criminoso. A seguir será demonstrado uma mini análise forense de um e-mail. É importante ressaltar que esta abordagem é um ótimo ponto de partida, por outro lado, analisar o tráfego e logs das mensagens do servidor de e-mail deve ser uma atividade complementar para a identificação do criminoso, caso seja necessário.

Alguns Conceitos:
IP: Número único que identifica um dispositivo conectado à rede como um computador, celular wifi, cafeteiras  etc.
SMTP: Simple Mail Transfer Protocol ou protocolo de transferência de mensagens simples. Permite comunicação e entrega de mensagens entre duas entidades, também conhecidas como MTAs ou MUAs [rfc822][rfc2822].
MTA: Mail Transfer Agent. Aplicação servidor responsável pelo envio/recebimento de e-mail. Exemplo: Postfix, Exim e Qmail.
MUA: Mail User Agent. Cliente de e-mail, isto é, onde as mensagens são escritas

Para entender melhor os conceitos, considere uma mensagem eletrônica recebida. Cada e-mail é composto por um cabeçalho (header) e um corpo (body). Por enquanto, apenas o cabeçalho será investigado. Na teoria o header é suficiente para encontrar a pessoa que enviou a mensagem original.

Exemplo 1:

1 MIME-Version: 1.0
2 Received: by 10.143.12.8 with HTTP; Tue, 21 Oct 2009 21:31:52 -0700 (PDT)
3 Date: Wed, 21 Oct 2009 00:31:52 -0400
4 Delivered-To: XXXXXX@gmail.com
5 Message-ID:
6 Subject: header stat
7 From: Fulano de Tal
8 To: XXXXXX@gmail.com
9 Content-Type: text/plain; charset=ISO-8859-1

O exemplo 1 representa o envio de uma mensagem entre o “Fulano de Tal ” e o “XXXXXX@gmail.com”. Começando de baixo para cima. A linha 9 indica a forma de como o texto deve ser interpretado pelo seu cliente de e-mail (MUA).

As linhas 8, 7, 5 e 2 são mais importantes no exemplo 1. As linhas 7 e 8 indicam o remetente e o destinatário respectivamente (óbvio né?). Segundo a RFC 822, o campo “From:” contém o endereço da pessoa que criou a mensagem. Mas, é possível forjar este campo facilmente.

Outro campo presente na RFC do e-mail é o Message-ID. Conforme descrito na linha 5. Este campo é um identificador único que refere a versão desta mensagem. A linha 2, por sua vez, demonstra que o servidor de e-mail (MTA), 10.143.12.8, recebeu esta mensagem. Cada MTA que processar a mensagem deve carimbar o cabeçalho do e-mail com o campo: “Received:”.

O exemplo 2 ilustra um cabeçalho onde vários MTAs carimbaram a mensagem permitindo rastreá-la.

Exemplo 2:

1 Return-Path: [fake@address.com]
2 Received: from server.mymailhost.com (mail.mymailhost.com [126.43.75.123])
by sys01.cl.msu.edu (8.10.2/8.10.2) with ESMTP id NAA23597;
Fri, 12 Jul 2002 16:11:20 -0400 (EDT)
3 Received: from aol.com (127-34-56-98.dsl.mybigisp.com [127.34.56.98])
by server.mymailhost.com; Fri, 12 Jul 2002 13:09:38 -0700 (PDT)
4 Date: Fri, 12 Jul 2002 13:09:38 -0700 (PDT)
5 From: Hot Summer Deals
6 To: My.Friends@msu.edu
7 Subject: Just what you’ve been waiting for!!

Como pode ser observado na linha 3, a mensagem foi recebida pelo servidor “127-34-56-98.dsl.mybigisp.com [127.34.56.98]”. Logo em seguida, na linha 4, este e-mail foi processado pelo servidor “server.mymailhost.com (mail.mymailhost.com [126.43.75.123])”

O Return-Path é um campo interessante que deve ser analisado com um pouco mais de paciência. Segundo sua definição, este campo informa o endereço e a rota de volta de quem originou a mensagem. Por exemplo, a linha 1 do exemplo 2 ilustra:

1 Return-Path: [fake@address.com]

Isto quer dizer que no caso de algum problema no envio desta mensagem, um e-mail de erro deve retornar para o remetente, fake@address.com,  informando sobre o problema.

O que mais o exemplo 2 pode demonstrar? Observando as linhas 5 e 6 desta mensagem, é razoável aceitar que um dos dois campos foram forjados, uma vez que os campos indicados estão divergindo. Por outro lado, esta premissa não pode ser considerada como verdade absoluta. Em alguns casos como listas ou grupos de e-mail, estes campos serão distintos como ilustra o exemplo 3.

Exemplo 3:

1 Return-Path: mailman-bounces@lists.DOMAIN.net

2 From: mailman-owner@lists.DOMAIN.net

O mailman possui alguns usuários que são responsáveis por determinadas atividades administrativas na lista de e-mail. Para o leitor mais interessado no mailman, a documentação pode ser encontrada na página do software.

A seguir, no exemplo 4, será demonstrado uma mensagem onde tanto o remetente (FROM) quanto o “RETURN-PATH” casam. O remetente “REMOVIDO@uol.com.br” pode ser encontrado nos campos 1 e 4.

Exemplo 4:

1 Return-Path: [removido@uol.com.br]
2 Received: from relay5.uol.com.br (relay5.uol.com.br [200.221.4.168]) by gmr-mx.google.com with ESMTP id     25si512786qyk.7.2009.11.01.13.52.12; Sun, 01 Nov 2009 13:52:13 -0800 (PST)
….
3 Date: Sun, 1 Nov 2009 19:52:10 -0200
4 From: Beltrano da Silva [removido@uol.com.br]

Algumas abordagens utilizadas pelos spammers é enviar uma mensagem para uma pessoa contendo o “Re:” no assunto. Geralmente o cliente de e-mail considera este texto como uma suposta resposta ao e-mail enviado.

O exemplo 5.1 ilustra uma mensagem enviado pelo “Beltrano Silva” para o “Fulano Figueira”. Observe que o Message-ID desta mensagem será referenciada quando Fulano responder o e-mail.

Exemplo 5.1:

1 Message-ID: [9355e7730910251803l522389eau9d7973ad0d909fcb@mail.gmail.com]
2 Subject: Telefone da Maria
3 From: Beltrano Silva [xxxxxxxx@gmail.com]
4 To: Fulano Figueira [yyyyyyyy@gmail.com]

Após “Fulano Figueira” responder a mensagem do “Beltrano Silva”, o cabeçalho desta mensagem pode ser ilustrado no exemplo 5.2

Exemplo 5.2:

1 In-Reply-To:[9355e7730910251803l522389eau9d7973ad0d909fcb@mail.gmail.com]
2 References: [9355e7730910251803l522389eau9d7973ad0d909fcb@mail.gmail.com]
..
3 Message-ID: [c794d6fe0910281225x637be9d5y6277954229ad1511@mail.gmail.com]
4 Subject: Re: Telefone da Maria
5 From: Fulano Figueira [yyyyyyyy@gmail.com]
6 To: Beltrano Silva [xxxxxxxx@gmail.com]

Dois novos campos aparecem no cabeçalho da mensagem In-Reply-To e References. É importante ressaltar que os campos 1 e 2 estão referenciando o Message-ID do exemplo 5.1, 9355e7730910251803l522389eau9d7973ad0d909fcb. Enquanto isso, o Message-ID do exemplo 5.2 é diferente, pois este campo deve ser ÚNICO para cada mensagem.

Outro exemplo que pode ser identificado através do cabeçalho da mensagem é quanto o atacante utiliza uma página Web comprometida capaz de enviar o e-mail.

Exemplo 6:

1 Received: by hm1277.DOMAIN.com.br (Postfix, from userid 1242)
id E5A08B85E8; Mon,  4 May 2009 16:29:40 -0300 (BRT)

2 content-type: text/html
3 Subject: Vivo Torpedo
4 From: torpedo@vivotorpedo.com.br
5 To: XXXXXXXXX@gmail.com
6 Message-Id: [20090504192940.E5A08B85E8@hm1277.DOMAIN.com.br]

A linha 1 do exemplo 6 traz uma informação adicional ao cabeçalho. O MTA recebeu esta mensagem do usuário “userid 1242”. Em outras palavras, esta conta pode ter sido comprometida pelo acatante para enviar mensagens maliciosas.

Identificado o IP que originou a mensagem, algumas ferramentas podem ser aplicadas para ajudar no processo de investigação. Neste exemplo será utilizado o www.ip-adress.com.

Supondo que o IP que mandou a mensagem é 66.230.188.82. O ip-adress.com fornece do IP como o código ISO do país, país de origem, Estado, Cidade, Código Postal, latitude e longitude e o provedor de Internet (ISP) que possui autoridade em delegar o IP. Visite este link para visualizar o resultado. http://www.ip-adress.com/ip_tracer/66.230.188.82

Outro banco de dados para identificar o IP é procurar o ISP através do Whois. Usuários de Linux (acho que windows tb) podem abrir o terminar e digitar

whois 66.230.188.82

Ou então, utilizar algum serviço web: http://www.ip-adress.com/whois/66.230.188.82.

As informações contidas no Whois permitem entrar em contato com o provedor de acesso (ISP) a fim de solucionar algum problema:

RAbuseHandle: ISPRI1-ARIN
RAbuseName: ISPrime Abuse
RAbusePhone: +1-212-812-9028

Você pode pegar esta informação e levar aos meios competentes (polícia civil, polícia federal, advogados, MP, etc).

Apesar da Internet parecer um mundo sem lei, identificar um criminoso neste mar de computadores não é uma tarefa muito complicada. Alguns crimes podem ser revelados a partir de simples abordagens, mas nem tudo é muito fácil. Atacantes experientes utilizam inúmeras máquinas comprometidas para dificultar sua identidade. Portanto, analisar o cabeçalho do e-mail é apenas o começo do Iceberg e obter logs de outros componentes complementar o processo investigatório.

PS: Ainda existem outros campos que podem aparecer no cabeçalho do e-mail, cada MUA (cliente de e-mail) pode adicionar seu campo como quiser. Geralmente o campo inicia com X-[Alguma Coisa]

Ferramentas para entender um cabeçalho:
http://my-addr.com/trace_email_address/free_email_trace_route/online_email_trace_route_tool.php

Fontes:
1 – http://www.physorg.com/news151162452.html
1 – http://www.stopspam.org/index.php?option=com_content&id=45
2 – http://abuse.msu.edu/email-headers.html
3 – http://tools.ietf.org/html/rfc822
4 – http://abuse.msu.edu/email-headers.html
5 – http://www.gnu.org/software/mailman/index.html

Boa sorte

One thought on “Análise Forense de um cabeçalho de e-mail

  1. Caro Rafael, muito bom as explicações iniciais, tenho o costume de análisar bastante cabeçalhos e acredito que para um usuário que esta começando agora suas dicas estão muito bem detalhadas e já dá uma boa BASE para a pessoa começar, PARABENS.

    Porem, como percebi que você tem bastante conhecimento, e a minha area não é segurança, preciso que me ajude em relação a um email enviado através do GMAIL (via WEBMAIL ), sendo assim, não consigo de forma alguma descobrir o IP do remetente, pois o from vem com o IP do servidor do GOOGLE, ate mesmo na ferramenta que voce cita no final do seu post, ele so informa que a mensagem partiu do servidor do GOOGLE, mas não me dá o IP de origem!

    ALGUMA DICA?

    meu email: alexhn@uol.com.br

Comments are closed.