메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

전세계 메일 서버 구분하기

한빛미디어

|

2007-03-20

|

by HANBIT

15,746

제공 : 한빛 네트워크
저자 : Ken Simpson, Stas Bekman
역자 : 최상호
원문 : Fingerprinting the World"s Mail Servers

어느 여름날 메일채널즈(MailChannels) 영업부 직원이 개발팀에 긴급 요청 사항을 가지고 왔다. “Sendmail 서버를 운영중인 회사 리스트를 뽑을 수 있나요? 해당 회사 리스트를 확보한다면 우리 회사의 Sendmail 호환 제품을 영업하기가 훨씬 용이할 것 같습니다.”

SMTP 프로토콜에 대해 알고 있던 우리는 “대부분의 메일 서버는 TCP프로토콜을 이용해 25번 포트에 접속하면, 메일 서버 자신에 대한 정보를 제공합니다. 따라서, 알 수 있습니다.” 라고 답변해 주었다. 이후 그 프로젝트는 “PingedIn”으로 명명되었고 그 해 여름 개발팀에서 가장 우선적으로 수행할 프로젝트로 선정되었다. 또한 우리는 프로젝트의 결과를 통해 빈약한 우리 웹사이트에 좀더 동적인 컨텐츠를 제공할 수 있기를 희망했다.

Stats Porn Teaser

우리가 전세계 수백만 개의 메일 서버를 조사한 방법에 대해 설명하기 전에 조사로 인해 알게 된 흥미로운 결과에 대해 먼저 리뷰 하고자 한다.

조사 방법으로의 접근(Our survey approach)

먼저, 우리가 접근한 조사 방식에 대해 얘기하겠다.

조사 방식에 대한 첫 번째 아이디어는 전세계에 분포된 수백만 개의 메일 서버에 대한 조사 출발점으로서 도메인 데이터베이스의 정보를 이용하자는 것이었다. 이에 우리는 즉시 Verisign으로부터 dot-com 및 dot-net 등록 도메인 리스트를 내려 받아 해당 도메인에 대한 네트워크 포트 검사를 시작하였다.

하지만, 이와 같은 조사 방식은 문제가 있었다. 그것은 등록된 도메인이라고 해서 모두 같은 방식으로 운영되고 있지 않다는 것이다. 아마도 전세계 도메인 중 얼마나 많은 도메인을 투기꾼(speculator)이나 사기꾼(fraudster)들이 소유하고 있는지 알면 놀랄 것이다. 이런 사람들이 도메인을 소유하고 있는 경우, 그 도메인을 이용하여 메일 서비스를 제공하는 경우는 매우 드물다. (우리가 조사한 바로는 약 10% 정도의 도메인만이 메일 서비스를 위한 MX 레코드를 제공하고 있었다.) 이번 조사의 목적은 영업부에게 유용한 정보를 제공하는 것이었기에 파킹된(parked) 도메인이나 피싱(phising) 도메인의 경우 조사할 필요가 없었다.

전세계에 있는 모든 메일 서버들을 조사한다는 것은 기술적으로 쉬운 일은 아니었다. 우리가 조사해야 할 대상은 dot-com, dot-net, dot-org 등을 포함한 수천만 개의 최상위 도메인(TLD : Top level domain)이었다. 그런 대규모의 조사를 수행하기 위해서는 수 테라바이트 급의 디스크 용량과 엄청난 용량의 네트워크 대역폭(bandwidth)이 필요했으며, 비용과 시간도 많이 소요되었다.

따라서 우리는 지구 상에 존재하는 전체 도메인을 조사하기 보다는 실제 회사에 의해 보유된 도메인에 대해서만 조사하기로 하였다. 초기 원천 데이터로 삼기 위한 전세계 40만개의 회사 목록을 가지고 있는 old-school company firm과 제휴하였다. 이것은 비록 완벽한 솔루션은 아니었지만, 우리의 필요를 충족시켜 주었고 약 40만개의 도메인에 대해 2-3시간 정도에 조사를 끝마칠 수 있었다.

오픈 소스가 여전히 강세(Open Source Still Dominates)

전세계 메일 서버 시장에서 여전히 오픈 소스(open source) 서버가 우세하였다. 또한, 스팸(spam) 메일 혹은 바이러스와 같은 메일 위협 요소의 증가로 인해 많은 회사들에서는 네트워크 단에서의 추가적인 보호 레이어를 설치하였고, Postini와 같은 제품은 거의 10%에 육박하는 시장점유율을 보였다.


[그림 1] 오픈소스 메일 서버 시장 점유율


이번에 조사된 40만개의 도메인 중 31.2%의 메일 서버에서는 오픈 소스 메일 서버를 통해 메일을 처리하고 있었다. 그 중에 Sendmail은 약 12.3%에서 사용되고 있었으며, Postfix(8.6%)가 근소한 차로 2위를 차지했다. Exim과 qmail은 거의 동등한 수준(5.3%와 5.0%)으로 3위에 랭크 되었다.

이번 조사 방법으로는 오픈 소스 서버와 함께 메일 보안 소프트웨어가 설치되어 있는지, 만약 설치되어 있다면 그것이 무엇인지 알아낼 순 없었다. 하지만, 상당수의 회사에서 SpamAssasin을 운영 중에 있으며, 나머지 부분에서도 오픈 소스 우호 진영인 Sophos, Proofpoint, Symantec과 같은 회사 제품을 운영 중일 것이라고 추측한다.

다음 순서 : 호스팅 서비스(Next Up : Hosted Services)

이번 조사에서 놀라운 결과는 메일 보안 호스팅 서비스에서 두드러졌다. 메일 보안 호스팅 서비스란 고객사 도메인으로 전달되는 메일 트래픽을 사전에 필터링하여 스팸 메일과 바이러스가 해당 고객사의 메일 서버로 전달되는 것을 차단하는 서비스를 말한다. 메일 보안 호스팅 서비스의 고객들은 자신들이 운영하고 있는 메일 보안 하드웨어를 제거하기 위해 비용을 지불하고 있었으며, 소문에 의하면 그 서비스들의 성능도 만족할 만 했다. 이 분야에서의 선두주자는 8.5%의 도메인이 사용하고 있는 Postini였다. 그 다음으로는 MXLogic 6%, Concentric Hosting 4.5%, Earthlin 2.7%, Yahoo 1.0%였으며, 나머지 서비스들은 언급하기 조차 미미하였다.

악마의 제국(The Evil Empire)

마이크로소프트는 Exchange 서버가 7.6%를 차지함으로써 4위에 위치하였다. 웹 서버 시장에서는 31%의 시장 점유율을 가지고 있었던 것에 비해.(Netcraft 2006년 11월 조사 결과), 메일 서버 시장에서의 이런 결과는 실망스러운 것이다. 이는 마이크로소프트가 메일 서버 시장에서 아직 신뢰를 더 쌓기 위해 가야 할 길이 멀다는 것을 의미한다.

토스터, 전자레인지 그리고 다른 장치들(Toaster, Microwave Ovens, and Other Appliance)

지난 2년간은 네트워크 어플라이언스(network appliance) 시장의 부흥을 둘러싼 많은 일들이 있었다. 전자 메일 시장 역시 이런 트렌드와 무관할 수 없었고, 지금은 거의 대부분의 사람들이 어플라이언스 시장에 참여하게 되었다. 하지만, 시끄러웠던 것에 비해서 어플라이언스 제품의 시장 진출은 매우 미미하였다. 우리 조사에서 가장 인상적인 appliance 업체는 2.8%를 차지한 Barracuda였다. IronPort는 0.8%로 2위를 차지했으며, Ciphertrust(현재는 Secure Computing의 사업부)는 0.6%를 차지했다.

어플라이언스 업체들은 넓은 시장을 가지고 있지는 못했지만, 포춘 선정 500대 기업과 같은 특정한 분야에 있어서는 상당한 시장을 보유하고 있었다.

Pinging 기법(The Art of Pinging)

메일 서버를 분석하는 것은 상당히 단순한 작업이다. 우선 인바운드 메일(inbound mail)의 SMTP 포트로 사용되는 25번 포트로 접속한다. 그 다음 몇 개의 커맨드(command)를 던진 다음 서버가 보내오는 응답(response)을 기록하고, 보내온 응답의 내용을 분석하여 기존 데이터와 비교하면 해당 도메인에서 어떤 메일 서버가 운영 중인지 알아낼 수 있다.

배너 정보를 이용하다(Banner Advertising)

메일 서버의 25번 포트로 접속했을 때 서버가 건네주는 첫번째 메시지를 “배너(banner)”라고 한다. 배너는 일반적으로 메일 서버의 종류 및 버전에 대해 알려주는 문자열 형태로 구성되어 있다. 배너를 통해 제공되는 정보에 대한 표준안은 없기 때문에 배너의 형태 및 정보 구성은 메일 서버 별로 매우 다양하다. 다음은 몇 가지 메일 서버 배너의 예이다.
Sendmail – 전형적인 배너:
220 foo.com ESMTP Sendmail 8.13.6/8.13.6; Thu, 23 Nov 2006 13:35:44

Postini – 안티스팸에 대한 법적 고지를 포함한 배너:
220 Postini ESMTP 13 y6_8_4c1 ready. CA Business and Professions 
 Code Section 1 7538.45 forbids use of this system for unsolicited
 electronic mail advertisement

Hotmail:
220 bay0-mc3-f6.bay0.hotmail.com Sending unsolicited commercial or
 bulk e-mail to Microsoft"s computer network is prohibited. Other
 restrictions are found at
 http://privacy.msn.com/Anti-spam/. Violations will result in use of
 equipment located in California and other states. Thu, 23 Nov 2006
 10:38:21 -0800

Ciphertrust – 메일 서버 타입에 대한 정보가 없는 배너:
220 SMTP Proxy Server Ready
우리는 조사를 진행하면서 40만개의 도메인을 조사하는 동안 약 200개의 메일 서버를 구분할 수 있는 300개의 규칙을 정의하였고, 이를 통해 약 50% 정도의 메일 서버를 구분해낼 수 있었다.

하지만, 나머지 50%의 메일 서버에서는 배너에서 도움이 될만한 정보를 찾을 수 없었다. 예를 들어 Ciphertrust의 배너는 단지 “220 SMTP Proxy Server Ready”와 같이 출력될 뿐이었고, 이것만 가지고는 다른 메일 서버들과 구분할 수 없었다. 심지어 Cisco PIX 방화벽의 경우 다음과 같이 전체 배너를 숨겨버리기까지 했다.
220 ***********************
DNA 분석(DNA Analysis)

배너 정보는 스푸핑(spoof)에 쉽게 이용될 수 있기 때문에 외부에 노출시키지 않는 경우도 많다. 따라서 나머지 50%의 메일 서버를 구분하기 위해 우리는 한 단계 더 깊이 들어가게 되었다. 이번에는 EHLO와 HELP 커맨드에 대한 메일 서버의 첫 번째 응답(response) 내용을 분석하자는 것이었다.

EHLO는 “extened HELO”를 의미한다. (그리고 HELO는 “Hello”를 의미한다) 보통의 경우 SMTP 세션은 다음과 같이 클라이언트가 자신의 도메인 이름을 뒤에 붙인 EHLO 명령어를 서버 쪽에 보냄으로써 시작된다.
EHLO foo.com
그러면, 메일 서버는 자신이 지원하는 SMTP 확장(extension) 목록을 보낸다. 확장 커맨드는 암호화된 SSL 세션을 이용한 메일 전송 등과 같은 확장된 기능 및 작업을 지원한다. 다음은 Sendmail 에 의해 반환된 EHLO 응답이다.
250-mx1.foo.com Hello client.bar.com [192.168.0.1], pleased to meet you
250-STARTTLS
250 SIZE 83886080
Hotmail MTA는 다음과 같은 확장 목록을 보낸다.
250-bay0-mc10-f14.bay0.hotmail.com (3.3.0.19) Hello [x.x.x.x]
250-SIZE 29696000
250-PIPELINING
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-AUTH LOGIN
250-AUTH=LOGIN
250 OK
우리는 이미 알고 있는 MTA(Message Transfer Agent)에 EHLO 커맨드를 보내, 그들의 응답을 분석하여 비교 기준 데이터를 구축하였다. 이후 우리가 실제 메일 서버를 구분하기 위해 해야 할 일은EHLO를 이용해 메일 서버의 EHLO 커맨드에 대한 응답을 저장하고 그것을 이미 구축된 기준 데이터와 비교하는 것이었다.

하지만, 불행히도 이런 접근 방법은 썩 훌륭하게 작동되지 못했다. EHLO의 응답 내용은 시스템의 특정 설정 내용(configuration)에 따라 의존적이었으며, 그것은 시스템 관리자에 의해 변경된 경우가 많았다. 예를 들어 TLS-암호화 세션을 지원하는 Sendmail 서버와 TLS를 지원하지 않고 전송크기 제한만 지원하는 Sendmail 서버와의 응답은 서로 전혀 달랐다.

그렇지만, EHLO 응답의 비교분석을 통한 방법이 완전히 실패한 것은 아니었다. 우리는 배너 분석 기법과 EHLO 응답 분석 기법을 병행하여 더 나은 결과를 얻을 수 있었다. 비교 규칙의 미세 조정을 통해 우리는 50%의 분석율을 70% 정도까지 끌어 올릴 수 있었다.

음지로의 전환(Switching to the dark side)

EHLO를 살펴보고 난 후 우리는 HELP 분석 기법을 추가하였고, 그 결과 분석율을 향상시킬 수 있었지만, 많은 도움이 되지는 못했다.

여러 가지 시도 중 가장 비약적인 분석율 향상을 나타낸 것은 잘못된 응답(negative response)을 내는 경우 즉 오류 메시지를 분석하는 방법이었다. MTA들은 그들이 정상적으로 응답할 경우에는 빈틈을 보이지 않았으나, 오류 등으로 인해 비정상적으로 응답할 경우에는 그들은 응답을 통해 스스로의 정보를 노출시키기도 하였다..

예를 들어 Sendmail은 커맨드에 NULL 문자가 섞여있는 경우 다음과 같이 응답한다.
HELO
500 5.5.1 Command unrecognized: "HE"
즉, sendmail은 null 문자까지만 읽어 들이며, 따라서 “HE”가 의미하는 바를 인지하지 못하고 오류 메시지를 출력한다. 반면에 Ciphertrust는 이와는 조금 다르게 반응한다.
HELO
500 Command unrecognized:  helo
이처럼 잘못된 명령에 대해 반응하는 수십 가지의 독특한 패턴들을 찾아낼 수 있었고, 이를 특정 MTA 분석 비교에 적용할 수 있었다.

결론(Conclusion)

이상과 같은 모든 기법을 동원하여 – 특히 잘못된 요청에 대한 응답 패턴을 분석함으로써 – 우리의 메일 서버 분석 성공률을 85%까지 높일 수 있었다. 나머지 15%의 MTA에 대해서는 우리는 여전히 메일 서버의 종류를 구분할 수 없었으나, 그런 경우 영업부 직원들이 고객에게 직접 전화를 하여 “어떤 메일 서버를 운영하시나요?” 라고 물어보는 것으로 해결하였다.

Ken Simpson은 메일채널즈(MailChannels)의 설립자 및 경영자로 활동 중이다.
Stas Bekman은 “the ModPerl Developer"s Guide and Practical mod_perl”의 저자이다.
TAG :
댓글 입력
자료실