소개
이 문서에서는 Cisco ESA(Email Security Appliance)의 UNIX 사서함(mbox) 형식 및 애플리케이션에 대해 설명합니다.
전제 조건 및 중요 고려 사항
- ESA의 AsyncOS가 메시지를 보관할 때 UNIX mbox 형식을 사용하고 메시지 필터의
log() 작업을 사용하는지 확인합니다.
- mbox 형식은 이진 형식이 아니라 ASCII 기반입니다.
- mbox 형식의 변형이 여러 개 있으므로 구문 분석이 복잡해질 수 있습니다.
- AsyncOS는 "Content-Length" 헤더 메서드를 사용하지 않거나 Content-Length
필드를 삽입합니다.
UNIX mbox 형식 개요
UNIX mbox 형식은 메시지가 메시지 필터 작업을 통해 아카이브되거나 기록될 때 AsyncOS에서 사용됩니다. "Archive Message(메시지 아카이브)"는 ESA의 IronPort Anti-Spam(IPAS), Anti-Virus(Sophos 및 McAfee), AMP(Advanced Malware Protection), 그레이메일 등의 기능에 대한 추가 구성 옵션입니다.
mbox 형식은 단일 파일에 연결된 하나 이상의 이메일 메시지를 저장하는 일반 텍스트(ASCII) 형식입니다. 메시지는 특정 패턴을 사용하여 구분되므로 개별 메시지를 추출할 수 있습니다. 이 형식은 RFC 2821 호환 메일 게이트웨이 간에 전송되는 메시지와 일치시킵니다.
mbox 파일의 구조
- 메시지 구분 기호: 각 메시지는 "From "(ASCII 문자 F, r, o, m 및 공백)으로 시작하는 행으로 시작합니다.
- "From " 뒤에 필드: 다음 필드는 다음과 같습니다.
- Envelope-sender: 실제 사서함, 대시(
-) 또는 다른 문자열이 될 수 있습니다(mbox를 생성하는 애플리케이션에 따라).
- 날짜: ESA에서 표준 UNIX asctime() 형식으로 삽입하며, 항상 24자입니다.
- 선택적 데이터: 일부 mbox 변형은 날짜 이후에 필드를 더 추가합니다.
- 필드 구분: 이러한 필드는 단일 공백으로 구분됩니다.
- 전자 메일 메시지 내용: 표준 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--
메시지 분리 및 "발신" 라인 처리
- 많은 응용 프로그램이 mbox 파일을 생성하므로 "From " 구분 기호 줄의 형식은 달라질 수 있습니다. 그러나 항상 "From"을 안정적인 메시지 경계로 사용할 수 있습니다.
- 분리기를 따르는 필드에 대해 약 20개의 알려진 변형이 있어 자동 구문 분석에 어려움이 있습니다.
- 혼동을 방지하기 위해 전자 메일 본문 내에서 "보낸 사람"으로 시작하는 줄은 항상 단일 ">"로 추가됩니다. AsyncOS 로그 파일은 ">" 앞에 하나 이상의 ">" 문자로 시작하고 그 뒤에 "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는 항상 이 회선을 포함하지만 모든 구현이 포함하는 것은 아닙니다.
- 구문 분석 시 새 "보낸 사람" 구분 기호의 시작 또는 파일의 끝을 메시지의 끝으로 간주합니다. 빈 줄이 있으면 제거하십시오.
- 일부 변형에서는 "Content-Length" 필드를 사용하여 메시지 경계를 표시하지만 AsyncOS에서는 이 메서드를 사용하지 않습니다.
주요 내용 요약
- AsyncOS는 메시지 보관 및 로깅에 표준 UNIX mbox 형식을 사용합니다.
- mbox 형식은 ASCII이며, 메시지를 연결하고 "From " 줄을 구분 기호로 사용합니다.
- AsyncOS는 구문 분석 오류를 방지하기 위해 "From"으로 시작하는 메시지 내의 줄에 ">"가 따옴표로 묶여 있는지 확인합니다.
- mbox 파일을 구문 분석하려면 다양한 변형을 처리해야 합니다. 특히 메시지 구분 기호가 있는 경우 더욱 그렇습니다.
- AsyncOS에서 생성된 mbox 파일의 "Content-Length" 필드는 예상하거나 사용하지 마십시오.