这封电子邮件如何破坏SPF检查?

我运行一个邮件服务器似乎正确处理SPF设置的电子邮件 – 但是我已经开始接收虚假的电子邮件,声称来自银行 – 设置为银行的发件人地址 – 但绝对不是来自银行。

电子邮件的相关标题如下:

Delivered-To: [email protected] Received: from mail.mydomain.org (localhost [127.0.0.1]) by mail.mydomain.org (Postfix) with ESMTP id AD4BB80D87 for <[email protected]>; Thu, 13 Oct 2016 20:04:01 +1300 (NZDT) Received-SPF: none (www.tchile.com: No applicable sender policy available) receiver=mydomain.org; identity=mailfrom; envelope-from="[email protected]"; helo=www.tchile.com; client-ip=200.6.122.202 Received: from www.tchile.com (www.tchile.com [200.6.122.202]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.mydomain.org (Postfix) with ESMTPS id 40F6080B9F for <[email protected]>; Thu, 13 Oct 2016 20:03:57 +1300 (NZDT) Received: from www.tchile.com (localhost.localdomain [127.0.0.1]) by www.tchile.com (8.13.1/8.13.1) with ESMTP id u9D73sOG017283 for <[email protected]>; Thu, 13 Oct 2016 04:03:55 -0300 Received: (from apache@localhost) by www.tchile.com (8.13.1/8.13.1/Submit) id u9D73smu017280; Thu, 13 Oct 2016 04:03:54 -0300 Date: Thu, 13 Oct 2016 04:03:54 -0300 Message-Id: <[email protected]> To: [email protected] Subject: CANCELLATION_PROCESS. From: KIWI BANK <[email protected]> Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=029F3E3270D5187AA69203962BF830E3 X-Virus-Scanned: ClamAV using ClamSMTP 

这里的关键是kiwibank.co.nz是一个合法的,有信誉的银行,我来自,并有一个SPFlogging:

 kiwibank.co.nz. 13594 IN TXT "v=spf1 include:_spf.jadeworld.com ip4:202.174.115.25 ip4:202.126.81.240 ip4:202.12.250.165 ip4:202.12.254.165 ip4:66.231.88.80 include:spf.smtp2go.com include:spf.protection.outlook.com -all" 

所以,经过一番阅读 – 似乎Envolope-From是正确的,但“From”已被伪造。 有什么方法可以纠正/缓解这个问题,而不会打破“一般”的电子邮件? 我注意到我使用Postfix,Spamassassin和policyd(postfix-policyd-spf-perl) – 如果它真的很容易绕过,SPF的意义何在?

在这种情况下,他们可能会对你的服务器这样说:

 EHLO www.tchile.com MAIL FROM: [email protected] RCPT TO: [email protected] DATA Date: Thu, 13 Oct 2016 04:03:54 -0300 Message-Id: <[email protected]> To: [email protected] Subject: CANCELLATION_PROCESS. From: KIWI BANK <[email protected]> Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=029F3E3270D5187AA69203962BF830E3 X-Virus-Scanned: ClamAV using ClamSMTP The contents of mail... . 

SMTP会话(又名“信封”)可以具有不同于From / To的电子邮件标题。 SPF不检查标题,但它总是实际显示给最终用户的标题! 是的,SMTP是坏的。 是的,SPF是破的。

您最好通过检查DMARC而不是仅检查SPF。 DMARC默认检查SPF,但它也检查From头与SMTP MAIL FROM(域需要匹配 – 它忽略用户名部分)的alignment。 作为奖励,您也可以获得DKIM支持,这是SPF的一个非常有用的附录。

DMARC将取决于在_dmarc.kiwibank.co.nz处设置的DNS TXTlogging。 但目前没有。 根据互联网法规的现状,这意味着kiwibank.co.nz的所有者。 并没有提供有关被保护免受这种欺骗的信息。 但是在某些实现中,您可以为所有传入的电子邮件强制使用DMARC。

所以,经过一番阅读 – 似乎Envolope-From是正确的,但“From”已被伪造。 有什么方法可以纠正/缓解这个问题,而不会打破“一般”的电子邮件?

validationFrom破坏邮件列表:

  1. foo @ yourbank发送邮件到cat-picture-sharing-list @ bar。

  2. 邮件列表将采取邮件,

    • 用类似于cat-picture-sharing-list-bounce @ bar的东西replaceEnvelope-From
    • 可能会修改回复标题和
    • 重新发送邮件给所有收件人(例如你)。

现在你的邮件服务器收到一封邮件

 Envelope-From: cat-picture-sharing-list-bounce@bar From: foo@yourBank 

从酒吧的邮件服务器发送。

我注意到我使用Postfix,Spamassassin和policyd(postfix-policyd-spf-perl) – 如果它真的很容易绕过,SPF的意义何在?

  1. 许多垃圾邮件发送者并不费心发送“正确的”信封。
  2. 由于NDR(或:应该)发送到信封发件人地址,您的银行将不会获得(大部分)此垃圾邮件的反向散射 。
  3. 基于Envelope-From得分更可靠。 如果您(或您信任的一些评分提供商)将所有邮件分配给Envelope-From = … @ yourbank是一个非常负面的垃圾邮件分数,则垃圾邮件发送者不能滥用该分数。