2005年热门话题:钓鱼式攻击深入剖析
来源:计算机安全 更新时间:2012-04-13
2005年以来,网络骗子给网民们制造了不少麻烦,从中国金融安全网到瑞星防病毒网站,几乎无一例外的提到了“钓鱼式攻击”这个闹得沸沸扬扬的名词。自2004年以来,“钓鱼式攻击”已经给国内用户造成了很大的损失,或信用卡账号被盗,或银行账户上的存款不翼而飞,让人防不胜防!“钓鱼式攻击”的英文名Phishing来源于两个词,Phreaking+Fishing=Phishing,其中“Phreaking”的意思是找寻在电话系统内漏洞,不付电话费用;“Fishing”是使用鱼饵吸引猎物,也就是通常所讲的钓鱼。古时,子牙垂钓于秦岭脚下,其意全不在鱼;如今,网络飞速发展,网络钓鱼者垂钓于网络中,诱饵千百种,其行为目的很明确,就是以利为目的,盗取银行的存款或其他机密信息。
 
      那么,这些网络骗局是如何设置的呢?作为网络用户,又该如何进行有效的防范呢?本文将深入剖析其中的原理,并给出有效的防范方案。

      一、精心营造的网络骗局

       为了揭穿这些骗局,更好的保证金融网络的安全,我们首先来看看其中的一些典型原理。

      1、南辕北辙:改写URL

      对于经常上网的用户来说,下面的地址应该不陌生:
 
      例1  http://www.XXXbank.com&item=q209354@www.test.net/pub/mskb/Q209354.asp
      例2  http://www.XXXbank.com@www.google.com/search?hi=zh-CN&ie=UTF-8&oe=UTF-8&q=asp&Ir=
 
      在例1中,真正的主机是www.test.net,而“www.XXXbank.com”在这个URL中不过是个“掩耳盗铃”的假用户名,服务器会忽略掉。例2中,“www.XXXbank.com”将被视为Google服务器上的一个用户名,实际指向后面的页面。如果这个地址是具有攻击性或感染了病毒的网页,后果可想而知。类似的欺骗手法在“钓鱼式攻击”中应用的十分普遍。在钓鱼式攻击者制作的网页中,还存在如下的地址欺骗
 
      (1)域名欺骗。结合上述十进制IP地址,就可以通过如下的URL来制造更大的迷惑:www.XXXbank.com@3633633987/这个网址就达到了以假乱真的地步,它实际指向Redhat网站,怎么,你还以为是www.XXXbank.com吗?因为很多的网站都把HTTP的ScssionID放在URL中,来代替Cookie使用,所以用户并不会十分留意这个URL中的数字值和“@”字符。
 
      (2)IP地址欺骗。主要是利用一串十进制格式,通过不知所云的数字麻痹用户,例如IP地址202.106.185.75,将这个IP地址换算成十进制后就是3395991883,Ping这个数字后,我们会发现,居然可以Ping通,这就是十进制IP地址的解析,它们是等价的。
 
      (3)链接文字欺骗。我们知道,链接文字本身并不要求与实际网址相同,那么你可不能只看链接的文字,而应该多注意一下浏览器状态栏的实际网址了。如果该网页屏蔽了在状态栏提示的实际网址,你还可以在链接上按右键,查看链接的“属性”。
 
      (4)Unicode编码欺骗。Unicode编码有安全性的漏洞,这种编码本身也给识别网址带来了不便,面对“%20%30”这样的天书,很少有人能看出它真正的内容。除了Unicode编码外,以上提到的几种欺骗手段都是可以察觉的,再发现可疑网址时,用户就可以用学到的这些知识先“过滤”一番了。

      2、攻心战术:社会工程学欺骗

      熟练的社会工程学使用者都擅长进行信息收集,很多表面上看起来一点用都没有的信息都会被这些人利用起来进行渗透。类似的社会工程学原理被钓鱼式攻击者巧妙的用在了垃圾邮件的传递中。初次看到accounts@citibank.com这个地址,Citibank的顾客肯定不会有什么怀疑。然后就是等“鱼”上钩了。暂且不问信的来路,这是一个做得很好的社会工程学骗局。发送者通过合法的伪装来骗取受害者的信任。
 
      骗局是这样的:“亲爱的**用户,我们注意到您的账户信息已经过期了,现在需要更新账户信息,如果不及时更改将会导致账户信息失效”。我们注意到,在邮件的醒目之处有一行信息:“Please click here to update your billing records”,即“请点击此处更新你的收费记录”。看上去的地址是http://www.mycitibank.net/,实际上银行地址是http://www.mycitibank.net/。大家注意到,这个网络钓鱼攻击者使用的是http://www.mycitibank.net/,乍一眼看上去很亲切,实际上是仿冒了银行地址。在愉悦的“冲浪”时刻,当用户看到比真实的页面还要生动的假冒页面时,可能就会放松警惕性,甚至还会有一种亲切感。下面是一个2005年4月7日公布的一个典型的欺骗邮件。如图1所示。

图1
 
      用户输入数据后,还可以通过巧妙的Javascript脚本来迷惑用户。仿冒的站点提供了很多银行的连接,这样就给人以可信的感觉,实际上也是一种社会工程学的暗示。用户输入账号信息后,钓鱼者可能就在后面窃喜了,因为,网站早已通过巧妙的脚本设计,使用户相信自己的数据确实得到了更新。
 
      下面是国内发生的一起网络钓鱼式攻击案例。某用户收到一封电子邮件称:“最近我们发现您的工商银行账号有异常活动,为了保证您的账户安全,我行将于48小时内冻结您的账号,如果您希望继续使用,请点击输入账号和密码激活”。邮件落款为:中国工商银行客户服务中心。随意输了一个账号和密码,竟显示激活成功。假工商银行的网站http://www.1cbc.com.cn网站和真正的工行网站 http://www.Icbc.com.cn,只有“1”和“I”一字之差。如图2所示。

图2
 
      随着骗术的不断“修炼”,有的钓鱼攻击者甚至开始仿冒IE地址栏,通过一个其他的连接,即使我们打开的网页确实是http://www.Icbc.com.cn这个地址,我们也不能轻易肯定这就是工商银行的网站,为什么呢?
 
  3、MSN上空的“幽灵”:弹出窗口和伪造表单

      MSN Messenger 是微软公司推出的即时消息软件,平台无缝结合加上其优秀的性能,使MSN Messenger拥有了大量的用户群。如果我们拥有hotmail 或者MSN的邮件账号,可直接登录MSN Messenger 而无需再申请新的账号了。看看下面的网站技巧,如果点击邮件中的链接,就会被引诱到伪装成MSN站点的假冒网站。假冒网站会显示一个与MSN背景类似的弹出窗口,而假冒网站的真实URL则被隐藏起来。在它的上面是一个小窗口,看上去与背景天衣无缝的结合在一起。如图3所示。

图3
 
      这个网页骗局主要是使用弹出窗口,采用的是JavaScript的“window.createPopup()”方法。黑客使用Popup窗口的原因就是:支持跨窗口,显示优先级高。即使是Windows XP SP2,一个网页也允许出现一个由window.createPopup()建立的弹出窗口。因此就算是XP SP2环境也有可能被欺诈。代码中,var mytime=setTimeout("popshow();",100);表示设置窗口停留的时间为100秒。弹出的窗口没有地址栏,也没有可疑的URL地址;而且与背景相连,很容易给人造成一种错觉。用户输入相关数据后,网站就会提示如下界面,是真是假,我们就要睁大眼睛看清楚了。
 
      在用户的实际防范中,虽然将活动脚本设为无效,就不会打开弹出窗口、可以防止上当,但这样会导致多数网站无法完整显示画面,或无法接收服务。类似的欺骗方法在很多页面都曾出现过,对于一般用户来说,一定要分清其来路。较实用的方法是在弹出的页面上点击右键,选择“属性”选项,就可以看到其真实地址。这样的骗局大多以银行、电子商务、重点企业用户等站点为仿冒对象,而且方法也很简单,因而十分常见。
 
      了解了上述原理,我们再来看看钓鱼式攻击者所精心制作的表单。当这张表单的Submit按钮被点击后,用户数据即可开始传输到指定的服务器。Form的action属性表示用户提交表格时所要启动的相应处理程序。METHOD属性表示怎样将数据传送给WEB服务器,一种是GET方法(也是缺省方法),它将数据附加在URL信息上传送给WEB服务器;另一种是POST方法,它将数据独立成块地传送给WEB服务器。如果传送数据量大的话,还可以用POST方法。为了加强真实性,许多钓鱼式攻击者常在浏览器的状态栏上显示:“www.bank.com”,让人真假难辨。如果将鼠标移到HTML链接,状态栏将显示链接目标的URL。
 
  4、引羊入牢:典型账户陷阱分析

       2005年4月7日,国际反钓鱼组织公布了一个典型的案例,我们来分析一下其中的“布局”情况。首先,攻击者发了一个欺骗的邮件,声称:按照年度计划,用户的数据库信息需要进行例行更新,并给出了一个“To update your account address”连接地址。由于这封Email来自SebastianMareygrossness@comcast-support.biz,因此,一般人不会太怀疑。
 
       不过,细心的用户会发现,表面上地址是http://comcast-database.biz/,实际上地址是http://66.113.136.225,如图4所示。很明显,这个攻击者对Comcast这个公司的用户信息很感兴趣,如果能够得到这些机密信息,他就可以达到其不可告人的目的!

图4
 
       现在,不知情的用户输入了自己的“User Name”和“Password”,然后,通过表单机制,提交到了下一步。现在的界面还只是一个例行公事,只是要用户输入姓名、城市、电话等一般信息。填写完毕,攻击者的庐山真面目就露出来了。他现在要用户填写的是信用卡信息和Pin密码。实际上,在整个布局中,这也是钓鱼式攻击者最用心营造的地方。如图5所示。

图5
  4、引羊入牢:典型账户陷阱分析

       2005年4月7日,国际反钓鱼组织公布了一个典型的案例,我们来分析一下其中的“布局”情况。首先,攻击者发了一个欺骗的邮件,声称:按照年度计划,用户的数据库信息需要进行例行更新,并给出了一个“To update your account address”连接地址。由于这封Email来自SebastianMareygrossness@comcast-support.biz,因此,一般人不会太怀疑。
 
       不过,细心的用户会发现,表面上地址是http://comcast-database.biz/,实际上地址是http://66.113.136.225,如图4所示。很明显,这个攻击者对Comcast这个公司的用户信息很感兴趣,如果能够得到这些机密信息,他就可以达到其不可告人的目的!

图4
 
       现在,不知情的用户输入了自己的“User Name”和“Password”,然后,通过表单机制,提交到了下一步。现在的界面还只是一个例行公事,只是要用户输入姓名、城市、电话等一般信息。填写完毕,攻击者的庐山真面目就露出来了。他现在要用户填写的是信用卡信息和Pin密码。实际上,在整个布局中,这也是钓鱼式攻击者最用心营造的地方。如图5所示。

图5
 
 一旦获得用户的帐户信息,攻击者就会找个理由来欺骗用户说“谢谢!您的信息更新成功!”,让用户感觉很“心满意足”。下面就是他们所玩的一个把戏。如图6所示。

图6
 
       这是比较常见的一种欺骗方式,有些攻击者甚至编造公司信息和认证标志,其隐蔽性更强。一般来说,默认情况下我们所使用的HTTP协议是没有任何加密措施的,如站点http://comcast-database.biz/。不过,现在所有的消息全部都是以明文形式在网络上传送的,恶意的攻击者可以通过安装监听程序来获得我们和服务器之间的通讯内容。SSL可以用于在线交易时保护信用卡号、股票交易明细、账户信息等。当具有SSL功能的浏览器与WEB服务器(Apache、IIS)通信时,它们利用数字证书确认对方的身份。数字证书是由可信赖的第三方发放的,并被用于生成公共密钥。因此,采用了安全服务器证书的网站都会受SSL保护,其网页地址都具有“https”前缀,而非标准的“http”前缀。具体的例子可以参考招商银行的网上银行大众版地址:https://www.nj1.cmbchina.com/script/hbyktlogin.htm,打开这个页面后,双击右下角的黄色小锁就可以看到服务器的相关认证信息。
 
      但是,从目前钓鱼式攻击者的实践来看,大多没有这个标志,即使有,也可能是仿冒的。这就进一步揭穿了他们的把戏。下面,让我们来看看这个攻击者仿冒的花旗银行的页面吧。在IE地址栏上,有一个https地址,如图7所示。

图7
 
      这个页面被打开后,自动装载了一个 Java程序,并用一个包含合法URL的窗口覆盖地址栏的内容,查看页面的属性后,真实的地址实际上是一个http地址,而与https根本就没有关系。页面中间的User ID和Password则等着用户来“上钩”。再看地址拦右下角,根本没有锁的标志。有时候,攻击者为了能方便的在https和http之间转化进行转换,对相关代码适当处理即可。如在做电子商务站点的时候,让一个ASP页面以https开始,可在该ASP页面顶部添加一个简单的转换代码即可。(未完待续)