반응형

가끔 자신의 메일주소를 발신자로 스팸이나 바이러스 메일이 발송되는 경우가 있는데, 이런 경우 자신의 PC 바이러스에 감염됐다고 단정할 있을까? 실제로 스팸이나 바이러스 메일 등은 송신자와 수신자를 수시로 바꿔 전송되기 때문에 메일헤더를 제대로 이해하지 못하면 어디에서 전송된 메일인지 없다. , 발신자의 메일 주소는 쉽게 위조할 있기 때문에 발신자의 메일주소 만으로는 아무런 의미가 없다는 것이다. 항상 접하면서도 결코 쉽지만은 않은 메일헤더를 분석함으로써 메일의 전송경로를 추적해 보도록 하자.

가끔 자신의 메일주소를 발신자로 스팸이나 바이러스 메일이 발송되는 경우가 있는데, 이런 경우 자신의 PC 바이러스에 감염됐다고 단정할 있을까? 실제로 스팸이나 바이러스 메일 등은 송신자와 수신자를 수시로 바꿔 전송되기 때문에 메일헤더를 제대로 이해하지 못하면 어디에서 전송된 메일인지 없다. , 발신자의 메일 주소는 쉽게 위조할 있기 때문에 발신자의 메일주소 만으로는 아무런 의미가 없다는 것이다. 항상 접하면서도 결코 쉽지만은 않은 메일헤더를 분석함으로써 메일의 전송경로를 추적해 보도록 하자.

                                          

메일의 전송과정

이메일은 발신자로부터 수신자까지 여러 과정을 거쳐 전송되는데, 단계를 간단하게 나타내면 다음과 같다.

 

 

 

발송자 MUA MTA 라우팅 MTA MDA MUA 수신자

                                                    

 

 

 

메일의 전송 과정에 참여하는 주요 요소는 다음과 같다.

 

 

 

MUA(Mail User Agent) :  MTA 사용자 간의 인터페이스를 제공하는데, 쉽게 이야기하면 PC에서 사용하는 메일 프로그램이라고 생각하면 된다. 대표적인 예로 유닉스의 메일프로그램인 /bin/mail, elm, pine 이나 유도라, 마이크로소프트 아웃룩 익스프레스 등이 있다.

MTA(Mail Transfer Agent) : 메일 메시지를 저장하고 포워딩하거나 전송하는 역할을 한다. 대표적인 예로 일반적인 메일서버 프로그램인 sendmail이나 qmail 또는 마이크로소프트 서버 등이 있다.

MDA(Mail Delivery Agent) : sendmail 등의 MTA 서버에서 수신한 메일을 /var/spool/mail/user 등과 같은 사용자의 로컬메일 박스 파일로 옮기는 역할을 한다. 대표적인 예로 procmail 있다.

 

 

 

단계처럼 사용자가 MUA 이용해 메일을 작성하는 과정에서는 다음과 같은 메일 헤더가 사용된다.

 

 

 

From, To, Cc, Bcc, Subject, Reply-to, Priority, Precedence, Resent-To, Resent-Cc

 

 

 

단계처럼 MUA 통해 메일을 발송할 때는 다음과 같은 헤더가 자동으로 추가된다.

 

 

 

Date, From, Sender, X-Mailer, Mime-Version, Content-Type, Content-Transfer-Encoding

 

 

 

단계와 같이 MUA 통해 발송된 메일을 MTA 수신할 때는 다음과 같은 추가적인 헤더가 포함된다.

 

 

 

From, Date, Message-Id, Received, Return-Path

 

 

 

MTA에서 다른 MTA 전송되는 과정에서는 다음과 같은 헤더가 추가된다.

 

Received

 

 

 

끝으로 단계와 같이 MTA MDA 전송하는 과정에서 다음과 같은 헤더가 추가된다.

 

 

 

Apparently-To, From

 

 

 

메일헤더 보기

많이 사용하는 아웃룩 익스프레스에서 메일헤더를 확인하려면 해당 메시지를 선택한   마우스 오른쪽 버튼 메뉴에서 속성자세히를 선택하면 (화면 1) 같이 메일 헤더를 확인할 있다.

 

 

 

 

 

마이크로소프트 아웃룩을 사용하는 경우에는 해당 메시지에서 마우스 오른쪽 버튼 메뉴에서 옵션을 선택하면 (화면 2) 같이 ‘인터넷 머리글(H)’이란 부분을 있는데, 부분이 바로 헤더다.

 

 

 

 

 

 

메일 헤더는 포털 등에서 제공하는 메일에서도 확인할 있는데, 한메일의 경우 (화면 3) 같이 메시지 제목을 선택한 해당 메일에서 ‘메일 헤더보기’라는 메뉴를 선택하면 된다.

 

 

 

 

 

 

스팸 메일 헤더 분석

이제 스팸 메일의 헤더를 예로 들어 헤더의 의미를 분석해 보자.

 

 

 

Received: from medentech.isdn.esat.net (medsvr01.medentech.com)[193.120.114.219]

          by relay03.avnetcom.co.kr(8.11.6/8.11.6) with ESMTP id 18qi5I-0002Is-00             for mkeh@avnetcom.co.kr; Wed, 05 Mar 2007 23:14:01 +0000

Received: from test.com ([200.59.38.130]) by medsvr01.medentech.com

          with Microsoft SMTPSVC(5.0.2195.5329); with SMTP id h093ANn04454;           for mkeh@avnetcom.co.kr; Wed, 5 Mar 2007 23:10:53 +0000

Return-Path: hahaha@tt.co.kr

From: "섹시마스터" <hahaha@tt.co.kr>

To: "mkeh@avnetcom.co.kr" <mkeh@avnetcom.co.kr>

Date: 5 Mar 2007 23:10:55 +0000

Message-ID: <MEDSVR01kNsjUHQHh2w00000278@medsvr01.medentech.com>

Subject: 지금 바로 확인해 보세요.

 

 

 

줄의 메일 헤더가 각각 어떤 의미를 가지고 있는지 순서대로 알아보도록 하자.

 

 

 

Received: from medentech.isdn.esat.net 

 

자기 자신이 medentech.isdn.esat.net 라고 언급한 호스트(이는 발신 호스트에서 수신 호스트에게 HELO 호스트 이름’ 또는 EHLO 호스트 이름’ 형식으로 알려준다)로부터 메일을 수신했다는 의미다. 이는 다음과 같이 telnet으로 25/tcp 접속해 HELO 응답하는 것을 확인할 있다.

 

 

 

# telnet mail.tt.co.kr 25

Trying 211.47.68.99...

Connected to mail.tt.co.kr.

Escape character is '^]'.

220 mail.tt.co.kr ESMTP

HELO client.tt.co.kr

250 mail.tt.co.kr Hello [211.47.66.50], pleased to meet you

        

(medsvr01.medentech.com)[193.120.114.219]

 

실제 IP 193.120.114.219이고, 호스트의 이름은  medsvr01.medentech.com이라는 것을 의미한다.

신하는 메일서버에서는 발신 호스트의 IP 193.120.114.219 대한 Reverse DNS 질의(호스트 이름에 대한 IP 주소 질의를 Forward DNS질의라 하고 반대로 IP 주소에 대한 호스트 이름 질의를 Reverse DNS 질의라 한다.) 이용해 호스트의 이름이 medsvr01.medentech.com이라는 것을 확인한 것이다. 만약  Reverse DNS 질의에서 호스트 이름이 응답되지 않을 경우에는 공란으로 나타난다.

 

 

 

by relay03.avnetcom.co.kr(8.11.6/8.11.6) 

 

메일을 수신한 호스트는 relay03.avnetcom.co.kr이고, 메일 프로그램의 버전은 8.11.6이라는 것을 있다. 버전 정보로 보아 sendmail 예상된다.

 

 

 

with ESMTP id 18qi5I-0002Is-00

 

esmtp 프로토콜을 통해 수신하는 호스트에서 해당 메시지를 구별하기 위해 18qi5I-0002Is-00라는 ID 부여했다. ID 해당 호스트에서 내부적으로 사용하기 위해 쓰이는데, 관리자가 메일의 로그파일에서 해당 메일을 검색할 사용되기도 한다.

 

for mkeh@avnetcom.co.kr

 

메시지가 전송될 메일 주소다.

 

 

 

Wed, 05 Mar 2007 23:14:01 +0000

 

메일이 전송된 시각이다. 2007 3 5 오후 11 14 1초에 전송됐다는 것을 있다.

 

 

 

Return-Path: hahaha@tt.co.kr

 

메일 전송에 실패했을 경우 Return-Path에서 지정한 주소로 반송된다는 의미다.

 

Received: from test.com ([200.59.38.130]) by medsvr01.medentech.com with Microsoft SMTPSVC(5.0.2195.5329); with SMTP id h093ANn04454; for mkeh@avnetcom.co.kr; Wed, 5 Mar 2007 23:10:53 +0000

 

IP 200.59.38.130이고 호스트 이름이 test.com 호스트에서 호스트 이름이 medsvr01.medentech.com 메일서버로 메일이 전송됐다는 것을 의미한다. 2007 3 5 11 10분경에 전송됐다. , test.com에서 medsvr01.medentech.com 경유해 relay03.avnetcom.co.kr으로 전송까지는 4 정도 소요된 것을 있다. 그러나 서버의 시간이 정확하게 설정돼 있지 않으면 의미가 없을 있다. 해당 메일서버 프로그램은 Microsoft SMTPSVC이며, 버전은 5.0.2195.5329라는 것을 있다

 

 

 

Message-ID: <MEDSVR01kNsjUHQHh2w00000278@medsvr01.medentech.com>

 

Message-ID: 또는 Message-Id Message-id 사용되는데, ID 메일 전송 내내 해당 메일을 인식하고 구분하기 위한 용도로 사용된다. Received: 헤더에 있는 SMTP ID와는 다른 것이라는 점에 주의해야 한다. SMTP ID 특정한 메일 전송과정에만 의미가 있는 반면(따라서 SMTP ID 다른 호스트에게는 의미가 없다), Message-ID 메일전송이 완료될 때까지 의미를 가지고 있다. 때때로 Message-ID에는 발송자의 메일 주소가 일부 포함되기도 한다.

 

메일 헤더에서 가장 주목해야 부분은 바로 Received: from 부분이다. Received: 각각의 MTA 릴레이(relay) 하면서 하나씩 추가되는데, 메일 전송 경로를 추적할 매우 유용하게 사용된다. 앞서 살펴본 바와 같이 형식은 다음과 같다.

 

 

 

Received: ["from" 발송 호스트] "by" 수신 호스트 ["with" 메일 프로토콜] "id" 문자열 ["for 수신자메일주소" ] ";" 날짜 시각

 

 

 

또한 다음과 같은 형식도 사용할 있다.

 

 

 

Received: from 발송호스트의 이름([발송 호스트의 IP 주소]) by 수신 호스트 (수신서버의 메일 소프트웨어)

 

 

 

Received: from 제일 아래 부분에서 위쪽으로 순서대로 메일이 전송된 것이므로, 예제 헤더의 경우 실제 해당 메일을 처음 발송한 곳은 제일 아래쪽에 있는 Received: from test.com ([200.59.38.130])이라는 것을 있다. 따라서 해당 메일을 처음 발송한 곳을 알려면 메일 헤더에서 제일 밑에 보이는 Received: from 부분을 살펴보면 되는 것이다.

그러나 전문적인 스패머라면 이런 추적을 어렵게 하기 위해 메일 발송 전에 다음 예제의 , 같이 위조된 Received: 헤더를 추가하는 경우가 많다.

 

 

 

Received: from galangal.org ([104.128.23.115]) by mail.bieberdorf.edu (8.8.5)...

Received: from nowhere by fictitious-site (8.8.3/8.7.2)...

Received: No Information Here, Go Away!

 

 

 

메일 발송자의 입장에서 이미 메일 서버를 통해 발송된 메일에 대해서는 헤더 추가나 변경 메일에 대한 제어를 없고, 또한 Received: 헤더는 메일 전송과 함께 밑에서 위로 순서대로 추가된다. 따라서 만약 위조됐다면, 위조된 부분은 통상적으로 아래 부분에 보이게 것이다. 만약 이러한 경우라면 이는 다른 말로 Received: 헤더 부분에서 위조된 부분 이하부터는 의미가 없다는 것을 뜻한다. 따라서 헤더 경로를 추적할 때에는 아래에서부터 위로 살펴보는 것과 더불어 위에서 아래로의 경로도 함께 살펴봐야 한다

 

출처: <http://www.ylabs.co.kr/index.php?document_srl=6020&mid=board_centos&search_target=regdate&search_keyword=201009&sort_index=readed_count&order_type=desc>

반응형

'정보보호' 카테고리의 다른 글

ISO27001 vs PCI-DSS  (0) 2021.11.19

+ Recent posts