简介
本文档提供了有关Cisco安全电子邮件如何对SEC Consult于2023年12月18日发布的SMTP走私 — 全球欺骗电子邮件中所述的攻击类型进行操作的更多详细信息。
在与SEC Consult漏洞实验室合作开展的一个研究项目中,Timo Longin(@timolongin)发现了另一种新的互联网协议开发技术 — SMTP(简单邮件传输协议)。威胁发起者可能会利用全球易受攻击的SMTP服务器从任意电子邮件地址发送恶意电子邮件,从而允许有针对性的网络钓鱼攻击。由于漏洞本身的性质,此类漏洞被称为SMTP走私。
思科尚未发现任何证据,证明本白皮书所述的攻击可用于绕过任何已配置的安全过滤器。
技术背景
无需详细介绍SMTP协议和消息格式,只需查看RFC 5322的几个部分即可获得一些上下文。
第2.1节将CRLF字符序列定义为消息不同部分之间使用的分隔符。
消息被划分为多行字符。行是由两个字符分隔的一系列字符:回车符和换行符;即回车符(CR)字符(ASCII值13),后紧跟换行符(LF)字符(ASCII值10)。 (回车符/换行符对通常在本文档中写为“CRLF”。)
第2.3节更具体地说明了消息正文的格式。它明确指出CR和LF字符绝不能作为身体的一部分单独发送。执行此操作的任何服务器都不符合RFC。
消息正文只是一行US-ASCII字符。对主体的唯一两个限制如下:
- CR和LF必须仅作为CRLF同时出现;它们不能独立显示在身体中。
- 正文中的字符行必须限制为998个字符,并且应限制为78个字符(CRLF除外)。
但是,该文档的第4.1部分参考了来自以前版本RFC的过时语法,这些语法没有像以前版本那样具有限制性,它承认该字段上的许多实现没有使用正确的语法。
裸机CR和裸机LF在消息中出现两种不同的含义。在许多情况下,未正确使用裸的CR或裸的LF而不是CRLF来指示线路分隔符。在其他情况下,CR和裸LF仅用作具有传统ASCII含义的US-ASCII控制字符。
总之,根据RFC 5322,格式正确的SMTP消息类似于以下示例:
ehlo sender.example\r\n
mail FROM:<user@sender.example>\r\n
rcpt TO:<user@receiver.example>\r\n
data\r\n
From: <user@sender.example>\r\n
To: <user@receiver.example>\r\n
Subject: Example\r\n
\r\n
lorem ipsum\r\n
\r\n. \r\n
本白皮书尝试利用RFC第4.1节中提到的例外情况,在正文中插入或“走私”新邮件,以尝试绕过发送或接收服务器上的安全措施。其目的是让被偷运的信息绕过安全检查,因为这些检查只能在裸线馈送之前对信息部分运行。例如:
ehlo sender.example\r\n
mail FROM:<user@sender.example>\r\n
rcpt TO:<user@receiver.example>\r\n
data\r\n
From: <user@sender.example>\r\n
To: <user@receiver.example>\r\n
Subject: Example\r\n
\r\n
lorem ipsum\r\n
\n. \r\n
mail FROM:<malicious@malicious.example>\r\n
rcpt TO:<user@receiver.example>\r\n
data\r\n
From: <malicious@malicious.example>\r\n
To: <user@receiver.example>\r\n
Subject: Malicious\r\n
\r\n
Malicious content\r\n
\r\n. \r\n
思科安全邮件行为
在Cisco Secure Mail上配置SMTP侦听程序时,有三个配置选项可确定应如何处理裸CR和LF字符。
裸CR和LF字符的正常消息(默认)
在选择默认选项后,Cisco Secure Mail将使用正确的CRLF序列替换传入邮件中的所有裸CR和LF字符。
包含走私内容的邮件(如示例中的邮件)被视为两个独立的邮件,并且所有安全检查(如发件人策略框架(SPF)、基于域的邮件身份验证、报告和一致性(DMARC)、反垃圾邮件、防病毒、高级恶意软件防护(AMP)和内容过滤器)均独立运行。
注意:客户应注意,使用此配置,攻击者可能能够伪装成其他用户来走私邮件。在源服务器托管多个域的情况下,攻击者可能会产生更大的影响,因为攻击者可以从服务器上托管的另一个域中冒充用户,而且走私邮件的SPF检查仍会通过。
拒绝包含裸CR或LF字符的消息
此配置选项严格强制符合RFC。包含纯CR或LF字符的所有消息均会被拒绝
虽然此配置可防止走私情景,但也会导致来自不符合RFC的服务器的合法电子邮件被丢弃。
允许包含裸CR或LF字符的消息(已弃用)
最终配置会导致Cisco Secure Mail处理具有其ASCII含义的裸CR和LF字符。报文正文按原样传送,包括走私内容。
由于走私邮件被视为正文的一部分,思科安全邮件可能无法检测到作为走私邮件一部分包含的附件。这可能导致下游设备出现安全问题。此选项已被弃用,不再使用。
推荐 的 配置
Cisco建议使用默认的“Clean messages of bare CR and LF characters”(正常的CR和LF字符消息)选项,因为它在安全性和互操作性之间提供了最佳折衷。但是,使用此设置的客户应了解与走私内容相关的安全影响。希望实施RFC合规性的客户应选择“拒绝具有裸CR或LF字符的消息”,注意潜在的互操作性问题。
在任何情况下,思科强烈建议配置和使用SPF、DomainKey Identified Mail(DKIM)或DMARC等功能,以验证传入邮件的发件人。
常见问题解答
Cisco Secure Mail是否容易遭受所述攻击?
从技术上说,是的。如果邮件中包含纯CR和LF字符,可能会导致将部分电子邮件视为第二封电子邮件。但是,由于第二个电子邮件是独立分析的,因此其行为相当于发送两个单独的邮件。思科尚未发现任何证据,证明本白皮书所述的攻击可用于绕过任何已配置的安全过滤器。
本文提供了绕过SPF和DKIM检查的示例。思科为什么说没有绕过任何过滤器?
在这些示例中,SPF检查按预期运行,但由于发送服务器拥有多个域,导致检查通过。
推荐配置是什么?
对于客户而言,最合适的选择取决于其特定需求。建议的选项为默认“Clean”配置或“Reject”替代选项。
选择Reject选项是否会导致误报?
“拒绝”功能启动对电子邮件是否符合RFC标准的评估。如果电子邮件不符合RFC标准,将拒绝该电子邮件。如果电子邮件不符合RFC标准,甚至可以拒绝合法电子邮件。
是否存在涵盖此问题的软件Bug?
Cisco Bug ID CSCwh10142已存档。
如何获得有关此主题的更多信息?
任何后续问题都可以通过技术支持中心(TAC)案例提出。