通过 List-Unsubscribe 标头伪造电子邮件

信息安全 电子邮件
2021-08-19 22:23:38

List-Unsubscribe 电子邮件标题使收件人可以自动从邮件列表中取消订阅:

List-Unsubscribe: <mailto:list@host.com?subject=unsubscribe&body=qwe>

我们构建的免费电子邮件服务在 UI 中添加了“取消订阅”按钮,这将触发向 list@host.com 发送带有指定正文和主题的电子邮件。它将从收件人(out 用户)的电子邮件中发送。并与DKIM签约。

攻击者可以向我们的用户发送一封电子邮件,如果按下“取消订阅”按钮,它将发送一封带有给定正文的假邮件,并且来自我们的用户,由我们的 DKIM 签名。

怎么可能避免这种情况?

我们可以禁止在 List-Unsubscribe 标头中处理我们的电子邮件(保护我们的用户不接收此类虚假电子邮件)。

但是,如果 3rd 方邮件提供商向我们发送此类标头,该怎么办?我们如何保护我们的用户不发送虚假电子邮件?(从我们的网络发送,受 DKIM 和 SPF 保护)

还是第三方电子邮件服务的问题和责任,而不是发送带有恶意 List-Unsubscribe 标头的电子邮件?

1个回答

大多数取消订阅按钮的实现者不尊重“主题”和“正文”参数,这正是您给出的原因。那些这样做的人,仅在响应经过验证的电子邮件时才会这样做,并且取消订阅电子邮件地址的域与经过验证的发件人电子邮件地址的域匹配。

本质上,您需要针对何时应该信任 List-Unsubscribe 标头实施策略。

除非:

  • 您已通过 SPF 或 DomainKeys 或匹配的往返 DNS 或其他方法验证了发件人域。

  • List-Unsubscribe 域与发件人域匹配。

即使这样,如果您已将发件人域列入白名单,您也应该只信任主题和正文。

更好 - 如果列表是listname@example.com

List-Unsubscribe: <mailto:listname-unsubscribe@example.com>

最好 - 每个收件人都应该有一个唯一的订阅 ID:

List-Unsubscribe: <mailto:listname-unsubscribe-927349872392343@example.com>

或者一些VERP的东西: