电子邮件欺诈:攻击者如何冒充合法发件人

本文主要分析网络犯罪分子如何通过更改邮件的From(发件人)标头来进行邮件欺诈。

域名欺骗

邮件欺诈的最简单形式之一是域名欺骗,指的是将目标发件人的域名插入到From标头中,使用户很难区分真实来源。

网络犯罪分子如果要以别人的名义发送邮件,并不是一件难事,网上不乏此类脚本或程序。由于SMTP(简单邮件传输协议,TCP/IP网络中的主要电子邮件传输协议)不提供此类保护,因此当攻击者获取到目标受害者信任的发件人地址时,能诱导他们执行特定操作,比如单击钓鱼链接、转账汇款、下载恶意文件等。为了增加可信度,攻击者还会模仿发件人的风格或身份证明,并强调任务的紧迫性以增加成功的概率。

为了解决这种欺诈,目前市面上有几种身份验证方法:SPF、DKIM和DMARC。通过这些方式让得到验证后的信息实际上从指定地址发送。

·SPF(发件人策略框架)标准允许邮件域所有者限制可以从该域发送消息的IP地址集,并允许邮件服务器检查发件人的IP地址是否被域所有者授权。但是,SPF不检查From头,而是检查SMTP信封中指定的发件人域,该域用于在邮件客户端和服务器之间传输邮件路由信息,不会显示给收件人。

·DKIM通过基于存储在发件人服务器上的私钥生成的数字签名来解决发件人身份验证问题。用于验证签名的公钥放在负责发件人域的DNS服务器上。如果消息是从不同的域发送的,则签名将无效。但是该技术有一个弱点:攻击者可以发送没有DKIM签名的假电子邮件,且信息将无法验证。

·DMARC(基于域的消息身份验证、报告和一致性)用于根据DKIM/SPF验证域检查From标头中的域。使用DMARC,则域名欺骗的消息无法通过身份验证。如果政策严格,DMARC还可以阻止特定的电子邮件。

随着上述技术的广泛实施,攻击者要么采取其他方法,要么报希望于他们所冒充的公司没有正确配置邮件身份验证,遗憾的是,这种现象依然很常见。

显示名称欺骗

显示名称是发件人的姓名或昵称,显示在电子邮件地址之前的发件人标头中。如果是公司邮件,则通常是相关部门或个人的真实姓名。

显示名称的示例

为了使收件人的邮件看上去不那么混乱,许多邮件客户端隐藏了发件人的地址,只显示显示名称,这也给了犯罪分子可乘之机,不过From标头中还是显示了他们的真实地址,由于此地址通常受到DKIM签名和SPF的保护,也会被身份验证机制将消息视为合法的,只要受害者不注意看就容易上当。

幽灵欺骗

幽灵欺骗为此类的最常见形式。攻击者除了伪造发件人个人或公司的名称,还连带了发件人的地址,如下面的示例所示。

幽灵欺骗的示例

实际上消息来自完全不同的地址。

幽灵欺骗中的真实发件人地址和邮件身份验证

AD欺骗

AD(ActiveDirectory)欺骗是另一种形式的显示名称欺骗,但与幽灵欺骗不同,它直接以发送人的名字设置邮件地址。

AD欺骗示例

这种方法看起来比幽灵欺骗更原始,但幽灵欺骗在技术上更容易被垃圾邮件过滤器拦截,而AD欺骗至少能将邮件发送到垃圾邮件文件夹,封锁所有来自与同事或公司同名地址的电子邮件通常也不太现实。

相似域名欺骗

此类攻击要更为复杂些,需要攻击者寻找类似目标组织的域名并注册。查找和购买域名都需要付出更多时间,之后在其上设置邮件、DKIM/SPF签名和DMARC身份验证,这比简单地修改From标头要困难得多,但这也为识别机制带来阻碍。

例如,下面截图中的电子邮件来自域名deutschepots.de,受害者很容易与德国邮政公司DeutschePost(deutschepost.de)的域名混淆。如果点击了此类电子邮件中的链接并尝试支付包裹递送费用,不仅会损失3欧元,还会将信用卡详细信息交给犯罪分子。

来自相似域的消息示例

Unicode欺骗

Unicode欺骗指的是域名中的ASCII字符被替换为Unicode集中的相似字符。了解此技术需要了解使用非拉丁字符的域是如何编码的。Punycode是一种将Unicode字符转换为ASCII兼容编码(ACE)表示的方法,由拉丁字母、连字符和0到9的数字组成。同时,许多浏览器和邮件客户端显示域的Unicode版本。例如,这个俄罗斯域名:

касперский.рф

转换为:

xn--80akjebc7ajgd.xn--p1ai

但在浏览器中,你很可能会看到相同的касперский.рф。由于该技术提供部分编码(对单个字符进行编码,而不是对整个字符串进行编码),因此域可以同时包含ASCII和Unicode字符,网络犯罪分子会积极利用这种特性。

Unicode欺骗的电子邮件示例

在上面的截图中,消息据称是从apple.com发送的。它看起来合法,并且电子邮件也通过了邮件身份验证。仔细看可以看出,邮件设计得正规苹果支持页面并不一样,但普通用户很少会去比较。如果毫无戒心的用户点击该链接,就会被带到一个虚假网站,要求提供帐户详细信息。

看一看邮件头(可在大多数PC邮件客户端或web版本的邮件服务中看到),就会看到完全不同的画面:

Punycode域记录

我们上面看到的apple.com域在Punycode中看起来非常不同,因为前三个字符实际上是西里尔字母“а”和“р”。但是为了方便用户,邮件客户端将Punycode转换为Unicode,于是消息显示为“apple.com”。

需要注意的是,一些邮件客户端会警告用户域名中使用的非标准字符,甚至在From标头中显示Punycode,然而这种保护机制并不普遍。

结论

邮件诈骗有多种方法,其中一些看起来很原始但能成功绕过邮件身份验证。同时,邮件欺诈往往只是犯罪分子攻击的第一步,对受害者信息的收集,或对受害者设备的控制可能会造成更深远的影响,即使只是一次点击,也可能导致身份盗用、业务宕机,或高达数百万美元的金钱损失。

本文翻译自:https://securelist.com/email-spoofing-types/102703/

标签: