2015-11-08

Postfix: 細工したメールにより他者に配送エラーメッセージが送られる

Postfixは, 配送でエラーが起こると, 送信者に配送エラーメールを返すようになっている. たとえば, 配送先のアドレスが存在しない, メールボックスが満杯など.
本来はこうあるべきなのだけれども, この機能を悪用して, 第3者に配送エラーメールをスパムメールとして送る手口があるらしい.
MAILER-DAEMONが配送エラーメールを送る事自体, スパムの情勢とあっていないのかもしれない.

棒サイトでは, 配送先アドレスが存在しない場合に配送エラーメールを送らないような設定をしており, メールアドレスを間違った場合, 気づかずに処分されてしまう設定をしているほどだ.
こうしないと, 自分のサーバーがスパムメールの送信元となってしまい, ブラックリストに入れられてしまう.
配送先アドレスが存在しない場合は対処方法があるのだが, 他にも手口があるので, 紹介する. こういう攻撃に対しても対処が必要だ:-(

Postfixに, 配送ループが起こっていると錯覚させる. 以下の例では, 踏み台ホストをsmtp.example.org, 踏み台のメールアドレスをhoge@example.orgとして書いている.

$ telnet smtp.example.org
220 smtp.example.org ESMTP Postfix
helo localhost
250 smtp.example.org
mail from: 
250 2.1.0 Ok
rcpt to: 
250 2.1.5 Ok
data
354 End data with .
Delivered-To: hoge@example.org
Date: Sun 08 Nov 2015 20:23:15 +0900
... (続く)
.
250 2.0.0 Ok: queued as 123456789A
メール本文にあるDelivered-To:によって, ループが起こっていると錯覚するらしい. 他にも, Received:ヘッダーをたくさん書くなどでも, 同様の配送エラーを起こすことができるかも.
以下に, このメールを受けたホストでのログを紹介する. 最後の行で, 犠牲者spamee@example.comにメールを送ってしまったことが分かる.
postfix/local[11]: 123456789A: to=, relay=local, delay=52, delays=52/0.01/0/0.06, dsn=5.4.6, status=bounced (mail forwarding loop for hoge@example.org)
postfix/cleanup[12]: 2233445566: message-id=<20151108120947.2233445566@smtp.example.org>
postfix/bounce[13]: 123456789A: sender non-delivery notification: 0B41860FF6
postfix/qmgr[14]: 2233445566: from=<>, size=2074, nrcpt=1 (queue active)
postfix/qmgr[14]: 123456789A: removed
postfix/smtp[15]: 2233445566: to=, relay=x.x.x.x, delay=0.29, delays=0.03/0.02/0.2/0.04, dsn=2.0.0, status=sent

0 件のコメント:

コメントを投稿