Latest Spam
최근에 접수된 얄미운 스팸에 대해서 공유합니다.
아래의 내용이 접수된 스팸의 샘플입니다.
자신이 자신에게 보낸 메시지 형태를 띄고, 내용과 제목은 아래와 같습니다.
제목은 늘 RE: 을 붙여서, 마치 이 메시지가 주고 받았던 것처럼 속이고, 제목도 아주 그럴 듯 하게 근사합니다. 제목만으로는 스팸으로 간주하기 정말 어려운 메시지입니다.
Body의 내용도 마찬가지 입니다. 내용 필터하기 어려운 글자들로만 포진해 있습니다. 요상하다 싶은 내용들은 이미지 처리를 해 버렸네요. 서명까지 근사합니다. 서명 안에 있는 URL 이나 주소들도 모두 random 하게 자동 생성되어서 인지, 같은 스팸도 모두 다른 URL과 주소를 담고 있습니다. ^^;;;
1. 샘플 스팸 메시지
2. 메시지 헤더 내용
Received: from afp-transformers.com (93.177.142.211) by mail.domain.com
(172.28.0.21) with Microsoft SMTP Server id 8.0.783.2; Tue, 20 Jan 2009
20:42:37 +0900 <- Sender IP나 FQDN 이 매번 번경됨
To: <user@domain.com> <- 송신자가 수신자 자신임 (self recipient sender)
Subject: Next: Getting the best results
From: user@domain.com
MIME-Version: 1.0
Importance: High
Content-Type: text/html
Message-ID: <1ab64fcb-e35a-404f-97fb-c8d46fa2843f> <- Message Generation 서버 없음
Return-Path: user@domain.com
Date: Tue, 20 Jan 2009 20:42:37 +0900
X-MS-Exchange-Organization-PRD: domain.com
X-MS-Exchange-Organization-SenderIdResult: PermError
Received-SPF: PermError (server.domain.com: domain of user@domain.com
used an invalid SPF mechanism) <- Sender ID에서 PermError 는 메시지 삭제나 거부가 되지 않음
X-MS-Exchange-Organization-SCL: 3 <- 본문 내용으로는 스팸으로 간주되지 어려운 수치임
X-MS-Exchange-Organization-PCL: 2
X-MS-Exchange-Organization-Antispam-Report:
DV:3.3.7319.660;SV:3.3.7305.1065;SID:SenderIDStatus PermError
3. Sender ID 의 입장에서 해당 메시지를 filter 할 수 없는 이유
(1) Exchange 2007 Help의 Status 상태 내용
Output |
Description |
Status |
Status returns one of the following: Pass, Neutral, SoftFail, Fail, None, or TempError.
|
(2) Sender ID 에 처리에 대한 RFC 규약의 내용
RFC 4406 Sender ID: Authenticating E-Mail
5.1. Neutral, None, SoftFail, or PermError
An SMTP server receiving one of these results SHOULD NOT reject the
message for this reason alone, but MAY subject the message to
heightened scrutiny by other measures, and MAY reject the message as
a result of this heightened scrutiny.
Such additional security measures MAY take into account that a
message for which the result is "SoftFail" is less likely to be
authentic than a message for which the result is "Neutral".
5.2. Pass
An SMTP server receiving this result SHOULD treat the message as
authentic. It may accept or reject the message depending on other
policies.
5.3. Fail
When performing the Sender ID test during an SMTP transaction, an MTA
that chooses to reject a message receiving this result SHOULD reject
the message with a "550 5.7.1 Sender ID (xxx) yyy - zzz" SMTP error,
where "xxx" is replaced with "PRA" or "MAIL FROM", "yyy" is replaced
with the additional reason returned by the check_host() function, and
"zzz" is replaced with the explanation string returned by the
check_host() function.
When performing the Sender ID test after accepting an e-mail message
for delivery, an MTA that chooses to reject a message receiving this
result SHOULD NOT deliver the message. Instead, it should create a
DSN message, consistent with the usual rules for DSN messages.
5.4. TempError
An SMTP server receiving this result MAY reject the message with a
"450 4.4.3 Sender ID check is temporarily unavailable" error code.
Alternatively, an SMTP server receiving this result MAY accept a
message and optionally subject it to heightened scrutiny by other
anti-spam measures.
(3) Exchange 에서 Status 에 따른 처리 방법
ð 위의 RFC 규약에 따라 동작합니다.
Sender ID check result |
Description |
Sender ID Actions in E2K3 SP2 |
Neutral (?) |
Domain makes no assertion about the IP address |
Stamp and Continue |
Pass (+) |
Client is authorized to send mail on behalf of the domain from a matching IP address |
Stamp and Continue |
Fail (-) - Sender Domain Does not Exist - Sender is not permitted - Malformed domain - No PRA found in the header |
Client is explicitly NOT authorized to send mail on behalf of the domain from a matching IP address |
Stamp and Continue -or- Reject -or- Delete |
Soft Fail (~) |
Client might not be authorized to send mail on behalf of the domain from a matching IP address |
Stamp and Continue |
None |
No Sender ID records are published for this domain |
Stamp and Continue |
TempError |
Receiving server encountered a transient error when performing the check |
Stamp and Continue |
PermError |
The domain’s published records couldn’t be correctly interpreted |
Stamp and Continue |
ð 따라서 PermError 를 가진 메시지를 삭제하도록 할 수 없는 것이 확인 됩니다.
(4) 고객 Spam 메시지의 내용
ð 수신자가 발송자 인 것으로 가장되어 있음.
ð 메시지 제목에 RE 를 많이 붙여 사용함. 제목에는 스팸관련 내용 없음.
ð 본문 내용이 콘텐츠 필터에 걸리는 것을 막기 위해 이미지 처리함.
ð White word 로 사용될 만한 내용을 copy right 부분에 넣음.
ð URL 이나 숫자들은 모두 random 하게 생성됨
4. 해당 스팸을 막을 수 있는 방법
1. Content Filtering
è 다소 무식(?)해 보이지만,스팸메시지에서 내용을 filter 할 만한 내용은 BRANDKEYWORD 로 보이네요. 각개 전투로 내용으로 filter 할 수 있어 보입니다.
관련 서비스 재시작 후 아래와 같이 Content Filtering 에 의해서 SMTP 레벨에서 메시지가 거부됩니다.
2. 해당 도메인을 가장해서 들어오지 못하도록 고객사의 accepted domain (authoritative domain) 에 대한 익명연결에 대해서 “Accept Authoritative Domain Sender” 권한을 거부합니다.
(1) ADSI 사용 시
(2) 명령 사용 시
[PS] >Add-ADPermission "Default Receive Connector" -deny:$True -user "nt authority\anonymous logon" -ExtendedRights "Ms-Exch-sMTP-Accept-Authoritative-domain-Sender"
Identity User Deny Inherited Rights
-------- ---- ---- --------- ------
Server\Def... NT AUTHORITY\ANON... True False ms-Exch-SMTP-Accep...
(3) 설정 확인 시
[PS] >C:\Documents and Settings\Administrator>get-ADPermission "Default Receive Connector" -user "nt authority\anonymous logon" | ft -wrap
(4) 서비스 재시작
설정이 바로 적용되지 않아 바로 적용 시 관련 서비스 재시작이 필요하네요.
“Microsoft Exchange Transport” 서비스 재시작
(5) 역시 SMTP 레벨에서 mail from 에서 local 도메인 주소로 발송 시도시 바로 거부됩니다.
written by kyunghl