Introducción
Este documento describe el formato de buzón de correo UNIX (mbox) y su aplicación en Cisco Email Security Appliance (ESA).
Requisitos previos y consideraciones importantes
- Asegúrese de comprender que AsyncOS en ESA utiliza el formato mbox de UNIX al archivar mensajes y en la acción
log() de los filtros de mensajes.
- El formato mbox está basado en ASCII y no es binario.
- Hay múltiples variantes del formato mbox, que pueden complicar el análisis.
- AsyncOS no utiliza el método de encabezado "Content-Length" ni inserta un campo
Content-Length.
Descripción general del formato UNIX mbox
AsyncOS utiliza el formato mbox de UNIX cuando los mensajes se archivan o se registran mediante acciones de filtrado de mensajes. "Archivar mensaje" es una opción de configuración adicional para funciones como IronPort Anti-Spam (IPAS), Anti-Virus (Sophos y McAfee), Protección frente a malware avanzado (AMP) y Graymail en el ESA.
El formato mbox es un formato de texto sin formato (ASCII) que almacena uno o más mensajes de correo electrónico concatenados en un único archivo. Los mensajes se separan mediante un patrón específico, lo que permite extraer mensajes individuales. El formato coincide con los mensajes transferidos entre gateways de correo compatibles con RFC 2821.
Estructura de un archivo mbox
- Separador de mensajes: Cada mensaje comienza con una línea que comienza con "From " (los caracteres ASCII F, r, o, m y un espacio).
- Campos Después De "De ": Los campos siguientes son:
- Envelope-sender: Puede ser un buzón real, un guión (
-) u otra cadena, dependiendo de la aplicación que genere el mbox.
- Fecha: Insertado por ESA en formato estándar UNIX asctime(), siempre de 24 caracteres de longitud.
- Datos opcionales: Algunas variantes mbox agregan más campos después de la fecha.
- Separación de campos: Estos campos están separados por un único espacio.
- Contenido del mensaje de correo electrónico: Sigue la línea de separación en formato estándar RFC 2822 (encabezados, línea en blanco, cuerpo).
Ejemplo: Mensaje único en 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--
Separación de mensajes y manejo de línea "De"
- Debido a que muchas aplicaciones generan archivos mbox, el formato de la línea separadora "De " puede variar. Sin embargo, siempre puede utilizar "De " como límite de mensaje fiable.
- Existen aproximadamente 20 variantes conocidas para los campos que siguen al separador, lo que dificulta el análisis automatizado.
- Para evitar confusiones, las líneas del cuerpo del correo electrónico que comienzan por "De" siempre van precedidas de un único ">". Los archivos de registro de AsyncOS antepondrán un ">" a cualquier línea que comience con uno o más caracteres ">" seguidos de "From".
Ejemplo: Presupuestos en archivos 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
Fin y análisis de mensajes
- El final de un mensaje suele estar marcado con una línea en blanco. AsyncOS siempre incluye esta línea, pero no todas las implementaciones lo hacen.
- Al analizar, trate el inicio de una nueva línea separadora "De " o el final del archivo como el final de un mensaje. Elimine la línea en blanco si la hubiera.
- Algunas variantes utilizan un campo "Content-Length" para marcar los límites del mensaje, pero AsyncOS no utiliza este método.
Resumen de los puntos clave
- AsyncOS utiliza el formato mbox estándar de UNIX para archivar y registrar mensajes.
- El formato mbox es ASCII, concatena mensajes y utiliza líneas "De " como separadores.
- AsyncOS garantiza que las líneas de los mensajes que comienzan por "De" se citan con ">" para evitar errores de análisis.
- Analizar archivos mbox requiere manejar numerosas variantes, especialmente con líneas separadoras de mensajes.
- No espere o confíe en un campo "Content-Length" en archivos mbox generados por AsyncOS.