はじめに
このドキュメントでは、UNIXメールボックス(mbox)形式と、Cisco Eメールセキュリティアプライアンス(ESA)でのアプリケーションについて説明します。
前提条件と重要な考慮事項
- ESAのAsyncOSでは、メッセージのアーカイブ時およびメッセージフィルタの
log()アクションでUNIX mbox形式が使用されることを理解しておいてください。
- mbox形式は、バイナリではなくASCIIベースです。
- mbox形式には複数のバリアントがあり、解析が複雑になる場合があります。
- AsyncOSでは「Content-Length」ヘッダー方式を使用せず、
Content-Lengthフィールドも挿入しません。
UNIX mbox形式の概要
UNIXのmbox形式は、メッセージがメッセージフィルタアクションを通じてアーカイブまたはロギングされるときにAsyncOSによって使用されます。「アーカイブメッセージ」は、ESAのIronPort Anti-Spam(IPAS)、Anti-Virus(SophosおよびMcAfee)、Advanced Malware Protection(AMP)、Graymailなどの機能の追加設定オプションです。
mbox形式は、1つ以上の電子メールメッセージを1つのファイルに連結して保存するプレーンテキスト(ASCII)形式です。メッセージは特定のパターンを使用して分離されるため、個々のメッセージを抽出できます。この形式は、RFC 2821準拠のメールゲートウェイ間で転送されるメッセージに一致します。
mboxファイルの構造
- メッセージ区切り記号:各メッセージは、「From 」で始まる行(ASCII文字F、r、o、m、およびスペース)で始まります。
- 「From」の後のフィールド:次のフィールドは次のとおりです。
- Envelope-sender: mboxを生成するアプリケーションに応じて、実際のメールボックス、ダッシュ(
-)、または別の文字列を指定できます。
- 日付:ESAによって標準のUNIX asctime()形式で挿入されます。常に24文字です。
- オプションのデータ: mboxバリアントの中には、日付の後にフィールドを追加するものがあります。
- フィールドの分割:これらのフィールドは1つのスペースで区切られます。
- 電子メールメッセージの内容:標準のRFC 2822形式(ヘッダー、空白行、本文)の区切り線に従います。
例: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--
メッセージの分離と「From」行の処理
- 多くのアプリケーションではmboxファイルが生成されるため、「From 」区切り線の形式は異なる場合があります。ただし、信頼できるメッセージ境界として常に「From 」を使用できます。
- セパレータに続くフィールドには約20の既知のバリアントがあるため、自動解析は困難です。
- 混乱を避けるために、電子メール本文内の「From」で始まる行の先頭には、常に1つの「>」が付加されます。 AsyncOSログファイルでは、1つ以上の「>」文字で始まり、その後に「From」が続くすべての行の先頭に「>」が付加されます。
例: 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
メッセージの終了と解析
- 通常、メッセージの終わりには空白行が表示されます。AsyncOSには常にこの行が含まれますが、すべての実装にこの行が含まれるわけではありません。
- 解析時に、新しい「From」区切り行の先頭またはファイルの末尾をメッセージの末尾として扱います。空白行がある場合は、それを削除します。
- 一部のバリアントでは、「Content-Length」フィールドを使用してメッセージの境界をマークしていますが、AsyncOSではこの方法を使用しません。
キーポイントのまとめ
- AsyncOSでは、メッセージのアーカイブとロギングに標準のUNIX mbox形式を使用します。
- mbox形式はASCII形式で、メッセージを連結し、「From 」行を区切り文字として使用します。
- AsyncOSでは、解析エラーを回避するために、「From」で始まるメッセージ内の行が「>」でクォートされます。
- mboxファイルを解析するには、特にメッセージ区切り行を使用して、多数のバリアントを処理する必要があります。
- AsyncOSで生成されたmboxファイルの「Content-Length」フィールドを想定したり、これに依存したりしないでください。