Einleitung
Dieses Dokument beschreibt das Unix-Mailbox-Format (mbox) und seine Beziehung zur Verwendung in der Cisco Email Security Appliance (ESA).
Was ist das UNIX-mbox-Format (Mailbox)?
Das UNIX-Mbox-Format wird von AsyncOS verwendet, wenn Nachrichten archiviert und in der Aktion message filter log() protokolliert werden. "Archive Message" ist eine zusätzliche Konfigurationsoption für Ironport Anti-Spam (IPAS), Anti-Virus (Sophos und McAfee), Advanced Malware Protection (AMP) und Graymail auf der ESA.
Das Mbox-Format ist ein ASCII-formatiertes (d. h. nicht binäres) Dateiformat, das 0 oder mehr E-Mail-Nachrichten enthalten kann. Nachrichten werden in der mbox-Datei verkettet und können basierend auf bestimmten Zeichenfolgen in der Datei getrennt werden. Dieses Format ist identisch mit dem der Nachrichten, da diese zwischen RFC 2821-kompatiblen Mail-Gateways übertragen werden.
Jede Nachricht im mbox-Format beginnt mit einer Zeile, die mit der Zeichenfolge "From" beginnt (ASCII-Zeichen F, r, o, m und Leerzeichen). Auf "Von"-Zeilen folgen mehrere weitere Felder: Umschlagabsender, Datum und (optional) weitere Daten.
Das erste Feld nach der Zeichenfolge "From" (Von) ist der Umschlagabsender der Nachricht. Je nachdem, welche Anwendung die mbox-Datei erstellt, kann der Umschlagabsender als reales Postfach oder als anderes Zeichen oder Zeichenfolge vorhanden sein. In der Regel werden Sie feststellen, dass ein "-" (Bindestrich mit einem Zeichen) den Umschlagabsender ersetzt, wenn der eigentliche Umschlagabsender nicht verfügbar oder nicht bekannt ist. Das Datumsfeld, das von der ESA eingefügt wird, hat das standardmäßige UNIX asctime()-Format und ist immer 24 Zeichen lang. In einigen mbox-Dateien, die von Nicht-AsyncOS-Implementierungen geschrieben wurden, folgen weitere Informationen dem Datumsstempel. Diese drei Felder sind durch ein einziges Leerzeichen voneinander getrennt.
Hier ist ein Beispiel einer mbox-Datei mit einer einzelnen Nachricht:
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
Subject: Exercise 7a Anti-Virus Scanning
Reply-To: Adam Alpha
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--
Wenn mbox-formatierte Dateien analysiert werden, ist es wünschenswert, nicht zu viel Semantik in die "Von"-Zeile zu lesen, die Nachrichten trennt. Da viele verschiedene Dienstprogramme mbox-Dateien schreiben, gibt es erhebliche Unterschiede in diesen Zeilen. Die Zeile "Von " kann jedoch immer als Nachrichtentrennlinie verwendet werden, um zuverlässig anzuzeigen, dass eine neue Nachricht in der mbox-Datei gestartet wurde. Insgesamt gibt es etwa 20 bekannte Formate für die Zeichenketten nach dem "Von"-Nachrichtentrennzeichen, was es in der Regel sehr schwierig macht, sie zu analysieren.
Nach der "Von"-Zeile befindet sich eine E-Mail-Nachricht im RFC 2822-Format, mit einer Reihe von Nachrichtenhauptzeilen gefolgt von einer leeren Zeile gefolgt von zusätzlichem Nachrichtenhauptinhalt.
Um sicherzustellen, dass Nachrichten ordnungsgemäß getrennt werden, werden Zeilen, die mit der Zeichenfolge "From" beginnen, immer durch ein einzelnes ">" vorangestellt. Verschiedene Varianten von mbox-Dateien behandeln Zeilen, die mit ">From" beginnen, unterschiedlich. In frühen Implementierungen von Anwendungen, die mbox-Dateien geschrieben haben, wurden diese Zeilen nicht selbst zitiert. AsyncOS-Protokolldateien setzen Zeilen, die mit einem oder mehreren ">"-Zeichen beginnen, stets ein ">" voran, gefolgt von "From".
Das folgende Beispiel zeigt eine mbox-Datei, die eine Nachricht enthält, in der Zeilen enthalten sind, die die Anfangszeichenfolgen "From", ">From" und ">>>>From" enthalten:
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
Das Ende einer Nachricht in einer Datei im Postfachformat wird üblicherweise durch eine leere Zeile signalisiert. Dies ist jedoch nicht immer der Fall (obwohl es von AsyncOS dort abgelegt wird). Wenn eine mbox-formatierte Datei analysiert wird, sollten Sie das Ende einer Nachricht entweder durch den Beginn einer neuen Nachricht (löschen Sie die leere Zeile, wenn eine vorhanden ist) oder durch das Ende der Datei signalisieren.
Eine weitere Variante im mbox-Format sieht vor, dass die Länge der Nachricht in einem Feld "Content-Length" im Message-Header signalisiert wird. Bei diesem Format wurde die Zeilenanführungsfunktion "Von" nicht verwendet. AsyncOS verwendet dieses Format nicht und fügt kein Content-Length-Feld ein.