Introduzione
In questo documento viene descritto il formato delle cassette postali UNIX (mbox) e la relativa applicazione su Cisco Email Security Appliance (ESA).
Prerequisiti e importanti considerazioni
- Assicurarsi di aver compreso che AsyncOS sull'ESA utilizza il formato mbox UNIX durante l'archiviazione dei messaggi e nell'azione
log() dei filtri messaggi.
- Il formato mbox è basato su ASCII e non è binario.
- Esistono più varianti del formato mbox che possono complicare l'analisi.
- AsyncOS non utilizza il metodo di intestazione "Content-Length" né inserisce un campo
Content-Length.
Cenni preliminari sul formato mbox UNIX
Il formato mbox UNIX viene utilizzato da AsyncOS quando i messaggi vengono archiviati o registrati tramite operazioni filtro messaggi. "Archive Message" è un'opzione di configurazione aggiuntiva per funzionalità quali IronPort Anti-Spam (IPAS), Anti-Virus (Sophos e McAfee), Advanced Malware Protection (AMP) e Graymail sull'ESA.
Il formato mbox è un formato di testo normale (ASCII) che memorizza uno o più messaggi e-mail concatenati in un singolo file. I messaggi vengono separati in base a uno schema specifico, che consente di estrarre i singoli messaggi. Il formato corrisponde ai messaggi trasferiti tra gateway di posta compatibili con RFC 2821.
Struttura di un file mbox
- Separatore messaggi: Ogni messaggio inizia con una riga che inizia con "From " (i caratteri ASCII F, r, o, m e uno spazio).
- Campi dopo "Da ": I campi successivi sono:
- Mittente busta: può essere una cassetta postale reale, un trattino (
-) o un'altra stringa, a seconda dell'applicazione che genera la cassetta postale.
- Data: Inserito da ESA nel formato standard UNIX asctime(), sempre lungo 24 caratteri.
- Dati facoltativi: Alcune varianti della casella combinata aggiungono altri campi dopo la data.
- Separazione campi: Questi campi sono separati da un solo spazio.
- Contenuto del messaggio e-mail: Segue la riga del separatore nel formato standard RFC 2822 (intestazioni, riga vuota, corpo).
Esempio: Messaggio singolo in 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--
Separazione dei messaggi e gestione delle linee di origine
- Poiché molte applicazioni generano file mbox, il formato della linea di separazione "Da " può variare. Tuttavia, è sempre possibile utilizzare "Da " come limite di messaggio affidabile.
- Esistono circa 20 varianti conosciute per i campi che seguono il separatore, rendendo difficile l'analisi automatica.
- Per evitare confusione, le righe all'interno del corpo dell'e-mail che iniziano con "Da" sono sempre precedute da un singolo ">". I file di registro AsyncOS anteporranno ">" a qualsiasi riga che inizia con uno o più caratteri ">" seguiti da "From".
Esempio: Creazione di preventivi nei file 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
Fine e analisi messaggio
- La fine di un messaggio è in genere contrassegnata da una riga vuota. AsyncOS include sempre questa riga, ma non tutte le implementazioni.
- Durante l'analisi, considera l'inizio di una nuova riga del separatore "Da " o la fine del file come la fine di un messaggio. Rimuovere la riga vuota, se presente.
- Alcune varianti utilizzano un campo "Content-Length" per contrassegnare i limiti dei messaggi, ma AsyncOS non utilizza questo metodo.
Riepilogo dei punti chiave
- AsyncOS utilizza il formato standard UNIX per l'archiviazione e la registrazione dei messaggi.
- Il formato mbox è ASCII, concatena i messaggi e utilizza le righe "Da " come separatori.
- AsyncOS assicura che le righe all'interno dei messaggi che iniziano con "From" vengano citate con ">" per evitare errori di analisi.
- L'analisi dei file mbox richiede la gestione di numerose varianti, in particolare con righe di separazione dei messaggi.
- Nei file mbox generati da AsyncOS, non è previsto un campo "Content-Length" o lo è solo in base a esso.