使用 DMARC 技术阻止反向散射

使用 DMARC 技术阻止反向散射

我们为客户提供小型电子邮件(接收而非批量发送)服务(约 300 个域名),并且刚刚开始引入 DMARC。这样做的原因之一是帮助我们识别 NDR 何时用于反向散射,从而帮助阻止反向散射(未发送的电子邮件的 NDR)。

我们无法阻止人们伪造我们托管的电子邮件地址,我们也无法强迫其他系统正确实施 SPF、DKIM 和 DMARC,但我们希望能够识别反向散射回复。

理论上,如果我们收到 NDR,那么 NDR 应该会附加原始邮件标头,这样我们就可以检查这些标头,看看是否是假邮件。因此,我们的想法是重新验证原始邮件标头,遵守 SPF、DKIM 和 DMARC,如果 NDR 发起系统应该已经将消息分类,那么我们就可以将其分类。

我一直在查看一条这样的消息,该消息来自我们正在测试的一个域,该域遭受了大量欺骗。该域的 DMARC 策略是:

"v=DMARC1; p=reject; aspf=s; adkim=s"

NDR 上的相关电子邮件标题(匿名)为:

Received: from h2773125.stratoserver.net (h2773125.stratoserver.net [81.169.157.174])
    by mailboundary.domainundertest.tld (8.14.7/8.14.7) with ESMTP id x65BOdv8028405
    for <[email protected]>; Fri, 5 Jul 2019 11:24:44 GMT
DMARC-Filter: OpenDMARC Filter v1.3.2 mailboundary.domainundertest.tld x65BOdv8028405
Authentication-Results: mailboundary.domainundertest.tld; dmarc=none (p=none dis=none) header.from=h2773125.stratoserver.net

到目前为止这是正确的 - NDR 来自已收到欺骗消息的目标系统,因此 NDR(此消息)通过。

在 NDR 消息中,有多个不同域中的电子邮件帐户被拒绝。这可能表明生成 NDR 的系统是开放中继,如果是,则可能不是经过深思熟虑设置的,或者可能是垃圾邮件发送者专门设置的。当然,如果它是由垃圾邮件发送者专门设置的,那么他们不会在意不生成反向散射!

在原始邮件头中仅列出以下内容:

Return-Path: <[email protected]>
Received: from 92.119.160.85 (unknown [113.163.187.18])
    by h2773125.stratoserver.net (Postfix) with ESMTPSA id DEC718656E;
    Sat, 29 Jun 2019 22:54:56 +0000 (UTC)
Message-ID: <[email protected]>
Reply-To: "CestusKaput96368" <[email protected]>
From: "CestusKaput96368" <[email protected]>
Subject: Ich bin ein boses Madchen und muss bestraft werden.
Date: Sun, 30 Jun 2019 01:54:59 +0300
MIME-Version: 1.0
Content-Type: text/plain

这就是全部标题...但足以阻止它。

我们可以看到信封发件人(Return-Path)来自我们试图保护的域,并且我们有发送它的 IP 地址(113.163.187.18),因此我们可以检查 SPF - 它会失败。由于我们有发送aspf=sNDR 的服务器的策略,因此我们应该将消息放入垃圾箱,这样我们就可以对 NDR 进行垃圾箱处理。

因此,我们想要做的是根据原始标头对 NDR 消息实施我们自己的 DMARC 检查。

有谁知道有开源工具可以做到这一点吗?如果需要,我们可以用 C 或 Perl 编写自己的过滤器,但我认为可能已经存在一些这样的工具了。

欢迎任何想法和意见!

相关内容