Introdução
Este documento descreve o formato da caixa de correio UNIX (mbox) e seu aplicativo no Cisco Email Security Appliance (ESA).
Pré-requisitos e considerações importantes
- Certifique-se de entender que o AsyncOS no ESA usa o formato mbox UNIX ao arquivar mensagens e na ação
log() dos filtros de mensagem.
- O formato mbox é baseado em ASCII e não binário.
- Há várias variantes do formato mbox, o que pode complicar a análise.
- O AsyncOS não usa o método de cabeçalho "Content-Length" nem insere um campo
Content-Length.
Visão Geral do Formato do UNIX mbox
O formato UNIX mbox é usado pelo AsyncOS quando as mensagens são arquivadas ou registradas por meio de ações de filtro de mensagens. "Mensagem de arquivo" é uma opção de configuração adicional para recursos como IronPort Anti-Spam (IPAS), Anti-Virus (Sophos e McAfee), Advanced Malware Protection (AMP) e Graymail no ESA.
O formato mbox é um formato de texto simples (ASCII) que armazena uma ou mais mensagens de e-mail concatenadas em um único arquivo. As mensagens são separadas usando um padrão específico, tornando possível extrair mensagens individuais. O formato corresponde às mensagens transferidas entre os gateways de correio compatíveis com RFC 2821.
Estrutura de um arquivo mbox
- Separador de mensagens: Cada mensagem começa com uma linha que começa com "De " (os caracteres ASCII F, r, o, m e um espaço).
- Campos após "De ": Os próximos campos são:
- Remetente de envelope: Pode ser uma caixa de correio real, um traço (
-) ou outra sequência de caracteres, dependendo do aplicativo que está gerando a caixa de correio.
- Data: Inserido pelo ESA no formato UNIX asctime() padrão, sempre com 24 caracteres.
- Dados opcionais: Algumas variantes do mbox adicionam mais campos após a data.
- Separação de campo: Esses campos são separados por um único espaço.
- Conteúdo da mensagem de email: Segue a linha separadora no formato padrão RFC 2822 (cabeçalhos, linha em branco, corpo).
Exemplo: Mensagem única no formato mbox
From Adam@Outside.COM Sun Oct 17 12:03:20 2004
Received: from mail.outside.com (192.35.195.200)
by smtp.alpha.com with ESMTP; 17 Oct 2004 12:03:20 -0700
X-IronPort-AV: i="3.85,147,1094454000";
v="EICAR-AV-Test'0'v";
d="scan'208"; a="86:adNrHT37924848"
X-IronPort-RCPT-TO: alan@mail.example.com
From: Adam@Outside.COM
To: Alan Alpha <Alan@mail.example.COM>
Subject: Exercise 7a Anti-Virus Scanning
Reply-To: Adam Alpha <adam@outside.com>
Date: Sun, 17 Oct 2004 12:02:39 -0700
MIME-version: 1.0
Content-type: multipart/mixed; boundary="IronPort"
--IronPort
Content-type: text/plain; format=flowed; charset=us-ascii
Content-transfer-encoding: 7bit
Blah blah blah blah blah
Blah blah blah blah blah
Blah blah blah blah blah
...
--IronPort
Content-type: text/plain
Content-transfer-encoding: 7bit
Content-disposition: inline
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*">X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
--IronPort--
Separação de mensagens e tratamento de linhas "De"
- Como muitos aplicativos geram arquivos mbox, o formato da linha separadora "De " pode variar. No entanto, você sempre pode usar "De " como um limite de mensagem confiável.
- Há aproximadamente 20 variantes conhecidas para campos que seguem o separador, tornando a análise automatizada desafiadora.
- Para evitar confusão, as linhas no corpo do e-mail que começam com "De" são sempre precedidas por um único ">". Os arquivos de log do AsyncOS anexarão um ">" a qualquer linha que comece com um ou mais caracteres ">" seguidos por "De".
Exemplo: Orçamentos em arquivos mbox
From jtrumbo@example1.com Sun Dec 12 12:27:33 2004
X-IronPort-RCPT-TO: trumbo@example1.com
From: jtrumbo@example1.com
To: trumbo@example2.com
Subject: Quote this, if you dare
Date: Sun, 12 Dec 2004 12:28:00 -0700
The following line is just From
>From A From Line
The following line has quoted >From
>>From A >From Line
The following line has many >>>>From
>>>>>From This line has 4 > characters before From
And this is the last line
Fim e Análise de Mensagem
- O final de uma mensagem é normalmente marcado por uma linha em branco. O AsyncOS sempre inclui essa linha, mas nem todas as implementações incluem.
- Ao analisar, trate o início de uma nova linha separadora "De" ou o fim do arquivo como o fim de uma mensagem. Remova a linha em branco, se houver.
- Algumas variantes usam um campo "Content-Length" para marcar limites de mensagem, mas o AsyncOS não usa esse método.
Resumo dos pontos principais
- O AsyncOS usa o formato padrão UNIX mbox para arquivar e registrar mensagens.
- O formato mbox é ASCII, concatena mensagens e usa linhas "De " como separadores.
- O AsyncOS garante que as linhas nas mensagens que começam com "De" sejam citadas com ">" para evitar erros de análise.
- A análise de arquivos mbox requer o tratamento de várias variantes, especialmente com linhas separadoras de mensagens.
- Não espere ou confie em um campo "Content-Length" em arquivos mbox gerados pelo AsyncOS.