据瑞星"云安全"监测系统统计显示,从2011年起,钓鱼攻击就已经成为网络环境中最主要的恶意攻击方式,其攻击数量是恶意挂马攻击数量的数十倍。网民经常收到黑客伪造官网发来的各种钓鱼邮件,要甄别这些钓鱼邮件并不容易,很多人经常采用的方法是查验发件人地址信息是否为官网邮件地址。但是,是否显示为官方地址发送的邮件就是安全可信的呢?答案是否定的。据瑞星安全专家介绍,在现有的技术下,黑客可以把钓鱼邮件伪装成任何地址发送给用户,从而达到钓鱼攻击的目的。
下面我们结合黑客常用的伪造邮件手法进行分析,然后结合实例对伪造邮件攻击的原理进行描述。首先黑客可以通过提供在线匿名邮件服务的网站进行发送,如http://www.deadfake.com/,如下图1所示。
图1
正如网站上面介绍的,通过点击菜单栏的"send fake mail"的标签,我们就可以进行伪造邮件的发送了,需要填写的内容如下图2所示。
图2
这里From表示邮件发送者信息,我们可以在此进行伪造,例如伪造内容为腾讯服务的邮箱地址[email protected],这里为了实现钓鱼攻击的目的,我们将邮件的标题和内容写成腾讯QQ安全提示的内容,并将邮件正文中的链接地址指向钓鱼网站地址http://aq.qq-1.tk/ss,最后发送邮件。片刻后,我们收到了该伪造邮件的信息,如下图3所示。
图3
我们可以发现,发件地址为[email protected],邮件的主题和内容也是刚刚我们发送邮件内容的自定义内容,但是在邮件正文的第一行中,多了一行来自于deadfake的提示信息,提示用户这封邮件不是真的。那么在这封邮件中,惟一的瑕疵就是deadfake的提示信息内容,然而这对于黑客来说,也不是不能处理的。黑客可以将这个提示信息隐藏,实现的方法就是通过一个与邮件背景颜色相同的图片进行覆盖,我们重新构造邮件内容如下图4所示。
图4
与构造的上一封伪造邮件类似,我们增加了一行HTML代码,主要作用是在邮件正文中插入一个图片,图片显示为纯白色,然后通过style属性对图片的位置和大小信息进行设定,保证图片在显示时可以将deadfake提示的内容进行覆盖,然后再次进行发送,当接收到该伪造邮件时,我们可以看到deadfake的提示信息不见了,如下图5所示。
图5
但是,通过邮件的源代码文件我们发现,deadfake的提示信息还是有的,只是在邮件显示的时候不可见了,因为该文字信息已经被我们纯白色的图片覆盖了。
deadfake网站的伪造邮件是由网站提供的服务,同样,黑客也可以构建本地的SMTP服务器实现伪造邮件的发送。例如通过软件Advanced Direct Remailer这款软件,如图6所示。
图6
当电脑安装并运行Advanced Direct Remailer后,就相当于是一台SMTP服务器了。这里我们使用网易闪电邮作为邮件客户端软件进行演示,运行以后我们需要对邮箱进行配置,作为演示,我们仍然使用腾讯提供服务的邮箱地址[email protected],如下图7所示。
图7
然后点击下一步进行SMTP服务器信息的配置,这一步也是配置的关键,我们将发送服务器的地址设置为本地的地址,即127.0.0.1,协议选择SMTP协议,端口采用默认的25端口,这样邮件客户端就可以不经过ISP的SMTP服务器而是用本地构建的SMTP服务器直接向目的邮箱发信,配置信息如下图8所示。
图8
配置完成后,就可以按照正常的邮件发送流程进行发送,我们发送一个测试邮件内容如下图9所示。
图9
然后点击发送按钮,这封邮件就会进入到Advanced Direct Remailer的窗口中,我们点击Advanced Direct Remailer窗口的运行按钮,邮件就会进行发送。稍等片刻后,我们的邮箱就会收到刚刚伪造发送的邮件,并且发件人的信息为我们设置的[email protected],如下图10所示。
图10
从上面两种伪造邮件攻击的方法我们了解到,想实现伪造邮件,伪造发件人的攻击方式基本上没有什么技术含量,只需要浏览网页,添加一些文字或者安装两个软件即可。但是,为什么可以轻易地实现伪造邮件攻击呢?
SMTP(Simple Mail Transfer Protocol)协议,即简单邮件传输协议,是定义邮件传输的协议,它是基于TCP服务的应用层协议,用户通过SMTP协议所指定的服务器就可以把邮件发送到收件人的服务器上。其邮件传输过程共分为三个阶段:建立连接、传输数据和关闭连接。
由于传输数据的阶段是人为可控的,所以就会出现人为控制传输数据中发件人、发送的信息实现的伪造邮件攻击。数据传输过程中,SMTP协议主要是通过以下五个主要命令实现的。
a)Helo:与SMTP服务器处理邮件的进程开始通信。
b)Mail from:邮件发件人的信息,即黑客伪造的发件人地址信息。
c)Rcpt to:邮件接收人得信息,即黑客发送伪造邮件的目的邮箱地址。
d)Data:邮件正文内容。
e)Quit:退出邮件。
这些命令封装在应用程序中,对用户是隐藏的,用户在发送邮件过程中不会察觉这些命令的使用。
通过分析SMTP协议工作过程中的主要过程我们了解到,发件人的信息、邮件正文信息均是在发送过程中人为可控的数据,也就解释了为什么我们之前使用deadfake网站和Advanced Direct Remailer软件可以实现随意伪造发件人的地址和邮件正文信息,那么我们结合SMTP传输过程中的主要命令,在Advanced Direct Remailer软件环境来具体了解一下邮件发送的过程。
首先,我们通过telnet连接SMTP服务器的25端口。输入命令为telnet 127.0.0.1 25,然后我们看到SMTP服务器返回给我们的信息,然后我们依次输入刚刚介绍的数据传输中的命令,如下图11所示。
图11
其中,
HELO tencent.com表示伪造的主机域名信息为tencent.com。
MAIL FROM: [email protected]表示伪造的发件人信息为[email protected]。
RCPT TO: [email protected]表示发送的目标邮箱地址为[email protected]
DATA表示开始输入邮件正文内容
smtp command test表示邮件的正文内容
.表示输入结束
输入完成以后即可发现在Advanced Direct Remailer软件中提示有一封邮件等待发送,如下图12所示,我们点击菜单栏中的播放按钮即可实现该对邮件的发送。
图12
通过上述对伪造邮件攻击方法及原理的分析和描述,我们了解到,发件人地址是可以进行伪造的。所以瑞星安全专家建议广大网民,在收到涉及敏感信息的邮件时,要对邮件内容和发件人信息进行仔细的确认,防范可能存在的伪造邮件攻击行为。主要的防范方法可以分为以下几种:
1.通过邮件信息确定邮件发送者的真实IP信息。虽然发件人地址是可以伪造的,但是对方的真实IP地址信息却可以,用户可以通过分析IP地址信息来确定是否受到伪造邮件攻击,如下图13所示。
图13
2.安装网络安全防护软件。黑客通过伪造邮件攻击的方式攻击收件人,很大一部分是通过邮件中的钓鱼网站窃取用户隐私。只要用户安装了网络安全防护软件,如瑞星个人防火墙或瑞星全功能安全软件等,就可以对钓鱼网站或钓鱼行为的识别和拦截,有效防止通过伪造邮件实施的钓鱼攻击。
3.通过与发件人直接线下沟通的方式。一旦收到亲友、同事发出的可以邮件,最好在线下确认邮件内容的真实有效,再执行相应的操作,以免受到恶意伪造邮件攻击,造成不必要的损失。
伪造邮件攻击是很常见的一种黑客攻击手法,但是目前还没有针对该种类型攻击的完美解决方案。瑞星安全专家提醒广大用户,在已有的防范钓鱼邮件、钓鱼网站攻击的基础上,借助本文描述的防范伪造邮件攻击的方法,当收到疑似伪造邮件攻击时,对邮件信息进行仔细辨认,远离伪造邮件攻击的危害。
文章转自: 51CTO,很好的一个技术网站