포렌식 업무에 있어서 이메일을 분석 해 역추적 해 나가는 부분은 사실 자주 있는 일이 아니다.
하지만 포렌식 업무 분석 과정에서 이메일이 분석대상에 포함되어 있다면 당연히 분석을 해야 하지만 이메일 헤더를 알지 못하고서는 정확히 분석하기가 어렵다.
이 글에서는 이메일 헤더 별로 어떠한 의미를 지니는지 알아볼 것이다.
각 메일서비스를 제공하는 회사마다 메일 헤더는 조금씩 다르다. 하지만 그 기본 구조는 동일하여 분석하는데 아무런 문제가 되지 않는다.
아래는 이메일 헤더의 예시이다.
Received: (qmail 18671 invoked from network); 2 Apr 2012 09:43:05 -0000
Received: from 114.111.38.25 (HELO trcvmail12-1.nm.naver.com) (114.111.38.25)
by tmda13-2.nm.naver.com with SMTP; 2 Apr 2012 09:43:05 -0000
Received: from [66.220.144.139] ([66.220.144.139])
by trcvmail12-1.nm.naver.com ([202.131.27.71])
with ESMTP id 1333359784.766907.3619679120.trcvmail12-1
for <xxx@naver.com>;
Mon, 02 Apr 2012 18:42:27 +0900 (KST)
Return-Path: <notification+zrdo6ig=lzgz@facebookmail.com>
DKIM-Signature: v=1; a=rsa-sha256; d=facebookmail.com; s=s1024-2011-q2; c=relaxed/simple;
q=dns/txt; i=@facebookmail.com; t=1333359784;
h=From:Subject:Date:To:MIME-Version:Content-Type;
bh=MynJ4HcdGV+jLma9/+h080zYMjRp5b4Skhq7XawtqeU=;
b=ftf2lkO1ErQyg2yQOSYQ4taT+BWcX46HzfxyI/Y6vPrd5baaiAKOfT6RPDc47zRs
kfCMa8aXtmIQqRxi51oEv3OcxHd/4U9v+WA+X7cFKnK88p+fdAJb4nXgXsYYBsNW
BaCk1PVB57RIyacZzJvqiD0lUUA+2X9vhVaN+rOd/38=;
Received: from [10.42.44.63] ([10.42.44.63:58545])
by smout005.snc4.facebook.com (envelope-from <notification+zrdo6ig=lzgz@facebookmail.com>)
(ecelerity 2.2.2.45 r(34222M)) with ECSTREAM
id 55/A2-14651-8A4797F4; Mon, 02 Apr 2012 02:43:04 -0700
X-Facebook: from zuckmail ([MTI3LjAuMC4x])
by m.facebook.com with HTTP (ZuckMail);
Date: Mon, 2 Apr 2012 02:43:04 -0700
To: xxx <xxx@naver.com>
From: "Facebook" <notification+zrdo6ig=lzgz@facebookmail.com>
Reply-to: noreply <noreply@facebookmail.com>
Subject: =?UTF-8?B?7J6l6rCV7Z2sIGlzIGF0IOqxtOq1reuMgO2Vmeq1kA==?=
=?UTF-8?B?IOyDge2XiOq4sOuFkOuPhOyEnOq0gDogIuu5hOuPhCDrgrQ=?=
=?UTF-8?B?66as6rOgIOyLnOqwhOuPhCDriqbsl4jsp4Drp4wg7IiY7JeFIA==?=
=?UTF-8?B?64Gd64KY6rOgIOynkeyXkCDqsIDroKTri4jquZAg6riw67aE7J20?=
=?UTF-8?B?IOyhsOycvOuLpC4gIO2VmOyngOunjCDsoJXsi6DsnYQg?=
=?UTF-8?B?7LCo66Ck67O064uIIOy5uOunieydtOqwgCDss5Dsp4Qg7J20IA==?=
=?UTF-8?B?7KGw7Jqp7ZWcIOyepeyGjOyXkCDsmYDsnoguLi4=?=
X-TERRACE-DUMMYSUBJECT: Terrace Spam system *
Message-ID: <ca695c06be6574c1ec0984a13e62d44f@m.facebook.com>
X-Priority: 3
X-Mailer: ZuckMail [version 1.00]
Errors-To: notification+zrdo6ig=lzgz@facebookmail.com
X-Facebook-Notify: close_friend_activity; mailid=5e371d6G5af39c15a96dG90f951G79
X-FACEBOOK-PRIORITY: 0
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_ca695c06be6574c1ec0984a13e62d44f"
X-TERRACE-SUPERWHITEIP: 88212
X-Naver-ESV: +sFYpB3G1Hbqa0ixyueaKV/ZKZ0Y7BmmaxtqKAkYkXm=
기본적인 주소 정보는 From 과 To 라인에 정의되어 있고, 메일의 내용을 담고 있는 부분은 Subject와 Content 부분이다.
메일의 발송 경로는 Received 부분에 정의되어 있는데 가장 이 부분을 주목해서 봐야 한다. 스팸메일 발송 근원지를 추적 할 때 중요하게 여겨지는 부분이기 때문이다.
메일에는 고유한 식별자 값이 부여되는데 그 부분은 Message-ID 라인 부분이다.
앞서 말했듯이 이메일 헤더는 조금씩 그 구성요소 구조들이 다르다고 하였지만 기본적으로 아래와 같은 구조를 가진다.
제일 중요한 Received 부분을 보도록 하겠다.
Received: from (1)
by (2)
with (3) id (4)
for (5);
(6)
(1) : 이 부분은 메일을 발송하는 서버의 주소 또는 호스트이름을 명시하는 부분으로 메일을 처음 발송하는 부분이 될 수도 있고 중간 경유지가 될 수도 있다.
(2) : 해당 메일을 받는 서버의 호스트이름이나 주소
(3) : SMTP와 같은 메일 프로토콜
(4) : 해당 메일이 발송되는 서버나 수신되는 서버에서 해당 메일이 구분되어질 수 있는 고유한 식별자(Message-ID)
(5) : 수신 받는 사용자의 이메일 주소
(6) : 해당 메일이 수신된 날짜와 시간
메일의 헤더내용은 수정이 가능하다는 단점이 존재하여 이메일 헤더의 내용을 모두 믿어서는 안된다.
* 참고 : Message-ID는 메일을 발송하는 서버가 메일에 부여하는 고유한 식별자 값이다.
'[+] Forensic' 카테고리의 다른 글
Mac OS X - Live Response (1) (0) | 2012.04.29 |
---|---|
디지털 포렌식과 하둡에 관한 고찰 (0) | 2012.04.09 |
File System - HFS+ (5) (0) | 2012.03.24 |
File System - HFS+ (4) (0) | 2012.03.23 |