这封电子邮件如何颠覆 SPF 检查?

dav*_*dgo 13 postfix spf

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

邮件的相关标题如下:

Delivered-To: me@mydomain.name
Received: from mail.mydomain.org (localhost [127.0.0.1])
    by mail.mydomain.org (Postfix) with ESMTP id AD4BB80D87
    for <user@mydomain.com>; 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="apache@www.tchile.com"; 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 <user@mydomain.com>; 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 <user@mydomain.com>; 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: <201610130703.u9D73smu017280@www.tchile.com>
To: user@mydomain.com
Subject: CANCELLATION_PROCESS.
From: KIWI BANK <noreply@kiwibank.co.nz>
Reply-To: 
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=029F3E3270D5187AA69203962BF830E3
X-Virus-Scanned: ClamAV using ClamSMTP
Run Code Online (Sandbox Code Playgroud)

这里的关键是 kiwibank.co.nz 是我来自的一家合法、信誉良好的银行,并且有一个 SPF 记录,上面写着:

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"
Run Code Online (Sandbox Code Playgroud)

因此,经过一些阅读 - 看起来 Envolope-From 是正确的,但“From”已被伪造。有什么方法可以在不破坏“一般”电子邮件的情况下纠正/减轻这种情况?我注意到我使用 Postfix、Spamassassin 和 policyd (postfix-policyd-spf-perl) - 如果它真的很容易绕过,那么 SPF 有什么意义呢?

kub*_*zyk 13

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

EHLO www.tchile.com
MAIL FROM: apache@www.tchile.com 
RCPT TO: user@mydomain.com
DATA
Date: Thu, 13 Oct 2016 04:03:54 -0300
Message-Id: <201610130703.u9D73smu017280@www.tchile.com>
To: user@mydomain.com
Subject: CANCELLATION_PROCESS.
From: KIWI BANK <noreply@kiwibank.co.nz>
Reply-To: 
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=029F3E3270D5187AA69203962BF830E3
X-Virus-Scanned: ClamAV using ClamSMTP

The contents of mail...
.
Run Code Online (Sandbox Code Playgroud)

SMTP 会话(又名“信封”)可以具有与电子邮件标头不同的发件人/收件人。SPF 不检查标题,但它始终是实际显示给最终用户的标题!是的,SMTP是那个打破。是的,SPF是那个打破。

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

DMARC 将取决于在 _dmarc.kiwibank.co.nz 设置的 DNS TXT 记录。但目前没有。根据互联网法规的当前状态,这意味着 kiwibank.co.nz 的所有者。根本不在乎是否受到此类欺骗的保护。但是在某些实现中,您可以对所有传入的电子邮件强制执行 DMARC。