电子邮件的安全分析

电子邮件的安全分析

摘要:电子邮件的应用使得人与人间的通讯变得快捷、方便,然而电子邮件的使用也带来网络安全的问题。攻击者可通过钓鱼邮件窃取用户信息,给个人和公司带来严重的经济损失。因此,保障电子邮件的安全非常重要。本文研究电子邮件存在的安全问题,并且给出对应的解决方案。

关键词:电子邮件;网络安全;钓鱼攻击

0前言

随着互联网的发展,越来越多的组织机构采取自动化办公。自动化办公使用计算机技术来替代传统办公方式,提高了组织机构的办公效率。其中,电子邮件的使用使得人与人间的通讯变得快捷、方便。然而电子邮件的使用也带来网络安全的问题。2016年3月19日,希拉里竞选团队主席约翰•波德斯塔收到了一封貌似来自Google的警告邮件,然而,该邮件却是一封窃取个人信息的钓鱼邮件。波德斯塔无意点击了邮件中的恶意链接,其邮箱密码就成了黑客的囊中之物,造成了后续一系列的恶劣影响。2018年3月,美国政府对一家伊朗研究所和10名伊朗黑客进行制裁,并在声明中指出,这些伊朗黑客对美国的144所大学,及澳洲、英国、加拿大等其它国家的176所大学发动网络攻击,盗取了相当于三个美国国会图书馆馆藏的31TB资料,价值高达34亿美元。这些黑客冒充其它大学的教授向受害者发送钓鱼邮件,声称对他们的研究成果感兴趣,并附上虚假网站的链接。链接点击后,需要受害者重新输入用户名密码,从而导致个人资料被窃取。钓鱼邮件的成功会对个人和组织带来严重的经济损失。因此,防御钓鱼邮件是办公自动化的重要环节。

1电子邮件相关概念

1.1电子邮件的工作流程

如今的电子邮件系统建立在SMTP协议上运行。SMTP全称为SimpleMailTransferProtocol,即简单邮件传输协议。SMTP是电子邮件传输的互联网标准协议。传输一封电子邮件需要三个主要步骤。第一,邮件从发送者的邮件用户(MailUserAgent,MUA)中发出,通过STMP或HTTP/HTTPS传输到发送方服务提供商的邮件提交(MailTransferA-gent,MTA)。MTA通过SMTP协议将消息发送给收件人的邮箱提供商。通过IMAP(InternetMessageAccessProtocol)、POP(PostOfficeProtocol)或HTTP/HTTPS,邮件传递(MailDe-liveryAgent,MDA)将消息传递给接收用户。

1.2电子邮件安全协议

从SMTP的名字可看出,当时该协议只考虑通讯的简单、快捷,并没有考虑电子邮件传输的安全性。在最初设计时,SMTP没有任何安全验证机制来验证发件人的身份。因此,攻击者可通过修改SMTP中的“MAILFROM”字段轻松地伪造电子邮件,以冒充/欺骗任意的发件人地址。电子邮件欺骗是网络钓鱼攻击的一个关键步骤。通过冒充一个受信任的实体作为电子邮件发送者,攻击者有更高的机会获得受害者的信任。实际上,攻击者通常通过建立他们自己的MTA服务器,利用SMTP来构造钓鱼邮件;另外,如果没有合理配置合法的电子邮件服务器,攻击者还可利用这点进行构造钓鱼邮件。例如,如果一个服务器被配置为开放中继,攻击者可用该服务器伪造任何电子邮件地址。为了防范电子邮件欺骗攻击,各种、各样的安全扩展协议被提出并标准化,包括发件人策略框架(SenderPolicyFramework,SPF)、域名密钥邮件确认(DomainKeysIdentifiedMail,DKIM)和基于域的消息,认证,报告和一致性标准(Domain-basedMessaging,Authentication,ReportingandCon-formanceStandard,DMARC)。还有其它的协议,比如建立在SPF,DKIM,DMARC之上的BIMI和ARC。在本文中,主要介绍SPF、DKIM和DMARC,因为它们在实践中已在一定程度上被电子邮件服务商采用。BIMI和ARC还没有完全标准化。SPF允许电子邮件服务商授权为其域发送电子邮件的ip列表。例如,如果一个域名“a.com”了它的SPF记录,则接收邮件时可通过查看该记录来匹配发送者IP地址和发送者邮箱地址。这样,只有经过授权的ip才能以“a.com”发送邮件;此外,SPF允许组织指定关于接收者应该如何处理身份验证失败的电子邮件的策略。DKIM采用基于公钥的方式认证邮件发送方。发件人的电子邮件服务提供商将在电子邮件头中放置一个数字签名,该签名由与发件人域相关的私钥签名。接收服务提供商可从DNS检索发送方的公钥来验证签名。为了从DNS查询DKIM公钥,不仅需要域名,还需要选择器(DKIM签名中的一个属性)。选择器用于允许同一域下的多个键,以实现更细粒度的签名控制。DKIM没有指定如果身份验证失败接收者应采取什么操作。DMARC建立在SPF和DKIM之上,它不是一个独立的协议。DMARC允许域管理员所有者策略,指定当收到的电子邮件未能通过SPF和DKIM检查时接收者应采取的操作;此外,DMARC使接收方向发送方的报告更加系统化。域名的DMARC记录可在DNS的_dmarc.domain.com中找到。

2电子邮件中的安全问题

网络钓鱼是一种计算机攻击,它通过电子通信渠道将社会工程设计的信息传递给人类,以说服他们为攻击者的利益执行某些行动。网络钓鱼问题利用人类对电子通信渠道(如电子邮件、HTTP等)交互的无知或天真。钓鱼邮件成功的原因有很多,本文就以下三点进行展开说明。

2.1电子邮件安全协议在实际中应用率不高

根据谷歌2015年的统计数据,大多数发给Gmails的入站电子邮件都有SPF(92%)或DKIM(83.0%),但只有一小部分(26.1%)有DMARC政策。最新的测量结果显示,在互联网主机中,SPF(44.9%)和DMARC(5.1%)的采用率较低。更重要的是,即使电子邮件无法通过SPF或者DKIM认证,许多电子邮件提供商仍然选择将伪造的电子邮件发送到收件箱。这是电子邮件安全性和电子邮件可用性之间的一个困难的权衡。如果电子邮件提供商阻止所有未经验证的电子邮件,用户很可能会丢失他们的电子邮件(例如,来自没有SPF、DKIM或DMARC记录的域名)。丢失合法的电子邮件是不可接受的电子邮件服务,这将很容易赶走用户。

2.2电子邮件验证链中的不一致性

电子邮件系统的安全性依赖于由各种电子邮件服务提供商维护的多方信任链,这增加了其对网络攻击的系统性、脆弱性。正如木桶理论所揭示的那样,木桶的容量是由其最短的间隔决定的。电子邮件的验证依赖于身份验证链中最薄弱的环节。即使是一个无害的问题,如果它被整合到一个更广泛的系统中,也可能造成前所未有的损害。一般来说,电子邮件认证链涉及多个协议、角色和服务,其中任何故障都可能破坏整个链的防御。由于电子邮件规范的模糊性、对最佳实践的缺乏和MIME标准的复杂性,协议验证过程是认证链中的薄弱环节之一。在SMTP通信过程中,协议的多个字段包含发送方的身份信息。这些字段的不一致性为电子邮件欺骗攻击提供基础。虽然SPF、DKIM和DMARC被标准化,以防止来自不同方面的电子邮件欺骗攻击。然而,只有当全部协议都执行良好时,电子邮件系统才能防止电子邮件欺骗攻击。在这种基于链的身份验证结构中,任何链路的失败都可能使身份验证链无效。在电子邮件系统中,验证发件人的身份是一个复杂的过程。它涉及四个重要的角色:发件人、接收器、转发器和UI渲染器。标准安全模型的假设是每个角色适当地开发和实现相关的安全验证机制,以提供整体安全性。然而,许多电子邮件服务提供商并没有在所有四个角色中实现正确的安全策略。许多电子邮件服务(如iCloud、Outlook、Yeah.com)在电子邮件转发阶段没有注意到未经授权的转发攻击造成的安全风险;此外,该规范并没有明确说明在电子邮件安全方面的四种角色(即发件人、接收器、转发器和UI渲染器)的任何责任。不同的电子邮件服务提供商通常有不同的配置和实现。一些服务提供商(例如Gmail,Yandex.com)禁止发送标题模糊的电子邮件,但会容忍接收邮件。相反,一些公司(如Zoho、雅虎)倾向于允许发送带有模糊标题的电子邮件,但在电子邮件接收验证阶段进行非常严格的检查。安全策略之间的差异使得攻击者可从具有宽容发送策略的服务提供商将欺骗电子邮件发送到具有松散接收策略的服务提供商;此外,一些电子邮件提供商在处理标题模糊的电子邮件时偏离了RFC的特色。当MUA处理多个电子邮件头时,一些服务提供商(如Outlook、Mail.ru)显示第一个电子邮件头,而其它服务提供商(如iCloud、yandex.com)显示最后一个电子邮件头;此外,不同的邮件安全提供商在不同程度上支持Unicode字符。一些供应商(例如,21cn.com)已意识到由Unicode字符带来的新的安全挑战,但一些邮件安全提供商(例如,163.com,yeah.net)不知道。特别是,一些邮件安全提供商(如zoho.com,EwoMail)甚至还没有支持Unicode字符的渲染。

2.3用户的安全意识薄弱

无论检测器的性能如何,用户在防止攻击方面都发挥重要的作用,因为攻击者可找到绕过检测技术的方法。到目前为止,用户都被认为是网络钓鱼生态系统中最脆弱的链接。根据英特尔的一项研究,97%的人无法识别网络钓鱼邮件。

3电子邮件的安全对策

3.1准确描述电子邮件安全协议,鼓励电子邮件提供商采用安全协议

首先,电子邮件服务提供商应考虑采用SPF、DKIM和DMARC。即使他们不能对所有传入的电子邮件进行身份验证,这些协议也允许电子邮件服务提供商做出更明智的决定;其次,需进一步的研究来简化部署过程,并帮助避免对现有电子邮件操作的中断。电子邮件服务提供商可能无法提供在电子邮件协议中定义不明确的电子邮件服务。因此,需要提供更准确的电子邮件协议描述,以消除多方协议实践中的不一致性。例如,添加DKIM签名以提高电子邮件的可信度是合理的;然而,他们不应在从未通过DKIM验证的电子邮件中添加DKIM签名。因此DKIM标准中应指定何时应将DKIM签名添加到转发的电子邮件中。

3.2合理设计电子邮件UI呈现

一些视觉攻击不能在协议级别上进行防御。一种有效的防御方法是提供一个用户友好的UI通知,并提醒用户,他们收到的电子邮件可能是欺骗电子邮件。电子邮件UI呈现是影响用户对电子邮件真实性感知的一个重要部分。不幸的是,大多数网络邮件和电子邮件客户端只显示From头,而没有任何更多的身份验证细节。因此,普通用户很难判断电子邮件的真实性。如果电子邮件提供商决定将未经验证的电子邮件发送到收件箱,笔者认为有必要放置一个安全指示器来警告用户。一个潜在的好处是,安全指示器可作为强制发送方域正确配置其SPF/DKIM/DMARC的功能。笔者认为电子邮件服务提供商应该为不同的接口制订一致的安全指标。目前,由于缺乏安全指标,移动用户面临更高的风险。另一个例子是,与使用Gmail界面的用户相比,谷歌收件箱(Web)用户受到的保护更少。最后,对具有未经验证的发件人地址的电子邮件,应禁用具有误导性的UI元素,如“头像照片”和“电子邮件历史记录”。这应该适用于欺骗现有联系人和欺骗同一电子邮件提供商中的用户。

3.3检测钓鱼邮件

黑名单中保存以前检测到的网络钓鱼链接、互联网协议(IP)地址或关键词的列表。另一方面,白名单中保存受信任的实体。黑名单和白名单的准确率很高,且误报率低。然而,黑名单不能提供防止零日网络钓鱼攻击的保护,因为一个网站需要先被发现才能被列入黑名单。这种延迟是个重大问题,因为63%的网络钓鱼活动在前2小时内结束。反钓鱼邮件软件可安装在客户端或服务器端,通过不同的算法来检查各种协议的有效负载。协议可以是HTTP、SMTP或其它任意协议。算法可是任何一种检测或预防网络钓鱼攻击的机制。启发式算法通过寻找现实中钓鱼攻击中存在的特征来检测钓鱼邮件,但这些特征并不能保证总是存在于钓鱼攻击中。如果确定了一组通用的启发式特征,就可检测到零日的网络钓鱼攻击(即以前没有见过的攻击),这是对黑名单的一个优势。因为黑名单需精确匹配,因此首先需观察确切的攻击才能将它们列入黑名单。然而,这种广义启发式也存在对合法内容(如合法电子邮件或网站)进行错误分类的风险。将钓鱼攻击的检测视为一个文档分类或聚类问题,其中模型通过利用机器学习和聚类算法构建,如k-近邻算法(k-NearestNeighbor,k-NN)、C4.5、支持向量机(SVM)、k均值和基于密度的噪声应用空间聚类(DBSCAN)。k-NN在内存中存储训练实例,并表示为多维向量,其中每个向量分量表示从特定特征中提取的值(例如,电子邮件中的链接数量)。然后,通过类似地处理测试实例,并计算测试实例和其它训练实例间的距离(例如,欧氏距离)来执行分类任务。当K=3时,考虑3个最近邻的类(如在训练阶段获得的)。当任务是分类时,可用多数投票来确定测试实例的类别。像C4.5和SVM这样的算法遵循一种不同的方法,它们推广了一个分类模型(与k-NN相反,它不能推广一个模型)。例如,C4.5构造一个决策树,它应该足够通用,可正确地分类看不见的实例。决策树由具有分裂分支的节点组成。执行拆分通常是为最大化拆分后的条件信息增益;另一方面,SVM的目的是通过分析训练实例,在向量空间中找到一个有效的分离平面。分离平面应足够通用,以便它仍然能分离看不见的实例。然而,聚类算法,如k均值和DBSCAN分区实例,以一种无监督的方式(即知道类标签是不需要构建集群的)。k均值算法的目的是将k个初始分区中心随机设置为k个初始分区中心,然后迭代地将实例分配到离其中心距离最小(如欧几里得距离)的分区上,然后将分区中心更新为同一分区中实例的平均值。重复这个迭代过程,直到集群收敛;另一方面,DBSCAN能根据实例的密度(即使用距离函数度量,如欧氏距离)对数据进行分区。与k均值相反,DBSCAN不需事先知道应找到的分区数,这是通过密度可达性的概念来实现的。

4结语

本文分析电子邮件的网络安全问题和对应的解决方案。钓鱼邮件出现的根本原因是邮件传输协议存在漏洞。其次,各大电子邮件提供商没有合理部署安全协议也给攻击者可乘之机;最后,邮件用户安全意识薄弱,无法识别钓鱼邮件,使得钓鱼邮件攻击成功。因此,要想解决钓鱼邮件问题,首先要完善电子邮件传输协议;其次,要明确电子邮件提供商的责任,鼓励邮件提供商部署安全协议;最后,合理设置电子邮件的用户接口,对钓鱼邮件显示告警信息。

作者:杨海明 单位:中国移动通信集团山西有限公司