| |
제 목 : 스팸발송기가 깜빡한건가? (스팸메일의 변수들)
작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
작성일 : 2006.10.31(화)
수정일 : 2006.11.08(수) Subject: 헤더의 몇몇 변수 추가
수정일 : 2008.12.16(화)~19(금) 몇몇 변수 추가, '4. 스팸 발송툴과 스팸 관련 자료' 추가
1) From: 헤더의 {%DIGIT%}, %RND_DIGIT 변수
2) From: 헤더의 {$FROMNAME$}, {%LFNAME%}, {%LLNAME%} 변수
3) Subject: 헤더의 {%SUBJECT%} 변수
4) Message-ID: 헤더의 {%MAILSERVERHOSTNAME%} 변수
5) 본문에 {%BOTGREETING%} 변수
스팸메일 발송기가 깜빡한건지, 스패머가 변수명을 잘 못 지정한건지 알 수 없으나 발송기 내부에서 사용하는 것으로 보이는 변수(제목, URL, 메시지 등)를 변환하지 않고 그대로 보낸 것이 지난달에도 들어오더니 최근에도 이런식으로 들어온 건들이 눈에 띈다.
실제 수신된 메일을 통해 살펴보자.
1. 변수가 노출된 스팸메일 예
| |
From ndvxu@chol.com Mon Oct 30 11:01:46 2006
Return-Path: <ndvxu@chol.com>
Received: from 248.240.75.160 by ; Mon, 30 Oct 2006 03:01:45 +0100
Message-ID: <GEDDHVLWEAMHTZZKTLRFJZZMT@naver.com>
From: "이현주" <gzxlg@chol.com>
Reply-To: "이현주" <dhgmaweuexsgal@paran.com>
To: xxxxx@xxxxxxxxxxxx <----------- 수신자 메일은 제가 xxxxx 로 표시해둠
Subject: %A_SUBJECT%B_SUBJECT%C_SUBJECT <----------- 제목
Date: Mon, 30 Oct 2006 05:56:45 +0400
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="--229224503929188"
X-Priority: 3
X-MSMail-Priority: Normal
----229224503929188
Content-Type: text/html;
Content-Transfer-Encoding: quoted-printable
<BODY>
<DIV><FONT color=3D#004000><STRONG>5ooo=B8=B8=B1=EE=C1=F6 =A6=AE=B4=E7=A6=B0=
=A6=B1=C0=CF=A6=AF=C0=D4=A1=DB=B1=DD=B0=A1=A1=DF=A1=DB=B4=C9=C7=D5=B4=CF=B4=
=D9</STRONG></FONT></DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><FONT color=3D#ff0000><STRONG><U>=A1=EC</U></STRONG></FONT><A
href=3D"http://%CUSTOM_LINK" target=3D_blank><FONT <------ %CUSTOM_LINK 변수
color=3D#ff0000><STRONG>=B4=EB=A1=EC=C3=E2=A1=EC=BD=C5=A1=EC=C3=BB=A1=EC=C0=
=BA=A1=EC=BF=A9=A1=EC=B1=E2=A1=EC=B8=A6=A1=EC=C5=AC=A1=EC=B8=AF=A1=EC=C7=CF=
=A1=EC=BC=BC=A1=EC=BF=E4.</STRONG></A></FONT></DIV>
<DIV><STRONG><FONT color=3D#ff0000></FONT></STRONG> </DIV>
<DIV><STRONG><FONT color=3D#ff0000></FONT></STRONG> </DIV>
<DIV><STRONG>%SSSS</STRONG></DIV> <------ %SSSS 변수
<DIV> </DIV>
</BODY>
----229224503929188--
| |
보는 것 처럼 Subject에는 %A_SUBJECT%B_SUBJECT%C_SUBJECT 형식이며, %D_SUBJECT... 등등이 붙는 경우도 있다. 본문에는 QP인코딩된 내용 사이에 %CUSTOM_LINK 와 %SSSS 의 변수를 볼 수 있다. 정상적인(?) 스팸메일에서는 해당변수에 다음과 같이 내용이 들어 있었다.
- %A_SUBJECT... : '안녕하세요? OOO입니다!차카' 형태(변수 하나당 하나의 단어인 듯)
- %CUSTOM_LINK : 'home.paran.com/[a-z0-9]+/[a-z0-9]+.html' 형태의 URL
- %SSSS : '<FONT=20 color=3D#000000>=B3=AA=B0=A172=C7=CF=C4=AB</FONT>'
처럼 '나가72하카' 와 같은 임의의 문자가 들어가 있으며,
'=C5=B8667=C0=DA' (타667자) 처럼 font tag 없는 경우도 있다.
2. Header에서 사용하는 변수 예
서버에 쌓여진 스팸 메일함을 뒤적거려보니 다음과 같은 형태의 변수들도 있었다.
| |
1. From 예 (2개)
From PatVplague@%RND_FROM_DOMAIN Sat Oct 28 03:24:51 2006
From vjtcc51ad@%CUSTOM_FROM_EMAIL Sun Oct 29 17:45:34 2006
2. From: 예 (2개)
From: "Shantelle Jennell" <%CUSTOM_FROM_NAME@%CUSTOM_FROM_EMAIL>
From: "Kerry Mcgee" <RoderickNtaverna@RND_FROM_DOMAIN>
3. From: 예 (2008.12)
Return-Path: <JADA{%DIGIT%}{%DIGIT%}@hanmail.net>
... 생략 ...
From: JADA SESSOMS <JADA{%DIGIT%}{%DIGIT%}@hanmail.net>
4. From: 예 (2개, 2008.12)
From {%LFNAME%}{%LLNAME%}34@gmail.com Fri Dec 19 05:23:02 2008
Return-Path: <{%LFNAME%}{%LLNAME%}34@gmail.com>
... 생략 ...
From: {$FROMNAME$} <{%LFNAME%}{%LLNAME%}34@gmail.com>
또는
From {%LFNAME%}{%LLNAME%}96@msn.com Wed Dec 17 15:38:53 2008
Return-Path: <{%LFNAME%}{%LLNAME%}96@msn.com>
... 생략 ...
From: New Phone Giveaways <{%LFNAME%}{%LLNAME%}96@msn.com>
5. Return-Path: 예
Return-Path: <Doylembetatron@%RND_FROM_DOMAIN>
6. Received: 예 (2개)
Received: from %RND_IP by ; Fri, 27 Oct 2006 03:29:13 -0600
Received: from weak
by RND_FROM_DOMAIN with SMTP id ZJkjbTzsN6
for <xxxxx@xxxxxxxxxxxx>; Fri, 27 Oct 2006 16:30:03 +0500
7. Message-ID: 예 (2개, 처음 1개는 2006, 마지막 1개는 2008.12)
Message-ID: <3337900.066721.47267995@%CUSTOM_FROM_EMAIL>
Message-ID: <49489E74.1005554@{%MAILSERVERHOSTNAME%}.msn.com>
8. Subject 예 (6개, 상위 4개는 2005.12~2006.1, 그 다음 1개는 2006.11.6, 마지막 1개는 2008.12)
Subject: 완전후불 100% 항공자켓으로 따뜻하게..%RND_DATE_TIME
Subject: 최고급 최저가 파일럿항공복 100%후불제실시~%FIRST_NAME
Subject: 차량용 온열시트-히터보다 더빨리 따뜻해집니다"~%RANDOM_WORD
Subject: Saiba como emagrecer depois das festas %RNDUCCHAR16
Subject: watercourse %REAL_DATE[%TIME]
Subject: {%SUBJECT%}
| |
변수의 유형은 크게 다음 5가지로 요약된다. 변수명은 모두 대문자이며, 경우에 따라 _가 들어간다.
1) %변수명
2) %변수명[자리수범위]
3) %변수명 + 숫자(숫자는 길이를 의미)
4) {%변수명%}
5) $변수명$
From: 이나 Return-Path: 헤더에서 %DIGIT% 에는 발송기가 임의의 숫자를 넣게 된다. %RND_DIGIT[1-3]와 같은 형식도 있는데, 정규 표현식과 유사(정규표현식에서 {1,3}은 1~3자리를 의미)하게 사용해서 1자리에서 3자리까지 임의의 숫자가 들어가게 될 것이다. 결국 0~9자리의 숫자를 자유롭게 From주소에 넣을 수 있다는 얘기다.
- %RND_FROM_DOMAIN, %CUSTOM_FROM_EMAIL : 임의의 도메인 주소에 해당한다.
- %RND_IP : 임의의 IP주소
- {%MAILSERVERHOSTNAME%} : 서버명만 대체된다. 예) www.foobar.com 에서 www에 해당.
- {%LFNAME%}은 소문자 First Name, {%LLNAME%}은 소문자 Last Name을 추측되며, {$FROMNAME$}는 이름이다.
Subject: 헤더중 %RND_DATE_TIME에는 정상 스팸(?)일 경우 '파일럿 항공자켓 겨울특전~Wed, 21 Dec 2005 07:54:32 -0400' 처럼 날짜가 들어가 있다.
- %RANDOM_WORD : 임의의 단어
- %RNDUCCHAR16 : 임의의 대문자 16자리(숫자는 자리수로 추측된다.), '%RNDLCCHAR+숫자'형태라면 임의의 소문자를 뜻한다.
- %RANDOM_CHAR, %RANDOMCHAR, %RND_LC_CHAR, %RND_UC_CHAR 등의 유형도 있다. (개인적으로 수신한 적 없음)
6번째의 Received: 예를 보면 'by RND_FROM_DOMAIN with SMTP id ZJkjbTzsN6'부분이 보인다. RND_FROM_DOMAIN 변수는 스패머가 %를 빼고, 잘 못 입력한 것으로 보인다.
3. 본문에서 사용하는 변수 예
boundary, 텍스트 내용, 이미지 등도 변수를 사용하고 있다.
| |
1. 본문 예 1
Content-Type: multipart/alternative;
boundary="----=_%OLATTACH1"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
This is a multi-part message in MIME format.
------=_%OLATTACH1
2. 본문 예 2
------=_NextPart_177_A8A0_18136339.ED04FD82
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
=7B%PLAINTEXT_MSG%=7D
3. 본문 예 3
------=_NextPart_000_000C_01C6FBFA.DB141500
Content-Type: image/png;
name="ftqg.png"
Content-Transfer-Encoding: base64
Content-ID: <000b01c6fbea$178ccba0$01f5aa58@gaysqjacsf>
$BASE64_IMAGE$
------=_NextPart_000_000C_01C6FBFA.DB141500--
4. 본문 예 (2008.12)
From rebecca@...생략... Thu Dec 18 14:22:08 2008
Return-Path: <rebecca@...생략...>
... 생략 ...
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
{%BOTGREETING%}
| |
4. 스팸 발송툴과 스팸 관련 자료
스팸툴이 위와 같이 다양한 스팸용 변수들을 제공한다는 것은 스패머들에게 조리법(=스팸툴 매뉴얼)만 읽으면, 한두가지의 재료로 다양한 요리를 쉽게 만들어낼 수 있는 요리기구를 제공한 셈이다.
경우에 따라선 정상적인 조리에서는 먹어볼 수 없는 독특한 형태의 요리(=비정상적 헤더)도 만들어낸다. 예를 들어보자. 하나의 스팸메일에서 From:, Return-Path:, Message-ID:, Received: 의 메일주소나 도메인이 각각 다르게도 표시되는 경우가 많다. 이 것은 %RND_FROM_DOMAIN, %CUSTOM_FROM_EMAIL, %CUSTOM_FROM_NAME, %RND_IP 유형의 변수를 함께 사용하여 임의로 생성된 도메인(또는 메일주소)이 동시에 만들어지기 때문이다.
과연 저런 유형의 변수를 사용하는 스팸툴은 어떤 것이 있을까. 인터넷 여러 기술문서에서 확인할 수 있으며, 'Inside the Spam Cartel: Trade Secrets from the Dark Side'(2004년, http://www.amazon.com/Inside-Spam-Cartel-Trade-Secrets/dp/1932266860/ )책에서도 확인할 수 있다. 이글에서는 직접 스팸툴의 이름을 공개하지 않고, 2개 스팸툴 화면만 소개한다. (이미지 중 '타이틀' 부분은 지움. 쉽게 찾을 수 있겠지만 직접 툴 이름을 공개하고 싶지는 않다.)
[ 쉽게 헤더를 변경 ]

[ 다양한 매크로(즉, 글에서 소개한 스팸용 변수)를 제공. 출처 : 책 'Inside the Spam Cartel' ]


메일과 안티스팸을 주제로 치뤄지는 CEAS 2008 행사(Conference on Email and Anti-Spam, http://www.ceas.cc/2008/ )가 있다. 여기서 발표된 'A Survey of Modern Spam Tools'(글 Henry Stern) 문서는 스팸메일의 유형과 변수(매크로)에 대해서 상세히 분석되어 있다.
|