Introduction
Ce document décrit le format de boîte aux lettres Unix (mbox) et son utilisation sur Cisco Email Security Appliance (ESA).
Qu’est-ce que le format mbox d’UNIX (boîte aux lettres)?
Le format mbox UNIX est utilisé par AsyncOS lorsque les messages sont archivés et consignés dans l'action message filter log(). « Archive Message » est une option de configuration supplémentaire pour Ironport Anti-Spam (IPAS), Anti-virus (Sophos et McAfee), Advanced Malware Protection (AMP) et Graymail sur ESA.
Le format Mbox est un format de fichier au format ASCII (c'est-à-dire non binaire) qui peut contenir zéro ou plusieurs messages électroniques. Les messages sont concaténés dans le fichier mbox et peuvent être répartis en fonction de chaînes spécifiques dans le fichier. Ce format est identique au message car ils sont transférés entre des passerelles de messagerie conformes à la norme RFC 2821.
Chaque message au format mbox commence par une ligne commençant par la chaîne « From » (caractères ASCII F, r, o, m et espace). Les lignes « De » sont suivies de plusieurs champs supplémentaires : expéditeur de l'enveloppe, date et (éventuellement) davantage de données.
Le premier champ après la chaîne « From » est l'expéditeur-enveloppe du message. Selon l'application qui crée le fichier mbox, l'expéditeur de l'enveloppe peut être présent en tant que boîte aux lettres réelle ou il peut s'agir d'un autre caractère ou d'une autre chaîne. Le plus souvent, vous constaterez qu'un "-" (tiret à un caractère) remplace l'expéditeur de l'enveloppe si l'expéditeur de l'enveloppe n'est pas disponible ou n'est pas connu. Le champ de date inséré par l'ESA est au format asctime() UNIX standard et comporte toujours 24 caractères. Dans certains fichiers mbox écrits par des implémentations non-AsyncOS, des informations supplémentaires suivent l'horodatage. Ces trois champs sont séparés par un seul espace.
Voici un exemple de fichier mbox contenant un seul message :
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--
Lorsque des fichiers au format mbox sont analysés, il est souhaitable de ne pas lire trop de sémantique dans la ligne « From » qui sépare les messages. Étant donné que de nombreux utilitaires différents écrivent des fichiers mbox, ces lignes présentent des variations considérables. Cependant, la ligne "De " peut toujours être utilisée comme ligne de séparation de message afin d'indiquer de manière fiable qu'un nouveau message a commencé dans le fichier mbox. En tout, il existe environ 20 formats connus pour les chaînes après le séparateur de message "From", ce qui rend généralement très difficile leur analyse.
Après la ligne « De », vous trouverez un message électronique au format RFC 2822, avec une série d'en-têtes de corps de message suivis d'une ligne vide suivie d'un contenu de corps de message supplémentaire.
Afin de s'assurer que les messages sont correctement séparés, les lignes qui commencent par la chaîne "From" sont toujours précédées d'un seul ">". Différentes variantes de fichiers mbox gèrent différemment les lignes qui commencent par ">De". Dans les premières implémentations d'applications qui écrivaient des fichiers mbox, ces lignes n'étaient pas citées. Les fichiers journaux AsyncOS font toujours précéder d'un ">" les lignes qui commencent par un ou plusieurs caractères ">" suivis de "De".
Voici un exemple de fichier mbox contenant un message dont les lignes contiennent les chaînes de début « From », «>From » et « >>>From » :
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
La fin d'un message dans un fichier au format mbox est généralement signalée par une ligne vide. Cependant, cela n'est pas toujours présent (bien qu'AsyncOS le place là). Lorsqu'un fichier au format mbox est analysé, vous devez signaler la fin d'un message soit par le début d'un nouveau message (supprimez la ligne vide si elle est présente), soit par la fin du fichier.
Une autre variante du format mbox a appelé à signaler la longueur du message dans un champ "Content-Length" de l'en-tête du message. Ce format n'utilisait pas le guillemet « De ». AsyncOS n'utilise pas ce format et n'insère pas de champ Content-Length.