在电子邮件的发展历程中,人们想出了各种各样的技术来保护收件人不受欺诈邮件(主要是钓鱼邮件)的攻击。域名识别邮件(DKIM)和发送方策略框架(SPF)都存在严重缺陷,基于域的消息认证报告和一致性(DMARC)机制可以被用于识别那些使用伪造发送域的邮件。然而它也并非理想的解决方案,因此我们的安全研究人员研发了一种技术来消除这个安全机制中的缺点。
DMARC工作原理
如果要防止外部人员以某公司员工名义发送电子邮件,可以在该公司的DNS资源记录中配置DMARC,这本质上将允许收件人确保邮件中”寄件人”一栏中的域名与DKIM和SPF中一致。而且该记录还指定了邮件服务器在收到验证失败(比如发生错误或者检测到伪造寄信人)的邮件时应该向什么地址发送报告。
在这条资源记录中,你还可以配置DMARC策略来指定如何处理验证失败的消息,有以下三种选择:
- 拒绝是最严格的的策略,选择这一策略来阻拦所有没有通过DMARC检查的邮件。
- 如果选择了隔离策略,根据邮件服务商的具体设置,邮件要么被转至垃圾文件夹,要么被标记为可疑邮件。
- 选择无策略来允许消息正常发送至收件人邮箱,不过发送者会收到一份报告。
DMARC的缺点
总的来说DMARC功能很强大,这一安全技术让网络钓鱼变得愈发困难。然而这一机制在解决问题的同时也造成了新的问题:误报。在以下两种情况中,正常的邮件可能会被阻拦或者标记为垃圾邮件:
- 转发的消息,有些邮件系统在转发的消息中破坏了SPF和DKIM签名,无论消息是由邮箱转投还是在中间节点间互相转发,这种情况都可能发生。
- 错误的设置,邮件服务器管理员在配置DKIM和SPF常常会犯下各种错误。
对于企业电子邮件来说,我们既不想允许钓鱼邮件攻击收件人,也不想阻拦正常消息,很难说哪种情况更糟。
修复DMARC缺陷的方法
毫无疑问该安全机制十分有用,所以我们决定使用机器学习技术来强化该机制中的验证过程,在不削弱DMARC优势的情况下将误报可能性降到最低。其工作原理如下:
当用户写邮件时,他们使用诸如微软Outlook之类的邮件用户代理(MUA),它负责生成消息并将其发送至邮件传输代理(MTA)进一步转发。除了用户填写的邮件内容、主题和收件人地址之外,邮件用户代理会添加必要的头部信息。攻击者往往使用他们自己的邮件用户代理来绕过安全系统,它们通常是攻击者自己编写的邮件引擎,基于一定的模板产生邮件消息并添加头部信息,每个这样的邮件用户代理都有它自己独特的”笔迹”。
如果接收到的邮件没有通过DMARC检查,我们的技术将发挥作用,它可以运行在云服务上,并且和设备上的安全解决方案相互连接。它使用神经网络对邮件头部的序列以及X-Mailer和Message-ID头部的内容进一步分析,从而帮助安全解决方案区分正常邮件和网络钓鱼邮件。我们的技术模型已经过海量邮件信息(大约1.4亿封邮件,其中40%是垃圾邮件)的训练。
结合DMARC机制和机器学习技术,这将帮助我们在保护用户不受钓鱼攻击的同时将误报次数降到最低。我们已经将该技术应用于所有拥有垃圾邮件过滤组件的卡巴斯基产品:卡巴斯基安全软件微软邮件服务器,卡巴斯基安全软件Linux邮件服务器,卡巴斯基安全软件邮件网关,它们都是卡巴斯基中小企业安全解决方案中的安全组件。